ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

采购信息记录bapi

2021-05-26 17:34:26  阅读:418  来源: 互联网

标签:bapi 记录 ORGA VALIDITY LIT LW EINE 采购 CONDITION


记录获取

* Call Function Module to check the Info Record
  CALL FUNCTION 'BAPI_INFORECORD_GETLIST'       "#EC CI_USAGE_OK[2438131]
    EXPORTING
      VENDOR              = C_W_ORGA-LIFNR
      MATERIAL_LONG       = C_W_ORGA-MATNR
    TABLES
      INFORECORD_GENERAL  = LIT_INFORE_GEN
      INFORECORD_PURCHORG = LIT_INFORE_PUR.

记录创建

  DATA:
    LIT_EINA         TYPE MEWIEINA_T,
    LW_EINA          TYPE MEWIEINA,
    LIT_EINAX        TYPE MEWIEINAX_T,
    LW_EINAX         TYPE MEWIEINAX_TY,
    LIT_EINE         TYPE MEWIEINE_T,
    LW_EINE          TYPE MEWIEINE_TY,
    LIT_EINEX        TYPE MEWIEINEX_T,
    LW_EINEX         TYPE MEWIEINEX_TY,
    LIT_VALIDITY     TYPE MEWIVALIDITY_TT,
    LW_VALIDITY      TYPE MEWIVALIDITY_TY,
    LIT_CONDITION    TYPE MEWICONDITION_TT,
    LW_CONDITION     TYPE MEWICONDITION_TY,
    LV_INDEX         TYPE NUM.

  DATA:LW_A017       TYPE TYP_W_A017.

  CLEAR:C_IT_RETURN.

  LW_EINA-MATERIAL = U_W_ORGA-MATNR.
  LW_EINA-VENDOR   = U_W_ORGA-LIFNR.
* CW_EINA-BASE_UOM = 'EA'.
* CW_EINA-PO_UNIT  = 'EA'.
  LW_EINA-CONV_NUM1 = 1."转换分子
  LW_EINA-CONV_DEN1 = 1."转换分母

  LW_EINAX-MATERIAL   = 'X'.
  LW_EINAX-VENDOR     = 'X'.
* CW_EINAX-BASE_UOM   = 'X'.
* CW_EINAX-PO_UNIT    = 'X'.
  LW_EINAX-CONV_NUM1  = 'X'.
  LW_EINAX-CONV_DEN1  = 'X'.

  APPEND LW_EINA TO LIT_EINA.
  CLEAR LW_EINA.

  APPEND LW_EINAX TO LIT_EINAX.
  CLEAR LW_EINAX.

  LOOP AT U_IT_PLANT_DATA ASSIGNING FIELD-SYMBOL(<LW_PLANT_DATA>)
  WHERE KUNNR = U_W_ORGA-KUNNR.

    LV_INDEX = LV_INDEX + 1.

  LW_EINE-EINE_INDX     = LV_INDEX.

*  PIR 类型值:0  标准 2  寄售 3  分包合同 P  管道1 可记帐
  LW_EINE-PURCH_ORG     = U_W_ORGA-VKORG1.
*  LW_EINE-PLANT         = U_W_ORGA-WERKS1.
  LW_EINE-PLANT         = <LW_PLANT_DATA>-WERKS.
  LW_EINE-INFO_TYPE     = '0'.
  LW_EINE-CONV_NUM1     = 1. "转换分子
  LW_EINE-CONV_DEN1     = 1  ."转换分母
  LW_EINE-PLND_DELRY    = U_W_ORGA-ZSPLT.
  READ TABLE U_IT_FIXED_VAL INTO DATA(LW_FIXED_VAL)
    WITH KEY KEY1 = CNS_EKGRP
             KEY2 = CNS_PIR.                             "#EC CI_STDSEQ
  LW_EINE-PUR_GROUP     = LW_FIXED_VAL-VALUE1.

  LW_EINE-NRM_PO_QTY  = U_W_ORGA-MINBM.
* MOD CTF-1732 ACN_SHIJ 2020/09/06 END


  LW_EINE-MIN_PO_QTY    = U_W_ORGA-MINBM.

  APPEND LW_EINE TO LIT_EINE.
  CLEAR LW_EINE.

  LW_EINEX-EINE_INDX     = LV_INDEX.

  LW_EINEX-PURCH_ORG    = 'X'.
  LW_EINEX-PLANT        = 'X'.
  LW_EINEX-INFO_TYPE    = 'X'.
  LW_EINEX-CONV_NUM1    = 'X'.
  LW_EINEX-CONV_DEN1    = 'X'.
  LW_EINEX-PLND_DELRY   = 'X'.
  LW_EINEX-PUR_GROUP    = 'X'.
  LW_EINEX-NRM_PO_QTY   = 'X'.
  LW_EINEX-MIN_PO_QTY   = 'X'.

  APPEND LW_EINEX TO LIT_EINEX.
  CLEAR LW_EINEX.

  LW_VALIDITY-EINE_INDX   =  LV_INDEX.
  LW_VALIDITY-PLANT       =  <LW_PLANT_DATA>-WERKS.
  IF U_W_ORGA-ZCPUVT IS INITIAL.
    LW_VALIDITY-VALID_TO  =  CNS_ZCPUVT.
  ELSE.
    LW_VALIDITY-VALID_TO  =  U_W_ORGA-ZCPUVT.
  ENDIF.

  LW_VALIDITY-VALID_FROM  =  U_W_ORGA-ZCPUVF.

  READ TABLE U_IT_A017 INTO LW_A017 WITH KEY
    LIFNR  = U_W_ORGA-LIFNR
    MATNR  = U_W_ORGA-MATNR
