Спасибо, Aleqs.
Приведенное решение:
Code:
PERFORM update_with_tables(sapup50r) TABLES tbuff
buffer_dir
psoper
payr_buffer
del_pclx_tab
USING 'X'.
действительно решило проблему, но параллельно взглянул еще на другие проги и чаще используется(или мне так попалось)
PERFORM prepare_update USING 'V'. (из RPPPXM00 "R/3-модули : обращение с PCL1(2)-буферами")
И теперь код выглядит у меня так:
Code:
FORM write_g1. "K11K085383
* DATA: BEGIN OF PSOPER OCCURS 10.
* INCLUDE STRUCTURE PRELP.
* DATA: OPERA.
* DATA: END OF PSOPER.
g1-version-saprl = sy-saprl.
g1-version-uname = sy-uname. "ALRK016141
g1-version-datum = sy-datum. "ALRK016141
g1-version-uzeit = sy-uzeit. "ALRK016141
g1-version-pgmid = sy-repid. "ALRK016141
SORT ga BY budat ruckr.
SORT: gp, ge, gk.
rp-exp-c1-g1.
IF rp-imp-g1-subrc EQ 0.
* обновляем данные в PCL1(g1)
PERFORM prepare_update USING 'V'.
* а можно и так
* PERFORM update_with_tables(sapup50r) TABLES tbuff
* buffer_dir
* psoper
* payr_buffer
* del_pclx_tab
* USING 'X'.
ELSE.
IF main-subrc EQ 12.
MESSAGE a319(53) WITH 'G1'. "Keine Cluster-Berechtigung
ELSE.
MESSAGE a404(53) WITH g1-key. "Export-Fehler
ENDIF.
ENDIF.
ENDFORM.