I have the following scenario:
I am using BAPI BAPI_BUPR_RELATIONSHIP_CHANGE
to change validuntildate
. (BUT050-DATE_TO
/ BUT051-DATE_TO
).
But I also need to update field BUT051-PAFKT
and a custom field in BUT050
(lets call it ZZFIELD
).
I do this by updating BUT050
/ BUT051
from internal tables.
At the end, if I write COMMIT WORK
or call FM BAPI_TRANSACTION_COMMIT
, only the fields from BAPI_BUPR_RELATIONSHIP_CHANGE
will be updated. If I do not write anything at the end, only the field from UPDATE FROM TABLE
will be updated.
How can I update all my fields?
Are there any BAPI that can allow me to modify BUT051-PAFKT
and custom fields from BUT050
?
Sample code for testing:
DATA: lt_return TYPE bapiret2_t,
lv_kunnr TYPE kunnr VALUE '111',
lv_partner TYPE bu_partner VALUE '222',
lv_rel_cat TYPE bu_reltyp VALUE 'BUR001',
lv_new_date TYPE sy-datum VALUE '20300101',
lt_but051 TYPE TABLE OF but051.
CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_CHANGE'
EXPORTING
businesspartner1 = lv_kunnr
businesspartner2 = lv_partner
relationshipcategory = lv_rel_cat
validfromdate = sy-datum
validuntildate = sy-datum
validuntildatenew = lv_new_date
datetox = abap_true
TABLES
RETURN = lt_return.
SELECT *
FROM but051
INTO TABLE lt_but051
WHERE partner1 = lv_kunnr
AND partner2 = lv_partner
AND reltyp = lv_rel_cat.
LOOP AT lt_but051 ASSIGNING FIELD-SYMBOL(<ls_but051>).
<ls_but051>-pafkt = '0003'.
ENDLOOP.
UPDATE but051 FROM TABLE lt_but051.
COMMIT WORK.