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

hi

Former Member
0 Likes
398

I want to upload vendor data, I have used the gui_upload fm , along with it which function module I have to use for bapi vendor?

I want to upload vendor data, I have used the gui_upload fm , along with it which function module I have to use for bapi vendor?

1 REPLY 1
Read only

Former Member
0 Likes
335

TABLES: LFA1,

LFM1,

LFB1,

LFBK,

TIBAN,BNKA,T024E.

DATA: BEGIN OF TBL_LFA1 OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

KTOKK LIKE LFA1-KTOKK,

LAND1 LIKE LFA1-LAND1,

NAME1 LIKE LFA1-NAME1,

ORT01 LIKE LFA1-ORT01,

PFACH LIKE LFA1-PFACH,

PSTL2 LIKE LFA1-PSTL2,

PSTLZ LIKE LFA1-PSTLZ,

REGIO LIKE LFA1-REGIO,

SORTL LIKE LFA1-SORTL,

SPRAS LIKE LFA1-SPRAS,

STRAS LIKE LFA1-STRAS,

TELF1 LIKE LFA1-TELF1,

TELFX LIKE LFA1-TELFX,

VBUND LIKE LFA1-VBUND,

KRAUS LIKE LFA1-KRAUS,

END OF TBL_LFA1.

DATA: BEGIN OF TBL_LFB1 OCCURS 0,

LIFNR LIKE LFB1-LIFNR,

BUKRS LIKE LFB1-BUKRS,

AKONT LIKE LFB1-AKONT,

ZWELS LIKE LFB1-ZWELS,

FDGRV LIKE LFB1-FDGRV,

TOGRU LIKE LFB1-TOGRU,

TOGRR LIKE LFB1-TOGRR,

INTAD LIKE LFB1-INTAD,

END OF TBL_LFB1.

DATA: BEGIN OF TBL_LFM1 OCCURS 0,

LIFNR LIKE LFM1-LIFNR,

EKORG LIKE LFM1-EKORG,

WAERS LIKE LFM1-WAERS,

VERKF LIKE LFM1-VERKF,

ZTERM LIKE LFM1-ZTERM,

INCO1 LIKE LFM1-INCO1,

INCO2 LIKE LFM1-INCO2,

END OF TBL_LFM1.

DATA: BEGIN OF TBL_LFBK OCCURS 0,

LIFNR LIKE LFBK-LIFNR,

BANKS LIKE LFBK-BANKS,

BANKL LIKE LFBK-BANKL,

BANKN LIKE LFBK-BANKN,

BVTYP LIKE LFBK-BVTYP,

END OF TBL_LFBK.

DATA: BEGIN OF TBL_TIBAN OCCURS 0,

BANKS LIKE TIBAN-BANKS,

BANKL LIKE TIBAN-BANKL,

BANKN LIKE TIBAN-BANKN,

BKONT LIKE TIBAN-BKONT,

IBAN LIKE TIBAN-IBAN,

END OF TBL_TIBAN.

DATA: BEGIN OF TBL_BNKA OCCURS 0,

BANKS LIKE BNKA-BANKS,

BANKL LIKE BNKA-BANKL,

SWIFT LIKE BNKA-SWIFT,

END OF TBL_BNKA.

DATA: BEGIN OF FINAL_ITAB OCCURS 0,

EKORG LIKE LFM1-EKORG,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

KRAUS LIKE LFA1-KRAUS,

STRAS LIKE LFA1-STRAS,

PSTLZ LIKE LFA1-PSTLZ,

ORT01 LIKE LFA1-ORT01,

LAND1 LIKE LFA1-LAND1,

REGIO LIKE LFA1-REGIO,

PFACH LIKE LFA1-PFACH,

PSTL2 LIKE LFA1-PSTL2,

SPRAS LIKE LFA1-SPRAS,

TELF1 LIKE LFA1-TELF1,

TELFX LIKE LFA1-TELFX,

INTAD LIKE LFB1-INTAD,

VERKF LIKE LFM1-VERKF,

ZTERM LIKE LFM1-ZTERM,

WAERS LIKE LFM1-WAERS,

INCO1 LIKE LFM1-INCO1,

INCO2 LIKE LFM1-INCO2,

BANKS LIKE LFBK-BANKS,

BANKL LIKE LFBK-BANKL,

BANKN LIKE LFBK-BANKN,

IBAN LIKE TIBAN-IBAN,

SWIFT LIKE BNKA-SWIFT,

BVTYP LIKE LFBK-BVTYP,

VBUND LIKE LFA1-VBUND,

