写记录表的时候,如何产生唯一标识。

1.获取随机的唯一标识  (有可能系统版本较低,没有class if_system_uuid,可以使用2的方法)

  DATA: ldf_system_uuidTYPE REF TO if_system_uuid,
          ldf_uuid TYPE sysuuid_c32.
  ldf_system_uuid = cl_uuid_factory=>create_system_uuid( ).
  TRY.
      ldf_uuid = ldf_system_uuid->create_uuid_c32( ).
      e_uuid = ldf_uuid.
    CATCH cx_uuid_error.
  ENDTRY.
  IF i_LOG IS NOT INITIAL.
    "取得唯一的标识
    "如果唯一标识为空
    IF i_LOG-ZuidIS INITIAL .
      i_LOG-Zuid =ldf_uuid.
      e_uuid = ldf_uuid.
    ENDIF.

    MODIFY ZGR_ZZ_51_FT_001 FROM i_LOG.
    IF sy-subrcEQ 0.
      e_result = 'S'.
    ELSE.
      e_result = 'E'.
    ENDIF.
  ENDIF.

2. 首先使用snro 产生一个number range。然后在代码中使用。

CALLFUNCTION 'NUMBER_RANGE_ENQUEUE'
EXPORTING
OBJECT ='ZLC_001' "Ceate with SNUM
EXCEPTIONS
FOREIGN_LOCK =1
OBJECT_NOT_FOUND= 2
SYSTEM_FAILURE =3
OTHERS =4.

CALLFUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR ='00'
OBJECT ='ZLC_001'
IMPORTING
NUMBER =W_MATNR
EXCEPTIONS
INTERVAL_NOT_FOUND =1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND =3
QUANTITY_IS_0 =4
QUANTITY_IS_NOT_1 =5
INTERNAL_OVERFLOW =6
OTHERS =7.

CALLFUNCTION 'NUMBER_RANGE_DEQUEUE'
EXPORTING
OBJECT= 'ZLC_001'.

IFSY-SUBRC <> 0.
MESSAGEID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITHSY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值