• 001infor record 计划时间取值增强-20150622


    ZMD_MRP_PARAMETERS
    3000
    公司下工厂跑MRP时,如果为外购则通过外挂表取infor record计划交期。

     

    METHOD if_ex_md_mrp_parameters~adjust_material_master_params.
      TYPES:BEGIN  OF ieord,
             matnr TYPE c LENGTH 18,
             werks TYPE c LENGTH 4,
             zeord TYPE n LENGTH 5,
             vdatu TYPE d,
             bdatu TYPE d,
             lifnr TYPE c LENGTH 10,
             reswk TYPE c LENGTH 4,
             ekorg TYPE c LENGTH 4,
    *       IGMNG type p length 13 decimals 3,
            END OF ieord.
      DATA: it_eord TYPE STANDARD TABLE OF ieord,
            il_eord TYPE ieord.
    
      DATA:output  TYPE char40,
         l_addrstr TYPE ni_nodeaddr.
    *&add by rainy on 20150604.
    *&通过ip break.
    *  CALL FUNCTION 'TH_USER_INFO'
    *    IMPORTING
    *      terminal = output
    *      addrstr  = l_addrstr.
    *  IF l_addrstr = '192.168.0.200' .
    *    BREAK-POINT.
    *  ENDIF.
      break test_13.
    *&->end add by rainy on 20150604.
    
      IF sy-cprog = 'RMMRP000' OR sy-tcode = 'MD01' OR sy-tcode = 'MD02' OR sy-tcode = 'MD03'.
        CLEAR: it_eord, it_eord[], il_eord.
    *  break: pp10.
    *  if IM_MT61D-matnr = '22-05-500277-1'.
        SELECT matnr werks zeord vdatu bdatu lifnr reswk ekorg
          INTO CORRESPONDING FIELDS OF TABLE it_eord
          FROM eord
         WHERE werks = im_mt61d-werks
           AND matnr = im_mt61d-matnr.
    
    *&->add by rainy on 20150603--- DEVK905062
    *& 定义
        TYPES:gt_eine TYPE STANDARD TABLE OF eine.
        DATA: wa_eine TYPE eine.
        DATA: wa_zextsource TYPE zextsource.
    
    *&->end add by rainy on 20150603
        LOOP AT it_eord INTO il_eord.
    
          IF il_eord-reswk = '1000'. "and sy-datum >= il_eord-VDATU and sy-datum <= il_eord-BDATU.
    * select single WEBAZ into CH_MT61D_EXT-WEBAZ    "袁生确认只在3000工厂维护内外购统一的收货处理时间
    *   from marc
    *  where werks = '1000'
    *    and matnr = IM_MT61D-matnr.
    * if sy-subrc <> 0.
    *    CH_MT61D_EXT-WEBAZ = 0.
    * endif.
    
    *&A1.外挂表zextsource取货源(物料+工厂->采购组+供应商)
            SELECT SINGLE *
              INTO wa_zextsource
              FROM zextsource
             WHERE matnr EQ im_mt61d-matnr
               AND werks EQ im_mt61d-werks.
    *&
            IF sy-subrc EQ 0.
    *&A2.通过物料+工厂(‘1000’)+zextsource货源找info record 的计划交货时间
              SELECT SINGLE aplfz INTO ch_mt61d_ext-plifz"* INTO CORRESPONDING FIELDS OF wa_eine
                FROM eine
                JOIN eina
                  ON eine~infnr EQ eina~infnr
               WHERE eina~matnr EQ im_mt61d-matnr
                 AND eina~lifnr EQ wa_zextsource-lifnr
                 AND eina~loekz NE 'X'
    
                 AND eine~werks EQ '1000'
                 AND eine~ekorg EQ wa_zextsource-ekorg.
              IF sy-subrc <> 0.
                ch_mt61d_ext-plifz = 0.
              ENDIF.
              ch_changed = 'X'.
    
            ELSE.
    * MESSAGE '外挂表没有维护' im_mt61d-matnr im_mt61d-werks '货源信息'
    *&A3.当外挂表没有数据,按照原来逻辑。
              SELECT SINGLE aplfz
                       INTO ch_mt61d_ext-plifz
                       FROM eine
                      INNER JOIN eina
                         ON eine~infnr = eina~infnr
                      INNER JOIN eord
                         ON eord~werks = eine~werks
                        AND eord~matnr = eina~matnr
                        AND eord~lifnr = eina~lifnr
                        AND eord~ekorg = eine~ekorg
                      WHERE eord~matnr = im_mt61d-matnr
                        AND eord~werks = '1000'
                        AND eina~loekz <> 'X'.
              IF sy-subrc <> 0.
                ch_mt61d_ext-plifz = 0.
              ENDIF.
              ch_changed = 'X'.
    
            ENDIF.
    
    *&->start notes by rainy on 20150603.
    *&->前期逻辑注释
    *   SELECT SINGLE aplfz INTO ch_mt61d_ext-plifz
    *   FROM eine INNER JOIN eina
    *   ON eine~infnr = eina~infnr
    *   INNER JOIN eord
    *   ON eord~werks = eine~werks
    *   AND eord~matnr = eina~matnr
    *   AND eord~lifnr = eina~lifnr
    *   AND eord~ekorg = eine~ekorg
    *   WHERE eord~matnr = im_mt61d-matnr
    *     AND eord~werks = '1000'
    *     AND eina~loekz <> 'X'.
    *      IF sy-subrc <> 0.
    *        ch_mt61d_ext-plifz = 0.
    *      ENDIF.
    *      ch_changed = 'X'.
    *&->end notes by riany on 20150603.
    
          ENDIF.
          CLEAR il_eord.
        ENDLOOP.
    
      ENDIF.
    ENDMETHOD.



  • 相关阅读:
    转发与重定向的区别
    Servlet开发详讲
    Servlet的常见错误
    HTTP请求方式之POST和GET的区别
    Spring各种类型数据的注入
    Spring容器的基本使用
    Python接口自动化-测试用例编写
    Python接口自动化-设计测试用例
    python简明教程之数据结构(列表、元组、字典、集合)
    python简明教程之函数
  • 原文地址:https://www.cnblogs.com/rainysblog/p/6731431.html
Copyright © 2020-2023  润新知