BUKRS LIKE LFB1-BUKRS,

AKONT LIKE LFB1-AKONT,

FDGRV LIKE LFB1-FDGRV,

CREDIT_MEMO_TERMS(10),

TOGRU LIKE LFB1-TOGRU,

ZWELS LIKE LFB1-ZWELS,

TOGRR LIKE LFB1-TOGRR,

KTOKK LIKE LFA1-KTOKK,

SORTL LIKE LFA1-SORTL,

END OF FINAL_ITAB.

DATA : BEGIN OF TBL_OUTPUT OCCURS 0,

EKORG(10),

LIFNR(10),

NAME1(35),

KRAUS(15),

STRAS(35),

PSTLZ(20),

ORT01(35),

LAND1(5),

REGIO(5),

PFACH(20),

PSTL2(20),

SPRAS(5),

TELF1(15),

TELFX(15),

INTAD(130),

VERKF(30),

ZTERM(10),

WAERS(10),

INCO1(10),

INCO2(35),

BANKS(10),

BANKL(20),

BANKN(20),

IBAN(35),

SWIFT(15),

BVTYP(10),

VBUND(20),

BUKRS(10),

AKONT(15),

FDGRV(15),

CREDIT_MEMO_TERMS(15),

TOGRU(15),

ZWELS(15),

TOGRR(15),

KTOKK(15),

SORTL(15),

END OF TBL_OUTPUT.

DATA: BEGIN OF TBL_KUNN2 OCCURS 0,

KUNN2 LIKE KNVP-KUNN2,

END OF TBL_KUNN2.

DATA : BEGIN OF TBL_UPLD OCCURS 0 ,

LIFNR LIKE KNA1-LIFNR,

END OF TBL_UPLD.

*data: tbl_kna1 like tbl_kna1 occurs 0 with header line.

DATA: PRT_LINE TYPE I,

MAX_PRT TYPE I VALUE 69.

DATA TEXT_1000(1000).

SELECTION-SCREEN BEGIN OF BLOCK B1

WITH FRAME TITLE TEXT-T01.

SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR,

  • partner for knvp-parvw,

EKORG FOR LFM1-EKORG OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T02.

PARAMETERS : R1 RADIOBUTTON GROUP RAD1 DEFAULT 'X' ,

R2 RADIOBUTTON GROUP RAD1,

R3 RADIOBUTTON GROUP RAD1.

PARAMETERS : SRC_FILE LIKE RLGRAP-FILENAME

DEFAULT 'C:\temp\'.

SELECTION-SCREEN: END OF BLOCK B2 .

SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-T03.

PARAMETERS : DL_FILE1 LIKE RLGRAP-FILENAME

DEFAULT 'C:\temp\'.

SELECTION-SCREEN: END OF BLOCK B3 .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR SRC_FILE.

PERFORM GET_FILE CHANGING SRC_FILE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR DL_FILE1.

PERFORM GET_FILE CHANGING DL_FILE1.

START-OF-SELECTION.

IF R1 = 'X' OR R2 = 'X'.

PERFORM GET_FILEDATA.

ENDIF.

PERFORM LOAD_DATA.

PERFORM LOAD_OUTPUT_TABLE.

IF FINAL_ITAB[] IS INITIAL.

MESSAGE S001(38) WITH 'No records exist'(133).

EXIT.

ENDIF.

  • perform print_title.

PERFORM PRINT_DATA.

PERFORM PRINT_FOOTER.

*end-of-selection.

&----


*& Form load_data

&----


FORM LOAD_DATA.

REFRESH TBL_LFA1.

SELECT KUNNR NAME1 STRAS ORT01 PSTLZ REGIO SORTL

LIFNR KTOKK LAND1 NAME1 ORT01 PFACH PSTL2 PSTLZ REGIO SORTL SPRAS STRAS

TELF1 TELFX VBUND KRAUS INTO CORRESPONDING FIELDS OF TABLE TBL_LFA1

FROM LFA1 WHERE LIFNR IN LIFNR.

IF NOT TBL_LFA1[] IS INITIAL.

IF R1 = 'X'.

LOOP AT TBL_LFA1.

READ TABLE TBL_UPLD WITH KEY LIFNR = TBL_LFA1-LIFNR.

IF SY-SUBRC NE 0.

DELETE TBL_LFA1.

ENDIF.

ENDLOOP.

ELSEIF R2 = 'X'.

LOOP AT TBL_LFA1 .

READ TABLE TBL_UPLD WITH KEY LIFNR = TBL_LFA1-LIFNR.

IF SY-SUBRC = 0.

DELETE TBL_LFA1.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

