ABAP 新增PO计划行时 新增行交货日期默认当前最大交期

ABAP 新增PO计划行时 新增行交货日期默认当前最大交期

DATA: ls_poitem   TYPE mepoitem.
DATA: ls_jhh   TYPE meposchedule.
DATA: ls_poitemc TYPE REF TO if_purchase_order_item_mm.
DATA: is_persistent TYPE mmpur_bool.
DATA: lt_eket TYPE TABLE OF eket.
DATA: ls_eket TYPE eket.
DATA: lv_lfdat TYPE eban-lfdat.

ls_jhh = im_schedule->get_data( ).  "当前执行行的计划行

is_persistent = im_schedule->is_persistent( ).

CALL METHOD im_schedule->get_item
  RECEIVING
    re_item = ls_poitemc.

ls_poitem = ls_poitemc->get_data( ).

IF is_persistent = '' AND ( sy-tcode = 'ME23N' OR sy-tcode = 'ME22N' OR sy-tcode = 'ME54N' OR sy-tcode = 'ME29N' ) AND ls_jhh-ebeln <> ''.  "新增计划行
  SELECT COUNT(*) FROM eket WHERE ebeln = ls_jhh-ebeln AND ebelp = ls_jhh-ebelp AND etenr = ls_jhh-etenr.
  IF sy-subrc NE 0.  "为新增计划行
    SELECT SINGLE lfdat INTO lv_lfdat FROM eban WHERE banfn = ls_poitem-banfn AND bnfpo = ls_poitem-bnfpo.
    IF sy-subrc = 0.
      IF lv_lfdat = ls_jhh-eindt."系统默认为PR需求日期,要改为当前PO最大交期
        REFRESH lt_eket.
        SELECT * INTO TABLE lt_eket FROM eket WHERE ebeln = ls_jhh-ebeln AND ebelp = ls_jhh-ebelp.
        SORT lt_eket BY eindt DESCENDING.
        READ TABLE lt_eket INTO ls_eket INDEX 1.
        ls_jhh-eindt = ls_eket-eindt.
        ls_jhh-eeind = ls_eket-eindt.
        im_schedule->set_data( ls_jhh ).
      ENDIF.
    ENDIF.
  ENDIF.
ENDIF.
相关推荐
小九不懂SAP3 天前
SAP(PP生产制造)拆解工单业务处理
sap·制造·s4·pp
冰魄禾4 天前
SAP ABAP开发学习——BAPI
运维·开发语言·笔记·运维开发·sap·abap
syounger8 天前
是我们“辜负”了IBM、SAP么?
sap
Liquid UI8 天前
Amcor 如何借助 Liquid UI 实现SAP PM可靠性
ui·自动化·sap·制造
Lisson 314 天前
The ABAP program lines are wider than the internal table.
abap
数字化转型202519 天前
跨国SAP实施 - 美国 - 税法 - 咨询
sap
阿达_优阅达21 天前
优阅达携手 Theobald 亮相新加坡科技周,助力企业 SAP 数据集成与应用
科技·ai·sap·企业数字化转型·theobald
SAP Hua23 天前
SAP PP之功能 动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试
sap
数字化转型20251 个月前
Alternative Reconciliation Accounts 备选统驭科目
sap
小九不懂SAP2 个月前
6、定义字段状态变式
sap·s4