메뉴 건너뛰기

SAP 한국 커뮤니티

*&---------------------------------------------------------------------*
*&      Form  CALL_RFCFN_FUNDIFNFO01
*&---------------------------------------------------------------------*
form CALL_RFCFN_FUNDIFNFO01 .
*============================================================================
* 필요한 데이터를 interface 전송을 위한 구조체형의 internal table 에 담은 후,
* 다시 char형의 internal table에 담는다.
* otab1, otab2 는 상대편이 요구한 데이터를 담기 위한 구조체를 참조하고 있고
* otab1c, otba2c 는 모든 자료형을 char 형으로 전환해서 하나의 string 변수로
* 담는 과정을 처리하기 위한 구조체이다.
*data: OTAB1 like ZSCFMIF01 occurs 0 with header line.
*data: OTAB2 like ZSCFMIF02 occurs 0 with header line.
  clear: OTAB1, OTAB1[].
  clear: OTAB2, OTAB2[].
  clear: OTAB1C, OTAB1C[].
  clear: OTAB2C, OTAB2C[].
*============================================================================



*============================================================================
* 전송할 데이터의 포맷에 맞는 인터널테이블에 데이터를 담고 루프를 돌려서 char형 인터널
* 테이블에 담는다.
  loop at OTAB1.
    move-corresponding OTAB1 to OTAB1C.
    append OTAB1C.
    clear     OTAB1C.
  endloop.
*============================================================================



*============================================================================
  loop at OTAB1C.


    clear : LS_DATA2,
               LS_STRING,
               LS_STRING_RV.


*...전송할 한 row의 데이터 크기
    LS_DATA-LENGTH          = '2572'.


*...미들웨어에서 인식할 RFC의 서비스코드를 실행차수에 대한 자동채번
    call function 'ZCFM_RFC_NUMBER_GET_NEXT1'
      exporting
        I_GUBUN = 'DEPT1'
      importing
        E_NUM   = LS_DATA-GLOBALNO.


*...헤더부분 고정형식
    LS_DATA-STEP                 = '01'.
    LS_DATA-TRFLAG             = 'S'.
    LS_DATA-SYNCFLAG         = 'S'.
    LS_DATA-TTLFLAG            = '1'.
    LS_DATA-TTLKEEPTM       = '010'.
    LS_DATA-RSVSVCCD        = 'FADON0007600'. "해당RFC 서비스코드


    OTAB1C-1STROW        = '0000000001'.               "전송할 row 데이터 건수


    LS_STRING = LS_DATA.


*한글 전송처리부분==========================================
*      data: CONV    type ref to CL_NLS_STRUC_CONTAINER.
*      data: LV_BUFFER(200)    type C.
*      data: LV_DATA     like ZSCFMIF_INFO_HEADER_RFC.
*      data: L_STRING         type Z_CHAR1988.
*      LV_DATA  = LS_DATA(2572).
*    clear: OTAB2C-DAL_DT, OTAB2C-DEAL_OGNZ_NO, OTAB2C-DEAL_PRAF_NO, OTAB2C-DAL_PRGR_ID.
*...우리쪽에 데이터가 없더라도 상대쪽과 정의한 필드가 있을 경우에
*...전송할 데이터 양만큼을 채워줌(혹은 상대방과 협의필요)
    OTAB1C-DAL_DT       = '1'.  " EAI만 있음
    OTAB1C-DEAL_OGNZ_NO = '1'.  " EAI만 있음
    OTAB1C-DEAL_PRAF_NO = '1'.  " EAI만 있음
    OTAB1C-DAL_PRGR_ID  = '11111111111111111111'.  " EAI만 있음


 


 


  CALL FUNCTION 'HR_KR_STRING_ADJUST'


      EXPORTING


          CODEPAGE_ROUTER    = '8500'


          UNICODE_STRING       = L_TEXT_IN


          STRING_LEN              = L_INT


      IMPORTING


          OUT_STRING             = L_TEXT_OUT . 


 


    L_STR  =  L_TEXT_OUT+5(1).


  


    IF  L_STR  =  L_STR2.


       STRING_LEN(자르는자릿수)에 주는값을 1 줄이고 다시 반복합니다.


     ELSE.


       L_OK  =  L_TEXT_OUT.


     ENDIF.



 


    CONV = CL_NLS_STRUC_CONTAINER=>CREATE_FOR_FIXED_CODEPAGE( CODEPAGE = '8500' ).


 


*  conv->cont_to_struc( exporting cont = lv_buffer
*                                 langu = '3'
*                       importing struc = lv_data ).


 


