반응형
임시 전표 조회 RFC를 만드는 도중 나타난 오류
FUNCTION ZMM_EAC_INTERFACE_086.
*"----------------------------------------------------------------------
*"*"Global Interface:
*" IMPORTING
*" VALUE(I_BUKRS) TYPE BUKRS
*" VALUE(I_BELNR) TYPE BELNR_D
*" VALUE(I_GJAHR) TYPE GJAHR
*" EXPORTING
*" VALUE(E_RESULT) TYPE CHAR1
*" VALUE(E_COUNT) TYPE CHAR10
*" VALUE(E_MSG) TYPE CHAR100
*" TABLES
*" HEAD STRUCTURE ZEACS049 OPTIONAL
*" ITEM STRUCTURE ZEACS050 OPTIONAL
*"----------------------------------------------------------------------
DATA: LIN TYPE CHAR10.
DATA:LT_BKPF LIKE BKPF OCCURS 0 WITH HEADER LINE.
DATA:LT_BSEC LIKE BSEC OCCURS 0 WITH HEADER LINE.
DATA:LT_BSEG LIKE BSEG OCCURS 0 WITH HEADER LINE.
DATA:LT_BSET LIKE BSET OCCURS 0 WITH HEADER LINE.
*...공통광역변수 가져오기
PERFORM GET_COMMON_GLOBAL_DATA USING SPACE.
CLEAR: GT_BKPF.
IF I_BUKRS IS INITIAL.
E_RESULT = 'F'. "실패
E_COUNT = '0'.
E_MSG = 'There is no Company Code.'.
PERFORM INSERT_ZEACT102_TABLE TABLES HEAD USING
E_RESULT
E_COUNT
E_MSG.
RETURN.
ELSE.
GT_BKPF-BUKRS = I_BUKRS.
ENDIF.
IF I_BELNR IS INITIAL.
E_RESULT = 'F'. "실패
E_COUNT = '0'.
E_MSG = 'There is no Accounting Document Number.'.
PERFORM INSERT_ZEACT102_TABLE TABLES HEAD USING
E_RESULT
E_COUNT
E_MSG.
RETURN.
ELSE.
GT_BKPF-BELNR = I_BELNR.
ENDIF.
IF I_GJAHR IS INITIAL.
E_RESULT = 'F'. "실패
E_COUNT = '0'.
E_MSG = 'There is no Fiscal Year.'.
PERFORM INSERT_ZEACT102_TABLE TABLES HEAD USING
E_RESULT
E_COUNT
E_MSG.
RETURN.
ELSE.
GT_BKPF-GJAHR = I_GJAHR.
ENDIF.
CALL FUNCTION 'ZFI_READ_PARKED_DOC_KLM'
EXPORTING
I_BELNR = GT_BKPF-BELNR
I_BUKRS = GT_BKPF-BUKRS
I_GJAHR = GT_BKPF-GJAHR
TABLES
T_XBKPF = LT_BKPF
T_XBSEC = LT_BSEC
T_XBSEG = LT_BSEG
T_XBSET = LT_BSET
EXCEPTIONS
DOCUMENT_LINE_NOT_FOUND = 1
DOCUMENT_NOT_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT LT_BKPF.
MOVE-CORRESPONDING LT_BKPF TO HEAD.
LOOP AT LT_BSEG.
MOVE-CORRESPONDING LT_BSEG TO ITEM.
IF LT_BSEG-SHKZG = 'S'.
ITEM-SWRBT = LT_BSEG-WRBTR.
ITEM-SDMBT = LT_BSEG-DMBTR.
ELSE.
ITEM-HWRBT = LT_BSEG-WRBTR.
ITEM-HDMBT = LT_BSEG-DMBTR.
ENDIF.
* 코스트센터text
IF ITEM-KOSTL NE SPACE.
PERFORM GET_KTEXT USING ITEM-KOSTL
CHANGING ITEM-KTEXT.
PERFORM ALPHA_CONVERSION_OUT CHANGING ITEM-KOSTL.
ENDIF.
* 세금코드text
IF ITEM-MWSKZ NE SPACE.
PERFORM GET_T007S USING ITEM-MWSKZ
CHANGING ITEM-TEXT1.
ENDIF.
* G/L계정text
IF ITEM-HKONT NE SPACE.
PERFORM GET_TXT20 USING ITEM-HKONT
CHANGING ITEM-TXT50.
PERFORM ALPHA_CONVERSION_OUT CHANGING ITEM-HKONT.
ENDIF.
* 오더명
IF ITEM-AUFNR NE SPACE.
PERFORM GET_AUFNR USING ITEM-AUFNR
CHANGING ITEM-ATEXT.
PERFORM ALPHA_CONVERSION_OUT CHANGING ITEM-AUFNR.
ENDIF.
* 자산명
IF ITEM-ANLN1 NE SPACE.
PERFORM GET_ANLA_TXT50 USING ITEM-ANLN1
ITEM-ANLN2
CHANGING ITEM-TXA50.
ENDIF.
IF LT_BSEG-KOART = 'K'. " 공급처
CLEAR:RF40D.
MOVE-CORRESPONDING LT_BSEG TO RF40D.
RF40D-BUDAT = LT_BKPF-BUDAT.
PERFORM MAKING_FDTAG_DATA CHANGING ITEM-FDTAG.
ITEM-ZCUST = LT_BSEG-LIFNR.
PERFORM GET_LIFNR_DATA USING LT_BSEG-XCPDD
LT_BSEG-BELNR
LT_BSEG-GJAHR
LT_BSEG-BUZEI
ITEM-ZCUST
CHANGING ITEM-STCD2
ITEM-NAME1.
PERFORM ALPHA_CONVERSION_OUT CHANGING ITEM-ZCUST.
HEAD-ZCUST = ITEM-ZCUST.
HEAD-NAME1 = ITEM-NAME1.
ELSEIF LT_BSEG-KOART = 'D'. " 고객
CLEAR:RF40D.
MOVE-CORRESPONDING LT_BSEG TO RF40D.
RF40D-BUDAT = LT_BKPF-BUDAT.
PERFORM MAKING_FDTAG_DATA CHANGING ITEM-FDTAG.
ITEM-ZCUST = LT_BSEG-KUNNR.
PERFORM GET_KUNNR_DATA USING LT_BSEG-XCPDD
LT_BSEG-BELNR
LT_BSEG-GJAHR
LT_BSEG-BUZEI
ITEM-ZCUST
CHANGING ITEM-STCD2
ITEM-NAME1.
PERFORM ALPHA_CONVERSION_OUT CHANGING ITEM-ZCUST.
HEAD-ZCUST = ITEM-ZCUST.
HEAD-NAME1 = ITEM-NAME1.
ENDIF.
ITEM-SDMBT = ITEM-SDMBT.
ITEM-HDMBT = ITEM-HDMBT.
ITEM-HWBAS = ITEM-HWBAS.
IF HEAD-WAERS = 'KRW' OR HEAD-WAERS = 'JPY'.
ITEM-SWRBT = ITEM-SWRBT * 100.
ITEM-HWRBT = ITEM-HWRBT * 100.
ITEM-FWBAS = ITEM-FWBAS * 100.
ENDIF.
IF LT_BSEG-SHKZG = 'S'.
HEAD-SWRBT = HEAD-SWRBT + LT_BSEG-WRBTR.
HEAD-SDMBT = HEAD-SDMBT + LT_BSEG-DMBTR.
ENDIF.
IF LT_BSEG-SGTXT IS NOT INITIAL.
HEAD-SGTXT = LT_BSEG-SGTXT.
ENDIF.
APPEND ITEM. CLEAR ITEM.
ENDLOOP.
IF HEAD-WAERS = 'KRW' OR HEAD-WAERS = 'JPY'.
HEAD-SWRBT = HEAD-SWRBT * 100.
ENDIF.
APPEND HEAD. CLEAR HEAD.
ENDLOOP.
SORT:HEAD,ITEM.
IF HEAD[] IS INITIAL.
E_RESULT = 'F'.
E_COUNT = '0'.
E_MSG = 'No Data..'.
APPEND HEAD.
PERFORM INSERT_ZEACT102_TABLE TABLES HEAD USING
E_RESULT
E_COUNT
E_MSG.
RETURN.
ELSE.
E_RESULT = 'S'.
DESCRIBE TABLE ITEM LINES LIN.
CONDENSE LIN NO-GAPS.
E_COUNT = LIN.
CONCATENATE LIN 'item data transfers.' INTO E_MSG.
PERFORM INSERT_ZEACT102_TABLE TABLES HEAD USING
E_RESULT
E_COUNT
E_MSG.
ENDIF.
ENDFUNCTION.
CALL FUNCTION 'ZFI_READ_PARKED_DOC_KLM'
EXPORTING
I_BELNR = GT_BKPF-BELNR
I_BUKRS = GT_BKPF-BUKRS
I_GJAHR = GT_BKPF-GJAHR
TABLES
T_XBKPF = LT_BKPF
T_XBSEC = LT_BSEC
T_XBSEG = LT_BSEG
T_XBSET = LT_BSET
EXCEPTIONS
DOCUMENT_LINE_NOT_FOUND = 1
DOCUMENT_NOT_FOUND = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
맨 처음에 I_BELNR = I_BELNR 이렇게 적어서 오류가 났던것 .
변수를 다른것으러 바꿔주니 에러가 안난다 !
반응형
'SAP 오류' 카테고리의 다른 글
SAP ALV 엑셀 일괄 등록시 '템플릿포맷은 '___.___-____' 오류 해결 방법 (0) | 2025.02.05 |
---|---|
SAP 엑셀 파일 업로드 프로그램 제작 중 "No Program available for processing document" 오류 (0) | 2024.12.12 |
SAP Object entry exists more than once. Sort and compress first 오류 (0) | 2024.06.19 |
SAP Overwritten protected field 오류 (1) | 2024.03.06 |
SAP Screens Element Field list 추가 방법 (0) | 2024.02.28 |