克隆表NAST中的记录

2020-09-15 18:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好。 我有问题。 我在N...

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

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


大家好。

我有问题。

我在NAST表中有超过1000条记录,键KAPPL ='V5'和KSCHL ='ZRC1'。 其他关键领域并不重要。 我需要将此1000条记录克隆到其他键即1000条记录中,即

键KAPPL ='V5'和KSCHL ='ZRC1'的1000条记录===>键KAPPL ='V5'和KSCHL ='ZRC2'的1000条记录。

也许标准功能具有进行此克隆的工具?

p.s。 抱歉,我的英语不好。

6条回答
nice_wp
2020-09-15 18:40

对不起。 我们的顾问不想手动进行记录。 编写了程序。 源代码

表格:t685。

 数据:gv_error TYPE C,
       go_log类型参考zcl_log,
       gt_nast类型标准表。

 带有标题标题text-001的bl1块的选择屏幕开始。
 参数:p_kap_fr类型sna_kappl强制性,
             p_obj_fr TYPE na_objkey,
             p_ksc_fr类型sna_kschl义务。
 bl1的选择屏幕结尾。
 带有标题标题text-002的bl2块的选择屏幕开始。
 参数:p_kap_to类型sna_kappl强制性,
             p_ksc_to类型sna_kschl义务。
 块bl2的选择屏幕结束。

 选择开始。
   执行主要。

 选择结束。
   执行show_result。

 表格主要。
   go_log = zcl_log => factory()。

   执行check_sel_data。
   检查gv_error是否为INITIAL。

   执行get_data。

   检查gv_error是否为INITIAL。
   执行check_data。

   检查gv_error是否为INITIAL。
   执行prepare_data。

   执行save_data。

 ENDFORM。

 FORM check_sel_data。

   数据:lv_kap_to TYPE sy-msgv1,
         lv_ksc_to喜欢lv_kap_to。

   单选*
     从t685起
     哪里kvewe ='B'
       AND kappl = p_kap_to
       AND kschl = p_ksc_to。

   IF sy-subrc NE 0。
     gv_error = abap_true。

     将p_kap_to移动到lv_kap_to。
     将p_ksc_to移动到lv_ksc_to。

     go_log-> add(iv_msgty ='E'
                  iv_msgid ='ZMES_UTIL'
                  iv_msgno = 002
                  iv_msgv1 = lv_kap_to
                  iv_msgv2 = lv_ksc_to)。
   万一。

 ENDFORM。

 FORM get_data。

   数据:lt_where_tab(40)类型c。

   如果p_obj_fr不是INITIAL。
     lt_where_tab ='OBJKY = @P_OBJ_FR'。
   万一。

   选择 *
     进入表@gt_nast
     从纳斯特
     在哪里kappl = @p_kap_fr
       AND kschl = @p_ksc_fr
       AND(lt_where_tab)。

   如果gt_nast []是INITIAL。
     gv_error = abap_true。
     go_log-> add(iv_msgty ='E'
                  iv_msgid ='ZMES_UTIL'
                  iv_msgno = 000)。
   万一。

 ENDFORM。

 FORM check_data。

   数据:带有默认键的lt_nast类型标准列表
         lv_line_count类型sy-msgv1。

   选择NAST〜*
     进入表@lt_nast
     从纳斯特
     在哪里kappl = @p_kap_to
       AND kschl = @p_ksc_to。

   如果lt_nast []不是INITIAL。
     在lt_nast分配字段符号()处循环播放。
       读取表gt_nast分配字段符号()二进制搜索
         WITH KEY objky =  -objky
                  spras =  -spras
                  parnr =  -parnr
                  parvw =  -parvw
                  erdat =  -erdat
                  eruhr =  -eruhr。

       如果sy-subrc = 0。
          -kappl ='DL'。
       万一。
     结局。

     删除gt_nast WHERE kappl ='DL'。

   万一。

   如果gt_nast []是INITIAL。
     gv_error = abap_true。
     go_log-> add(iv_msgty ='E'
              iv_msgid ='ZMES_UTIL'
              iv_msgno = 000)。
   其他。
     描述表gt_nast LINES DATA(lv_count)。
     将lv_count移动到lv_line_count。
     go_log-> add(iv_msgty ='I'
              iv_msgid ='ZMES_UTIL'
              iv_msgno = 001
              iv_msgv1 = lv_line_count)。
   万一。

 ENDFORM。

 FORM prepare_data。

   在gt_nast分配字段符号()处循环播放。
      -kappl = p_kap_to。
      -kschl = p_ksc_to。
   结局。

 ENDFORM。

 FORM save_data。

   调用功能'Z _ ***** _ INSERT_NAST'在更新任务中
     出口
       it_nast = gt_nast。

 ENDFORM。

 FORM show_result。

   go_log-> display()。

 ENDFORM。

一周热门 更多>