on 10-05-2015 5:33 AM
Dear Friends,
My client is an Indian Client mostly dealing in imported goods and selling them in Indian Market.
We have a number of vendor cost related to Import of goods which are routed through PO only and is loaded to the Inventory Cost.
It is a new set up so I am trying to use the BAPI "BAPI_INCOMINGINVOICE_CREATE" for Vendors cost like Freight Vendors, Custom Vendors and CHA Vendors.
But I am not able to use the vendor other than Material Vendor in this scenario.I am not sure In which table should we specify the vendor.
When I am trying to specify the vendor number in Header Table in Payee field : It is giving me following error :
FR003 Payee 7XXXX is not defined for account 4XXXX 1XXX.
When I tried to specify the Freight Vendor in delivery Vendor in Item Table,It is giving the following error:
M8 524 You cannot process conditions for delivery costs
Please help me understand if we can use this BAPI for vendor Other than Material Vendor,If yes where we need to specify the same.
Regards,
Sapan Agarwal
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I have used same BAPI for CHA Bill booking..
use below code for that..
*&---------------------------------------------------------*
*& PROGRAM : BAPI for Imcoming Invoice ZMM_INCOMING_INV
*& TITLE : BAPI for Imcoming Invoice
*& MODULE : MM/REPORT *
*& CREATED BY : KUNWAR VERMA
*& CREATED ON : 20/06/2015
*& FUNCTIONAL : KUNWAR VERMA *
*& BUSINESS OWNER: *
*& RELEASE : ECC 6.0 *
* *
**************************************************************
REPORT ZMMC005 NO STANDARD PAGE HEADING .
TABLES: RBKP.
DATA: BEGIN OF IT_MKPF OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
ZEILE LIKE MSEG-ZEILE,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
BPRME LIKE MSEG-BPRME,
BPMNG LIKE MSEG-BPMNG,
ERFMG LIKE MSEG-ERFMG,
DMBTR LIKE MSEG-DMBTR,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
LFBNR LIKE MSEG-LFBNR,
LFPOS LIKE MSEG-LFPOS,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
MATNR LIKE MSEG-MATNR,
CHARG LIKE MSEG-CHARG,
BUKRS LIKE MSEG-BUKRS,
SMBLN LIKE MSEG-SMBLN,
SMBLP LIKE MSEG-SMBLP,
BUDAT LIKE MKPF-BUDAT,
BLDAT LIKE MKPF-BLDAT,
* PER TYPE P DECIMALS 4,
PER TYPE STring,
* DMBTR_F LIKE MSEG-DMBTR,
DMBTR_F type P DECIMALS 4,
END OF IT_MKPF.
DATA: PER LIKE MSEG-DMBTR,
* DMBTR_F LIKE MSEG-DMBTR,
DMBTR_F type P DECIMALS 4,
TOTAL LIKE MSEG-DMBTR.
DATA: BEGIN OF IT_MSEG_COLL OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
DMBTR LIKE MSEG-DMBTR,
END OF IT_MSEG_COLL.
DATA: BEGIN OF IT_MKPF_COLL OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
MENGE LIKE MSEG-MENGE,
BPRME LIKE MSEG-BPRME,
BPMNG LIKE MSEG-BPMNG,
ERFMG LIKE MSEG-ERFMG,
DMBTR LIKE MSEG-DMBTR,
END OF IT_MKPF_COLL.
DATA: BEGIN OF IT_FINAL OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
DMBTR LIKE MSEG-DMBTR,
INV_NO LIKE RBKP-BELNR,
INV_YR LIKE MSEG-MJAHR,
MSG(100),
END OF IT_FINAL.
DATA: BEGIN OF IT_FINAL1 OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
DMBTR LIKE MSEG-DMBTR,
INV_NO LIKE RBKP-BELNR,
INV_YR LIKE MSEG-MJAHR,
MSG(100),
END OF IT_FINAL1.
DATA: BEGIN OF IT_FINAL_S OCCURS 0,
MBLNR LIKE MSEG-MBLNR,
MJAHR LIKE MSEG-MJAHR,
ZEILE LIKE MSEG-ZEILE,
EBELN LIKE MSEG-EBELN,
EBELP LIKE MSEG-EBELP,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
ERFMG LIKE MSEG-ERFMG,
DMBTR LIKE MSEG-DMBTR,
BWART LIKE MSEG-BWART,
SHKZG LIKE MSEG-SHKZG,
LFBNR LIKE MSEG-LFBNR,
LFPOS LIKE MSEG-LFPOS,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
MATNR LIKE MSEG-MATNR,
BUKRS LIKE MSEG-BUKRS,
BUDAT LIKE MKPF-BUDAT,
BLDAT LIKE MKPF-BLDAT,
PER LIKE MSEG-DMBTR,
* DMBTR_F LIKE MSEG-DMBTR,
DMBTR_F type P DECIMALS 4,
END OF IT_FINAL_S.
DATA:IT_MKPF1 LIKE IT_MKPF OCCURS 0 WITH HEADER LINE.
DATA:IT_MSEG LIKE IT_MKPF OCCURS 0 WITH HEADER LINE.
DATA:IT_RBKP LIKE RBKP OCCURS 0 WITH HEADER LINE.
DATA:IT_HEAD LIKE BAPI_INCINV_CREATE_HEADER,
IT_ITEM LIKE BAPI_INCINV_CREATE_ITEM OCCURS 0 WITH HEADER LINE,
IT_ACCT LIKE BAPI_INCINV_CREATE_ACCOUNT OCCURS 0 WITH HEADER LINE,
IT_GL LIKE BAPI_INCINV_CREATE_GL_ACCOUNT OCCURS 0 WITH HEADER LINE,
IT_MAT LIKE BAPI_INCINV_CREATE_MATERIAL OCCURS 0 WITH HEADER LINE,
IT_VEN LIKE BAPI_INCINV_CREATE_VENDORSPLIT OCCURS 0 WITH HEADER LINE,
IT_RET LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE ,
IT_WITHTAXDATA LIKE STANDARD TABLE OF BAPI_INCINV_CREATE_WITHTAX WITH HEADER LINE.
DATA: INV_DOC LIKE BAPI_INCINV_FLD-INV_DOC_NO,
FISC_YR LIKE BAPI_INCINV_FLD-FISC_YEAR.
DATA: ZINVDOC(50) TYPE C, ZFISCYR(30) TYPE C , CNT type MBLPO.
**Alv Declarations
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
IT_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
WA_LINE TYPE SLIS_LISTHEADER,
IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
IT_EVENTS1 TYPE SLIS_T_EVENT,
WA_EVENT1 TYPE SLIS_ALV_EVENT,
GT_LIST_TOP_OF_PAGE1 TYPE SLIS_T_LISTHEADER,
WA_LINE1 TYPE SLIS_LISTHEADER,
IT_LIST_TOP_OF_PAGE1 TYPE SLIS_T_LISTHEADER,
G_TOP_OF_PAGE1 TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: DMBTR LIKE MSEG-DMBTR.
" SELECTION SCREEN..............................
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_BUKRS LIKE MSEG-BUKRS OBLIGATORY DEFAULT '1000'.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_DOCDT like MKpf-BUDAT OBLIGATORY DEFAULT Sy-datum, " Document date
P_POSTDT like MKpf-BUDAT OBLIGATORY DEFAULT Sy-datum, " posting date
P_MBLNR LIKE MKPF-MBLNR OBLIGATORY, " GRN doc No
P_MJAHR LIKE MKPF-MJAHR OBLIGATORY, " doc Year
P_XBLNR1 TYPE XBLNR1 OBLIGATORY , " Ref Doc No
P_GSBER LIKE INVFO-GSBER OBLIGATORY, " Business Area
P_LIFNR LIKE INVFO-LIFNR OBLIGATORY, " Vendor Code
P_ZUONR LIKE INVFO-ZUONR OBLIGATORY, " Assignment
P_BUPLA LIKE INVFO-BUPLA OBLIGATORY, " Business Place
P_COND like KONV-KSCHL OBLIGATORY DEFAULT 'YCHA'. " Condition type
Skip 1.
SELECTION-SCREEN COMMENT /10(79) COMM1 MODIF ID MOD.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
PARAMETERS:P_FRATH LIKE MKPF-FRATH OBLIGATORY , " Unplaned Value...
P_SER LIKE MKPF-FRATH, " service Tax Amount
S_SER_TX LIKE BSIS-HKONT DEFAULT '194200'," Service Tax A/C
P_WITHT LIKE LFBW-WITHT DEFAULT 'C1', " Withholding tax type
PWT_CODE LIKE LFBW-WT_WITHCD DEFAULT 'C3',"Withholding Tax code
P_NETAMT LIKE MSEG-DMBTR, " With tax amount
P_IT_TXT LIKE INVFO-SGTXT . " Item Text
SELECTION-SCREEN END OF BLOCK B3.
AT SELECTION-SCREEN OUTPUT.
COMM1 = 'Condition type YCHA for CHA Bill booking and YSHA for Freight Booking'.
* +++++++++++START-OF-SELECTION ......................................
START-OF-SELECTION.
*
* AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
* ID 'BUKRS' FIELD 'P_BUKRS'
* ID 'ACTVT' FIELD '03'.
* IF SY-SUBRC NE 0.
* MESSAGE : 'You are not authorize for input company code' TYPE 'E'.
* ELSE.
PERFORM GET_DATA.
PERFORM SIMULATE_DATA.
* ENDIF.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT SINGLE * FROM RBKP INTO IT_RBKP WHERE XBLNR = P_XBLNR1
AND STBLG = ' '
AND BUKRS = P_BUKRS %_HINTS MSSQLNT 'INDEX("RBKP" "RBKP~3")'. " Ref Document No checcking..
IF SY-SUBRC NE 0.
SELECT " GRN no for distribution of Amount
A~MBLNR
A~MJAHR
A~ZEILE
A~EBELN
A~EBELP
A~MENGE
A~MEINS
A~BPRME
A~BPMNG
A~ERFMG
A~DMBTR
A~BWART
A~SHKZG
A~LFBNR
A~LFPOS
A~WERKS
A~LGORT
A~MATNR
A~CHARG
A~BUKRS
A~SMBLN
A~SMBLP
B~BUDAT
B~BLDAT
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF
FROM MSEG AS A INNER JOIN MKPF AS B ON
A~MBLNR = B~MBLNR AND A~MJAHR = B~MJAHR
WHERE B~MBLNR = P_MBLNR
AND B~MJAHR = P_MJAHR
AND A~EBELN NE ' '
AND BWART IN ('101') %_HINTS MSSQLNT 'INDEX("MSEG" "MSEG~M")'. "#EC CI_HINTS
IF SY-SUBRC EQ 0.
SELECT " Check deleted item........
A~MBLNR
A~MJAHR
A~ZEILE
A~EBELN
A~EBELP
A~MENGE
A~MEINS
A~BPRME
A~BPMNG
A~ERFMG
A~DMBTR
A~BWART
A~SHKZG
A~LFBNR
A~LFPOS
A~WERKS
A~LGORT
A~MATNR
A~CHARG
A~BUKRS
A~SMBLN
A~SMBLP
B~BUDAT
B~BLDAT
INTO CORRESPONDING FIELDS OF TABLE IT_MKPF1
FROM MSEG AS A INNER JOIN MKPF AS B ON
A~MBLNR = B~MBLNR AND A~MJAHR = B~MJAHR
FOR ALL ENTRIES IN IT_MKPF
WHERE A~EBELN = IT_MKPF-EBELN
AND A~EBELP = IT_MKPF-EBELP
AND A~SMBLN = IT_MKPF-MBLNR
AND A~SMBLP = IT_MKPF-ZEILE
AND BWART IN ('102') %_HINTS MSSQLNT 'INDEX("MSEG" "MSEG~M")'. "#EC CI_HINTS
ENDIF.
ELSE.
MESSAGE : 'Ref Document No duplicate entry is not allow' TYPE 'E'.
ENDIF.
IF NOT IT_MKPF1[] IS INITIAL.
LOOP AT IT_MKPF. " Remove deleted Item.......
READ TABLE IT_MKPF1 WITH KEY SMBLN = IT_MKPF-MBLNR
SMBLP = IT_MKPF-ZEILE.
IF SY-SUBRC EQ 0.
DELETE IT_MKPF.
ENDIF.
ENDLOOP.
ENDIF.
* DATA: MSG(100).
* IF IT_MKPF[] IS INITIAL.
* CONCATENATE 'GRN No is deleted-' P_MBLNR INTO MSG.
* MESSAGE : MSG TYPE 'E'.
* ELSE.
IT_MSEG[] = IT_MKPF[].
LOOP AT IT_MSEG.
MOVE-CORRESPONDING IT_MSEG TO IT_MSEG_COLL.
COLLECT IT_MSEG_COLL.
ENDLOOP.
LOOP AT IT_MSEG.
MOVE-CORRESPONDING IT_MSEG TO IT_MKPF_COLL.
COLLECT IT_MKPF_COLL.
ENDLOOP.
SORT IT_MSEG BY MBLNR EBELN EBELP.
DELETE ADJACENT DUPLICATES FROM IT_MSEG COMPARING MBLNR EBELN EBELP.
LOOP AT IT_MSEG.
READ TABLE IT_MKPF_COLL WITH KEY MBLNR = IT_MSEG-MBLNR
MJAHR = IT_MSEG-MJAHR
EBELN = IT_MSEG-EBELN
EBELP = IT_MSEG-EBELP.
IF SY-SUBRC EQ 0.
IT_MSEG-DMBTR = IT_MKPF_COLL-DMBTR.
IT_MSEG-MENGE = IT_MKPF_COLL-MENGE.
MODIFY IT_MSEG TRANSPORTING DMBTR MENGE.
ENDIF.
READ TABLE IT_MSEG_COLL WITH KEY MBLNR = IT_MSEG-MBLNR MJAHR = IT_MSEG-MJAHR.
IF SY-SUBRC EQ 0.
IT_MSEG-PER = IT_MSEG-DMBTR / IT_MSEG_COLL-DMBTR.
* DMBTR_F = DMBTR_F + IT_MSEG-PER * ( P_FRATH ).
IT_MSEG-DMBTR_F = IT_MSEG-PER * ( P_FRATH ).
DMBTR_F = DMBTR_F + IT_MSEG-DMBTR_F.
MODIFY IT_MSEG TRANSPORTING PER DMBTR_F.
ENDIF.
IT_FINAL_S-MBLNR = IT_MSEG-MBLNR.
IT_FINAL_S-MJAHR = IT_MSEG-MJAHR.
IT_FINAL_S-ZEILE = IT_MSEG-ZEILE.
IT_FINAL_S-EBELN = IT_MSEG-EBELN.
IT_FINAL_S-EBELP = IT_MSEG-EBELP.
IT_FINAL_S-MENGE = IT_MSEG-MENGE.
IT_FINAL_S-DMBTR = IT_MSEG-DMBTR.
IT_FINAL_S-DMBTR_F = IT_MSEG-DMBTR_F.
APPEND IT_FINAL_S.
* Clear: DMBTR_F.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM IT_MKPF COMPARING MBLNR MJAHR.
* ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form BAPI_INCOMING_INV_CREATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BAPI_INCOMING_INV_CREATE .
*fill the data For BAPI ............................................
LOOP AT IT_MKPF.
CLEAR IT_HEAD.
IT_HEAD-INVOICE_IND = 'X'.
IT_HEAD-COMP_CODE = IT_MKPF-BUKRS. " COMPANY CODE
IT_HEAD-DOC_DATE = P_DOCDT. " DOC DATE
IT_HEAD-PSTNG_DATE = P_POSTDT . " POSTING DATE
IT_HEAD-REF_DOC_NO = P_XBLNR1. " REF DOC NO
IT_HEAD-CURRENCY = 'INR'. " CURRENCY
IT_HEAD-BUSINESS_PLACE = P_BUPLA. " BUSINESS PLACE
IT_HEAD-ZZSECCO = P_BUPLA. " BUSINESS PLACE
IT_HEAD-HEADER_TXT = P_IT_TXT. " Header TEXT
IT_HEAD-ITEM_TEXT = P_IT_TXT. " ITEM TEXT
IT_HEAD-DIFF_INV = P_LIFNR . " VENDOR CODE
IT_HEAD-DOC_TYPE = 'RE'. " Doc type
IT_HEAD-BUS_AREA = P_GSBER. " Business Area
IT_HEAD-BLINE_DATE = IT_MKPF-BUDAT . " Base Line Date
IT_HEAD-PMNT_BLOCK = 'B'. " payment block..
IT_HEAD-CALC_TAX_IND = 'X'. " Tax code Ind..
IT_HEAD-ALLOC_NMBR = P_ZUONR. " Assignment
READ TABLE IT_MSEG_COLL WITH KEY MBLNR = IT_MKPF-MBLNR MJAHR = IT_MKPF-MJAHR.
IF SY-SUBRC EQ 0.
* IT_HEAD-GROSS_AMOUNT = IT_MSEG_COLL-DMBTR + P_FRATH + P_SER ." total amount header
* IT_HEAD-GROSS_AMOUNT = P_FRATH + P_SER ." total amount header "Commented By Kunwar Verma..
IT_HEAD-GROSS_AMOUNT = DMBTR_F + P_SER ." total amount header " Adde By Kunwar Verma..
ENDIF.
CLEAR: IT_ITEM , CNT , IT_GL , IT_WITHTAXDATA.
LOOP AT IT_MSEG WHERE MBLNR = IT_MKPF-MBLNR AND MJAHR = IT_MKPF-MJAHR.
IF SY-SUBRC EQ 0.
CNT = CNT + 1.
IT_ITEM-PO_NUMBER = IT_MSEG-EBELN.
* IT_ITEM-REF_DOC = IT_MSEG-MBLNR.
* IT_ITEM-REF_DOC_YEAR = IT_MSEG-MJAHR.
* IT_ITEM-REF_DOC_IT = IT_MSEG-ZEILE.
IT_ITEM-PO_ITEM = IT_MSEG-EBELP.
IT_ITEM-ITEM_AMOUNT = IT_MSEG-DMBTR_F.
IT_ITEM-TAX_CODE = 'V0'.
IT_ITEM-QUANTITY = IT_MSEG-MENGE.
IT_ITEM-PO_PR_QNT = IT_MSEG-BPMNG.
IT_ITEM-PO_PR_UOM = IT_MSEG-BPRME.
IT_ITEM-PO_UNIT = IT_MSEG-MEINS.
IT_ITEM-COND_TYPE = P_COND.
IT_ITEM-INVOICE_DOC_ITEM = CNT . " ( i don't know what this is for so i gave this no.)
APPEND IT_ITEM.
IF CNT = '00001'. " G/L Updation i.e service Tax ....
IT_GL-INVOICE_DOC_ITEM = CNT.
IT_GL-GL_ACCOUNT = S_SER_TX.
IT_GL-ITEM_AMOUNT = P_SER.
IT_GL-DB_CR_IND = 'S'.
IT_GL-TAX_CODE = ' '.
IT_GL-BUS_AREA = P_GSBER.
IT_GL-COMP_CODE = P_BUKRS.
APPEND IT_GL.
IT_WITHTAXDATA-SPLIT_KEY = CNT. " Withholding Tax details
IT_WITHTAXDATA-WI_TAX_TYPE = P_WITHT.
IT_WITHTAXDATA-WI_TAX_CODE = PWT_CODE.
IT_WITHTAXDATA-WI_TAX_BASE = P_NETAMT.
* IT_WITHTAXDATA-WI_TAX_AMT = P_NETAMT.
APPEND IT_WITHTAXDATA.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'
EXPORTING
HEADERDATA = IT_HEAD
IMPORTING
INVOICEDOCNUMBER = INV_DOC
FISCALYEAR = FISC_YR
TABLES
ITEMDATA = IT_ITEM
GLACCOUNTDATA = IT_GL
WITHTAXDATA = IT_WITHTAXDATA
RETURN = IT_RET.
IF NOT IT_RET[] IS INITIAL.
ROLLBACK WORK.
LOOP AT IT_RET.
IT_FINAL-INV_NO = ' '.
IT_FINAL-INV_YR = ' ' .
IT_FINAL-MBLNR = IT_MKPF-MBLNR .
IT_FINAL-MSG = IT_RET-MESSAGE.
APPEND IT_FINAL.
ENDLOOP.
ELSE.
COMMIT WORK.
IT_FINAL-INV_NO = INV_DOC .
IT_FINAL-INV_YR = FISC_YR .
IT_FINAL-MBLNR = IT_MKPF-MBLNR .
IT_FINAL-MSG = 'Invoice has been Created '.
APPEND IT_FINAL.
ENDIF.
LOOP AT IT_FINAL.
MOVE-CORRESPONDING IT_FINAL TO IT_FINAL1.
APPEND IT_FINAL1.
ENDLOOP.
ENDFORM. " BAPI_INCOMING_INV_CREATE
*&---------------------------------------------------------------------*
*& Form DISPALY_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPALY_OUTPUT .
IT_FIELDCAT1-FIELDNAME = 'INV_NO'.
IT_FIELDCAT1-TABNAME = 'IT_FINAL1'.
IT_FIELDCAT1-SELTEXT_M = 'Invoice No'.
IT_FIELDCAT1-SELTEXT_L = 'Invoice No'.
IT_FIELDCAT1-OUTPUTLEN = 18.
APPEND IT_FIELDCAT1.
CLEAR IT_FIELDCAT1.
IT_FIELDCAT1-FIELDNAME = 'INV_YR'.
IT_FIELDCAT1-TABNAME = 'IT_FINAL1'.
IT_FIELDCAT1-SELTEXT_M = 'Year'.
IT_FIELDCAT1-SELTEXT_L = 'Year'.
IT_FIELDCAT1-OUTPUTLEN = 5.
APPEND IT_FIELDCAT1.
CLEAR IT_FIELDCAT1.
IT_FIELDCAT1-FIELDNAME = 'MBLNR'.
IT_FIELDCAT1-TABNAME = 'IT_FINAL1'.
IT_FIELDCAT1-SELTEXT_M = 'GRN No'.
IT_FIELDCAT1-SELTEXT_L = 'GRN No'.
IT_FIELDCAT1-OUTPUTLEN = 12.
APPEND IT_FIELDCAT1.
CLEAR IT_FIELDCAT1.
IT_FIELDCAT1-FIELDNAME = 'MSG'.
IT_FIELDCAT1-TABNAME = 'IT_FINAL1'.
IT_FIELDCAT1-SELTEXT_M = 'Message'.
IT_FIELDCAT1-SELTEXT_L = 'Message'.
IT_FIELDCAT1-OUTPUTLEN = 120.
APPEND IT_FIELDCAT1.
CLEAR IT_FIELDCAT1.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* i_buffer_active = ' '
I_CALLBACK_PROGRAM = SY-REPID
* E_FORM_TOP_OF_PAGE = 'TOP-OF-PAGE1'
* E_FORM_TOP_OF_PAGE = L_FORM_TOP_OF_PAGE
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
** is_layout = st_layout
IT_FIELDCAT = IT_FIELDCAT1[]
IT_EVENTS = IT_EVENTS[]
TABLES
T_OUTTAB = IT_FINAL1[].
ENDFORM. " DISPALY_OUTPUT
*&---------------------------------------------------------------------*
*& Form TOP-OF-PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM TOP-OF-PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER,
T_LINE LIKE WA_HEADER-INFO.
DATA: FR_DT(10),TO_DT(10),DATE(50),
PLNT(50).
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'Incoming invoice creations'.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'GRN No:'.
WA_HEADER-INFO = P_MBLNR.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'Ref Doc No:'.
WA_HEADER-INFO = P_XBLNR1.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
READ TABLE IT_MSEG_COLL INDEX 1.
TOTAL = IT_MSEG_COLL-DMBTR + P_FRATH .
SKIP 1.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = 'Total Amount:'.
WA_HEADER-INFO = TOTAL.
APPEND WA_HEADER TO T_HEADER.
CLEAR: WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM. "TOP-OF-PAGE
*&---------------------------------------------------------------------*
*& Form SIMULATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SIMULATE_DATA .
IT_FIELDCAT-FIELDNAME = 'MBLNR'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'GRN No'.
IT_FIELDCAT-SELTEXT_L = 'GRN No'.
IT_FIELDCAT-OUTPUTLEN = 12.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'ZEILE'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'Item'.
IT_FIELDCAT-SELTEXT_L = 'Item'.
IT_FIELDCAT-OUTPUTLEN = 5.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'EBELN'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'Purchase Order No'.
IT_FIELDCAT-SELTEXT_L = 'Purchase Order No'.
IT_FIELDCAT-OUTPUTLEN = 12.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'EBELP'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'Item'.
IT_FIELDCAT-SELTEXT_L = 'Item'.
IT_FIELDCAT-OUTPUTLEN = 5.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'DMBTR'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'GRN Amount'.
IT_FIELDCAT-SELTEXT_L = 'GRN Amount'.
IT_FIELDCAT-OUTPUTLEN = 11.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'MENGE'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'Qty'.
IT_FIELDCAT-SELTEXT_L = 'Qty'.
IT_FIELDCAT-OUTPUTLEN = 10.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
IT_FIELDCAT-FIELDNAME = 'DMBTR_F'.
IT_FIELDCAT-TABNAME = 'IT_FINAL_S'.
IT_FIELDCAT-SELTEXT_M = 'Distributed Amount'.
IT_FIELDCAT-SELTEXT_L = 'Distributed Amount'.
IT_FIELDCAT-OUTPUTLEN = 11.
APPEND IT_FIELDCAT.
CLEAR IT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* i_buffer_active = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
** is_layout = st_layout
IT_FIELDCAT = IT_FIELDCAT[]
IT_EVENTS = IT_EVENTS[]
TABLES
T_OUTTAB = IT_FINAL_S.
ENDFORM. " SIMULATE_DATA
*&---------------------------------------------------------------------*
*& Form SET_PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB. "#EC CALLED
SET PF-STATUS 'STANDARD'.
ENDFORM. "Set_pf_status
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->W_UCOMM text
* -->WA_SELFIELD text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING W_UCOMM TYPE SY-UCOMM WA_SELFIELD TYPE SLIS_SELFIELD. "#EC CALLED "#EC NEEDED
CASE W_UCOMM.
WHEN 'POST'.
PERFORM BAPI_INCOMING_INV_CREATE.
WHEN '&IC1'.
IF wa_SELFIELD-FIELDNAME = 'BELNR'.
READ TABLE IT_FINAL1 INDEX wa_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'RBN' FIELD IT_FINAL1-INV_NO.
SET PARAMETER ID 'GJR' FIELD IT_FINAL1-INV_YR.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ENDIF.
ELSEIF WA_SELFIELD-FIELDNAME = 'MBLNR'.
READ TABLE IT_FINAL1 INDEX WA_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'MBN' FIELD IT_FINAL1-MBLNR.
SET PARAMETER ID 'MJA' FIELD IT_FINAL1-MJAHR.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
PERFORM DISPALY_OUTPUT.
LEAVE PROGRAM.
ENDFORM. "USER_COMMAND
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Kunwar,
Thank you for your reply.
I am just trying to execute this BAPI in my sandbox system currently.
When I am filling the data manually and trying to execute the data, it is giving me one error or other.
Can we post a CHA,Freight or Custome Invoice with amount not equal to MIGO amount using this BAPI.
If Yes Which all structure and table do we need to fill.
Regards,
Sapan
1) Please check the following link to know about the usage of this BAPI,
SAP Function BAPI_INCOMINGINVOICE_CREATE - Invoice Verification: Post Invoice
2) According to this link :BAPI_INCOMINGINVOICE_CREATE-VENDORITEMSPLITDATA
With this table, you pass on the data of the incoming invoice if you want to distribute the gross amount among several creditor lines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Check this OSS note is applicable for your case 1148218 - BAPI: M8 332 split valuation and delivery costs. (though it is about message M8332, but it has a tag of message M8524).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This BAPI can be used for all kind of invoices, as you can read in the docu to this BAPI in transaction SE37.
Can you explain with more details what fields you are actually using. It somehow sounds to me as if you try to post a freight invoice from a carrier in the very same time as the product invoice from your main vendor.
Don't you get a separate invoice from your carrier?
If you do MIRO, the vendor automatically appears after you entered the PO as reference, so it is with the BAPI, the vendor is determined based on the first PO .
If you want post unplanned delivery costs, then you have to change the vendor. In the BAPI you do this by moving the vendor number of your carrier into the field DIFF_INV in the header structure.
Thanks Jurgen,
I have been struggling to get this field.
Though I am still getting certain other errors as I am doing this for the first time.
Our scenario is not exactly the Un-Planned Delivery cost.
The Entry at the time of MIGO was
Currently I am trying to post the amount of 906,019 for the Custom Vendor using the BAPI in sandbox system.Which was taken as 944,138 at the time of MIGO.
Also I am trying to post in INR, PO currency is USD.
Can you help me post the same using the BAPI.
I am trying to post the following document (Simulation Using MIRO).
In MIRO I give the Header DATA,and change the vendor,
at line Item Level I select the Custom Line Item of PO and change the amount.
Line number 3 and 4 should be generated by the system itself, This is what is failing at the time of BAPI
Regards,
Sapan
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.