ICode9

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

WMS函数组:19.WMS创建PO

2021-01-25 21:34:48  阅读:193  来源: 互联网

标签:LOG ZMM0004 WMS IP INITIAL 19 ENDIF ET PO


FUNCTION ZRFC_WMS_PO_CREATE .
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IP_POHEADER1) LIKE  ZMM0005X STRUCTURE  ZMM0005X
*"     REFERENCE(IP_HISTORY) LIKE  ZRFC_HISTORY STRUCTURE  ZRFC_HISTORY
*"     VALUE(IN_FRGKX) TYPE  FRGKX OPTIONAL
*"  EXPORTING
*"     REFERENCE(EP_SUBRC) LIKE  SY-SUBRC
*"     REFERENCE(EP_EBELN) LIKE  EKKO-EBELN
*"     REFERENCE(EP_FRGKX) TYPE  FRGKX
*"  TABLES
*"      IT_ZMM0004 STRUCTURE  ZWMS_ORDER_DETAIL
*"      ET_ZMM0012 STRUCTURE  ZMM0012
*"      ET_LOG STRUCTURE  BAPIRET2
*"----------------------------------------------------------------------
*{   INSERT         DEVK911580                                        1
INCLUDE ZRFC_CNT.
TABLES: LFA1,T001W,T030,MBEW,EKKO,EKKN.
DATA :   IT_POITEM       LIKE  BAPIMEPOITEM         OCCURS    0   WITH HEADER  LINE,
           IT_POITEMX      LIKE  BAPIMEPOITEMX        OCCURS    0   WITH HEADER  LINE,
           IT_POSCHEDULE   LIKE  BAPIMEPOSCHEDULE     OCCURS    0   WITH HEADER  LINE,
           IT_POSCHEDULEX  LIKE  BAPIMEPOSCHEDULX     OCCURS    0   WITH HEADER  LINE,
           IT_POACCOUNT    LIKE  BAPIMEPOACCOUNT      OCCURS    0   WITH HEADER  LINE,
           IT_POACCOUNTX   LIKE  BAPIMEPOACCOUNTX     OCCURS    0   WITH HEADER  LINE,
           IT_POCOND       LIKE  BAPIMEPOCOND         OCCURS    0   WITH HEADER  LINE,
           IT_POCONDX      LIKE  BAPIMEPOCONDX        OCCURS    0   WITH HEADER  LINE,
           IT_POTEXTHEADER LIKE  BAPIMEPOTEXTHEADER   OCCURS    0   WITH HEADER  LINE,
           IT_POTEXTITEM   LIKE  BAPIMEPOTEXT         OCCURS    0   WITH HEADER  LINE,
           IP_POHEADER     LIKE  BAPIMEPOHEADER,
           IP_POHEADERX     LIKE  BAPIMEPOHEADERX,
           IP_POADDRVENDOR LIKE  BAPIMEPOADDRVENDOR,
           FLAG,
           BWKEY           LIKE  T001W-BWKEY,
           BKLAS           LIKE  MBEW-BKLAS,
           NAME1           LIKE  LFA1-NAME1,
           I_LOG           LIKE  BAPIRETURN1          OCCURS 0 WITH HEADER LINE,
           IT_INPUT        LIKE  ZPORELEASE           OCCURS 0 WITH HEADER LINE
.
CLEAR :  IT_POITEM,
           IT_POITEMX,
           IT_POSCHEDULE,
           IT_POSCHEDULEX,
           IT_POACCOUNT,
           IT_POACCOUNTX,
           IT_POCOND,
           IT_POCONDX,
           IT_POTEXTHEADER,
           IT_POTEXTITEM,
           IP_POHEADER,
           IP_POHEADERX,
           IP_POADDRVENDOR,
           FLAG,
           NAME1,
           EP_EBELN,
           EP_SUBRC,
           I_LOG,
           EP_FRGKX,
           IT_INPUT,
           ET_ZMM0012
.
REFRESH: IT_POITEM,
           IT_POITEMX,
           IT_POSCHEDULE,
           IT_POSCHEDULEX,
           IT_POACCOUNT,
           IT_POACCOUNTX,
           IT_POCOND,
           IT_POCONDX,
           IT_POTEXTHEADER,
           IT_POTEXTITEM,
           I_LOG,
           IT_INPUT,
           ET_ZMM0012
.
*&修改记录
IF IP_HISTORY-OANO IS INITIAL.
    EP_SUBRC = -1.
    ET_LOG-MESSAGE = '请输入OA流水号!'.
    ET_LOG-TYPE    = 'E'.
APPEND ET_LOG.
CLEAR  ET_LOG.
ENDIF.
IF IP_HISTORY-OANAME IS INITIAL.
    EP_SUBRC       = -1.
    ET_LOG-MESSAGE = '请输入操作姓名!'.
    ET_LOG-TYPE    = 'E'.
APPEND ET_LOG.
CLEAR  ET_LOG.
ENDIF.
CHECK EP_SUBRC = 0.
IF IP_HISTORY-OAMODULE IS INITIAL.
    EP_SUBRC       = -1.
    ET_LOG-MESSAGE = '请输入OA模块!'.
    ET_LOG-TYPE    = 'E'.
APPEND ET_LOG.
CLEAR  ET_LOG.
ENDIF.
IF   EP_SUBRC = -1.
EXIT.
ENDIF.
**********  header         公司代码
  IP_POHEADER-COMP_CODE   =  IP_POHEADER1-COMP_CODE.
  IP_POHEADERX-COMP_CODE  =  'X'.
**********  采购凭证类型
  IP_POHEADER-DOC_TYPE    =  IP_POHEADER1-DOC_TYPE.
  IP_POHEADERX-DOC_TYPE   =  'X'.
**********  供应商帐户号
*  PERFORM f_add_zero USING   ip_poheader1-vendor .
  IP_POHEADER-VENDOR      =  IP_POHEADER1-VENDOR.
  IP_POHEADERX-VENDOR     =  'X'.
********  1次性供应商
SELECT  SINGLE  *  FROM  LFA1  WHERE  LIFNR  =   IP_POHEADER-VENDOR.
IF  SY-SUBRC   =   0  .
    NAME1    =  LFA1-NAME1.
FIND   '一次性供应商'   IN   NAME1.
IF  SY-SUBRC   =   0 .
      FLAG    =   'X'.
      IP_POADDRVENDOR-NAME       = IP_POHEADER1-NAME1.
      IP_POADDRVENDOR-STREET_LNG = IP_POHEADER1-STREET_LNG.
      IP_POADDRVENDOR-HOUSE_NO   = IP_POHEADER1-HOUSE_NO.
      IP_POADDRVENDOR-POSTL_COD1 = IP_POHEADER1-POSTL_COD1.
      IP_POADDRVENDOR-CITY       = IP_POHEADER1-CITY .
      IP_POADDRVENDOR-COUNTRY    = IP_POHEADER1-COUNTRY .
      IP_POADDRVENDOR-TEL1_NUMBR = IP_POHEADER1-TEL1_NUMBR.
      IP_POADDRVENDOR-TEL1_EXT   = IP_POHEADER1-TEL1_EXT.
ENDIF.
ENDIF.
********** 采购组织
  IP_POHEADER-PURCH_ORG   =  IP_POHEADER1-PURCH_ORG.
  IP_POHEADERX-PURCH_ORG  =  'X'.
********** 采购组
  IP_POHEADER-PUR_GROUP   =  IP_POHEADER1-PUR_GROUP.
  IP_POHEADERX-PUR_GROUP  =  'X'.
**********收付条件代码
IF   NOT   IP_POHEADER1-PMNTTRMS  IS INITIAL.
    IP_POHEADER-PMNTTRMS    =  IP_POHEADER1-PMNTTRMS.
    IP_POHEADERX-PMNTTRMS   =  'X'.
ENDIF.
**********供应商电话号码
IF  NOT   IP_POHEADER1-TELEPHONE  IS  INITIAL.
    IP_POHEADER-TELEPHONE   =  IP_POHEADER1-TELEPHONE.
    IP_POHEADERX-TELEPHONE  =  'X'.
ENDIF.
**********我方参考
IF  NOT   IP_POHEADER1-UNSEZ  IS  INITIAL.
    IP_POHEADER-OUR_REF   =  IP_POHEADER1-UNSEZ.
    IP_POHEADERX-OUR_REF  =  'X'.
ENDIF.
**********供应商办公室的责任销售员
IF  NOT   IP_POHEADER1-SALES_PERS  IS  INITIAL.
    IP_POHEADER-SALES_PERS   =  IP_POHEADER1-SALES_PERS.
    IP_POHEADERX-SALES_PERS  =  'X'.
ENDIF.
***********货币代码
IF  NOT   IP_POHEADER1-CURRENCY  IS  INITIAL.
    IP_POHEADER-CURRENCY   =  IP_POHEADER1-CURRENCY.
    IP_POHEADERX-CURRENCY  =  'X'.
ENDIF.
***********表头文本
IF  NOT  IP_POHEADER1-HEADR_TEXT   IS   INITIAL.
    IT_POTEXTHEADER-TEXT_ID       =   'F01'.
    IT_POTEXTHEADER-TEXT_LINE     =   IP_POHEADER1-HEADR_TEXT.
APPEND  IT_POTEXTHEADER.
ENDIF.
**-------------CHA JWY 20170811
*  SORT IT_ZMM0004.
**-------------CHA JWY 20170811
LOOP  AT  IT_ZMM0004.
********订单原因
IF  NOT    IT_ZMM0004-ORDER_REASON  IS INITIAL  .
      IT_POITEM-ORDER_REASON   =     IT_ZMM0004-ORDER_REASON.
      IT_POITEMX-ORDER_REASON =     'X'.
ENDIF.
********  免费项目
IF  NOT    IT_ZMM0004-FREE_ITEM  IS INITIAL  .
      IT_POITEM-FREE_ITEM   =     IT_ZMM0004-FREE_ITEM.
      IT_POITEMX-FREE_ITEM =     'X'.
ENDIF.
********  返回项目
IF  NOT    IT_ZMM0004-RET_ITEM  IS INITIAL  .
      IT_POITEM-RET_ITEM   =     IT_ZMM0004-RET_ITEM.
*    IT_POITEMX-RET_ITEM =    IT_ZMM0004-RET_ITEM.
      IT_POITEMX-RET_ITEM =     'X'.
ENDIF.
******* ITEM  DATA   采购凭证的项目编号
PERFORM F_ADD_ZERO USING  IT_ZMM0004-PO_ITEM.
    IT_POITEM-PO_ITEM   =     IT_ZMM0004-PO_ITEM.
    IT_POITEMX-PO_ITEM  =     IT_ZMM0004-PO_ITEM.
    IT_POITEMX-PO_ITEMX =     'X'.
*******    物料号
IF  NOT   IT_ZMM0004-MATERIAL  IS INITIAL.
PERFORM F_ADD_ZERO USING  IT_ZMM0004-MATERIAL.
      IT_POITEM-MATERIAL   =    IT_ZMM0004-MATERIAL.
      IT_POITEMX-MATERIAL  =    'X'.
ENDIF.
*******短文本
IF  NOT   IT_ZMM0004-SHORT_TEXT  IS INITIAL  .
      IT_POITEM-SHORT_TEXT  =    IT_ZMM0004-SHORT_TEXT.
      IT_POITEMX-SHORT_TEXT =    'X'.
ELSE.
CLEAR  :   IT_ZMM0004-SHORT_TEXT.
      IT_POITEM-SHORT_TEXT  =    IT_ZMM0004-SHORT_TEXT.
      IT_POITEMX-SHORT_TEXT =    ''.
ENDIF.
*******工厂
    IT_POITEM-PLANT         =  IT_ZMM0004-PLANT.
    IT_POITEMX-PLANT        =  'X'.
IF IT_ZMM0004-BATCH IS NOT INITIAL.
*   *******批次
      IT_POITEM-BATCH         =  IT_ZMM0004-BATCH.
      IT_POITEMX-BATCH        =  'X'.
ENDIF.
*******库存地点
IF  NOT   IT_ZMM0004-STGE_LOC  IS INITIAL.
      IT_POITEM-STGE_LOC     =    IT_ZMM0004-STGE_LOC.
      IT_POITEMX-STGE_LOC    =    'X'.
ENDIF.
*******物料组
IF  NOT   IT_ZMM0004-MATL_GROUP  IS INITIAL.
      IT_POITEM-MATL_GROUP    =    IT_ZMM0004-MATL_GROUP.
      IT_POITEMX-MATL_GROUP   =    'X'.
ENDIF.
*******采购订单数量
    IT_POITEM-QUANTITY      =    IT_ZMM0004-QUANTITY.
    IT_POITEMX-QUANTITY     =    'X'.
*******订单单位
PERFORM     F_UNIT_IN   USING   IT_ZMM0004-PO_UNIT  CHANGING    IT_POITEM-PO_UNIT.
*    it_poitem-po_unit       =    it_zmm0004-po_unit.
    IT_POITEMX-PO_UNIT      =    'X'.
*******采购凭证中的项目类别
IF  NOT   IT_ZMM0004-ITEM_CAT  IS INITIAL.
      IT_POITEM-ITEM_CAT    =    IT_ZMM0004-ITEM_CAT.
      IT_POITEMX-ITEM_CAT   =    'X'.
ENDIF.
*******科目设置类型
IF  NOT   IT_ZMM0004-ACCTASSCAT  IS INITIAL.
      IT_POITEM-ACCTASSCAT    =    IT_ZMM0004-ACCTASSCAT.
      IT_POITEMX-ACCTASSCAT   =    'X'.
ENDIF.
*******销售/购买税代码
IF  NOT   IT_ZMM0004-TAX_CODE  IS INITIAL.
      IT_POITEM-TAX_CODE     =    IT_ZMM0004-TAX_CODE.
      IT_POITEMX-TAX_CODE    =    'X'.
ENDIF.
*******BAPIs 的货币金额(带有 9 个小数位)
    IT_POITEM-NET_PRICE      =  IT_ZMM0004-COND_VALUE.
    IT_POITEMX-NET_PRICE     =  'X'.
    IT_POITEM-PRICE_UNIT      =  IT_ZMM0004-COND_P_UNT.
    IT_POITEMX-PRICE_UNIT     =  'X'.
*******  CHEDULE DATA      交货日期
IF  NOT   IT_ZMM0004-DELIVERY_DATE  IS INITIAL.
      IT_POSCHEDULE-DELIVERY_DATE  =  IT_ZMM0004-DELIVERY_DATE.
      IT_POSCHEDULEX-DELIVERY_DATE =  'X'.
IF IP_POHEADER-DOC_TYPE = 'UB'.
        IP_POHEADER-DOC_DATE = IT_ZMM0004-DELIVERY_DATE.
        IP_POHEADERX-DOC_DATE = 'X'.
ENDIF.
ENDIF.
*******  采购凭证的项目编号
    IT_POSCHEDULE-PO_ITEM        =  IT_ZMM0004-PO_ITEM.
    IT_POSCHEDULEX-PO_ITEM       =  IT_ZMM0004-PO_ITEM.
    IT_POSCHEDULEX-PO_ITEMX      =  'X'.
*******计划行
    IT_POSCHEDULE-SCHED_LINE     = '0001'.
    IT_POSCHEDULEX-SCHED_LINE    = '0001'.
    IT_POSCHEDULEX-SCHED_LINEX   = 'X'.
*******计划数量
    IT_POSCHEDULE-QUANTITY     = IT_ZMM0004-QUANTITY.
    IT_POSCHEDULEX-QUANTITY    = 'X'.
APPEND   IT_POSCHEDULE.
CLEAR :  IT_POSCHEDULE.
APPEND   IT_POSCHEDULEX.
CLEAR :  IT_POSCHEDULEX.
********** 总帐科目编号
*    CLEAR   :  BWKEY,  BKLAS.
*    IF  IT_ZMM0004-GL_ACCOUNT  IS INITIAL AND  NOT IT_ZMM0004-MATERIAL  IS INITIAL  AND  IT_ZMM0004-ACCTASSCAT =  'K'.
*      SELECT SINGLE *  FROM  T001W  WHERE  WERKS  = IT_ZMM0004-PLANT.
*      IF  SY-SUBRC  =  0 .
*        BWKEY    =  T001W-BWKEY.
*      ENDIF.
*      SELECT SINGLE  * FROM MBEW  WHERE MATNR = IT_ZMM0004-MATERIAL AND BWKEY  =  BWKEY.
*      IF  SY-SUBRC   =  0  .
*        BKLAS     =  MBEW-BKLAS.
*      ENDIF.
*      SELECT SINGLE * FROM T030  WHERE KTOPL = 'Z001' AND KTOSL = 'GBB' AND KOMOK = 'VBR' AND BKLAS   = BKLAS.
*      IF  SY-SUBRC  =  0  .
*        IT_ZMM0004-GL_ACCOUNT     =  T030-KONTS.
*      ENDIF.
*    ENDIF.
*******  采购订单的帐户分配字段
*    IF  NOT  IT_ZMM0004-GL_ACCOUNT  IS INITIAL.
IF IT_ZMM0004-ACCTASSCAT IS NOT INITIAL.
      IT_POACCOUNT-PO_ITEM        =  IT_ZMM0004-PO_ITEM.
      IT_POACCOUNTX-PO_ITEM       =  IT_ZMM0004-PO_ITEM.
      IT_POACCOUNTX-PO_ITEMX      =  'X'.
********** 帐户分配的序列号
      IT_POACCOUNT-SERIAL_NO      =  '01'.
      IT_POACCOUNTX-SERIAL_NO     =  '01'.
      IT_POACCOUNTX-SERIAL_NOX    =  'X'.
IF IT_ZMM0004-GL_ACCOUNT IS NOT INITIAL.
PERFORM F_ADD_ZERO USING  IT_ZMM0004-GL_ACCOUNT.
        IT_POACCOUNT-GL_ACCOUNT     =  IT_ZMM0004-GL_ACCOUNT.
        IT_POACCOUNTX-GL_ACCOUNT    =  IT_ZMM0004-GL_ACCOUNT.
ENDIF.
********** 成本中心
IF IT_ZMM0004-COSTCENTER  IS  NOT INITIAL.
PERFORM F_ADD_ZERO USING  IT_ZMM0004-COSTCENTER.
        IT_POACCOUNT-COSTCENTER     =  IT_ZMM0004-COSTCENTER.
        IT_POACCOUNTX-COSTCENTER    =  IT_ZMM0004-COSTCENTER.
ENDIF.
**********主资产号
IF  NOT   IT_ZMM0004-ASSET_NO  IS INITIAL.
PERFORM F_ADD_ZERO USING  IT_ZMM0004-ASSET_NO  .
        IT_POACCOUNT-ASSET_NO    =  IT_ZMM0004-ASSET_NO.
        IT_POACCOUNTX-ASSET_NO   =  'X'.
ENDIF.
**********     次级编号
IF  NOT   IT_ZMM0004-SUB_NUMBER  IS INITIAL.
PERFORM F_ADD_ZERO USING    IT_ZMM0004-SUB_NUMBER.
        IT_POACCOUNT-SUB_NUMBER  =  IT_ZMM0004-SUB_NUMBER.
        IT_POACCOUNTX-SUB_NUMBER =  'X'.
ENDIF.
************  订单号
IF  NOT  IT_ZMM0004-ORDERID  IS INITIAL.
PERFORM F_ADD_ZERO USING    IT_ZMM0004-ORDERID.
        IT_POACCOUNT-ORDERID  =  IT_ZMM0004-ORDERID.
        IT_POACCOUNTX-ORDERID =  'X'.
ENDIF.
***      **************WBS
IF   IT_ZMM0004-WBS_ELEMENT IS NOT INITIAL.
        IT_POACCOUNT-WBS_ELEMENT  =  IT_ZMM0004-WBS_ELEMENT.
        IT_POACCOUNTX-WBS_ELEMENT =  'X'.
ENDIF.
***      **************销售订单
IF   IT_ZMM0004-SD_DOC IS NOT INITIAL.
        IT_POACCOUNT-SD_DOC  =  IT_ZMM0004-SD_DOC.
        IT_POACCOUNTX-SD_DOC =  'X'.
        IT_POACCOUNT-ITM_NUMBER  =  IT_ZMM0004-ITM_NUMBER.
        IT_POACCOUNTX-ITM_NUMBER =  'X'.
ENDIF.
APPEND  IT_POACCOUNT.
APPEND  IT_POACCOUNTX.
CLEAR : IT_POACCOUNT, IT_POACCOUNTX.
ENDIF.
******采购订单中的条件       采购凭证的项目编号
IF   NOT  IT_ZMM0004-COND_TYPE IS  INITIAL.
      IT_POCOND-ITM_NUMBER        =  IT_ZMM0004-PO_ITEM.
      IT_POCONDX-ITM_NUMBER       =  IT_ZMM0004-PO_ITEM.
      IT_POCONDX-ITM_NUMBERX      =  'X'.
IF  IT_POCOND-COND_TYPE  = 'PBXX'.
        IT_POCOND-COND_ST_NO     = '001'.
        IT_POCOND-COND_COUNT     = '01'.
        IT_POCONDX-COND_ST_NO    = '001'.
        IT_POCONDX-COND_ST_NOX   = 'X'.
        IT_POCONDX-COND_COUNT    = '01'.
        IT_POCONDX-CONDITION_NOX = 'X'.
ENDIF.
********** 条件类型
      IT_POCOND-COND_TYPE        =  IT_ZMM0004-COND_TYPE.
      IT_POCONDX-COND_TYPE       =  'X'.
**********  条件单位
PERFORM F_UNIT_IN   USING   IT_ZMM0004-COND_UNIT  CHANGING   IT_POCOND-COND_UNIT.
      IT_POCONDX-COND_UNIT       =  'X'.
********** 条件定价单位
      IT_POCOND-COND_P_UNT       =  IT_ZMM0004-COND_P_UNT.
      IT_POCONDX-COND_P_UNT      =  'X'.
**********定价比率
      IT_POCOND-COND_VALUE    =   IT_ZMM0004-COND_VALUE.
      IT_POCONDX-COND_VALUE   =   'X'.
      IT_POCOND-CHANGE_ID    = 'I'.
      IT_POCONDX-CHANGE_ID   = 'X'.
      IT_POCOND-CURRENCY     = 'CNY'.
      IT_POCONDX-CURRENCY    = 'X'.
      IT_POITEM-CALCTYPE      = 'G'.
      IT_POITEMX-CALCTYPE     = 'X'.
APPEND  IT_POCOND.
APPEND  IT_POCONDX.
CLEAR : IT_POCOND,  IT_POCONDX.
ENDIF.
*******  项目文本
IF   NOT  IT_ZMM0004-ITEM_TEXT IS  INITIAL.
      IT_POTEXTITEM-PO_ITEM   = IT_ZMM0004-PO_ITEM.
      IT_POTEXTITEM-TEXT_ID   = 'F01' .
      IT_POTEXTITEM-TEXT_LINE = IT_ZMM0004-ITEM_TEXT.
APPEND  IT_POTEXTITEM.
CLEAR : IT_POTEXTITEM.
ENDIF.
IF  IT_POITEM-VEND_MAT IS INITIAL.
      IT_POITEM-VEND_MAT = IT_ZMM0004-ITEM_TEXT.
      IT_POITEMX-VEND_MAT = 'X'.
ENDIF.
IF  IT_POITEM-TRACKINGNO IS INITIAL.
      IT_POITEM-TRACKINGNO = IT_ZMM0004-TRACKINGNO.
      IT_POITEMX-TRACKINGNO = 'X'.
ENDIF.
IF  IT_POITEM-PREQ_NO IS INITIAL.
      IT_POITEM-PREQ_NO = IT_ZMM0004-PREQ_NO.
      IT_POITEMX-PREQ_NO = 'X'.
      IT_POITEM-PREQ_ITEM = IT_ZMM0004-PREQ_ITEM.
      IT_POITEMX-PREQ_ITEM = 'X'.
ENDIF.
IF  IT_POITEM-SUPPL_STLOC IS INITIAL.
      IT_POITEM-SUPPL_STLOC = IT_ZMM0004-SUPPL_STLOC.
      IT_POITEMX-SUPPL_STLOC = 'X'.
DATA: V_VENDOR LIKE ZMM0005X-VENDOR.
MOVE IP_POHEADER1-VENDOR TO V_VENDOR.
PERFORM F_CUT_ZERO USING V_VENDOR.
MOVE V_VENDOR TO IP_POHEADER-SUPPL_PLNT.
*    IP_POHEADER-SUPPL_PLNT = '6000'.
      IP_POHEADERX-SUPPL_PLNT = 'X'.
ENDIF.
APPEND   IT_POITEM.
APPEND   IT_POITEMX.
CLEAR :  IT_POITEM,  IT_POITEMX.
ENDLOOP.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
        POHEADER         = IP_POHEADER
        POHEADERX        = IP_POHEADERX
*       POADDRVENDOR     =
*       TESTRUN          =
*       MEMORY_UNCOMPLETE            =
*       MEMORY_COMPLETE  =
*       POEXPIMPHEADER   =
*       POEXPIMPHEADERX  =
*       VERSIONS         =
*       NO_MESSAGING     =
*       NO_MESSAGE_REQ   =
*       NO_AUTHORITY     =
        NO_PRICE_FROM_PO = 'X'
IMPORTING
        EXPPURCHASEORDER = EP_EBELN
*       EXPHEADER        =
*       EXPPOEXPIMPHEADER            =
TABLES
RETURN           = ET_LOG
        POITEM           = IT_POITEM
        POITEMX          = IT_POITEMX
*       POADDRDELIVERY   =
        POSCHEDULE       = IT_POSCHEDULE
        POSCHEDULEX      = IT_POSCHEDULEX
        POACCOUNT        = IT_POACCOUNT
*       POACCOUNTPROFITSEGMENT       =
        POACCOUNTX       = IT_POACCOUNTX
*       POCONDHEADER     =
*       POCONDHEADERX    =
        POCOND           = IT_POCOND
        POCONDX          = IT_POCONDX
*       POLIMITS         =
*       POCONTRACTLIMITS =
*       POSERVICES       =
*       POSRVACCESSVALUES            =
*       POSERVICESTEXT   =
*       EXTENSIONIN      =
*       EXTENSIONOUT     =
*       POEXPIMPITEM     =
*       POEXPIMPITEMX    =
        POTEXTHEADER     = IT_POTEXTHEADER
        POTEXTITEM       = IT_POTEXTITEM
*       ALLVERSIONS      =
*       POPARTNER        =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IF  EP_EBELN  IS  INITIAL.
    EP_SUBRC     =  -1.
EXIT.
ELSE.
WAIT UP  TO  3 SECONDS.
SELECT SINGLE *  FROM  EKKO  WHERE  EBELN = EP_EBELN.
IF  SY-SUBRC  =  0 .
      EP_FRGKX   =  EKKO-FRGKE.
IF   NOT  EP_FRGKX IS INITIAL.
        EP_FRGKX   =  'X'.
ENDIF.
ENDIF.
SELECT EBELN
           EBELP
           MATNR
           MENGE
           MEINS
INTO  CORRESPONDING FIELDS OF TABLE  ET_ZMM0012
FROM  EKPO
WHERE EBELN   =   EP_EBELN.
**-------------CHA JWY 20170811
*    SORT ET_ZMM0012.
**-------------CHA JWY 20170811
LOOP  AT  ET_ZMM0012.
SELECT  SINGLE  *  FROM  EKKN  WHERE  EBELN  = ET_ZMM0012-EBELN  AND EBELP = ET_ZMM0012-EBELP AND  ZEKKN = '01'.
IF  SY-SUBRC    =   0  .
        ET_ZMM0012-SAKTO     =  EKKN-SAKTO.
ENDIF.
*      PERFORM f_cut_zero  USING   et_zmm0012-matnr.
*      PERFORM f_cut_zero  USING   et_zmm0012-ebeln.
*      PERFORM f_cut_zero  USING   et_zmm0012-ebelp.
*      PERFORM f_cut_zero  USING   et_zmm0012-sakto.
MODIFY  ET_ZMM0012.
ENDLOOP.
ENDIF.
*&修改记录
*  ip_history-rfc    = 'ZRFC_MM_ME21N_V1'.
*  ip_history-mblnr  = ep_ebeln.
CALL FUNCTION 'ZRFC_CREATE_HISTORY'
EXPORTING
      IP_HEAD  = IP_HISTORY
IMPORTING
      EP_SUBRC = EP_SUBRC
TABLES
      ET_LOG   = I_LOG.
**-------------CHA JWY 20170811
*  SORT I_LOG.
**-------------CHA JWY 20170811
LOOP AT I_LOG.
MOVE:
    IP_HISTORY-SAPNO TO ET_LOG-MESSAGE_V1,
    I_LOG-TYPE  TO  ET_LOG-TYPE ,
    I_LOG-ID  TO  ET_LOG-ID ,
    I_LOG-NUMBER  TO  ET_LOG-NUMBER ,
    I_LOG-MESSAGE TO  ET_LOG-MESSAGE  .
APPEND ET_LOG.CLEAR ET_LOG.
ENDLOOP.
IF   EP_FRGKX   =  'X' AND IN_FRGKX IS INITIAL.
CLEAR   :   I_LOG.
REFRESH :   I_LOG.
    IT_INPUT-EBELN   =  EP_EBELN.
APPEND  IT_INPUT.
*    ip_history-rfc    = 'ZRFC_MM_ME21N_V1'.
CALL FUNCTION 'ZRFC_WMS_PO_RELEASE'
EXPORTING
        IP_HISTORY = IP_HISTORY
* IMPORTING
*       EP_SUBRC   =
*       EP_MSG     =
TABLES
        IT_INPUT   = IT_INPUT
        ET_LOG     = I_LOG.
**-------------CHA JWY 20170811
*    SORT I_LOG.
**-------------CHA JWY 20170811
LOOP AT I_LOG.
MOVE:
      IP_HISTORY-SAPNO TO ET_LOG-MESSAGE_V1,
      I_LOG-TYPE  TO  ET_LOG-TYPE ,
      I_LOG-ID  TO  ET_LOG-ID ,
      I_LOG-NUMBER  TO  ET_LOG-NUMBER ,
      I_LOG-MESSAGE TO  ET_LOG-MESSAGE  .
APPEND ET_LOG.CLEAR ET_LOG.
ENDLOOP.
ENDIF.
*}   INSERT
ENDFUNCTION.


image

image

image

标签:LOG,ZMM0004,WMS,IP,INITIAL,19,ENDIF,ET,PO
来源: https://www.cnblogs.com/twttafku/p/14327532.html

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

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

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

ICode9版权所有