Application Development 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: 

Change partner on BAPI_SALESORDER_CHANGE

Former Member
0 Kudos

Hello,

I am using BAPI_SALESORDER_CHANGE, trying to change the sold-to party ('AG' or 'SP).

I have already used parameter partnerchanges, populating old_partner, new_partner, posnr '000000', updateflag = 'U' but I receive the msg that I cannot change the sold-to partner because on table TPAER, the non-modifiable flag is marked.

When I execute from VA02, it's ok. There are popus to redetermine a lot of atributes, but at the end it changes all the 4 standard partners. That's exactly what I want to do using BAPI.

Please.... I don't want to use batch-input!!!!

Thanks a lot,

Flavio.

3 REPLIES 3

Former Member
0 Kudos

Try changing the table entry in TPAER and see what it does.

Former Member
0 Kudos

See the following example pass data which u want to change

REPORT ZTEST_BAPI .

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. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT =

IMPORTING

RETURN =

. endif.

Former Member
0 Kudos

Hi,

If I change the table TPAER, it works, but I will not update it directly on my code, neither I will change the configuration.

When I execute VA02, I don't have to change the table TPAER before.

Actually, I've seen that VA02 first eliminate the partner and then insert it.

I've already tried to do this on my BAPI ( 2 lines in partnerchanges D and U ), but I receive the message that I can't delete the AG partner (this is a mandatory partner).

I've implemented the code as krupa jani said, but it did not work.

Thanks anyway.

Flavio.