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

help me in bapi...

Former Member
0 Likes
686

hi frnds i need the code for bapi .

· to Upload the data for Schedule line items for sales order using BAPI.

plzz hlp frnds its urgent.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
584

hi rajesh,

Please check the following code in case its a bill of material

FORM CHECK_SALES_BOM TABLES ORDER_ITEMS_IN STRUCTURE BAPIITEMIN

ORDER_PARTNERS STRUCTURE ZBAPISHIP1.

CLEAR FLAG_CANCEL_CREATE.

CLEAR V_LINES1.

LOOP AT ORDER_ITEMS_IN.

V_ITM_NUMBER = ORDER_ITEMS_IN-ITM_NUMBER.

  • ORDER_ITEMS_IN-PO_ITM_NO = ORDER_ITEMS_IN-ITM_NUMBER. " DEVK942749

ORDER_ITEMS_IN-ITM_NUMBER = 10 * SY-TABIX + 10 * V_LINES1.

MODIFY ORDER_ITEMS_IN.

LOOP AT ORDER_PARTNERS WHERE ITEM_NUMB = V_ITM_NUMBER.

ORDER_PARTNERS-ITEM_NUMB = ORDER_ITEMS_IN-ITM_NUMBER.

MODIFY ORDER_PARTNERS.

ENDLOOP.

SELECT SINGLE KNUMH FROM KOTD001 INTO KOTD001-KNUMH

WHERE KAPPL = 'V'

AND KSCHL = 'A001'

AND MATWA = ORDER_ITEMS_IN-MATERIAL

AND DATBI GE SY-DATUM

AND DATAB LE SY-DATUM.

IF SY-SUBRC = 0.

SELECT SINGLE SMATN FROM KONDD INTO KONDD-SMATN

WHERE KNUMH = KOTD001-KNUMH.

ORDER_ITEMS_IN-MATERIAL = KONDD-SMATN.

ELSE.

ORDER_ITEMS_IN-MATERIAL = ORDER_ITEMS_IN-MATERIAL.

ENDIF.

CLEAR V_WERKS.

SELECT SINGLE DWERK MTPOS INTO (V_WERKS, MVKE-MTPOS) FROM MVKE

WHERE MATNR = ORDER_ITEMS_IN-MATERIAL

AND VKORG = WWW_ORDER_HEADER_EXP-VKORG

AND VTWEG = WWW_ORDER_HEADER_EXP-VTWEG.

IF MVKE-MTPOS EQ 'LUMF' OR MVKE-MTPOS EQ 'ZLUM'.

READ TABLE ORDER_PARTNERS WITH KEY ITEM_NUMB = V_ITM_NUMBER

PARTN_ROLE = 'WE'.

REFRESH : DA_MASTB,

DA_STKOB,

DA_STZUB.

CALL FUNCTION 'CS_ALT_SELECT_MAT'

EXPORTING

  • ALL = ' '

CAPID = 'SD01'

DATUV = SY-DATUM

  • DIALF = ' '

  • LOSGR = 0

MATNR = ORDER_ITEMS_IN-MATERIAL

  • NOTAB = 'X'

  • NRFDC = ' '

  • STLAL = ' '

  • STLAN = ' '

  • VPRIO = ' '

WERKS = V_WERKS

TABLES

MASTB_WA = DA_MASTB

STKOB_WA = DA_STKOB

STZUB_WA = DA_STZUB

EXCEPTIONS

ALT_NOT_FOUND = 1

BOM_NOT_ACTIVE = 2

BOM_NOT_FOUND = 3

CALL_INVALID = 4

NO_ALT_FOUND = 5

NO_BOM_FOUND = 6

OTHERS = 7.

READ TABLE DA_MASTB INDEX 1.

IF SY-SUBRC = 0.

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

CAPID = 'SD01'

DATUV = SY-DATUM

EMENG = 1

MEHRS = 'X'

MTNRV = ORDER_ITEMS_IN-MATERIAL

RNDKZ = '2'

STLAL = '01'

WERKS = V_WERKS

IMPORTING

TOPMAT = CSTMAT

TABLES

STB = TSTB

  • MATCAT =

EXCEPTIONS

ALT_NOT_FOUND = 1

CALL_INVALID = 2

MATERIAL_NOT_FOUND = 3

MISSING_AUTHORIZATION = 4

