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 updation

Former Member
0 Likes
570

Hi,

In the BAPI_SALESORDER_CHANGE how to use partner, partnerfunctions.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
516

Table of structure BAPIPARNR need to be passed.

Minimum Data to be passed:

1. PARTN_ROLE

2. PARTN_NUMB

Regards

Eswar

3 REPLIES 3
Read only

Former Member
0 Likes
517

Table of structure BAPIPARNR need to be passed.

Minimum Data to be passed:

1. PARTN_ROLE

2. PARTN_NUMB

Regards

Eswar

Read only

Former Member
0 Likes
516

Refer this demo code,may be it will help you.

FORM update_order_quantity .

*- Local Work Areas

DATA: ls_order_head TYPE bapisdh1, "Order Header

ls_order_headx TYPE bapisdh1x, "Order HeaderX

ls_order_item TYPE bapisditm, "Order Item

ls_order_itemx TYPE bapisditmx, "Order ItemX

ls_return TYPE bapiret2, "BAPI Return table

ls_submit TYPE t_display, "Submit data

ls_schedule_lines TYPE bapischdl, "Schedule line data

ls_schedule_linesx TYPE bapischdlx, "Schedule line data

ls_log TYPE t_log. "Log data

*- Local Internal tables

DATA:

lt_return TYPE STANDARD TABLE OF bapiret2, "Retrun table

lt_order_item TYPE STANDARD TABLE OF bapisditm, "Item table

lt_order_itemx TYPE STANDARD TABLE OF bapisditmx, "Itemx table

lt_schedule_lines TYPE STANDARD TABLE OF bapischdl, "Schedule line

lt_schedule_linesx TYPE STANDARD TABLE OF bapischdlx. "Schedule lineX

*- Local Constants

CONSTANTS: lc_004 TYPE vbap-mvgr5 VALUE '004',

lc_99 TYPE vbap-abgru VALUE '99',

lc_u TYPE c VALUE 'U',

lc_e TYPE c VALUE 'E',

lc_311 TYPE symsgno VALUE '311'.

CLEAR: gt_log.

REFRESH gt_log.

LOOP AT gt_submit INTO ls_submit.

*-Clearing for every new Order

AT NEW vbeln.

CLEAR: lt_order_item,

lt_order_itemx,

lt_schedule_lines,

lt_schedule_linesx,

lt_return.

ENDAT.

*- Population of Order Item data

ls_order_item-itm_number = ls_submit-posnr. "Item

ls_order_item-prc_group5 = '003'."lc_004. "Material Group5

IF ls_submit-zmeng = 0.

ls_order_item-reason_rej = lc_99. "Reason for Rejection

ENDIF.

APPEND ls_order_item TO lt_order_item.

*-Population of update flag for Order Item

ls_order_itemx-itm_number = ls_submit-posnr."Item

ls_order_itemx-updateflag = lc_u. "Update flag

ls_order_itemx-prc_group5 = gc_x. "Material Group5 update

*- if the required quanity is zero then reject the line

IF ls_submit-zmeng = 0.

ls_order_itemx-reason_rej = gc_x. "Reason for Rejection

ENDIF.

APPEND ls_order_itemx TO lt_order_itemx.

*-Population of

ls_schedule_lines-itm_number = ls_submit-posnr.

ls_schedule_lines-sched_line = ls_submit-etenr.

ls_schedule_lines-req_qty = ls_submit-zmeng.

APPEND ls_schedule_lines TO lt_schedule_lines.

*-Population of update flag for Schedule line data

ls_schedule_linesx-itm_number = ls_submit-posnr.

ls_schedule_linesx-sched_line = ls_submit-etenr.

ls_schedule_linesx-updateflag = lc_u.

ls_schedule_linesx-req_qty = gc_x.

APPEND ls_schedule_linesx TO lt_schedule_linesx.

*- at the end of Order call the BAPI to Update the Order

AT END OF vbeln.

ls_order_head-collect_no = ls_submit-vbeln.

ls_order_headx-updateflag = lc_u.

ls_order_headx-collect_no = gc_x.

*- BAPI Call to Update the Order

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

salesdocument = ls_submit-vbeln

order_header_in = ls_order_head

order_header_inx = ls_order_headx

TABLES

return = lt_return

order_item_in = lt_order_item

order_item_inx = lt_order_itemx

schedule_lines = lt_schedule_lines

schedule_linesx = lt_schedule_linesx.

*- Check for the errors and based on that populate the log

READ TABLE lt_return INTO ls_return WITH KEY type = lc_e.

IF sy-subrc EQ 0.

LOOP AT lt_return INTO ls_return WHERE type = lc_e.

ls_log-excep = 1.

ls_log-vbeln = ls_submit-vbeln.

ls_log-message = ls_return-message.

APPEND ls_log TO gt_log.

CLEAR: ls_log,

ls_submit-vbeln .

ENDLOOP.

ELSE.

*- Commit the Changes

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = gc_x.

*- Check for the success message and populate the log

LOOP AT lt_return INTO ls_return WHERE number = lc_311.

ls_log-excep = 3.

