现在的位置: 首页 > 综合 > 正文

如何通过 BAPI 更新 PO 采购订单中的 confirmation tab 中的 confirmation date.

2013年07月30日 ⁄ 综合 ⁄ 共 2028字 ⁄ 字号 评论关闭

答案是

 

ME_CONFIRMATION_UPDATE 

。。

 

格式我稍后提供

果断上代码 , 这是在PO增强中的一段代码。获取修改信息的时候将自定义的增强TAB上的字段对应入Confirmation Tab.

*********add by gary.chen 2011-03-11

DATA: zxekes TYPE TABLE OF uekes WITH HEADER LINE.

DATA: zyekes TYPE TABLE OF uekes WITH HEADER LINE.

 

*"获取目前的confirm tab中的计划

*"retrive old confirm information

 

LOOP AT xekpo.

  SELECT SINGLE * INTO CORRESPONDING FIELDS OF zyekes FROM ekes WHERE

  ekes~ebeln = xekpo-ebeln AND ekes~ebelp = xekpo-ebelp.

*"删除之前的计划

  IF sy-subrc EQ 0.

    zyekes-kz = 'D'.

    APPEND zyekes.

  ENDIF.

  CLEAR zyekes.

ENDLOOP.

 

*SELECT * INTO CORRESPONDING FIELDS OF TABLE xekes FROM ekpo WHERE

*ekpo~ebeln = ekpo-ebeln.

DATA lv_etens TYPE etens.

LOOP AT  xekpo.

  CLEAR lv_etens.

*"获取confirm tab 中的confirm
type.

*"reatrive the confirm type .

  zxekes-ebeln = xekpo-ebeln.

  zxekes-ebelp = xekpo-ebelp.

  lv_etens = xekpo-bstae.

*  LOOP AT xekes WHERE ebeln = xekpo-ebeln AND ebelp = xekpo-ebelp.

*    xekes-etens = xekpo-bstae.

*  ENDLOOP.

*

*  IF sy-subrc NE 0.

*    SELECT SINGLE ekes~etens INTO lv_etens FROM ekes

*    WHERE ekes~ebeln = xekpo-ebeln AND ekes~ebelp = xekpo-ebelp.

*  ENDIF.

*"获取目前的customer tab的日期和时间
retrieave the date from custom tab.

 

*"如果confirm type 0001则标记xekes-etens为空做后续删除.

*"if cofirm type is not 0001, mark xekes-etens as null to delete the row

  IF lv_etens = '0001'.

    zxekes-etens = lv_etens.

    zxekes-kz = 'I'.

    zxekes-ebtyp = 'LA'.

    zxekes-lpein = '1'.

    zxekes-eindt = xekpo-zekpo_conf_arri.

    zxekes-menge = xekpo-zekpo_conf_qty.

* "如果CUSTOMER DATA的数量或日期为空则标记etens为空.

* "if confirm arrive date or qty is initial. mark etens as null to

* "deltete the row

    IF ( zxekes-eindt IS INITIAL ) OR (  zxekes-menge IS INITIAL ).

      CLEAR   zxekes.

      zxekes-ebeln = xekpo-ebeln.

      zxekes-ebelp = xekpo-ebelp.

      zxekes-etens =  lv_etens.

    ENDIF.

    APPEND zxekes.

  ENDIF.

  CLEAR zxekes.

ENDLOOP.

 

 

 

*"标准功能函数调用更新CONFIRMATION
TAB.

 

IF NOT zxekes[] IS INITIAL.

*"删除ETENS标记为空的行  delete
the row with etens markes as null.

  DELETE zxekes WHERE etens IS initial.

 

  CALL FUNCTION 'ME_CONFIRMATION_UPDATE'

       EXPORTING

            i_ebeln = ekpo-ebeln

       TABLES

            xekes   = zxekes  "new

            yekes   = zyekes. "old

 

  IF sy-subrc EQ 0.

 

    COMMIT WORK.

 

  ENDIF.

ENDIF.

 

CLEAR: zxekes[], zyekes[].

*******

抱歉!评论已关闭.