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.
相关推荐
LilySesy1 天前
【业务案例】F.13——SAP系统标准的清帐程序有BUG?
运维·bug·sap·abap·esb·internet服务
小羔羊的官方学习账号5 天前
SAP -最简单smartforms打印保存到本地pdf方法
运维开发·sap·abap
syounger11 天前
SAP推出云端ERP解决方案,加速零售行业数字化转型
sap
山茶花开时。11 天前
[SAP ABAP] 使用LOOP AT...ASSIGNING FIELD-SYMBOL 直接更新内表数据
开发语言·sap·abap
IT小职员12 天前
利用 NATIVE SQL 实现不区分供应商名字大小写进行模糊查询
sql·abap
山茶花开时。13 天前
[OPEN SQL] 限定选择行数
开发语言·sap·abap
数字化转型202517 天前
从数字化角度来看, 出海制造型企业项目的数字化经验总结
人工智能·sap
saplakes19 天前
SAP SD销售模块常见BAPI函数
sap·sd·函数·销售管理·bapi·sap销售管理
邓@@22 天前
VK11\VK12保存增强
sap
lu_rong_qq23 天前
SAP B1 认证考试习题 - 解析版(六)
sap·技术文档