‎2008 May 21 1:45 PM
Dear All,
I needs to write a BDC For the Tr F-54. Can any one tell me is there any BAPI for
the Clear vendor down payments(F-54). Plz help me.
Thanks & Regards,
Durai.T
‎2008 May 21 1:54 PM
Hi
i m sending u the code for BDCFOR F-64 that is to park the document for customer and vendor so it has two recording customer and vendor..
Just see to it
and do reward points pls...
REPORT ZFI_F64_TOS
NO STANDARD PAGE HEADING LINE-SIZE 255.
*include bdcrecx1.
**======================================================
**DATA DECLARATION FOR CUSTOMER
**=======================================================
TYPES : BEGIN OF TY_BSEG,
BELNR TYPE BSEG-BELNR, "Doc no
ZFBDT TYPE BSEG-ZFBDT, "base line date
ZTERM TYPE BSEG-ZTERM, " payment terms
ZLSCH TYPE BSEG-ZLSCH, " pay. mode
VALUT TYPE BSEG-VALUT, " valut date
FIPOS TYPE BSEG-FIPOS, " commitment line
END OF TY_BSEG.
TYPES: BEGIN OF TY_KNB1,
KUNNR TYPE KNB1-KUNNR,
BUKRS TYPE KNB1-BUKRS,
ZWELS TYPE KNB1-ZWELS,
ZTERM TYPE KNB1-ZTERM,
END OF TY_KNB1.
TYPES : BEGIN OF TY_RECO,
SRNO TYPE I,
BLDAT_001(010), " BLDAT
BLART_002(002), " BLART
BUKRS_003 TYPE BSEG-BUKRS, " BUKRS
BUDAT_004(010), " BUDAT
MONAT_005(002), " MONAT
WAERS_006(005), " WAERS
XBLNR_007(016), " XBLNR1
BKTXT_008(025), " BKTXT
XBWAE_009(001), " XBWAE
DOCID_010(010), " SAEOBJART
NEWBS_011(002), " NEWBS
NEWKO_012 TYPE BSEG-KUNNR ,"(017), " NEWKO
WRBTR_013(016), " WRBTR
XMWST_014(001), " XMWST
MWSKZ_015(002), " MWSKZ
ZTERM_016(004), " DZTERM
ZFBDT_017(010), " DZFBDT
ZLSCH_018(001), " SCHZW_BSEG
NEWBS_019(002), " NEWBS
NEWKO_020(017), " NEWKO
WRBTR_021(016), " WRBTR
MWSKZ_022(002), " MWSKZ
XMWST_023(001), " XMWST
VALUT_024(010), " VALUT
FMORE_025(001), " FMORE
GSBER_026(004), " GSBER
FIPEX_027(024), " FM_FIPEX
FIPOS_028(024), " FIPOS
QTY(024),
UOM(020),
FIELD_13_029(032), " EIGXX
FIELD_15_030(032), " EIGXX
FIELD_09_031(032), " EIGXX
FIELD_10_032(032), " EIGXX
FIELD_11_033(032), " EIGXX
FIELD_12_034(032), " EIGXX
FIELD_13_035(032), " EIGXX
FIELD_14_036(032), " EIGXX
FIELD_15_037(032), " EIGXX
GSBER_038(004), " GSBER
PRCTR_039(010), " PRCTR
FIPEX_040(024), " FM_FIPEX
FIPOS_041(024), " FIPOS
NEWBS_042(002), " NEWBS
NEWKO_043(017), " NEWKO
MWSKZ_044(002), " MWSKZ
XMWST_045(001), " XMWST
VALUT_046(010), " VALUT
FMORE_047(001), " FMORE
FIPEX_048(024), " FM_FIPEX
FIPOS_049(024), " FIPOS
END OF TY_RECO.
TYPES: BEGIN OF RECORD_CUST ,
SRNO TYPE I,
data element: BLDAT
BLDAT_001(010),
data element: BLART
BLART_002(002),
data element: BUKRS
BUKRS_003(004),
data element: BUDAT
BUDAT_004(010),
data element: MONAT
MONAT_005(002),
data element: WAERS
WAERS_006(005),
data element: XBLNR1
XBLNR_007(016),
data element: BKTXT
BKTXT_008(025),
data element: XBWAE
XBWAE_009(001),
data element: SAEOBJART
DOCID_010(010),
data element: NEWBS
NEWBS_011(002),
data element: NEWKO
NEWKO_012(017),
data element: WRBTR
WRBTR_013(016),
data element: XMWST
XMWST_014(001),
data element: MWSKZ
MWSKZ_015(002),
data element: DZTERM
ZTERM_016(004),
data element: DZFBDT
ZFBDT_017(010),
data element: SCHZW_BSEG
ZLSCH_018(001),
data element: NEWBS
NEWBS_019(002),
data element: NEWKO
NEWKO_020(017),
data element: WRBTR
WRBTR_021(016),
data element: MWSKZ
MWSKZ_022(002),
data element: XMWST
XMWST_023(001),
data element: VALUT
VALUT_024(010),
data element: FMORE
FMORE_025(001),
data element: GSBER
GSBER_026(004),
data element: FM_FIPEX
QTY(024),
UOM(020),
FIPEX_027(024),
data element: FIPOS
FIPOS_028(024),
data element: EIGXX
FIELD_13_029(032),
data element: EIGXX
FIELD_15_030(032),
data element: EIGXX
FIELD_09_031(032),
data element: EIGXX
FIELD_10_032(032),
data element: EIGXX
FIELD_11_033(032),
data element: EIGXX
FIELD_12_034(032),
data element: EIGXX
FIELD_13_035(032),
data element: EIGXX
FIELD_14_036(032),
data element: EIGXX
FIELD_15_037(032),
data element: GSBER
GSBER_038(004),
data element: PRCTR
PRCTR_039(010),
data element: FM_FIPEX
FIPEX_040(024),
data element: FIPOS
FIPOS_041(024),
data element: NEWBS
NEWBS_042(002),
data element: NEWKO
NEWKO_043(017),
data element: MWSKZ
MWSKZ_044(002),
data element: XMWST
XMWST_045(001),
data element: VALUT
VALUT_046(010),
data element: FMORE
FMORE_047(001),
data element: FM_FIPEX
FIPEX_048(024),
data element: FIPOS
FIPOS_049(024),
END OF RECORD_CUST.
End generated data section ***
DATA : RECORD TYPE STANDARD TABLE OF RECORD_CUST,
WA_RECORD TYPE RECORD_CUST.
DATA : IT_RECO TYPE STANDARD TABLE OF TY_RECO,
WA_RECO TYPE TY_RECO,
IT_RECO1 TYPE STANDARD TABLE OF RECORD_CUST,
WA_RECO1 TYPE RECORD_CUST,
WA_RECO2 TYPE RECORD_CUST.
DATA : TEMP TYPE I.
DATA : IT_BSEG TYPE STANDARD TABLE OF TY_BSEG,
WA_BSEG TYPE TY_BSEG.
DATA : IT_KNB1 TYPE STANDARD TABLE OF TY_KNB1,
WA_KNB1 TYPE TY_KNB1.
DATA: BDCDATA TYPE STANDARD TABLE OF BDCDATA ,
WA_BDCDATA TYPE BDCDATA,
MESSTAB TYPE STANDARD TABLE OF BDCMSGCOLL ,
WA_MESSTAB TYPE BDCMSGCOLL.
**======================================================
**DATA DECLARATION FOR VENDOR
**=======================================================
TYPES : BEGIN OF TY_BSEG_VEN,
BELNR TYPE BSEG-BELNR, "Doc no
ZFBDT TYPE BSEG-ZFBDT, "base line date
ZTERM TYPE BSEG-ZTERM, " payment terms
ZLSCH TYPE BSEG-ZLSCH, " pay. mode
VALUT TYPE BSEG-VALUT, " valut date
FIPOS TYPE BSEG-FIPOS, " commitment line
ZBD1T TYPE BSEG-ZBD1T, " NO OF DAYS
ZLSPR TYPE BSEG-ZLSPR, " STOP PAYMENT
FISTL TYPE BSEG-FISTL, " FUND CENTER
END OF TY_BSEG_VEN.
TYPES: BEGIN OF TY_LFB1,
LIFNR TYPE LFB1-LIFNR,
BUKRS TYPE LFB1-BUKRS,
ZWELS TYPE LFB1-ZWELS,
ZTERM TYPE LFB1-ZTERM,
END OF TY_LFB1.
TYPES : BEGIN OF TY_RECO_VEN,
SRNO TYPE I,
BLDAT_001(010),
BLART_002(002),
BUKRS_003 TYPE BSEG-BUKRS ,
BUDAT_004(010),
MONAT_005(002),
WAERS_006(005),
XBLNR_007(016),
BKTXT_008(025),
XBWAE_009(001),
DOCID_010(010),
NEWBS_011(002),
NEWKO_012 TYPE BSEG-LIFNR ,
WRBTR_013(016),
XMWST_014(001),
MWSKZ_015(002),
ZTERM_016(004),
ZBD1T_017(003),
ZFBDT_018(010),
ZLSPR_019(001),
ZLSCH_020(001),
NEWBS_021(002),
NEWKO_022(017),
WRBTR_023(016),
MWSKZ_024(002),
XMWST_025(001),
VALUT_026(010),
FMORE_027(001),
GSBER_028(004),
QTY(024),
UOM(020),
FISTL_029(016), "FUND CENTER
FIPEX_030(024),
FIPOS_031(024),
FIELD_13_032(032),
FIELD_15_033(032),
FIELD_09_034(032),
FIELD_10_035(032),
FIELD_11_036(032),
FIELD_13_037(032),
FIELD_14_038(032),
FIELD_15_039(032),
GSBER_040(004),
PRCTR_041(010),
FISTL_042(016),
FIPEX_043(024),
FIPOS_044(024),
END OF TY_RECO_VEN.
TYPES: BEGIN OF RECORD_VEN ,
SRNO TYPE I,
data element: BLDAT
BLDAT_001(010),
data element: BLART
BLART_002(002),
data element: BUKRS
BUKRS_003(004),
data element: BUDAT
BUDAT_004(010),
data element: MONAT
MONAT_005(002),
data element: WAERS
WAERS_006(005),
data element: XBLNR1
XBLNR_007(016),
data element: BKTXT
BKTXT_008(025),
data element: XBWAE
XBWAE_009(001),
data element: SAEOBJART
DOCID_010(010),
data element: NEWBS
NEWBS_011(002),
data element: NEWKO
NEWKO_012(017),
data element: WRBTR
WRBTR_013(016),
data element: XMWST
XMWST_014(001),
data element: MWSKZ
MWSKZ_015(002),
data element: DZTERM
ZTERM_016(004),
data element: DZBD1T
ZBD1T_017(003),
data element: DZFBDT
ZFBDT_018(010),
data element: DZLSPR
ZLSPR_019(001),
data element: SCHZW_BSEG
ZLSCH_020(001),
data element: NEWBS
NEWBS_021(002),
data element: NEWKO
NEWKO_022(017),
data element: WRBTR
WRBTR_023(016),
data element: MWSKZ
MWSKZ_024(002),
data element: XMWST
XMWST_025(001),
data element: VALUT
VALUT_026(010),
data element: FMORE
FMORE_027(001),
data element: GSBER
GSBER_028(004),
QTY(024),
UOM(020),
data element: FISTL
FISTL_029(016),
data element: FM_FIPEX
FIPEX_030(024),
data element: FIPOS
FIPOS_031(024),
data element: EIGXX
FIELD_13_032(032),
data element: EIGXX
FIELD_15_033(032),
data element: EIGXX
FIELD_09_034(032),
data element: EIGXX
FIELD_10_035(032),
data element: EIGXX
FIELD_11_036(032),
data element: EIGXX
FIELD_13_037(032),
data element: EIGXX
FIELD_14_038(032),
data element: EIGXX
FIELD_15_039(032),
data element: GSBER
GSBER_040(004),
data element: PRCTR
PRCTR_041(010),
data element: FISTL
FISTL_042(016),
data element: FM_FIPEX
FIPEX_043(024),
data element: FIPOS
FIPOS_044(024),
NEWBS_043(002),
NEWKO_044(017),
END OF RECORD_VEN.
DATA : RECORD_VEN TYPE STANDARD TABLE OF RECORD_VEN,
WA_RECORD_VEN TYPE RECORD_VEN.
DATA : IT_RECO_VEN TYPE STANDARD TABLE OF TY_RECO_VEN,
WA_RECO_VEN TYPE TY_RECO_VEN.
DATA : IT_RECO1_VEN TYPE STANDARD TABLE OF RECORD_VEN ,
WA_RECO1_VEN TYPE RECORD_VEN,
WA_RECO2_VEN TYPE RECORD_VEN.
DATA : TEMP_VEN TYPE I.
DATA : IT_BSEG_VEN TYPE STANDARD TABLE OF TY_BSEG_VEN,
WA_BSEG_VEN TYPE TY_BSEG_VEN.
DATA : IT_LFB1_VEN TYPE STANDARD TABLE OF TY_LFB1,
WA_LFB1_VEN TYPE TY_LFB1.
DATA: BDCDATA_VEN TYPE STANDARD TABLE OF BDCDATA ,
WA_BDCDATA_VEN TYPE BDCDATA,
MESSTAB_VEN TYPE STANDARD TABLE OF BDCMSGCOLL ,
WA_MESSTAB_VEN TYPE BDCMSGCOLL.
DATA: BDCDATA_VEN1 TYPE STANDARD TABLE OF BDCDATA ,
WA_BDCDATA_VEN1 TYPE BDCDATA,
WA_BDCDATA_VEN2 TYPE BDCDATA.
End generated data section ***
**====================================================
**SELECTION SCREEN
**====================================================
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT_001 . "NO INTERVALS.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) TEXT_002.
PARAMETERS: FLNAME TYPE RLGRAP-FILENAME .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT_003 NO INTERVALS.
SELECTION-SCREEN BEGIN OF LINE .
PARAMETERS: R01 RADIOBUTTON GROUP R1 DEFAULT 'X' USER-COMMAND RAD.
SELECTION-SCREEN COMMENT 5(15) TEXT_004.
*SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R02 RADIOBUTTON GROUP R1 .
SELECTION-SCREEN COMMENT 25(15) TEXT_005.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE .
PARAMETERS: R_FOR RADIOBUTTON GROUP R2 DEFAULT 'X' USER-COMMAND RAD.
SELECTION-SCREEN COMMENT 5(15) TEXT_006.
*SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: R_BACK RADIOBUTTON GROUP R2 .
SELECTION-SCREEN COMMENT 25(15) TEXT_007.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
INITIALIZATION.
TEXT_001 = 'Report Specification'.
TEXT_002 = 'File name'.
TEXT_003 = 'Output Specification'.
TEXT_004 = 'Customer Data'.
TEXT_005 = 'Vendor Data'.
TEXT_006 = 'ForeGround'.
TEXT_007 = 'BackGround'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FLNAME.
PERFORM GET_FILENAME.
START-OF-SELECTION.
IF FLNAME IS INITIAL.
MESSAGE 'Please select file' TYPE 'S'.
LEAVE LIST-PROCESSING.
ENDIF.
IF R01 = 'X'.
PERFORM GUI_UPLOAD.
PERFORM FILL_RECORDS.
IF RECORD[] IS NOT INITIAL.
PERFORM BDC_FILL.
ENDIF.
ELSEIF R02 = 'X'.
PERFORM GUI_UPLOAD_VEN.
PERFORM FILL_RECORDS_VEN.
IF RECORD_VEN[] IS NOT INITIAL.
PERFORM BDC_FILL_VEN.
ENDIF.
ENDIF.
&----
*& Form FILL_RECORDS
&----
FORM FILL_RECORDS .
DATA: V_PERIOD TYPE I,
V_PERIOD1 TYPE I.
LOOP AT IT_RECO INTO WA_RECO.
V_PERIOD = WA_RECO-BUDAT_004+3(2) .
IF V_PERIOD = 1.
V_PERIOD1 = '10'.
ELSEIF V_PERIOD = 2.
V_PERIOD1 = '11'.
ELSEIF V_PERIOD = 3.
V_PERIOD1 = '12'.
ELSEIF V_PERIOD = 4.
V_PERIOD1 = '1'.
ELSEIF V_PERIOD = 5.
V_PERIOD1 = '2'.
ELSEIF V_PERIOD = 6.
V_PERIOD1 = '3'.
ELSEIF V_PERIOD = 7.
V_PERIOD1 = '4'.
ELSEIF V_PERIOD = 8.
V_PERIOD1 = '5'.
ELSEIF V_PERIOD = 9.
V_PERIOD1 = '6'.
ELSEIF V_PERIOD = 10.
V_PERIOD1 = '7'.
ELSEIF V_PERIOD = 11.
V_PERIOD1 = '8'.
ELSEIF V_PERIOD = 12.
V_PERIOD1 = '9'.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO-NEWBS_011
IMPORTING
OUTPUT = WA_RECO-NEWBS_011.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO-NEWKO_012
IMPORTING
OUTPUT = WA_RECO-NEWKO_012.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO-BUKRS_003
IMPORTING
OUTPUT = WA_RECO-BUKRS_003.
SELECT SINGLE BELNR ZFBDT ZTERM ZLSCH VALUT FIPOS
FROM BSEG INTO WA_BSEG WHERE KUNNR = WA_RECO-NEWKO_012
AND BUKRS = WA_RECO-BUKRS_003.
AND ZTERM ''
AND ZLSCH '' .
SELECT SINGLE KUNNR BUKRS ZWELS ZTERM
FROM KNB1 INTO WA_KNB1 WHERE KUNNR = WA_RECO-NEWKO_012
AND BUKRS = WA_RECO-BUKRS_003.
SORT IT_BSEG BY ZFBDT DESCENDING.
READ TABLE IT_BSEG INTO WA_BSEG INDEX 1.
DATA: STR TYPE STRING,
STR1 TYPE STRING,
STR2 TYPE STRING,
STR3 TYPE STRING.
STR1 = WA_BSEG-ZFBDT+0(4).
STR2 = WA_BSEG-ZFBDT+4(2).
STR3 = WA_BSEG-ZFBDT+6(2).
CONCATENATE STR3 '.' STR2 '.' STR1 INTO STR.
CONDENSE STR NO-GAPS.
WA_RECORD-SRNO = WA_RECO-SRNO.
WA_RECORD-BLDAT_001 = WA_RECO-BLDAT_001.
WA_RECORD-BLART_002 = WA_RECO-BLART_002.
WA_RECORD-BUKRS_003 = WA_RECO-BUKRS_003.
WA_RECORD-BUDAT_004 = WA_RECO-BUDAT_004.
WA_RECORD-MONAT_005 = V_PERIOD1.
WA_RECORD-WAERS_006 = WA_RECO-WAERS_006.
WA_RECORD-XBLNR_007 = WA_RECO-XBLNR_007.
WA_RECORD-BKTXT_008 = WA_RECO-BKTXT_008.
WA_RECORD-XBWAE_009 = 'X'.
WA_RECORD-DOCID_010 = '*'.
WA_RECORD-NEWBS_011 = WA_RECO-NEWBS_011.
WA_RECORD-NEWKO_012 = WA_RECO-NEWKO_012.
WA_RECORD-WRBTR_013 = WA_RECO-WRBTR_013.
WA_RECORD-XMWST_014 = 'X'.
WA_RECORD-MWSKZ_015 = WA_RECO-MWSKZ_015.
WA_RECORD-ZTERM_016 = WA_KNB1-ZTERM .
WA_RECORD-ZFBDT_017 = WA_RECO-BLDAT_001. "STR." WA_BSEG-ZFBDT .
WA_RECORD-ZLSCH_018 = WA_KNB1-ZWELS.
WA_RECORD-NEWBS_019 = WA_RECO-NEWBS_011.
WA_RECORD-NEWKO_020 = WA_RECO-NEWKO_012.
WA_RECORD-WRBTR_021 = WA_RECO-WRBTR_013.
WA_RECORD-MWSKZ_022 = WA_RECO-MWSKZ_015.
WA_RECORD-XMWST_023 = 'X'.
WA_RECORD-VALUT_024 = WA_RECO-BLDAT_001. "STR """"""""""""""""""""""""""WA_BSEG-VALUT.
WA_RECORD-FMORE_025 = 'X'.
WA_RECORD-GSBER_026 = WA_RECO-GSBER_026.
WA_RECORD-FIPEX_027 = WA_BSEG-FIPOS.
WA_RECORD-FIPOS_028 = WA_BSEG-FIPOS.
WA_RECORD-QTY = WA_RECO-QTY.
WA_RECORD-UOM = WA_RECO-UOM.
WA_RECORD-FIELD_13_029 = WA_RECO-FIELD_13_029.
WA_RECORD-FIELD_15_030 = WA_RECO-FIELD_15_030.
WA_RECORD-FIELD_09_031 = WA_RECO-FIELD_09_031.
WA_RECORD-FIELD_10_032 = WA_RECO-FIELD_10_032.
WA_RECORD-FIELD_11_033 = WA_RECO-FIELD_11_033.
WA_RECORD-FIELD_12_034 = ''. "WA_RECO-FIELD_12_034.
WA_RECORD-FIELD_13_035 = WA_RECO-FIELD_13_035.
WA_RECORD-FIELD_14_036 = WA_RECO-FIELD_14_036.
WA_RECORD-FIELD_15_037 = WA_RECO-FIELD_15_037.
WA_RECORD-GSBER_038 = WA_RECO-GSBER_026.
WA_RECORD-PRCTR_039 = WA_RECO-FIELD_13_029.
WA_RECORD-FIPEX_040 = WA_BSEG-FIPOS.
WA_RECORD-FIPOS_041 = WA_BSEG-FIPOS.
WA_RECORD-NEWBS_042 = WA_RECO-NEWBS_011.
WA_RECORD-NEWKO_043 = WA_RECO-NEWKO_012.
WA_RECORD-MWSKZ_044 = WA_RECO-MWSKZ_015.
WA_RECORD-XMWST_045 = 'X'.
WA_RECORD-VALUT_046 = WA_RECO-BLDAT_001. """str """""""""""""""""""""""WA_BSEG-VALUT.
WA_RECORD-FMORE_047 = 'X'.
WA_RECORD-FIPEX_048 = WA_BSEG-FIPOS.
WA_RECORD-FIPOS_049 = WA_BSEG-FIPOS.
MOVE-CORRESPONDING WA_RECO TO WA_RECORD.
APPEND WA_RECORD TO RECORD.
CLEAR WA_RECORD.
ENDLOOP.
ENDFORM. " FILL_RECORDS
&----
*& Form BDC_FILL
&----
FORM BDC_FILL .
DATA : CNT1 TYPE I VALUE 1.
IT_RECO1[] = RECORD[].
DELETE IT_RECO1 WHERE GSBER_026 = ''.
SORT RECORD BY SRNO ASCENDING .
SORT RECORD BY WRBTR_013 DESCENDING.
DELETE ADJACENT DUPLICATES FROM RECORD COMPARING SRNO .
LOOP AT RECORD INTO WA_RECORD.
TEMP = SY-TABIX.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05V-NEWKO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BKPF-BLDAT'
WA_RECORD-BLDAT_001.
PERFORM BDC_FIELD USING 'BKPF-BLART'
WA_RECORD-BLART_002.
PERFORM BDC_FIELD USING 'BKPF-BUKRS'
WA_RECORD-BUKRS_003.
PERFORM BDC_FIELD USING 'BKPF-BUDAT'
WA_RECORD-BUDAT_004.
PERFORM BDC_FIELD USING 'BKPF-MONAT'
WA_RECORD-MONAT_005.
PERFORM BDC_FIELD USING 'BKPF-WAERS'
WA_RECORD-WAERS_006.
PERFORM BDC_FIELD USING 'BKPF-XBLNR'
WA_RECORD-XBLNR_007.
PERFORM BDC_FIELD USING 'BKPF-BKTXT'
WA_RECORD-BKTXT_008.
PERFORM BDC_FIELD USING 'VBKPF-XBWAE'
WA_RECORD-XBWAE_009.
PERFORM BDC_FIELD USING 'FS006-DOCID'
WA_RECORD-DOCID_010.
PERFORM BDC_FIELD USING 'RF05V-NEWBS'
WA_RECORD-NEWBS_011.
PERFORM BDC_FIELD USING 'RF05V-NEWKO'
WA_RECORD-NEWKO_012.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0301'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05V-NEWKO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_RECORD-WRBTR_013.
PERFORM BDC_FIELD USING 'BKPF-XMWST'
WA_RECORD-XMWST_014.
PERFORM BDC_FIELD USING 'BSEG-MWSKZ'
WA_RECORD-MWSKZ_015.
PERFORM BDC_FIELD USING 'BSEG-ZTERM'
WA_RECORD-ZTERM_016.
PERFORM BDC_FIELD USING 'BSEG-ZFBDT'
WA_RECORD-ZFBDT_017.
PERFORM BDC_FIELD USING 'BSEG-ZLSCH'
WA_RECORD-ZLSCH_018.
LOOP AT IT_RECO1 WHERE SRNO = RECORD-SRNO.
READ TABLE IT_RECO1 INTO WA_RECO1 WITH KEY SRNO = WA_RECORD-SRNO ."INDEX TEMP.
PERFORM BDC_FIELD USING 'RF05V-NEWBS'
WA_RECO1-NEWBS_019.
PERFORM BDC_FIELD USING 'RF05V-NEWKO'
WA_RECO1-NEWKO_020.
CLEAR cnt1.
LOOP AT IT_RECO1 INTO WA_RECO1 WHERE SRNO = WA_RECORD-SRNO.
CNT1 = 1 + SY-TABIX.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0300'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ZK'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
WA_RECO1-WRBTR_021.
PERFORM BDC_FIELD USING 'BSEG-MWSKZ'
WA_RECO1-MWSKZ_022.
PERFORM BDC_FIELD USING 'BKPF-XMWST'
WA_RECO1-XMWST_023.
PERFORM BDC_FIELD USING 'BSEG-VALUT'
WA_RECO1-VALUT_024.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
WA_RECO1-FMORE_025.
PERFORM BDC_FIELD USING 'BSEG-MENGE'
WA_RECO1-QTY.
PERFORM BDC_FIELD USING 'BSEG-MEINS'
WA_RECO1-UOM.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=COBL_XERGO'.
PERFORM BDC_FIELD USING 'COBL-GSBER'
WA_RECO1-GSBER_026.
PERFORM BDC_FIELD USING 'COBL-FIPEX'
WA_RECO1-FIPEX_027.
PERFORM BDC_FIELD USING 'COBL-FIPOS'
WA_RECO1-FIPOS_028.
CHANGEED ON 25 APRIL BY RAJAN
PERFORM BDC_FIELD USING 'BSEG-MENGE'
WA_RECO1-QTY.
PERFORM BDC_FIELD USING 'BSEG-MEINS'
WA_RECO1-UOM.
CHANGEED ON 25 APRIL BY RAJAN
PERFORM BDC_DYNPRO USING 'SAPLKEAK' '0300'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RKEAK-FIELD(15)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(13)'
WA_RECO1-FIELD_13_029.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(15)'
WA_RECO1-FIELD_15_030.
PERFORM BDC_DYNPRO USING 'SAPLKEAK' '0300'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RKEAK-FIELD(15)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=WEIT'.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(09)'
WA_RECO1-FIELD_09_031.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(10)'
WA_RECO1-FIELD_10_032.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(11)'
WA_RECO1-FIELD_11_033.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(12)'
WA_RECO1-FIELD_12_034.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(13)'
WA_RECO1-FIELD_13_035.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(14)'
WA_RECO1-FIELD_14_036.
PERFORM BDC_FIELD USING 'RKEAK-FIELD(15)'
WA_RECO1-FIELD_15_037.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTE'.
PERFORM BDC_FIELD USING 'COBL-GSBER'
WA_RECO1-GSBER_038.
PERFORM BDC_FIELD USING 'COBL-PRCTR'
WA_RECO1-PRCTR_039.
PERFORM BDC_FIELD USING 'COBL-FIPEX'
WA_RECO1-FIPEX_040.
PERFORM BDC_FIELD USING 'COBL-FIPOS'
WA_RECO1-FIPOS_041.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF05V-NEWKO'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
READ TABLE IT_RECO1 INTO WA_RECO2 INDEX CNT1.
IF SY-SUBRC = 0.
PERFORM BDC_FIELD USING 'RF05V-NEWBS'
WA_RECO2-NEWBS_042.
PERFORM BDC_FIELD USING 'RF05V-NEWKO'
WA_RECO2-NEWKO_043.
ELSE.
PERFORM BDC_FIELD USING 'RF05V-NEWBS'
WA_RECO1-NEWBS_042.
PERFORM BDC_FIELD USING 'RF05V-NEWKO'
WA_RECO1-NEWKO_043.
ENDIF.
ENDLOOP.
CLEAR CNT1.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BP'.
PERFORM BDC_DYNPRO_ven USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD_ven USING 'BDC_CURSOR'
'BSEG-LZBKZ'.
PERFORM BDC_FIELD_ven USING 'BDC_OKCODE'
'=BP'.
REFRESH BDCDATA_VEN1.
FREE BDCDATA_VEN1[].
BDCDATA_VEN1[] = BDCDATA[].
DATA : CNT TYPE I,
TEMP TYPE I,
TEMP1 TYPE I,
TEMP2 TYPE I,
TEMP3 TYPE I,
TEMP4 TYPE I.
LOOP AT BDCDATA_VEN1 INTO WA_BDCDATA_VEN1 WHERE DYNPRO = 330.
TEMP = SY-TABIX.
TEMP1 = TEMP + 1.
TEMP2 = TEMP1 + 1.
TEMP3 = TEMP2 + 1.
TEMP4 = TEMP3 + 1.
CNT = SY-TABIX + 5.
READ TABLE BDCDATA_VEN1 INTO WA_BDCDATA_VEN2 INDEX CNT.
IF WA_BDCDATA_VEN2-DYNPRO = 330.
DELETE BDCDATA_VEN1 FROM TEMP TO TEMP4.
EXIT.
ENDIF.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPLF040' '0300'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BP'.
PERFORM BDC_FIELD USING 'BSEG-MWSKZ'
WA_RECORD-MWSKZ_044.
PERFORM BDC_FIELD USING 'BKPF-XMWST'
WA_RECORD-XMWST_045.
PERFORM BDC_FIELD USING 'BSEG-VALUT'
WA_RECORD-VALUT_046.
PERFORM BDC_FIELD USING 'DKACB-FMORE'
WA_RECORD-FMORE_047.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTE'.
PERFORM BDC_FIELD USING 'COBL-FIPEX'
WA_RECORD-FIPEX_048.
PERFORM BDC_FIELD USING 'COBL-FIPOS'
WA_RECORD-FIPOS_049.
PERFORM BDC_TRANSACTION USING 'F-64'.
READ TABLE MESSTAB INTO WA_MESSTAB WITH KEY TCODE = 'FBV1'
MSGTYP = 'S'
MSGID = 'FP'.
IF SY-SUBRC = 0.
PERFORM BDC_MSG_S.
ELSE.
PERFORM BDC_MSG_E.
ENDIF.
FREE MESSTAB.
ENDLOOP.
ENDFORM. " BDC_FILL
&----
*& Form BDC_MSG_S
&----
FORM BDC_MSG_S.
IF WA_MESSTAB-MSGTYP = 'S'.
DATA : MESS1(10),
MESS2(10).
MESS1 = WA_MESSTAB-MSGV1.
MESS2 = WA_MESSTAB-MSGV2.
WRITE :/1 'Parked Documents',
MESS1 COLOR 6 INTENSIFIED ON INVERSE ON,
'For Company Code',
MESS2 COLOR 6 INTENSIFIED ON INVERSE ON.
ENDIF.
ENDFORM. " BDC_MSG_S
&----
*& Form BDC_MSG_E
&----
FORM BDC_MSG_E.
READ TABLE MESSTAB INTO WA_MESSTAB WITH KEY TCODE = 'FBV1'
MSGTYP = 'E'
MSGID = 'F5'.
READ TABLE RECORD INTO WA_RECORD INDEX TEMP.
IF WA_MESSTAB-MSGTYP = 'E' AND SY-SUBRC = 0.
SKIP.
WRITE: /1 'Error occured during inserting data for sr. no :' COLOR 5 INTENSIFIED ON INVERSE ON,
WA_RECORD-SRNO COLOR 5 INTENSIFIED ON INVERSE ON.
MESSTAB-MSGV1 COLOR 6 INTENSIFIED ON INVERSE ON.
SKIP.
ENDIF.
ENDFORM. " BDC_MSG_E
&----
*& Form GUI_UPLOAD
&----
FORM GUI_UPLOAD .
DATA: FNAME TYPE STRING.
FNAME = FLNAME.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FNAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_RECO
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " GUI_UPLOAD
&----
*& Form GET_FILENAME
&----
FORM GET_FILENAME .
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = FLNAME.
ENDFORM. " GET_FILENAME
&----
*& Form bdc_transaction
&----
FORM BDC_TRANSACTION USING VALUE(P_0522).
IF R_FOR = 'X'.
CALL TRANSACTION 'F-64' USING BDCDATA_VEN1
MODE 'A' "A
UPDATE 'A'
MESSAGES INTO MESSTAB.
ELSEIF R_BACK = 'X'.
CALL TRANSACTION 'F-64' USING BDCDATA_VEN1
MODE 'N' "A
UPDATE 'A'
MESSAGES INTO MESSTAB.
ENDIF.
REFRESH BDCDATA.
FREE BDCDATA[].
ENDFORM. " bdc_transaction
&----
*& Form BDC_DYNPRO
&----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = DYNPRO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO BDCDATA.
ENDFORM. "BDC_DYNPRO
&----
*& Form BDC_FIELD
&----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO BDCDATA.
ENDFORM. "BDC_FIELD
&----
*& Form FILL_RECORDS
&----
FORM FILL_RECORDS_VEN .
DATA: V_PERIOD TYPE I,
V_PERIOD1 TYPE I.
LOOP AT IT_RECO_VEN INTO WA_RECO_VEN.
V_PERIOD = WA_RECO_VEN-BUDAT_004+3(2) .
IF V_PERIOD = 1.
V_PERIOD1 = '10'.
ELSEIF V_PERIOD = 2.
V_PERIOD1 = '11'.
ELSEIF V_PERIOD = 3.
V_PERIOD1 = '12'.
ELSEIF V_PERIOD = 4.
V_PERIOD1 = '1'.
ELSEIF V_PERIOD = 5.
V_PERIOD1 = '2'.
ELSEIF V_PERIOD = 6.
V_PERIOD1 = '3'.
ELSEIF V_PERIOD = 7.
V_PERIOD1 = '4'.
ELSEIF V_PERIOD = 8.
V_PERIOD1 = '5'.
ELSEIF V_PERIOD = 9.
V_PERIOD1 = '6'.
ELSEIF V_PERIOD = 10.
V_PERIOD1 = '7'.
ELSEIF V_PERIOD = 11.
V_PERIOD1 = '8'.
ELSEIF V_PERIOD = 12.
V_PERIOD1 = '9'.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO_VEN-NEWBS_011
IMPORTING
OUTPUT = WA_RECO_VEN-NEWBS_011.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO_VEN-NEWKO_012
IMPORTING
OUTPUT = WA_RECO_VEN-NEWKO_012.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = WA_RECO_VEN-BUKRS_003
IMPORTING
OUTPUT = WA_RECO_VEN-BUKRS_003.
SELECT SINGLE BELNR ZFBDT ZTERM ZLSCH VALUT FIPOS ZBD1T ZLSPR FISTL
FROM BSEG INTO WA_BSEG_VEN WHERE LIFNR = WA_RECO_VEN-NEWKO_012
AND BUKRS = WA_RECO_VEN-BUKRS_003.
AND ZTERM ''
AND ZLSCH '' .
SELECT SINGLE LIFNR BUKRS ZWELS ZTERM
FROM LFB1 INTO WA_LFB1_VEN WHERE LIFNR = WA_RECO_VEN-NEWKO_012
AND BUKRS = WA_RECO_VEN-BUKRS_003.
SORT IT_BSEG_VEN BY ZFBDT DESCENDING.
*
READ TABLE IT_BSEG_VEN INTO WA_BSEG_VEN INDEX 1.
DATA: STR TYPE STRING,
STR1 TYPE STRING,
STR2 TYPE STRING,
STR3 TYPE STRING.
STR1 = WA_BSEG_VEN-ZFBDT+0(4).
STR2 = WA_BSEG_VEN-ZFBDT+4(2).
STR3 = WA_BSEG_VEN-ZFBDT+6(2).
*
CONCATENATE STR3 '.' STR2 '.' STR1 INTO STR.
CONDENSE STR NO-GAPS.
WA_RECORD_VEN-SRNO = WA_RECO_VEN-SRNO.
WA_RECORD_VEN-BLDAT_001 = WA_RECO_VEN-BLDAT_001.
WA_RECORD_VEN-BLART_002 = WA_RECO_VEN-BLART_002.
WA_RECORD_VEN-BUKRS_003 = WA_RECO_VEN-BUKRS_003.
WA_RECORD_VEN-BUDAT_004 = WA_RECO_VEN-BUDAT_004.
WA_RECORD_VEN-MONAT_005 = V_PERIOD1.
WA_RECORD_VEN-WAERS_006 = WA_RECO_VEN-WAERS_006.
WA_RECORD_VEN-XBLNR_007 = WA_RECO_VEN-XBLNR_007.
WA_RECORD_VEN-BKTXT_008 = WA_RECO_VEN-BKTXT_008.
WA_RECORD_VEN-XBWAE_009 = 'X'.
WA_RECORD_VEN-DOCID_010 = '*'.
WA_RECORD_VEN-NEWBS_011 = WA_RECO_VEN-NEWBS_011.
WA_RECORD_VEN-NEWKO_012 = WA_RECO_VEN-NEWKO_012.
WA_RECORD_VEN-WRBTR_013 = WA_RECO_VEN-WRBTR_013.
WA_RECORD_VEN-XMWST_014 = 'X'.
WA_RECORD_VEN-MWSKZ_015 = WA_RECO_VEN-MWSKZ_015.
WA_RECORD_VEN-ZTERM_016 = WA_LFB1_VEN-ZTERM .
WA_RECORD_VEN-ZBD1T_017 = WA_BSEG_VEN-ZBD1T.
WA_RECORD_VEN-ZFBDT_018 = WA_RECO_VEN-BLDAT_001."STR.
WA_RECORD_VEN-ZLSPR_019 = WA_BSEG_VEN-ZLSPR.
WA_RECORD_VEN-ZLSCH_020 = WA_LFB1_VEN-ZWELS.
WA_RECORD_VEN-NEWBS_021 = WA_RECO_VEN-NEWBS_011.
WA_RECORD_VEN-NEWKO_022 = WA_RECO_VEN-NEWKO_012.
WA_RECORD_VEN-WRBTR_023 = WA_RECO_VEN-WRBTR_013.
WA_RECORD_VEN-MWSKZ_024 = WA_RECO_VEN-MWSKZ_015.
WA_RECORD_VEN-XMWST_025 = 'X'.
WA_RECORD_VEN-VALUT_026 = WA_RECO_VEN-BLDAT_001."STR.
WA_RECORD_VEN-FMORE_027 = 'X'.
WA_RECORD_VEN-GSBER_028 = WA_RECO_VEN-GSBER_028.
WA_RECORD_VEN-QTY = WA_RECO_VEN-QTY.
WA_RECORD_VEN-UOM = WA_RECO_VEN-UOM.
WA_RECORD_VEN-FISTL_029 = WA_BSEG_VEN-FISTL.
WA_RECORD_VEN-FIPEX_030 = WA_BSEG_VEN-FIPOS.
WA_RECORD_VEN-FIPOS_031 = WA_BSEG_VEN-FIPOS.
WA_RECORD_VEN-FIELD_13_032 = WA_RECO_VEN-FIELD_13_032.
WA_RECORD_VEN-FIELD_15_033 = WA_RECO_VEN-FIELD_15_033.
WA_RECORD_VEN-FIELD_09_034 = WA_RECO_VEN-FIELD_09_034.
WA_RECORD_VEN-FIELD_10_035 = WA_RECO_VEN-FIELD_10_035.
WA_RECORD_VEN-FIELD_11_036 = WA_RECO_VEN-FIELD_11_036.
WA_RECORD_VEN-FIELD_13_037 = WA_RECO_VEN-FIELD_13_037.
WA_RECORD_VEN-FIELD_14_038 = WA_RECO_VEN-FIELD_14_038.
WA_RECORD_VEN-FIELD_15_039 = WA_RECO_VEN-FIELD_15_039.
WA_RECORD_VEN-GSBER_040 = WA_RECO_VEN-GSBER_028.
WA_RECORD_VEN-PRCTR_041 = WA_RECO_VEN-FIELD_13_032.
WA_RECORD_VEN-FISTL_042 = WA_BSEG_VEN-FISTL.
WA_RECORD_VEN-FIPEX_043 = WA_BSEG_VEN-FIPOS.
WA_RECORD_VEN-FIPOS_044 = WA_BSEG_VEN-FIPOS.
WA_RECORD_VEN-NEWBS_043 = WA_RECO_VEN-NEWBS_011.
WA_RECORD_VEN-NEWKO_044 = WA_RECO_VEN-NEWKO_012.
MOVE-CORRESPONDING WA_RECO TO WA_RECORD.
APPEND WA_RECORD_VEN TO RECORD_VEN.
CLEAR WA_RECORD_VEN.
ENDLOOP.
ENDFORM. " FILL_RECORDS
&----
*& Form BDC_FILL
&----
FORM BDC_FILL_VEN .
DATA : CNT_VEN TYPE I VALUE 1.
IT_RECO1_VEN[] = RECORD_VEN[].
DELETE IT_RECO1_VEN WHERE GSBER_028 = ''.
SORT RECORD_VEN[] BY SRNO.
DELETE ADJACENT DUPLICATES FROM RECORD_VEN[] COMPARING SRNO.
LOOP AT RECORD_VEN INTO WA_RECORD_VEN.
TEMP_VEN = SY-TABIX.
PERFORM BDC_DYNPRO_VEN USING 'SAPLF040' '0100'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'RF05V-NEWKO'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD_VEN USING 'BKPF-BLDAT'
WA_RECORD_VEN-BLDAT_001.
PERFORM BDC_FIELD_VEN USING 'BKPF-BLART'
WA_RECORD_VEN-BLART_002.
PERFORM BDC_FIELD_VEN USING 'BKPF-BUKRS'
WA_RECORD_VEN-BUKRS_003.
PERFORM BDC_FIELD_VEN USING 'BKPF-BUDAT'
WA_RECORD_VEN-BUDAT_004.
PERFORM BDC_FIELD_VEN USING 'BKPF-MONAT'
WA_RECORD_VEN-MONAT_005.
PERFORM BDC_FIELD_VEN USING 'BKPF-WAERS'
WA_RECORD_VEN-WAERS_006.
PERFORM BDC_FIELD_VEN USING 'BKPF-XBLNR'
WA_RECORD_VEN-XBLNR_007.
PERFORM BDC_FIELD_VEN USING 'BKPF-BKTXT'
WA_RECORD_VEN-BKTXT_008.
PERFORM BDC_FIELD_VEN USING 'VBKPF-XBWAE'
WA_RECORD_VEN-XBWAE_009.
PERFORM BDC_FIELD_VEN USING 'FS006-DOCID'
WA_RECORD_VEN-DOCID_010.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWBS'
WA_RECORD_VEN-NEWBS_011.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWKO'
WA_RECORD_VEN-NEWKO_012.
PERFORM BDC_DYNPRO_VEN USING 'SAPLF040' '0302'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'RF05V-NEWKO'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD_VEN USING 'BSEG-WRBTR'
WA_RECORD_VEN-WRBTR_013.
PERFORM BDC_FIELD_VEN USING 'BKPF-XMWST'
WA_RECORD_VEN-XMWST_014.
PERFORM BDC_FIELD_VEN USING 'BSEG-MWSKZ'
WA_RECORD_VEN-MWSKZ_015.
PERFORM BDC_FIELD_VEN USING 'BSEG-ZTERM'
WA_RECORD_VEN-ZTERM_016.
PERFORM BDC_FIELD_VEN USING 'BSEG-ZBD1T'
WA_RECORD_VEN-ZBD1T_017.
PERFORM BDC_FIELD_VEN USING 'BSEG-ZFBDT'
WA_RECORD_VEN-ZFBDT_018.
PERFORM BDC_FIELD_VEN USING 'BSEG-ZLSPR'
WA_RECORD_VEN-ZLSPR_019.
PERFORM BDC_FIELD_VEN USING 'BSEG-ZLSCH'
WA_RECORD_VEN-ZLSCH_020.
READ TABLE IT_RECO1_VEN INTO WA_RECO1_VEN WITH KEY SRNO = WA_RECORD_VEN-SRNO."INDEX TEMP.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWBS'
WA_RECO1_VEN-NEWBS_021.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWKO'
WA_RECO1_VEN-NEWKO_022.
PERFORM BDC_DYNPRO_VEN USING 'SAPLFWTD' '0100'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'WITH_ITEM-WT_WITHCD(01)'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=GO'.
DATA : FLAG(1).
LOOP AT IT_RECO1_VEN INTO WA_RECO1_VEN WHERE SRNO = WA_RECORD_VEN-SRNO.
CNT_VEN = 1 + SY-TABIX.
PERFORM BDC_DYNPRO_VEN USING 'SAPLF040' '0300'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=ZK'.
PERFORM BDC_FIELD_VEN USING 'BSEG-WRBTR'
WA_RECO1_VEN-WRBTR_023.
PERFORM BDC_FIELD_VEN USING 'BSEG-MWSKZ'
WA_RECO1_VEN-MWSKZ_024.
PERFORM BDC_FIELD_VEN USING 'BKPF-XMWST'
WA_RECO1_VEN-XMWST_025.
PERFORM BDC_FIELD_VEN USING 'BSEG-VALUT'
WA_RECO1_VEN-VALUT_026.
PERFORM BDC_FIELD_VEN USING 'BSEG-MENGE'
WA_RECO1_VEN-QTY.
PERFORM BDC_FIELD_VEN USING 'BSEG-MEINS'
WA_RECO1_VEN-UOM.
PERFORM BDC_FIELD_VEN USING 'DKACB-FMORE'
WA_RECO1_VEN-FMORE_027.
PERFORM BDC_DYNPRO_VEN USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'COBL-FISTL'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=COBL_XERGO'.
PERFORM BDC_FIELD_VEN USING 'COBL-GSBER'
WA_RECO1_VEN-GSBER_028.
PERFORM BDC_FIELD_VEN USING 'COBL-FISTL'
WA_RECO1_VEN-FISTL_029.
added by rajan 25.04.2008
PERFORM BDC_FIELD_VEN USING 'COBL-FIPEX'
WA_RECO1_VEN-FIPEX_030.
PERFORM BDC_FIELD_VEN USING 'COBL-FIPOS'
WA_RECO1_VEN-FIPOS_031.
PERFORM BDC_DYNPRO_VEN USING 'SAPLKEAK' '0300'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'RKEAK-FIELD(15)'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=P+'.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(13)'
WA_RECO1_VEN-FIELD_13_032.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(15)'
WA_RECO1_VEN-FIELD_15_033.
PERFORM BDC_DYNPRO_VEN USING 'SAPLKEAK' '0300'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'RKEAK-FIELD(15)'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=WEIT'.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(09)'
WA_RECO1_VEN-FIELD_09_034.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(10)'
WA_RECO1_VEN-FIELD_10_035.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(11)'
WA_RECO1_VEN-FIELD_11_036.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(13)'
WA_RECO1_VEN-FIELD_13_037.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(14)'
WA_RECO1_VEN-FIELD_14_038.
PERFORM BDC_FIELD_VEN USING 'RKEAK-FIELD(15)'
WA_RECO1_VEN-FIELD_15_039.
PERFORM BDC_DYNPRO_VEN USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=ENTE'.
PERFORM BDC_FIELD_VEN USING 'COBL-GSBER'
WA_RECO1_VEN-GSBER_040.
PERFORM BDC_FIELD_VEN USING 'COBL-PRCTR'
WA_RECO1_VEN-PRCTR_041.
PERFORM BDC_FIELD_VEN USING 'COBL-FISTL'
WA_RECO1_VEN-FISTL_042.
PERFORM BDC_FIELD_VEN USING 'COBL-FIPEX'
WA_RECO1_VEN-FIPEX_043.
PERFORM BDC_FIELD_VEN USING 'COBL-FIPOS'
WA_RECO1_VEN-FIPOS_044.
rajan added
PERFORM BDC_DYNPRO_VEN USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'BSEG-LZBKZ'. "'RF05V-NEWKO'. f
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'/00'.
READ TABLE IT_RECO1_VEN INTO WA_RECO2_VEN INDEX CNT_VEN.
IF SY-SUBRC = 0.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWBS'
WA_RECO2_VEN-NEWBS_021.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWKO'
WA_RECO2_VEN-NEWKO_022.
ELSE.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWBS'
WA_RECO1_VEN-NEWBS_021.
PERFORM BDC_FIELD_VEN USING 'RF05V-NEWKO'
WA_RECO1_VEN-NEWKO_022.
ENDIF.
****************
ENDLOOP.
PERFORM BDC_DYNPRO_VEN USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD_VEN USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM BDC_FIELD_VEN USING 'BDC_OKCODE'
'=BP'.
PERFORM BDC_DYNPRO_ven USING 'SAPLF040' '0330'.
PERFORM BDC_FIELD_ven USING 'BDC_CURSOR'
'BSEG-LZBKZ'.
PERFORM BDC_FIELD_ven USING 'BDC_OKCODE'
'=BP'.
REFRESH BDCDATA_VEN1.
FREE BDCDATA_VEN1[].
BDCDATA_VEN1[] = BDCDATA_VEN[].
DATA : CNT TYPE I,
TEMP TYPE I,
TEMP1 TYPE I,
TEMP2 TYPE I,
TEMP3 TYPE I,
TEMP4 TYPE I.
LOOP AT BDCDATA_VEN1 INTO WA_BDCDATA_VEN1 WHERE DYNPRO = 330.
TEMP = SY-TABIX.
TEMP1 = TEMP + 1.
TEMP2 = TEMP1 + 1.
TEMP3 = TEMP2 + 1.
TEMP4 = TEMP3 + 1.
CNT = SY-TABIX + 5.
READ TABLE BDCDATA_VEN1 INTO WA_BDCDATA_VEN2 INDEX CNT.
IF WA_BDCDATA_VEN2-DYNPRO = 330.
DELETE BDCDATA_VEN1 FROM TEMP TO TEMP4.
EXIT.
ENDIF.
ENDLOOP.
PERFORM BDC_TRANSACTION_VEN USING 'F-64'.
READ TABLE MESSTAB_VEN INTO WA_MESSTAB_VEN WITH KEY TCODE = 'FBV1'
MSGTYP = 'S'
MSGID = 'FP'.
IF SY-SUBRC = 0.
PERFORM BDC_MSG_S_VEN.
ELSE.
PERFORM BDC_MSG_E_VEN.
ENDIF.
FREE MESSTAB_VEN.
ENDLOOP.
ENDFORM. " BDC_FILL
&----
*& Form BDC_MSG_S
&----
FORM BDC_MSG_S_VEN.
IF WA_MESSTAB_VEN-MSGTYP = 'S'.
DATA : MESS1(10),
MESS2(10).
MESS1 = WA_MESSTAB_VEN-MSGV1.
MESS2 = WA_MESSTAB_VEN-MSGV2.
WRITE :/1 'Parked Documents',
MESS1 COLOR 6 INTENSIFIED ON INVERSE ON,
'For Company Code',
MESS2 COLOR 6 INTENSIFIED ON INVERSE ON.
ENDIF.
ENDFORM. " BDC_MSG_S
&----
*& Form BDC_MSG_E
&----
FORM BDC_MSG_E_VEN.
READ TABLE MESSTAB_VEN INTO WA_MESSTAB_VEN WITH KEY TCODE = 'FBV1'
MSGTYP = 'E'
MSGID = 'F5'.
READ TABLE RECORD_VEN INTO WA_RECORD_VEN INDEX TEMP_VEN.
IF WA_MESSTAB_VEN-MSGTYP = 'E' AND SY-SUBRC = 0.
SKIP.
WRITE: /1 'Error occured during inserting data for sr. no :' COLOR 5 INTENSIFIED ON INVERSE ON,
WA_RECORD_VEN-SRNO COLOR 5 INTENSIFIED ON INVERSE ON.
MESSTAB-MSGV1 COLOR 6 INTENSIFIED ON INVERSE ON.
SKIP.
ENDIF.
ENDFORM. " BDC_MSG_E
&----
*& Form GUI_UPLOAD
&----
FORM GUI_UPLOAD_VEN.
DATA: FNAME TYPE STRING.
FNAME = FLNAME.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FNAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = IT_RECO_VEN
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " GUI_UPLOAD
&----
*& Form bdc_transaction
&----
FORM BDC_TRANSACTION_VEN USING VALUE(P_0522).
IF R_FOR = 'X'.
CALL TRANSACTION 'F-64' USING BDCDATA_VEN1
MODE 'A' "A
UPDATE 'A'
MESSAGES INTO MESSTAB_VEN.
ELSEIF R_BACK = 'X'.
CALL TRANSACTION 'F-64' USING BDCDATA_VEN1
MODE 'N' "A
UPDATE 'A'
MESSAGES INTO MESSTAB_VEN.
ENDIF.
REFRESH BDCDATA_VEN.
FREE BDCDATA_VEN[].
ENDFORM. " bdc_transaction
&----
*& Form BDC_DYNPRO
&----
FORM BDC_DYNPRO_VEN USING PROGRAM DYNPRO.
CLEAR WA_BDCDATA_VEN.
WA_BDCDATA_VEN-PROGRAM = PROGRAM.
WA_BDCDATA_VEN-DYNPRO = DYNPRO.
WA_BDCDATA_VEN-DYNBEGIN = 'X'.
APPEND WA_BDCDATA_VEN TO BDCDATA_VEN.
ENDFORM. "BDC_DYNPRO
&----
*& Form BDC_FIELD
&----
FORM BDC_FIELD_VEN USING FNAM FVAL.
CLEAR WA_BDCDATA_VEN.
WA_BDCDATA_VEN-FNAM = FNAM.
WA_BDCDATA_VEN-FVAL = FVAL.
APPEND WA_BDCDATA_VEN TO BDCDATA_VEN.
ENDFORM. "BDC_FIELD
Reward If Helpfull,
Naresh.
‎2008 May 21 2:15 PM
Dear Durie,
There is no BAPI available for F-54. You have to go through BDC only.
Reward Points.
Thanks
Pradipta Kumar Mishra