如何使用cdhdr和cdpos显示kona表的" bosta"-协议状态旧值和新值?

2020-08-30 03:42发布

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

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


伙计们,我有一个要求,即程序要显示协议更改日志,但是在该更改日志中,它并不能显示最佳的旧值和新值,但是它可以显示其他字段。

在lt_hdr处将LOOP AT放入ls_hdr。
       清除ls_final。
       ls_final-username = ls_hdr-用户名。
       ls_final-udate = ls_hdr-udate。
       ls_final-utime = ls_hdr-utime。
       清除ls_konaind_konh。
       读取表lt_konaind_konh INTO ls_konaind_konh
       WITH KEY knumh = ls_hdr-objectid
       二进制搜索。
       如果sy-subrc EQ 0。
         ls_final-knuma = ls_konaind_konh-knuma。
         ls_final-kschl = ls_konaind_konh-kschl。
         ls_final-bosta = ls_konaind_konh-bosta。  "添加于19-11-19
         案例ls_konaind_konh-kotabnr。
           时614。
             将表lt_a614读入ls_a614
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a614-datab。
               ls_final-datbi = ls_a614-datbi。
               ls_final-vkorg = ls_a614-vkorg。
               ls_final-vtweg = ls_a614-vtweg。
               ls_final-kunnr = ls_a614-kunnr。
             万一。
           751时
             将表lt_a751读入ls_a751
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a751-datab。
               ls_final-datbi = ls_a751-datbi。
               ls_final-kunnr = ls_a751-kunnr。
             万一。
           时616。
             将表lt_a616读入ls_a616
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a616-datab。
               ls_final-datbi = ls_a616-datbi。
               ls_final-fgnum = ls_a616-irm_fgnum。
               ls_final-ftt = ls_a616-zz_ftt_nature。
             万一。
           605。
             将表lt_a605读入ls_a605
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a605-datab。
               ls_final-datbi = ls_a605-datbi。
               ls_final-vkorg = ls_a605-vkorg。
               ls_final-vtweg = ls_a605-vtweg。
             万一。
           当别人。
         结束。
       其他。
         清除lv_knuma1。
         lv_knuma1 = ls_hdr-objectid。
         ls_final-knuma = lv_knuma1。
         读取表lt_kona INTO ls_kona
         WITH KEY knuma = lv_knuma1
         二进制搜索。
         如果sy-subrc EQ 0。
           ls_final-bosta = ls_kona-bosta。  "添加于19-11-19
           ls_final-datab = ls_kona-datab。
           ls_final-datbi = ls_kona-datbi。
         万一。
       万一。

       清除ls_pos。
       读取表lt_pos INTO ls_pos
       WITH KEY objectid = ls_hdr-objectid
                objectclas = ls_hdr-objectclas
                changenr = ls_hdr-changenr
       二进制搜索。
       如果sy-subrc EQ 0。
         DATA(lv_tabix)= sy-tabix。
         从lv_tabix将lt_pos循环到ls_pos。
           IF ls_pos-changenr <> ls_hdr-changenr。
             出口。
           万一。
           ls_final-fname = ls_pos-fname。
           ls_final-chngind = ls_pos-chngind。
           清除ls_final-desc。
           将表lt_dd04t读入ls_dd04t
           WITH KEY rollname = ls_pos-fname
           二进制搜索。
           如果sy-subrc EQ 0。
             ls_final-desc = ls_dd04t-scrtext_l。

           万一。
           将表lt_zfi009读入ls_zfi009
           WITH KEY fname = ls_pos-fname
           二进制搜索。
           如果sy-subrc EQ 0。
             ls_final-desc = ls_zfi009-descr。
           万一。
           如果ls_final-kschl EQ zcl_vx_global_mh => c_kschl_zbn1。
             IF ls_final-fname EQ'KBETR'。
               ls_final-value_new = ls_pos-value_new/10。
               ls_final-value_old = ls_pos-value_old/10。
               压缩ls_final-value_new。
               压缩ls_final-value_old。
             万一。
           其他。
             ls_final-value_new = ls_pos-value_new。
             ls_final-value_old = ls_pos-value_old。
           万一。

           如果ls_final-kschl是INITIAL。
             ls_final-section ='Header'(004)。
           其他。
             ls_final-section ='Rule'(005)。
           万一。

           IF ls_final-fname EQ'KEY'。  " AND ls_final-chngind均衡器'I'。
             ls_final-desc ='已创建'(006)。

           万一。
           IF ls_final-fname EQ'STPRL'。
             通话功能" CONVERSION_EXIT_PARVW_OUTPUT"
               出口
                 输入= ls_final-value_new
               输入
                 输出= ls_final-value_new。
           万一。
           如果ls_final-fname EQ'AEZET'
           或ls_final-fname EQ'PMPAR'
           或ls_final-fname EQ'OWNER'或ls_final-fname EQ'OWROL'
           或ls_final-fname EQ'PMPRL'或ls_final-fname EQ'VAKEY'。
           ELSEIF ls_final-fname EQ'DATAB'
           或ls_final-fname EQ'DATBI'。
             lv_datab = ls_final-value_old。
             如果lv_datab是INITIAL或lv_datab EQ空间。
             其他。
               追加ls_final至gt_final。
             万一。
             清除lv_datab。
           其他。
             追加ls_final至gt_final。
           万一。
           清除:ls_final-fname,ls_final-chngind,ls_final-desc,
                  ls_final-value_old,ls_final-value_new,
                  ls_final-section。
         结局。
 

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

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


伙计们,我有一个要求,即程序要显示协议更改日志,但是在该更改日志中,它并不能显示最佳的旧值和新值,但是它可以显示其他字段。