NO_BOM_FOUND = 5

NO_PLANT_DATA = 6

NO_SUITABLE_BOM_FOUND = 7

OTHERS = 8.

DESCRIBE TABLE TSTB LINES V_LINES.

ENDIF.

V_LINES1 = V_LINES + V_LINES1 .

CLEAR V_LINES.

ENDIF.

ENDLOOP.

or u can check below

u can populate both Line items and Schedule Line item structures - ORDER_ITEMS_IN and ORDER_SCHEDULES_IN respectively using BAPI_SALESORDER_CREATEFROMDAT2 to create sales order

hope this will help you.

Reward points if it helps

Regards,

Naveen

3 REPLIES 3
Read only

Former Member
0 Likes
584

REPORT ZEXAMPLE.

data: hdr like bapiSDHD1.

data: itm like table of BAPIsditm with header line.

data: prtnr like table of BAPIPARNR with header line.

data: salesdoc like BAPIVBELN-VBELN.

data: ret like bapireturn1.

data: ret_tbl like table of bapiret2.

data: itm_out like table of bapisditm.

data: schd_lin like table of bapischdl with header line.

hdr-doc_type = 'TA'.

hdr-sales_org = '0001'.

hdr-distr_chan = '01'.

hdr-division = '01'.

hdr-req_date_h = sy-datum + 45.

hdr-purch_no_c = 'TES bapi'.

hdr-dlv_block = '01'.

hdr-ord_reason = '005'.

hdr-price_date = sy-datum + 10.

hdr-ship_cond = '07'.

hdr-created_by = 'UNIVRSEL'.

itm-itm_number = '1'.

itm-material = '000000000000003319'.

*tm-target_qty = '1000'.

itm-reason_rej = '99'.

itm-plant = '1380'.

itm-store_loc = 'QUAL'.

*tm-target_qu = 'PAL'.

itm-sales_unit = 'PAL'.

itm-ship_point = '1380'.

itm-route = '2369'.

itm-cust_mat35 = 'CustomerMaterial'.

append itm.

itm-itm_number = '2'.

itm-material = '000000000000003319'.

*tm-target_qty = '1000'.

itm-reason_rej = '99'.

itm-plant = '1380'.

itm-store_loc = 'QUAL'.

*tm-target_qu = 'PAL'.

itm-sales_unit = 'CS'.

itm-ship_point = '1380'.

itm-route = '2369'.

itm-cust_mat35 = 'CustomerMaterial'.

append itm.

schd_lin-itm_number = '1'.

schd_lin-req_qty = '1000'.

append schd_lin.

schd_lin-itm_number = '2'.

schd_lin-req_qty = '2000'.

append schd_lin.

prtnr-partn_role = 'SP'.

prtnr-partn_numb = '0001042449'.

append prtnr.

clear salesdoc.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

ORDER_HEADER_IN = hdr

convert = 'X'

IMPORTING

SALESDOCUMENT = salesdoc

TABLES

return = ret_tbl

ORDER_ITEMS_IN = itm

ORDER_PARTNERS = prtnr

ORDER_ITEMS_inx = itm_out

order_schedules_in = schd_lin

.

if sy-subrc = 0 and not salesdoc is initial.

write: / 'Sales Doc:',salesdoc.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.

endif.

Read only

Former Member
0 Likes
584

CALL FUNCTION 'BAPI_COSTELEMENTGRP_GETDETAIL'

EXPORTING

CHARTOFACCOUNTS = 'CASA'

GROUPNAME = IT_GROUP-GROUPNAME

  • IMPORTING

  • RETURN =

TABLES

HIERARCHYNODES = it_tab

  • HIERARCHYVALUES = P_COSTELEMENT_VALUES

.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = P_file

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER = iT_tab.

TABLES

DATA_TAB =

  • 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.

Then move from it_tab to ztable.

Read only

Former Member
0 Likes
585

hi rajesh,

Please check the following code in case its a bill of material

FORM CHECK_SALES_BOM TABLES ORDER_ITEMS_IN STRUCTURE BAPIITEMIN

ORDER_PARTNERS STRUCTURE ZBAPISHIP1.

CLEAR FLAG_CANCEL_CREATE.

CLEAR V_LINES1.

LOOP AT ORDER_ITEMS_IN.