*...매번 전송되는 부분의 일정부분은 고정값이 들어가므로 이자료만큼을 제외하고
*...ROW데이터를 대입함.
    CONV->STRUC_TO_CONT( exporting STRUC = OTAB1C  "LV_DATA
                                   LANGU = '3'
                         importing CONT = LS_STRING+600 ).


 


*...총 전송할 바이트수
*      LS_STRING = L_STRING(2572).
*한글 전송처리부분=========================================/


    call function 'ZFCFMIF_FUNDINFO01' destination 'EAI'
            exporting
                I_DATA                   = LS_STRING
           importing
                RETURN_CODE      = LS_STRING_RV
* TABLES
*   OTAB                        =
           exceptions
             COMMUNICATION_FAILURE       = 1
             SYSTEM_FAILURE                     = 2
             RFC_EXTERNAL_ABORT            = 3
             VT_ERROR                                = 4
             OTHER                                      = 5
             others                                       = 6 .


*==========================================================
*
    if SY-SUBRC <> 0.


* 전송처리 실패 처리부분


      check SY-SUBRC eq 0.
      message E000 with 'Send Error.'.
    else.


      clear LS_DATA.
      LS_DATA = LS_STRING_RV.


*..성공시..
      if LS_DATA-RESTYPE = 0.
        try.
* 전송처리 성공 처리부분
        endtry.
      else.
* 전송처리 실패 처리부분
      endif.


    endif.


    clear: OTAB1C.


  endloop.


번호 제목 글쓴이 날짜 조회 수
1834 <b>[완료]</b>field_catalog에 관해 문의드립니다. [7] file 풍뎅이 2008.06.19 2732
1833 [요청]한글정보 RFC 전송시 자릿수 안맞을때 맞춰주는 함수 HR_KR_STRING_ADJUST 사용예 좀 알려주세요. 하오 2008.06.19 2519
» [re] [요청]한글정보 RFC 전송시 자릿수 안맞을때 쓰는 함수 빨간색부분 vs 파란색부분의 차이점을 알려주세요. 하오 2008.06.25 1792
1831 [요청]CLASS를 이용하여 ALV 띄울 때 TOP-OF-PAGE 가 안되요~~~ AWESOME 2008.06.19 1787
1830 <img src=3.gif border=0>[요청]다시 질문합니다. 로그인 화면 메뉴 옆에 화면에 이미지 추가하는 방법 아시면 좀 알려주세요. [4] 비안개 2008.06.18 1275
1829 [요청]테이블컨트롤에서 더블클릭한 값 받아오는거요... [5] CoolGuy 2008.06.18 2176
1828 <b>[완료]</b>REUSE_ALV_LIST_DISPLAY 함수 <- 이벤트 걸려고 합니다. [6] 꽃미남 2008.06.18 2223
1827 [요청]'TEXT_CONVERT_XLS_TO_SAP' 함수설명 부탁드려요. [1] 다급 2008.06.18 3388
1826 <b>[완료]</b>DATA CHANGE 부분에서 오류가 납니다. [1] 랑랑이 2008.06.18 3795
1825 [요청]BAPI_PROJECT_GETINFO 요펑션 사용하신분... [4] CoolGuy 2008.06.18 1417
1824 <b>[완료]</b>SELECT문의 차이를 설명해 주세요 예제를 기술하였습니다. [13] SD2 2008.06.18 2677
1823 <b>[완료]</b>Table Maintenance(SE54)만드는법좀 알려주세요 [4] 엉큼고냥이 2008.06.17 1917
1822 [요청]SET_READY_FOR_INPUT 이메소드에관해... [3] CoolGuy 2008.06.17 5889
1821 <b>[완료]</b>새로나온 abap editor에 대하여 질문드립니다. [4] SD2 2008.06.17 1298
1820 계속 로그아웃이 되어서 답변 드리기도 쉽지 않네요 ^^; [1] file 知人™ 2008.06.17 1175
1819 [re] 계속 로그아웃이 되어서 답변 드리기도 쉽지 않네요 ^^; [1] 知人™ 2008.06.18 1342
1818 <b>[완료]</b>리포트 프로그램에서도 온라인 프로그램처럼 UI에 텍스트창을 삽입할 수 있나요? [7] file SD2 2008.06.17 1991
1817 <b>[완료]</b>CV03N(문서조회)의 첨부파일 실행&조회 FUNCTION 혹은 BAPI [2] 팬더야 2008.06.17 2098
1816 <b>[완료]</b>프로그램명 or T-code로 해당프로그램이 SAP 어느 영역 메뉴의 있는지 알수가 있나여? [5] 사탕수수 2008.06.17 2417
1815 <b>[완료]</b>커서의 이동에 관하여 문의드립니다. [7] 풍뎅이 2008.06.17 2078