ABAP-根据装运编号批量创建装运成本VI01

举报
Mr_blank 发表于 2025/08/14 10:01:09 2025/08/14
【摘要】 告别忙碌低效!本文提供示例,帮助您用更少时间完成更多高质量工作,重获工作与生活平衡。
  TYPES: BEGIN OF v54a0_refobj,
           vttkf   LIKE vttkf,
           tvtk    LIKE tvtk,
           ttds    LIKE ttds,
           vttp    TYPE v54a0_vttp_tab,
           vtrlk   TYPE v54a0_vtrlk_tab,
           vtrlp   TYPE v54a0_vtrlp_tab,
           vtrlp_c TYPE v54a0_vtrlp_tab,
           vtrlp_s TYPE v54a0_vtrlp_tab,
           vttsf   TYPE v54a0_vttsf_tab,
           vtsp    TYPE v54a0_vtsp_tab,
           vbpa    TYPE v54a0_vbpa_tab,
           vbadr   TYPE v54a0_vbadr_tab,
           vbplk   TYPE v54a0_vbplk_tab,
           vbplp   TYPE v54a0_vbplp_tab,
*       "DUMMY01=Dummy-field,length 1,type C- section f.   IS2ERP
*        can then be enhanced by enhancment-point static  "IS2ERP
           dummy01. INCLUDE rv54a0_refobj_enh. TYPES:       "IS2ERP
*        Additional types after enhancement are possible  "IS2ERP
  END OF v54a0_refobj,
  v54a0_refobj_tab TYPE v54a0_refobj OCCURS 1.
  DATA:g_shp_wa  TYPE v54a0_refobj.
  DATA:g_shp_tab TYPE v54a0_refobj_tab.
  DATA:t180 LIKE t180.
  DATA:tvtf LIKE tvtf.

  TYPES: BEGIN OF v54a0_scdd,
           fknum  LIKE vfkk-fknum,
           change LIKE vfkkd-updkz,
           x      TYPE v54a0_scd,
           y      TYPE v54a0_scd,
           tvtf   LIKE tvtf,
         END OF v54a0_scdd.
  TYPES: v54a0_scdd_tab TYPE v54a0_scdd OCCURS 1.
  DATA: g_scd_tab          TYPE v54a0_scdd_tab.
  DATA: g_scd_wa           TYPE v54a0_scdd.
  DATA:l_msg_text TYPE string.
  PERFORM shp_read USING '0002294602' g_shp_tab g_shp_wa t180.
  CHECK NOT G_SHP_TAB IS INITIAL.

  "TVTF_READ
  CALL FUNCTION 'SD_SCD_TYPE_DETERMINE'
    EXPORTING
      i_fkart        = ''
      i_tvtk         = g_shp_wa-tvtk
      i_refobj       = g_shp_wa
    IMPORTING
      e_tvtf         = tvtf
    EXCEPTIONS
      not_determined = 1
      not_found      = 2.

  "SCD_CREATE
  CALL FUNCTION 'SD_SCD_INITIALIZE'
    EXPORTING
      i_tvtf                   = tvtf
      i_prsdt                  = '00000000' "vfkk-prsdt
      i_budat                  = '00000000' "vfkk-budat
      i_refobj                 = g_shp_wa
    CHANGING
      c_scd                    = g_scd_wa
    EXCEPTIONS
      planning_point_not_valid = 1
      scd_type_not_valid       = 2
      scd_create_not_possible  = 3
      OTHERS                   = 4.

        IF NOT ( sy-subrc IS INITIAL ).
          " 获取消息文本
          CALL FUNCTION 'FORMAT_MESSAGE'
            EXPORTING
              id        = sy-msgid
*             lang      = sy-langu
              no        = sy-msgno
              v1        = sy-msgv1
              v2        = sy-msgv2
              v3        = sy-msgv3
              v4        = sy-msgv4
            IMPORTING
              msg       = l_msg_text
            EXCEPTIONS
              not_found = 1
              OTHERS    = 2.
        ENDIF.

        CHECK l_msg_text IS INITIAL.

  APPEND g_scd_wa TO g_scd_tab.
  SORT g_scd_tab BY fknum.

* SCD save 需验证增强功能
  CALL FUNCTION 'SD_SCDS_SAVE'
    EXPORTING
      i_t180            = t180
      i_opt_update_task = 'X'
      i_refobj_tab      = g_shp_tab
    CHANGING
      c_scd_tab         = g_scd_tab
    EXCEPTIONS
      no_change         = 1
      no_save           = 2                                 "V_n_1027907
      OTHERS            = 3.

  IF sy-subrc = 0.
    COMMIT WORK.
  ENDIF.
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。