*--- Select data from tables KNVV, KNVA and KNB1

*--- for all the customer numbers(KUNNR) in kna1_itab

IF NOT TBL_LFA1[] IS INITIAL.

REFRESH TBL_LFM1.

SELECT LIFNR EKORG WAERS VERKF ZTERM INCO1 INCO2

INTO CORRESPONDING FIELDS OF TABLE TBL_LFM1 FROM LFM1

FOR ALL ENTRIES IN TBL_LFA1

WHERE LIFNR = TBL_LFA1-LIFNR

AND EKORG IN EKORG.

REFRESH TBL_LFB1.

SELECT LIFNR BUKRS AKONT ZWELS FDGRV TOGRU TOGRR INTAD

INTO CORRESPONDING FIELDS OF TABLE TBL_LFB1

FROM LFB1 FOR ALL ENTRIES IN TBL_LFA1

WHERE LIFNR = TBL_LFA1-LIFNR.

  • select customer bank details.

SELECT LIFNR BANKS BANKL BANKN BVTYP

INTO CORRESPONDING FIELDS OF TABLE TBL_LFBK

FROM LFBK FOR ALL ENTRIES IN TBL_LFA1

WHERE LIFNR = TBL_LFA1-LIFNR.

SELECT BANKS BANKL BANKN BKONT IBAN

INTO CORRESPONDING FIELDS OF TABLE TBL_TIBAN

FROM TIBAN FOR ALL ENTRIES IN TBL_LFBK

WHERE BANKS = TBL_LFBK-BANKS

AND BANKL = TBL_LFBK-BANKL .

  • and bankn = tbl_lfbk-bankn .

SELECT BANKS BANKL SWIFT INTO CORRESPONDING FIELDS OF TABLE TBL_BNKA

FROM BNKA FOR ALL ENTRIES IN TBL_LFBK

WHERE BANKS = TBL_LFBK-BANKS

AND BANKL = TBL_LFBK-BANKL .

ENDIF.

ENDFORM. " load_data

----


  • FORM LOAD_OUTPUT_TABLE *

----


  • ........ *

----


FORM LOAD_OUTPUT_TABLE.

REFRESH FINAL_ITAB.

SORT TBL_LFA1 BY LIFNR.

SORT TBL_LFB1 BY LIFNR BUKRS .

SORT TBL_LFM1 BY LIFNR.

LOOP AT TBL_LFA1.

  • General data

READ TABLE TBL_LFA1 WITH KEY LIFNR = TBL_LFA1-LIFNR

BINARY SEARCH.

MOVE-CORRESPONDING TBL_LFA1 TO FINAL_ITAB.

  • Purchase data

LOOP AT TBL_LFM1 WHERE LIFNR = TBL_LFA1-LIFNR.

MOVE-CORRESPONDING TBL_LFM1 TO FINAL_ITAB.

  • company code data

CLEAR TBL_LFB1.

READ TABLE TBL_LFB1 WITH KEY LIFNR = TBL_LFA1-LIFNR

BUKRS = T024E-BUKRS

BINARY SEARCH.

IF SY-SUBRC = 0 .

MOVE-CORRESPONDING TBL_LFB1 TO FINAL_ITAB.

ENDIF.

  • bank data

READ TABLE TBL_LFBK WITH KEY LIFNR = TBL_LFA1-LIFNR

BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING TBL_LFBK TO FINAL_ITAB.

ENDIF.

  • IBAN number

READ TABLE TBL_TIBAN WITH KEY BANKS = TBL_LFBK-BANKS

BANKL = TBL_LFBK-BANKL

BANKN = TBL_LFBK-BANKN .

IF SY-SUBRC = 0 .

FINAL_ITAB-IBAN = TBL_TIBAN-IBAN.

ENDIF.

  • swift code

CLEAR TBL_BNKA.

READ TABLE TBL_BNKA WITH KEY BANKS = TBL_LFBK-BANKS

BANKL = TBL_LFBK-BANKL .

IF SY-SUBRC = 0 .

FINAL_ITAB-SWIFT = TBL_BNKA-SWIFT.

ENDIF.

FINAL_ITAB-CREDIT_MEMO_TERMS = ' ' .

APPEND FINAL_ITAB.

CLEAR FINAL_ITAB.

ENDLOOP.

ENDLOOP.

ENDFORM.

&----


*& Form print_data

&----


FORM PRINT_DATA.

  • perform print_header.

  • perform print_details.

LOOP AT FINAL_ITAB.

IF SY-TABIX = '1'.

TBL_OUTPUT-EKORG = 'P ORG'.

