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.
相关推荐
MTC麦汇信息8 小时前
MTC亮相SAP新加坡GTMKOM,助力亚太企业全球化发展
sap·数字化转型·全球化
xiaohutushen12 小时前
紧急预警:微软 Edge Webview2 v144 升级导致 SAP GUI 严重白屏故障 (Note 3704912)
前端·microsoft·edge·abap·sap 用户·sap license·usmm
山茶花开时。2 天前
[SAP FICO] FICO模块简介
sap·sap fico
山茶花开时。4 天前
[SAP] 快速粘贴复制
sap
SAP_奥维奥科技7 天前
奥维奥详解SAP Business One:采购预付款和应付发票
sap·sap businessone·sap管理系统·sapbusinessone·sap business one·sap管理系统软件
duangww9 天前
SAP 生产订单状态取值
abap
爱喝水的鱼丶10 天前
SAP-ABAP:SAP性能侦探:STAD事务码的深度解析与应用实战
开发语言·数据库·学习·sap·abap
Bitter、10 天前
sap abap 批量导出表结构字段
sap·abap
sinat_3751122612 天前
abap excel上传
excel·上传·sap·abap
旧巷烟火14 天前
PS成长之路⑩:如何通过WBS进行项目人工成本的精准归集
sap·ps·erp