03-29-2022 8:56 AM
I am in user exit USEREXIT_FILL_VBRK_VBRP
and I want to insert into a record in vbpa but for a different partner:
Select SINGLE *
from vbpa
where vbeln eq @vbrp-vbeln
INTO table @data(lt_vbpa).
READ TABLE lt_vbpa INTO data(ls_vbpa) with key parvw = 'PY'.
IF sy-subrc ne 0.
READ TABLE lt_vbpa INTO data(ls_vb) with key parvw = 'SE'.
IF sy-subrc eq 0.
ls_vb-parvw = 'PY'.
>>>>>insert record into vbpa but with a different partner
ENDIF.
ENDIF.
What function module can I use,or can do it in other way?
Thank you
03-29-2022 3:18 PM
To add change the partner you add one with the following code. Dont forget to BAPI_TRANSACTION_COMMIT
ls_bapisdh1x-updateflag = 'U'.
ls_partner-partn_role = ls_vb-parvw.
ls_partner-partn_numb = ls_vb-kunnr.
ls_partner-itm_number = ls_vb-posnr.
ls_partner-unload_pt = ls_vb-ablad.
ls_partner-country = ls_vb-land1.
ls_partner-address = ls_vb-adrnr.
ls_partner-priv_addr = ls_vb-adrnp.
ls_partner-transpzone = ls_vb-lzone.
ls_partner-vat_reg_no = ls_vb-stceg.
APPEND ls_partner to lt_partners.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = ls_vb-vbeln
order_header_inx = ls_bapisdh1x
TABLES
return = lt_return
PARTNERS = lt_partners.
03-29-2022 9:44 AM
It is really strange to update a business table without using a business transaction to do it.
03-29-2022 9:47 AM
I want to insert a record for a different partner but not update any record. frdric.girod
03-29-2022 9:49 AM
You change the content of the table as you create a new entry. Are you sure SAP do nothing when a new partner is inserted ? sure ?
03-29-2022 9:52 AM
no idea what it does. I've just been assigned this task. frdric.girod
03-29-2022 9:54 AM
03-29-2022 9:56 AM
03-29-2022 11:52 AM
dont know why it says
I'm filling:
ls_bapisdh1x-updateflag = 'U'.
ls_bapisdh1x-SALES_ORG = 'X'.
ls_bapisdh1x-DISTR_CHAN = 'X'.
ls_bapisdh1x-DIVISION = 'X'.
ls_bapisdh1x-PURCH_NO_C = 'X'.
ls_bapisdh1x-CUST_GROUP = 'X'.
ls_partnerchanges-DOCUMENT = ls_vb-vbeln.
ls_partnerchanges-DOCUMENT = ls_vb-vbeln.am I missing anything?
frdric.girod
03-29-2022 12:12 PM
when you have structure like ls_bapisdh1x, it is to indicate what you would like to change. For me you should not populate it
03-29-2022 1:14 PM
frdric.girod this is a must ls_bapisdh1x-updateflag = 'U'. but for some reason there are
dont know why
03-29-2022 1:31 PM
Hello Jonathan,
let's do a step back: why do you need that additional record? To save it in the invoice?
In this case you should work at the SAVE event instead that in creation.
Simone
03-29-2022 1:40 PM
simone.milesi somehow I managed to make it work by filling only the partners and not partner changes table in the bapi .are you saying this is wrong and I should make the changes in the save?
03-29-2022 1:48 PM
thank you frdric.girod somehow I managed to make it work. if you post the asnwer with the bapi I will accept as an answer.
The changes should have been made in vf01,so its okay.
thank you everyone
03-29-2022 1:49 PM
03-29-2022 3:18 PM
To add change the partner you add one with the following code. Dont forget to BAPI_TRANSACTION_COMMIT
ls_bapisdh1x-updateflag = 'U'.
ls_partner-partn_role = ls_vb-parvw.
ls_partner-partn_numb = ls_vb-kunnr.
ls_partner-itm_number = ls_vb-posnr.
ls_partner-unload_pt = ls_vb-ablad.
ls_partner-country = ls_vb-land1.
ls_partner-address = ls_vb-adrnr.
ls_partner-priv_addr = ls_vb-adrnp.
ls_partner-transpzone = ls_vb-lzone.
ls_partner-vat_reg_no = ls_vb-stceg.
APPEND ls_partner to lt_partners.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = ls_vb-vbeln
order_header_inx = ls_bapisdh1x
TABLES
return = lt_return
PARTNERS = lt_partners.