Hi Friends,
I update billing plan (va42) using following code but not working successful can u please help me?
DATA: i_bsid LIKE bsid OCCURS 0,
i_bsid2 LIKE bsid OCCURS 0.
TABLES: bsid.
DATA: doc LIKE vbak-vbeln,
pos(6) TYPE n.
DATA e_fpla LIKE fpla.
DATA e_fplt LIKE fpltvb OCCURS 0 .
DATA: zfpla LIKE fplavb OCCURS 0,
zfplt LIKE fpltvb OCCURS 0 WITH HEADER LINE.
DATA zfplt2 LIKE fpltvb OCCURS 0 WITH HEADER LINE.
doc = '1252003987'.
pos = '000010'.
CALL FUNCTION 'SD_SALES_DOCUMENT_READ'
EXPORTING
document_number = doc.
CALL FUNCTION 'SD_SALES_BILLINGPLAN_READ'
EXPORTING
i_vbeln = doc
i_posnr = pos
IMPORTING
e_fpla = e_fpla
TABLES
e_fplt = e_fplt
EXCEPTIONS
no_billingplan_allowed = 1
no_billingplan_found = 2
OTHERS = 3.
IF sy-subrc ne 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Read the billing plan
CALL FUNCTION 'BILLING_SCHEDULE_READ'
EXPORTING
fplnr = e_fpla-fplnr
* I_VFKDAT =
* I_BFKDAT =
TABLES
zfpla = zfpla
zfplt = zfplt
.
* Upddate the ZFPLT2 table with the new values
MOVE zfplt TO zfplt2.
READ TABLE zfplt2 INDEX 1.
zfplt2-afdat = '20080927'.
*** Very important to set field updkz = 'U' ***
zfplt2-updkz = 'U'. "--> UPDATE!!
MODIFY zfplt2 INDEX 1.
CALL FUNCTION 'BILLING_SCHEDULE_SAVE'
TABLES
fpla_new = zfpla
fpla_old = zfpla
fplt_new = zfplt2 " --> NEW
fplt_old = zfplt.
CALL FUNCTION 'SD_SALES_DOCUMENT_SAVE'
EXPORTING
i_no_messages = ' '.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.