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.
相关推荐
爱喝水的鱼丶8 小时前
SAP-ABAP:通过接口创建生产订单报“没有工艺路线选中”错误解决办法详解
运维·开发语言·sap·abap·bapi·生产订单
duangww1 天前
SAPUI5消费OData例子
abap
goyeer1 天前
14.[SAP ABAP] MESSAGE 消息
sap·abap
abap帅哥1 天前
SAP MIRO/MIR4付款条件消失 :设计逻辑、根本原因与终极解决方案
数据库·后端·sap·abap·erp
SAP小崔说事儿3 天前
在数据库中将字符串拆分成表单(SQL和HANA版本)
java·数据库·sql·sap·hana·字符串拆分·无锡sap
goyeer3 天前
13.[SAP ABAP] RAISE 语句详解
sap·abap
cncdns-james3 天前
SAP Hana Studio备份生产机数据库——【认识SAP HANA Studio篇】
数据库·sap·sap hana studio
SAP小崔说事儿4 天前
自研Rise系列之ERP——基于SAPB1 的前端业务系统
sap·erp·sap b1·business one·b1·思爱普·自研erp
淋了一场太阳雨4 天前
SAP LSMW (二) - Batch Input Recording
sap·batch·lsmw
SAP小崔说事儿4 天前
SAP B1 库龄分析报表(SQL版本&非批次管理)
数据库·sql·sap·sap b1·business one·批次管理·库龄分析