动态生成唯一主键

23 篇文章 2 订阅
文章讨论了在生成动态TR时,如何处理主键问题,特别提及了使用numberrange方法,并考虑了当主键可能为32位字符时的解决方案,通过调用cl_rsmds_hash_utilities中的to_hash_c32函数进行哈希转换。
摘要由CSDN通过智能技术生成

这几天在做动态生成TR,看到标准程序根据source和target生成TR ID,永远是唯一的,突然我想到了以前的一个问题,如何处理dummy号的问题?之前的开发者用的是number range,如果主键可以是32位char,就可以用类似的方法做:

  DATA: l_data   TYPE rstran_s_hash,
        l_hash   TYPE rstranid,
        l_s_tran TYPE rstran,
        l_t_tran TYPE TABLE OF rstran,
        l_s_key  TYPE rstran_s_hash.

  l_data-sourcetype    = i_s_source-tlogo.
  l_data-sourcesubtype = i_s_source-subtype.
  l_data-sourcename    = i_s_source-objnm.
  l_data-targettype    = i_s_target-tlogo.
  l_data-targetsubtype = i_s_target-subtype.
  l_data-targetname    = i_s_target-objnm.

  TRY.
      CALL METHOD cl_rsmds_hash_utilities=>to_hash_c32
        EXPORTING
          i_data     = l_data
        RECEIVING
          r_hash_c32 = r_tranid.

    CATCH cx_rsmds_input_invalid_type.
      MESSAGE x000(rstran).                                 "#EC *
    CATCH cx_rsmds_input_invalid.
      MESSAGE x000(rstran).                                 "#EC *
  ENDTRY.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值