*    EKORG  = U_W_PUR_ORG-EKORG
    EKORG  = U_W_ORGA-VKORG1
    WERKS  = <LW_PLANT_DATA>-WERKS
    DATBI  = LW_VALIDITY-VALID_TO.

    IF LW_A017-KNUMH IS NOT INITIAL.
      LW_VALIDITY-SERIAL_ID   =  LW_A017-KNUMH.
    ELSE.
      LW_VALIDITY-SERIAL_ID   =  'A' && <LW_PLANT_DATA>-WERKS && '00001'.
    ENDIF.

  APPEND LW_VALIDITY TO LIT_VALIDITY.
  CLEAR LW_VALIDITY.

  LW_CONDITION-EINE_INDX    = LV_INDEX.
  LW_CONDITION-COND_TYPE    = 'ZP00'.
  IF LW_A017-KNUMH IS NOT INITIAL.
    LW_CONDITION-SERIAL_ID   =  LW_A017-KNUMH.
    LW_CONDITION-CHANGE_ID   = 'U' .
  ELSE.
    LW_CONDITION-SERIAL_ID   =  'A' && <LW_PLANT_DATA>-WERKS && '00001'.
    LW_CONDITION-CHANGE_ID   = 'I' .
  ENDIF.
  LW_CONDITION-COND_VALUE   = U_W_ORGA-ZCPUPR.
  LW_CONDITION-CURRENCY     = U_W_ORGA-ZCPUC.

  APPEND LW_CONDITION TO LIT_CONDITION.
  CLEAR LW_CONDITION.


  IF ( U_W_ORGA-ZNPPR IS NOT INITIAL
  AND U_W_ORGA-ZNPUC IS NOT INITIAL
  AND U_W_ORGA-ZNPVF IS NOT INITIAL
  AND U_W_ORGA-ZNPVT IS NOT INITIAL ).

    LW_VALIDITY-EINE_INDX   =  LV_INDEX.
    LW_VALIDITY-PLANT       =  <LW_PLANT_DATA>-WERKS.
    LW_VALIDITY-VALID_TO    =  U_W_ORGA-ZNPVT.
    LW_VALIDITY-VALID_FROM  =  U_W_ORGA-ZNPVF.

    READ TABLE U_IT_A017 INTO LW_A017 WITH KEY
      LIFNR  = U_W_ORGA-LIFNR
      MATNR  = U_W_ORGA-MATNR
      EKORG  = U_W_ORGA-VKORG1
      WERKS  = <LW_PLANT_DATA>-WERKS
      DATBI  = LW_VALIDITY-VALID_TO.

      IF LW_A017-KNUMH IS NOT INITIAL.
        LW_VALIDITY-SERIAL_ID   =  LW_A017-KNUMH.
      ELSE.
        LW_VALIDITY-SERIAL_ID   =  'A' && <LW_PLANT_DATA>-WERKS && '00002'.
      ENDIF.

    APPEND LW_VALIDITY TO LIT_VALIDITY.
    CLEAR LW_VALIDITY.

    LW_CONDITION-EINE_INDX    = LV_INDEX.
    LW_CONDITION-COND_TYPE    = 'ZP00'.
    IF LW_A017-KNUMH IS NOT INITIAL.
      LW_CONDITION-SERIAL_ID   =  LW_A017-KNUMH.
      LW_CONDITION-CHANGE_ID   = 'U' .
    ELSE.
      LW_CONDITION-SERIAL_ID   =  'A' && <LW_PLANT_DATA>-WERKS && '00002'.
      LW_CONDITION-CHANGE_ID   = 'I' .
    ENDIF.
    LW_CONDITION-COND_VALUE   = U_W_ORGA-ZNPPR.
    LW_CONDITION-CURRENCY     = U_W_ORGA-ZNPUC.

    APPEND LW_CONDITION TO LIT_CONDITION.
    CLEAR LW_CONDITION.

  ENDIF.

  ENDLOOP.

  CALL FUNCTION 'ME_INFORECORD_MAINTAIN_MULTI'
   TABLES
     T_EINA                 = LIT_EINA
     T_EINAX                = LIT_EINAX
     T_EINE                 = LIT_EINE
     T_EINEX                = LIT_EINEX
     COND_VALIDITY          = LIT_VALIDITY
     CONDITION              = LIT_CONDITION
     RETURN                 = C_IT_RETURN.

 

  CALL FUNCTION 'BAPI_INFORECORD_GETLIST'       "#EC CI_USAGE_OK[2438131]
    EXPORTING
      VENDOR              = C_W_ORGA-LIFNR
*     MATERIAL            = LV_MATNR18
*> DEL CR1747 2021/05/24 ----------------------------------------------*
*      PURCH_ORG           = LW_PUR_ORG-EKORG
*      PLANT               = C_W_ORGA-WERKS1
*< DEL CR1747 2021/05/24 ----------------------------------------------*
      MATERIAL_LONG       = C_W_ORGA-MATNR
    TABLES
      INFORECORD_GENERAL  = LIT_INFORE_GEN
      INFORECORD_PURCHORG = LIT_INFORE_PUR.

标签:bapi,记录,ORGA,VALIDITY,LIT,LW,EINE,采购,CONDITION
来源: https://www.cnblogs.com/lingxiaoj/p/14814321.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有