更改日期-更改者

2020-08-26 15:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我已经创建了一个自定义...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我已经创建了一个自定义表格。 除了自定义字段外,我们在此表中还需要" changed Date(AEDTM)"和" changed by"字段。

用户不会填写这些字段,系统应自动填写。

例如:每当创建新记录(使用sm31)时,更改的日期=今天的日期,并通过=用户名更改。

如何实现此目的?

有什么想法吗?

谢谢

克里希纳

5条回答
me_for_i
2020-08-26 16:40 .采纳回答

使用"表维护"事件可以填充这些字段。

您需要使用事件01

 FORM f_actions_event_01。
 如果vim_abort_saving是INITIAL。
   *更新更改历史记录字段
   包括ZZFSAI086_UPD_CHG_HSTY。
 万一。
 ENDFORM。  " f_actions_event_01
 

包含代码

数据:
   lv_index1 TYPE sy-tabix,"表'TOTAL'的索引
   lv_index2 TYPE sy-tabix,"表'EXTRACT'的索引
   lr_data TYPE REF TO数据,"参考数据对象"
   lv_action TYPE char1,"变量适用于View操作
   lv_mark TYPE char1。  "视标可变


 字段符号:
    TYPE ANY,"对于字段值
    TYPE any,"用于数据字符串
    TYPE x," from值的十六进制值
    TYPE x。  "十六进制值到值


 *使用表名动态创建数据对象
 创建数据lr_data类型(x_header-viewname)。
 ASSIGN lr_data-> *至。


 清除:lv_index1,lv_index2,lr_data。
 *遍历M.View中的所有记录
 合计。
   清除lv_index1。
   lv_index1 = sy-tabix。
   READ TABLE提取总含KEY。
   如果sy-subrc EQ 0。
     lv_index2 = sy-tabix。
   其他。
     清除lv_index2。
   万一。
   总分配到演员表。
   分配铸造。
    = 。
   移动:
   转到lv_action,
   至lv_mark。
   案例<动作>。
     当neuer_eintrag。  " 新的条目
 *如果在/日期之前创建了新的条目填充
       将结构的组件'CRNAM'分配给。
       如果sy-subrc = 0。
          = sy-uname。
       万一。
       将结构的组件" CRDAT"分配给。
       如果sy-subrc = 0。
          = sy数据。
       万一。
 *如果更改为/日期,例如 一个条目是
       复制的
      将结构的组件'AENAM'分配给。
       如果sy-subrc = 0。
         清除。
       万一。


       将结构的组件" AEDAT"分配给。
       如果sy-subrc = 0。
         清除。
       万一。


     当aendern。  "更新的条目
 *更新到现有条目,并按/日期更改
       将结构的组件'AENAM'分配到。
       如果sy-subrc = 0。
          = sy-uname。
       万一。


       将结构的组件'Aedat'分配到。
       如果sy-subrc = 0。
          = sy数据。
       万一。
   结束。


 *(对行总数进行所需的更改)


 *更改仅在更新或新条目时纳入。
   检查 EQ aendern或 EQ neuer_eintrag。
   清除:总计,提取。
   分配铸造。
   总分配到演员表。
    = 。
   移动:
   lv_action TO <动作>,
   lv_mark TO <标记>。
   总计总计lv_action lv_mark INTO总计。
   从总计INDEX lv_index1修改总计。
 *如有必要,请修改摘录
   检查lv_index2 GT 0。
   提取=总。
   从提取索引lv_index2中修改提取。
 结局。