ls_log-vbeln = ls_submit-vbeln.

ls_log-message = ls_return-message.

APPEND ls_log TO gt_log.

CLEAR: ls_log,

ls_submit-vbeln .

ENDLOOP.

ENDIF.

ENDAT.

*- Clearing the work areas.

CLEAR: ls_order_item,

ls_order_itemx,

ls_schedule_lines,

ls_schedule_linesx.

ENDLOOP.

ENDFORM. " update_order_quantity

Read only

Former Member
0 Likes
516

Hi,

check this out, this might help:

Data: salesd like BAPIVBELN-VBELN.

data: it_BAPISDH1 type BAPISDH1.

data: it_BAPISDH1X type BAPISDH1X.

data: it_BAPIPARNR type BAPIPARNR occurs 0 with header line.

data: it_BAPIRET2 type BAPIRET2 occurs 0 with header line.

data: it_BAPIPARNRC type BAPIPARNRC occurs 0 with header line.

data: it_BAPISDITMX type BAPISDITMX occurs 0 with header line.

data: it_BAPISDITM type standard table of BAPISDITM with header line.

constants: c_bp(2) type c value 'BP'.

it_BAPISDH1X-UPDATEFLAG = 'U'.

it_BAPISDH1X-SALES_ORG = 'X'.

it_BAPISDH1X-DISTR_CHAN = 'X'.

it_BAPISDH1X-DIVISION = 'X'.

it_BAPISDH1X-PURCH_NO_C = 'X'.

it_BAPISDH1X-CUST_GROUP = 'X'.

it_BAPISDH1-SALES_ORG = '1000'.

it_BAPISDH1-DISTR_CHAN = '01'.

it_BAPISDH1-DIVISION = '00'.

it_BAPISDH1-PURCH_NO_C = 'Test1'.

***it_BAPIPARNR-PARTN_ROLE = 'RE'.

***it_BAPIPARNR-PARTN_NUMB = '0000000171'.

***it_BAPIPARNR-ITM_NUMBER = '00000'.

***append it_BAPIPARNR.

***it_BAPIPARNR-PARTN_ROLE = 'RE'.

***it_BAPIPARNR-PARTN_NUMB = '0000000179'.

***it_BAPIPARNR-ITM_NUMBER = '000000'.

***append it_BAPIPARNR.

it_BAPIPARNRC-DOCUMENT = '000000375'.

it_BAPIPARNRC-ITM_NUMBER = '000000'.

it_BAPIPARNRC-UPDATEFLAG = 'U'.

it_BAPIPARNRC-PARTN_ROLE = 'WE'.

it_BAPIPARNRC-P_NUMB_OLD = '0000000171'.

it_BAPIPARNRC-P_NUMB_NEW = '0000000179'.

***it_BAPIPARNRC-ADDRESS = '26324'.

it_BAPIPARNRC-ADDR_LINK = '0000000003'.

***it_BAPIPARNRC-REFOBJTYPE = 'BUS2032'.

***it_BAPIPARNRC-REFOBJKEY = '000000375'.

append it_BAPIPARNRC.

data PARTNERADDRESSES like BAPIADDR1 occurs 0 with header line.

PARTNERADDRESSES-ADDR_NO = '0000000003'.

PARTNERADDRESSES-NAME = 'Test Cust'.

PARTNERADDRESSES-STREET = '222nd AVE'.

PARTNERADDRESSES-NAME_2 = 'NEW Bldg A2'.

PARTNERADDRESSES-CITY = 'MILPITAS'.

***PARTNERADDRESSES-REGION = 'CA'.

PARTNERADDRESSES-POSTL_COD1 = '950351'.

PARTNERADDRESSES-COUNTRY = 'IN'.

PARTNERADDRESSES-LANGU = 'E'.

APPEND PARTNERADDRESSES. CLEAR PARTNERADDRESSES.

*it_BAPISDITMX-ITM_NUMBER = '00010'.

*it_BAPISDITMX-UPDATEFLAG = 'U'.

*it_BAPISDITMX-MATERIAL = 'X'.

*it_BAPISDITMX-CUST_GROUP = 'X'.

*append it_BAPISDITMX.

*it_BAPISDITM-ITM_NUMBER = '00010'.

*it_BAPISDITM-MATERIAL = '946'.

*append it_BAPISDITM.

break-point.

salesd = '0000000375'.

call function 'BAPI_SALESORDER_CHANGE'

exporting

salesdocument = salesd

ORDER_HEADER_IN = it_BAPISDH1

order_header_inx = it_BAPISDH1X

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH =

tables

  • ORDER_ITEM_IN = it_BAPISDITM

  • ORDER_ITEM_INX = it_BAPISDITMX

  • PARTNERS = it_BAPIPARNR

return = it_BAPIRET2

PARTNERCHANGES = it_BAPIPARNRC

PARTNERADDRESSES = PARTNERADDRESSES

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • SCHEDULE_LINES =

  • SCHEDULE_LINESX =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • CONDITIONS_IN =

  • CONDITIONS_INX =

  • EXTENSIONIN =

.

If sy-subrc = 0.

break-point.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.