TBL_OUTPUT-LIFNR = 'VENDOR'.

TBL_OUTPUT-NAME1 = 'NAME1'.

TBL_OUTPUT-KRAUS = 'DUNS NUM'.

TBL_OUTPUT-STRAS = 'Street'.

TBL_OUTPUT-PSTLZ = 'Postal Code Street'.

TBL_OUTPUT-ORT01 = 'City'.

TBL_OUTPUT-LAND1 = 'Country'.

TBL_OUTPUT-REGIO = 'Region'.

TBL_OUTPUT-PFACH = 'P.O. Box'.

TBL_OUTPUT-PSTL2 = 'Pst Code PO Box'.

TBL_OUTPUT-SPRAS = 'Language'.

TBL_OUTPUT-TELF1 = 'Telephone'.

TBL_OUTPUT-TELFX = 'Fax'.

TBL_OUTPUT-INTAD = 'E-mail'.

TBL_OUTPUT-VERKF = 'Contact by supplier'.

TBL_OUTPUT-ZTERM = 'Payment Terms'.

TBL_OUTPUT-WAERS = 'Currency'.

TBL_OUTPUT-INCO1 = 'Incoterms'.

TBL_OUTPUT-INCO2 = 'Incoterms part II'.

TBL_OUTPUT-BANKS = 'Bank Country'.

TBL_OUTPUT-BANKL = 'Bank key'.

TBL_OUTPUT-BANKN = 'Bank account'.

TBL_OUTPUT-IBAN = 'IBAN Number'.

TBL_OUTPUT-SWIFT = 'Swift Code'.

TBL_OUTPUT-BVTYP = 'Partner Bank Type'.

TBL_OUTPUT-VBUND = 'Trading Partner'.

TBL_OUTPUT-BUKRS = 'Comp code'.

TBL_OUTPUT-AKONT = 'Reco Account'.

TBL_OUTPUT-FDGRV = 'Planning Group'.

TBL_OUTPUT-CREDIT_MEMO_TERMS = 'Credit Memo Terms'.

TBL_OUTPUT-TOGRU = 'Payment–Tol'.

TBL_OUTPUT-ZWELS = 'Pay Method' .

TBL_OUTPUT-TOGRR = 'Invoice Ver.–Tol'.

TBL_OUTPUT-KTOKK = 'Account group'.

TBL_OUTPUT-SORTL = 'Sort field'.

APPEND TBL_OUTPUT.

ENDIF.

CLEAR TBL_OUTPUT.

TBL_OUTPUT-EKORG = FINAL_ITAB-EKORG.

TBL_OUTPUT-LIFNR = FINAL_ITAB-LIFNR.

TBL_OUTPUT-NAME1 = FINAL_ITAB-NAME1.

TBL_OUTPUT-KRAUS = FINAL_ITAB-KRAUS.

TBL_OUTPUT-STRAS = FINAL_ITAB-STRAS.

TBL_OUTPUT-PSTLZ = FINAL_ITAB-PSTLZ.

TBL_OUTPUT-ORT01 = FINAL_ITAB-ORT01.

TBL_OUTPUT-LAND1 = FINAL_ITAB-LAND1.

TBL_OUTPUT-REGIO = FINAL_ITAB-REGIO.

TBL_OUTPUT-PFACH = FINAL_ITAB-PFACH.

TBL_OUTPUT-PSTL2 = FINAL_ITAB-PSTL2.

TBL_OUTPUT-SPRAS = FINAL_ITAB-SPRAS.

TBL_OUTPUT-TELF1 = FINAL_ITAB-TELF1.

TBL_OUTPUT-TELFX = FINAL_ITAB-TELFX.

TBL_OUTPUT-INTAD = FINAL_ITAB-INTAD.

TBL_OUTPUT-VERKF = FINAL_ITAB-VERKF.

TBL_OUTPUT-ZTERM = FINAL_ITAB-ZTERM.

TBL_OUTPUT-WAERS = FINAL_ITAB-WAERS.

TBL_OUTPUT-INCO1 = FINAL_ITAB-INCO1.

TBL_OUTPUT-INCO2 = FINAL_ITAB-INCO2.

TBL_OUTPUT-BANKS = FINAL_ITAB-BANKS.

TBL_OUTPUT-BANKL = FINAL_ITAB-BANKL.

TBL_OUTPUT-BANKN = FINAL_ITAB-BANKN.

TBL_OUTPUT-IBAN = FINAL_ITAB-IBAN.

TBL_OUTPUT-SWIFT = FINAL_ITAB-SWIFT.

