欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Client Copy后的号码段重复

发布时间:2025/3/20 编程问答 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Client Copy后的号码段重复 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Client Copy后,因为号码段(Number Range)在缓冲区还有旧值,容易导致更新失败,运行时错误:SAPSQL_ARRAY_INSERT_DUPREC。

下面程序可以清空缓冲区,使得NUMBER_GET_NEXT取数的时候根据表NRIV的值来取。

*&---------------------------------------------------------------------*
*& Report Z_BARRY_TEST
*&
*&---------------------------------------------------------------------*
*& 重置NUMBER RANGE缓冲区
*&---------------------------------------------------------------------*

REPORT z_barry_test.

TABLESnoselect,bnriv .
DATAopcode TYPE x,
reset_mode 
TYPE x.

PARAMETERSclient 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 'ThNoCallID 'OPCODE' FIELD opcode
ID 'BNRIV' FIELD noselect
ID 'RESETMODE' FIELD reset_mode.

MESSAGE s000(ooWITH '重置完毕'.

总结

以上是生活随笔为你收集整理的Client Copy后的号码段重复的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。