V_ITM_NUMBER = ORDER_ITEMS_IN-ITM_NUMBER.

  • ORDER_ITEMS_IN-PO_ITM_NO = ORDER_ITEMS_IN-ITM_NUMBER. " DEVK942749

ORDER_ITEMS_IN-ITM_NUMBER = 10 * SY-TABIX + 10 * V_LINES1.

MODIFY ORDER_ITEMS_IN.

LOOP AT ORDER_PARTNERS WHERE ITEM_NUMB = V_ITM_NUMBER.

ORDER_PARTNERS-ITEM_NUMB = ORDER_ITEMS_IN-ITM_NUMBER.

MODIFY ORDER_PARTNERS.

ENDLOOP.

SELECT SINGLE KNUMH FROM KOTD001 INTO KOTD001-KNUMH

WHERE KAPPL = 'V'

AND KSCHL = 'A001'

AND MATWA = ORDER_ITEMS_IN-MATERIAL

AND DATBI GE SY-DATUM

AND DATAB LE SY-DATUM.

IF SY-SUBRC = 0.

SELECT SINGLE SMATN FROM KONDD INTO KONDD-SMATN

WHERE KNUMH = KOTD001-KNUMH.

ORDER_ITEMS_IN-MATERIAL = KONDD-SMATN.

ELSE.

ORDER_ITEMS_IN-MATERIAL = ORDER_ITEMS_IN-MATERIAL.

ENDIF.

CLEAR V_WERKS.

SELECT SINGLE DWERK MTPOS INTO (V_WERKS, MVKE-MTPOS) FROM MVKE

WHERE MATNR = ORDER_ITEMS_IN-MATERIAL

AND VKORG = WWW_ORDER_HEADER_EXP-VKORG

AND VTWEG = WWW_ORDER_HEADER_EXP-VTWEG.

IF MVKE-MTPOS EQ 'LUMF' OR MVKE-MTPOS EQ 'ZLUM'.

READ TABLE ORDER_PARTNERS WITH KEY ITEM_NUMB = V_ITM_NUMBER

PARTN_ROLE = 'WE'.

REFRESH : DA_MASTB,

DA_STKOB,

DA_STZUB.

CALL FUNCTION 'CS_ALT_SELECT_MAT'

EXPORTING

  • ALL = ' '

CAPID = 'SD01'

DATUV = SY-DATUM

  • DIALF = ' '

  • LOSGR = 0

MATNR = ORDER_ITEMS_IN-MATERIAL

  • NOTAB = 'X'

  • NRFDC = ' '

  • STLAL = ' '

  • STLAN = ' '

  • VPRIO = ' '

WERKS = V_WERKS

TABLES

MASTB_WA = DA_MASTB

STKOB_WA = DA_STKOB

STZUB_WA = DA_STZUB

EXCEPTIONS

ALT_NOT_FOUND = 1

BOM_NOT_ACTIVE = 2

BOM_NOT_FOUND = 3

CALL_INVALID = 4

NO_ALT_FOUND = 5

NO_BOM_FOUND = 6

OTHERS = 7.

READ TABLE DA_MASTB INDEX 1.

IF SY-SUBRC = 0.

CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

EXPORTING

CAPID = 'SD01'

DATUV = SY-DATUM

EMENG = 1

MEHRS = 'X'

MTNRV = ORDER_ITEMS_IN-MATERIAL

RNDKZ = '2'

STLAL = '01'

WERKS = V_WERKS

IMPORTING

TOPMAT = CSTMAT

TABLES

STB = TSTB

  • MATCAT =

EXCEPTIONS

ALT_NOT_FOUND = 1

CALL_INVALID = 2

MATERIAL_NOT_FOUND = 3

MISSING_AUTHORIZATION = 4

NO_BOM_FOUND = 5

NO_PLANT_DATA = 6

NO_SUITABLE_BOM_FOUND = 7

OTHERS = 8.

DESCRIBE TABLE TSTB LINES V_LINES.

ENDIF.

V_LINES1 = V_LINES + V_LINES1 .

CLEAR V_LINES.

ENDIF.

ENDLOOP.

or u can check below

u can populate both Line items and Schedule Line item structures - ORDER_ITEMS_IN and ORDER_SCHEDULES_IN respectively using BAPI_SALESORDER_CREATEFROMDAT2 to create sales order

hope this will help you.

Reward points if it helps

Regards,

Naveen