• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
^ω^SAp傻X^o^
博客园    首页    新随笔    联系   管理    订阅  订阅
关于SAP CRM 的自定义日期类型第一次保存时没有修改记录的处理

问题的显示:

image

 第一次输入的日期,保存之后在修改记录里却显示的是当前用户查看的时间。这很离谱。。。

找了一下底表,确实就是没有,所以最后默认了当前时间。。。

image

 CDPOS里虽然有记录,但是FNAME竟然是KEY,而且VALUE_NEW和VALUE_OLD都是空。。。

为了修复这个问题,找了一下SCDO,找到对应的修改记录函数和类型:

image

 因为这个函数CRM_ORDER_WRITE_DOCUMENT是自动生成的,所以安全起见不在这里修改。找到下一层的修改函数:CHANGEDOCUMENT_MULTIPLE_CASE

测试了在第一次输入Z类型的日期时,NEW是多一条记录的。

所以,最简单的办法就是给OLD也加一条,这样后面在对比的时候会认为是修改记录,会记录新值和旧值。(默认第一次修改是不记录新旧值得)

IF TABLENAME = 'CRMA_DATES'."限制日期类型才走逻辑
  DATA:LINE_NEW TYPE I,
       LINE_OLD TYPE I,
       LV_INDEX TYPE I,
       GW_NEW   TYPE VCRMA_DATES,
       GW_OLD   TYPE VCRMA_DATES.
  FIELD-SYMBOLS:<NEW_LINE> TYPE ANY,
                <OLD_LINE> TYPE ANY,
                <VALU>     TYPE ANY.
  DESCRIBE TABLE TABLE_NEW LINES LINE_NEW.
  DESCRIBE TABLE TABLE_OLD LINES LINE_OLD.
  IF LINE_NEW > LINE_OLD."比较新值表和旧值表是不是不一致
    LOOP AT TABLE_NEW INTO GW_NEW.
      LV_INDEX = SY-TABIX.
      ASSIGN COMPONENT 'APPT_TYPE' OF STRUCTURE GW_NEW TO <NEW_LINE>.
      READ TABLE TABLE_OLD INTO GW_OLD INDEX LV_INDEX.
      IF SY-SUBRC = 0.
        ASSIGN COMPONENT 'APPT_TYPE' OF STRUCTURE GW_OLD TO <OLD_LINE>.
        IF <NEW_LINE> <> <OLD_LINE>.”判断新旧两表相同位序的日期类型是不是不同
          ASSIGN COMPONENT 'TIMESTAMP_FROM' OF STRUCTURE GW_NEW TO <VALU>.
          IF <VALU> IS NOT INITIAL."把日期置空,默认从空改到新值
            <VALU> = '00000000000000'.
          ENDIF.
          INSERT GW_NEW INTO TABLE_OLD INDEX LV_INDEX.
        ENDIF.
      ELSE.”防止新值在最后一行
        ASSIGN COMPONENT 'TIMESTAMP_FROM' OF STRUCTURE GW_NEW TO <VALU>.
        IF <VALU> IS NOT INITIAL.
          <VALU> = '00000000000000'.
        ENDIF.
        INSERT GW_NEW INTO TABLE_OLD INDEX LV_INDEX.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.

 

增强之后效果:

image

 第一次的记录已经有了,完工

 

^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
posted on 2025-11-18 11:08  ^ω^SAP傻X^o^  阅读(8)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3