TBL_OUTPUT-BVTYP = FINAL_ITAB-BVTYP.

TBL_OUTPUT-VBUND = FINAL_ITAB-VBUND.

TBL_OUTPUT-BUKRS = FINAL_ITAB-BUKRS.

TBL_OUTPUT-AKONT = FINAL_ITAB-AKONT.

TBL_OUTPUT-FDGRV = FINAL_ITAB-FDGRV.

TBL_OUTPUT-CREDIT_MEMO_TERMS(10) = ' '.

TBL_OUTPUT-TOGRU = FINAL_ITAB-TOGRU.

TBL_OUTPUT-ZWELS = FINAL_ITAB-ZWELS.

TBL_OUTPUT-TOGRR = FINAL_ITAB-TOGRR.

TBL_OUTPUT-KTOKK = FINAL_ITAB-KTOKK.

TBL_OUTPUT-SORTL = FINAL_ITAB-SORTL.

APPEND TBL_OUTPUT.

ENDLOOP.

IF SY-BATCH NE 'X'.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE = ' '

CODEPAGE = 'IBM'

FILENAME = DL_FILE1

FILETYPE = 'DAT'

TABLES

DATA_TAB = TBL_OUTPUT

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_WRITE_ERROR = 2

INVALID_FILESIZE = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

OTHERS = 8.

ELSE .

OPEN DATASET DL_FILE1 FOR OUTPUT IN TEXT MODE.

LOOP AT TBL_OUTPUT.

CLEAR TEXT_1000.

TEXT_1000 = TBL_OUTPUT .

TRANSFER TEXT_1000 TO DL_FILE1 .

ENDLOOP.

CLOSE DATASET DL_FILE1 .

ENDIF.

LOOP AT FINAL_ITAB.

WRITE:/ FINAL_ITAB.

ENDLOOP.

ENDFORM.

----


  • FORM PRINT_HEADER *

----


  • ........ *

----


FORM PRINT_HEADER.

WRITE:/1 TEXT-010, "'Cust No',

12 TEXT-011, "'Cust Name',

48 TEXT-012, "'Search Term',

95 TEXT-013, "'Street',

131 TEXT-014, "'City',

167 TEXT-015, "'Region',

174 TEXT-016, "'PCode',

185 TEXT-017, "'SOrg',

195 TEXT-018, "'Div',

205 TEXT-019, "'SDist',

215 TEXT-020, "'Inco',

225 TEXT-021, "'Ship',

235 TEXT-022, "'PayTerms',

245 TEXT-023. "'AAGrp'.

WRITE: /7 TEXT-024, "'Co Code',

25 TEXT-025. "'Cr Memo'.

WRITE: /7 TEXT-026. "'Unloading Point'.

WRITE:/7 TEXT-027, "'SDist',

17 TEXT-028, "'PFunc',

27 TEXT-029, "'CNo',

45 TEXT-030, "'CustDesc',

59 TEXT-031. "'CustName'.

ULINE.

ENDFORM.

----


  • FORM PRINT_DETAILS *

----


***********************************************************************

  • FORM PRINT_FOOTER

  • Procedure to print the footer for the report.

***********************************************************************

FORM PRINT_FOOTER.

RESERVE 1 LINES.

ENDFORM.

FORM GET_FILE CHANGING P_SRC_FILE.

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

DEF_FILENAME = 'Batch.txt '

DEF_PATH = 'C:\temp\'

MASK = ',.txt,.*.'

MODE = 'O'

TITLE = 'Open a Text(*.txt) file only'

IMPORTING

FILENAME = SRC_FILE

  • RC =

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

IF SY-SUBRC = 0.

P_SRC_FILE = SRC_FILE.

ENDIF.

ENDFORM. " GET_FILE

&----


*& Form GET_FILEDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_FILEDATA.

IF SY-BATCH NE 'X'.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = SRC_FILE

FILETYPE = 'DAT'

  • importing

  • filelength = fillen

TABLES

DATA_TAB = TBL_UPLD

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

OTHERS = 10.

IF SY-SUBRC <> 0.

MESSAGE E999 WITH 'Unable to load the input file'.

ENDIF.

ELSE.

DATA: TEXT_10(10).

OPEN DATASET SRC_FILE FOR INPUT IN TEXT MODE.

DO.

READ DATASET SRC_FILE INTO TEXT_10.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

TBL_UPLD-LIFNR = TEXT_10.

APPEND TBL_UPLD.

ENDDO.

CLOSE DATASET SRC_FILE .

ENDIF.

ENDFORM. " GET_FILEDATA

Reward points..