Client Copy后的号码段重复
Client Copy后,因为号码段(Number Range)在缓冲区还有旧值,容易导致更新失败,运行时错误:SAPSQL_ARRAY_INSERT_DUPREC。
下面程序可以清空缓冲区,使得NUMBER_GET_NEXT取数的时候根据表NRIV的值来取。
*&---------------------------------------------------------------------*
*& Report Z_BARRY_TEST
*&
*&---------------------------------------------------------------------*
*& 重置NUMBER RANGE缓冲区
*&---------------------------------------------------------------------*
REPORT z_barry_test.
TABLES: noselect,bnriv .
DATA: opcode TYPE x,
reset_mode TYPE x.
PARAMETERS: client LIKE noselect-client DEFAULT sy-mandt,
object LIKE noselect-object,
subobj LIKE noselect-subobject,
rangnr LIKE noselect-nrrangenr,
toyear LIKE noselect-toyear,
global LIKE noselect-norsetglob AS CHECKBOX DEFAULT 'X'.
AT SELECTION-SCREEN OUTPUT.
%_client_%_app_%-text = 'MANDT'.
%_object_%_app_%-text = '对象'.
%_subobj_%_app_%-text = '子对象'.
%_rangnr_%_app_%-text = '范围'.
%_toyear_%_app_%-text = '年'.
%_global_%_app_%-text = '针对所有应用服务器,不打勾的话只针对当前服务器'.
START-OF-SELECTION.
noselect-client = client.
noselect-object = object.
noselect-subobject = subobj.
noselect-nrrangenr = rangnr.
noselect-toyear = toyear.
noselect-norsetglob = global.
MOVE-CORRESPONDING noselect TO bnriv.
IF global = ''.
reset_mode = 1.
ELSE.
reset_mode = 2.
ENDIF.
opcode = 3.
CALL 'ThNoCall' ID 'OPCODE' FIELD opcode
ID 'BNRIV' FIELD noselect
ID 'RESETMODE' FIELD reset_mode.
MESSAGE s000(oo) WITH '重置完毕'.
总结
以上是生活随笔为你收集整理的Client Copy后的号码段重复的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: SAP中用json数据格式调用http接
- 下一篇: SAP CS模块拓展项目实施建议书