前导0和删除前导0

背景:SAP中的物料号码需要18位,如果前面部分不够,要用0来补充.
前导0的位置一定要注意,不一定加在前面就可以,有时候需要写在 上一个循环中,前导0一般使用CONVERSION_EXIT_ALPHA_INPUT这个函数,删除前导0则使用shift.

一:代码截图

在这里插入图片描述

二:有前导0代码部分
LOOP AT lt_dz WHERE rsnum = ''.
    SELECT SINGLE pstat INTO l_pstat FROM mara WHERE matnr = lt_dz-matnr.
    SEARCH l_pstat FOR 'B'.
    IF sy-subrc <> 0.
      lt_dz-zsp = 'X'.
    ELSE.
      lt_dz-zsp = ''.
    ENDIF.
     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = lt_dz-KOSTL
        IMPORTING
          output = lt_dz-KOSTL.
    
    MODIFY lt_dz.
    l_zt-kostl = lt_dz-kostl.
    COLLECT l_zt.
    CLEAR:l_zt.
  ENDLOOP.
  LOOP AT l_zt.
    CLEAR: gm_header102,gm_item102,gm_item102[],reserv_no.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = l_zt-kostl
      IMPORTING
        output = l_zt-kostl.
    gm_header102-res_date   = sy-datum. "基准日期
    "gm_header102-plant      =  wa_i-werks. "工厂
    "gm_header-move_plant = wa_h-werks. "接收地点
    "gm_header-move_stloc = '4002'. "接收库存地.
    IF l_zt-kostl BETWEEN '0022000101' AND '0022000104'.
      gm_header102-move_type  = 'Z37'.
    ELSE.
      gm_header102-move_type  = '201'.
    ENDIF.
    gm_header102-costcenter = l_zt-kostl.
    gm_header102-created_by = sy-uname.
    "APPEND gm_header102.
    "TRANSLATE gm_header102 TO UPPER CASE.
    LOOP AT lt_dz WHERE kostl = l_zt-kostl AND zsp <> 'X' AND ( rsnum = '' OR rsnum = '0000000000').
      
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = lt_dz-matnr
        IMPORTING
          output = lt_dz-matnr .

      gm_item102-req_date     = sy-datum. "需求日期.
      gm_item102-movement     = 'X'. "许可的移动
      gm_item102-plant        = wa_h-werks.
      "取外部采购仓储地点
*{ modify by dufen 从zjcd表中获取发出库存地
      "SELECT SINGLE lgfsb INTO l_lgfsb FROM marc WHERE werks = wa_h-werks AND matnr = lt_dz-matnr.
      "gm_item102-stge_loc    = l_lgfsb.
*}
      gm_item102-stge_loc    = lt_dz-lgfsb."发出库存地
      gm_item102-material     =  lt_dz-matnr. "物料编码
      gm_item102-entry_qnt     = lt_dz-bdmng.    " 需求数量
      APPEND gm_item102.

      REFRESH zreturn1.
    ENDLOOP.
    IF  gm_item102[] IS INITIAL.
      l_msg = '没有可以生成预留的项目!'.
      CONTINUE.
    ENDIF.
三:删除前导0代码
SHIFT wa_dz-matnr LEFT DELETING LEADING '0'
4 Summary

In the sap, We often add before importing zero in the sap data table. If we transfer it to external system. Please delete 0.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值