Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI FOR - 54

Former Member
0 Likes
1,044

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

2 REPLIES 2
Read only

Former Member
0 Likes
750

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.

Read only

pradiptakumar_mishra
Participant
0 Likes
750

Dear Durie,

There is no BAPI available for F-54. You have to go through BDC only.

Reward Points.

Thanks

Pradipta Kumar Mishra