在lt_hdr处将LOOP AT放入ls_hdr。
       清除ls_final。
       ls_final-username = ls_hdr-用户名。
       ls_final-udate = ls_hdr-udate。
       ls_final-utime = ls_hdr-utime。
       清除ls_konaind_konh。
       读取表lt_konaind_konh INTO ls_konaind_konh
       WITH KEY knumh = ls_hdr-objectid
       二进制搜索。
       如果sy-subrc EQ 0。
         ls_final-knuma = ls_konaind_konh-knuma。
         ls_final-kschl = ls_konaind_konh-kschl。
         ls_final-bosta = ls_konaind_konh-bosta。  "添加于19-11-19
         案例ls_konaind_konh-kotabnr。
           时614。
             将表lt_a614读入ls_a614
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a614-datab。
               ls_final-datbi = ls_a614-datbi。
               ls_final-vkorg = ls_a614-vkorg。
               ls_final-vtweg = ls_a614-vtweg。
               ls_final-kunnr = ls_a614-kunnr。
             万一。
           751时
             将表lt_a751读入ls_a751
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a751-datab。
               ls_final-datbi = ls_a751-datbi。
               ls_final-kunnr = ls_a751-kunnr。
             万一。
           时616。
             将表lt_a616读入ls_a616
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a616-datab。
               ls_final-datbi = ls_a616-datbi。
               ls_final-fgnum = ls_a616-irm_fgnum。
               ls_final-ftt = ls_a616-zz_ftt_nature。
             万一。
           605。
             将表lt_a605读入ls_a605
             WITH KEY knumh = ls_konaind_konh-knumh
             二进制搜索。
             如果sy-subrc EQ 0。
               ls_final-datab = ls_a605-datab。
               ls_final-datbi = ls_a605-datbi。
               ls_final-vkorg = ls_a605-vkorg。
               ls_final-vtweg = ls_a605-vtweg。
             万一。
           当别人。
         结束。
       其他。
         清除lv_knuma1。
         lv_knuma1 = ls_hdr-objectid。
         ls_final-knuma = lv_knuma1。
         读取表lt_kona INTO ls_kona
         WITH KEY knuma = lv_knuma1
         二进制搜索。
         如果sy-subrc EQ 0。
           ls_final-bosta = ls_kona-bosta。  "添加于19-11-19
           ls_final-datab = ls_kona-datab。
           ls_final-datbi = ls_kona-datbi。
         万一。
       万一。

       清除ls_pos。
       读取表lt_pos INTO ls_pos
       WITH KEY objectid = ls_hdr-objectid
                objectclas = ls_hdr-objectclas
                changenr = ls_hdr-changenr
       二进制搜索。
       如果sy-subrc EQ 0。
         DATA(lv_tabix)= sy-tabix。
         从lv_tabix将lt_pos循环到ls_pos。
           IF ls_pos-changenr <> ls_hdr-changenr。
             出口。
           万一。
           ls_final-fname = ls_pos-fname。
           ls_final-chngind = ls_pos-chngind。
           清除ls_final-desc。
           将表lt_dd04t读入ls_dd04t
           WITH KEY rollname = ls_pos-fname
           二进制搜索。
           如果sy-subrc EQ 0。
             ls_final-desc = ls_dd04t-scrtext_l。

           万一。
           将表lt_zfi009读入ls_zfi009
           WITH KEY fname = ls_pos-fname
           二进制搜索。
           如果sy-subrc EQ 0。
             ls_final-desc = ls_zfi009-descr。
           万一。
           如果ls_final-kschl EQ zcl_vx_global_mh => c_kschl_zbn1。
             IF ls_final-fname EQ'KBETR'。
               ls_final-value_new = ls_pos-value_new/10。
               ls_final-value_old = ls_pos-value_old/10。
               压缩ls_final-value_new。
               压缩ls_final-value_old。
             万一。
           其他。
             ls_final-value_new = ls_pos-value_new。
             ls_final-value_old = ls_pos-value_old。
           万一。

           如果ls_final-kschl是INITIAL。
             ls_final-section ='Header'(004)。
           其他。
             ls_final-section ='Rule'(005)。
           万一。

           IF ls_final-fname EQ'KEY'。  " AND ls_final-chngind均衡器'I'。
             ls_final-desc ='已创建'(006)。

           万一。
           IF ls_final-fname EQ'STPRL'。
             通话功能" CONVERSION_EXIT_PARVW_OUTPUT"
               出口
                 输入= ls_final-value_new
               输入
                 输出= ls_final-value_new。
           万一。
           如果ls_final-fname EQ'AEZET'
           或ls_final-fname EQ'PMPAR'
           或ls_final-fname EQ'OWNER'或ls_final-fname EQ'OWROL'
           或ls_final-fname EQ'PMPRL'或ls_final-fname EQ'VAKEY'。
           ELSEIF ls_final-fname EQ'DATAB'
           或ls_final-fname EQ'DATBI'。
             lv_datab = ls_final-value_old。
             如果lv_datab是INITIAL或lv_datab EQ空间。
             其他。
               追加ls_final至gt_final。
             万一。
             清除lv_datab。
           其他。
             追加ls_final至gt_final。
           万一。
           清除:ls_final-fname,ls_final-chngind,ls_final-desc,
                  ls_final-value_old,ls_final-value_new,
                  ls_final-section。
         结局。
 
付费偷看设置
发送
1条回答
spaceman01
1楼-- · 2020-08-30 03:54

应酬从表CDPOS读取时,将COND_B传递给OBJECTCLAS,

VALUE_NEW和VALUE_OLD字段将给出 您的新旧价值观

一周热门 更多>