用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图

用function module: ME_CONFIRMATION_UPDATE ,可以处理采购订单行项目确认视图,实现增删改操作。

CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘

EXPORTING

I_EBELN =    " 采购订单号

TABLES

XEKES   =    "对应新增和修改

YEKES   =    "对应删除

因为没有找到读取采购订单行项目确认视图的函数,所以自己写了一个:

CALL FUNCTION ‘ZPP142_GET_EKES‘

EXPORTING

I_EBELN =    " 采购订单号

I_EBELP = ‘00010‘   " 采购订单行项目

TABLES

T_ekes  =   "读取的确认视图表

ZPP142_GET_EKES 的代码:

data t_ebelp type ebelp.

CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT‘

EXPORTING

INPUT         = i_ebelp

IMPORTING

OUTPUT        = t_ebelp

.

select * from ekes into table t_ekes

where ebeln = i_ebeln

and ebelp = i_ebelp.

对确认视图做增删改的代码例子如下:

REPORT  ZTEST0.

data: lt_xuekes type table of UEKES,

ls_xuekes type UEKES.

data: lt_ekes type table of ekes,

ls_ekes type ekes.

data op type c.

op = ‘U‘.    "修改

*op = ‘D‘.   "新增

*op = ‘I‘.   "删除

case op.

when ‘U‘.

*读取确认

CALL FUNCTION ‘ZPP142_GET_EKES‘

EXPORTING

I_EBELN = ‘4900177648‘

I_EBELP = ‘00010‘

TABLES

T_ekes  = lt_ekes.

.

*准备修改现有条目

loop at lt_ekes into ls_ekes.

MOVE-CORRESPONDING ls_ekes to ls_xuekes.

ls_xuekes-eindt = ‘20180303‘.

ls_xuekes-kz = ‘U‘.

append ls_xuekes to lt_xuekes.

clear: ls_ekes.

endloop.

if lt_xuekes is not INITIAL.

CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘

EXPORTING

I_EBELN       = ‘4900177648‘

TABLES

XEKES         =  lt_xuekes

*    YEKES         =

.

if sy-subrc = 0.

commit WORK AND WAIT.

write ‘update ok‘.

else.

write ‘update not ok‘.

endif.

endif.

when ‘I‘.

*准备添加新条目

clear:ls_xuekes,lt_xuekes.

ls_xuekes-ebeln = ‘4900177648‘.

ls_xuekes-ebelp = ‘00010‘.

sort lt_ekes DESCENDING by ebeln ebelp etens.

read table lt_ekes into ls_ekes index 1.

if sy-subrc = 0.

ls_xuekes-etens = ls_ekes-etens + 1.

else.

ls_xuekes-etens = ‘0001‘.

endif.

ls_xuekes-ebtyp = ‘LA‘.

ls_xuekes-eindt = ‘20160707‘.

ls_xuekes-lpein = ‘1‘.

ls_xuekes-erdat = sy-datum.

ls_xuekes-ezeit = sy-uzeit.

ls_xuekes-menge = ‘22.222‘.

ls_xuekes-estkz = ‘1‘.

ls_xuekes-kzdis = ‘X‘.

ls_xuekes-xblnr = ‘A-LJC-SB‘.

ls_xuekes-kz = ‘I‘.

append ls_xuekes to lt_xuekes.

BREAK-POINT.

if lt_xuekes is not INITIAL.

CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘

EXPORTING

I_EBELN       = ‘4900177648‘

TABLES

XEKES         =  lt_xuekes

*    YEKES         =

.

if sy-subrc = 0.

commit WORK AND WAIT.

write ‘insert ok‘.

else.

write ‘insert not ok‘.

endif.

endif.

when ‘D‘.

clear:ls_xuekes,lt_xuekes.

data: lt_yuekes type table of UEKES,

ls_yuekes type UEKES.

*读取确认

CALL FUNCTION ‘ZPP142_GET_EKES‘

EXPORTING

I_EBELN = ‘4900177648‘

I_EBELP = ‘00010‘

TABLES

T_ekes  = lt_ekes.

.

*准备删除现有条目

loop at lt_ekes into ls_ekes.

MOVE-CORRESPONDING ls_ekes to ls_yuekes.

ls_yuekes-kz = ‘D‘.

append ls_yuekes to lt_yuekes.

clear: ls_ekes.

endloop.

if lt_yuekes is not INITIAL.

CALL FUNCTION ‘ME_CONFIRMATION_UPDATE‘

EXPORTING

I_EBELN = ‘4900177648‘

TABLES

XEKES   = lt_xuekes

YEKES   = lt_yuekes.

if sy-subrc = 0.

commit WORK AND WAIT.

write ‘Delete ok‘.

else.

write ‘Delete not ok‘.

endif.

endif.

endcase.

时间: 2024-08-04 15:03:24

用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图的相关文章

[问题解决]使用mpur_message_forced时,校验消息添加到错误的采购订单行项目上

1,问题描述 在BADI ME_PROCESS_PO_CUST的方法CHECK中增强,增加对采购订单行项目的校验,发现使用宏mpur_message_forced添加错误消息时,这些错误消息只能显示到采购订单的最后一行上,并不能按照行项目归集显示. 增强点: <img class="alignnone size-full wp-image-6487" src="http://www.baidusap.com/wp-content/uploads/2019-06-

ME_PROCESS_PO_CUST 实现采购订单行项目增强

转自:https://www.cnblogs.com/jinyin/p/10598124.html 用户希望创建采购订单时,输入行项目时,能根据采购订单类型,自动带出科目分类类别. 业务顾问看了一下配置,不能实现这个功能,所以用增强实现. 采购订单BADI增强:ME_PROCESS_PO_CUST.SE19创建BADI实现,进入实施类方法: IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM ,添加代码. DATA: ls_item TYPE mepoitem, " 行项

SAP ABAP编程 采购订单过账冲销

DATA: lt_return   TYPE TABLE OF bapiret2 WITH HEADER LINE. DATA: l_err_flag  TYPE c VALUE ''.  "确认操作符 DATA: g_lblni     TYPE lblni.    " 服务输入单条目表号 DATA: g_posting_dat TYPE sy-datum.  "记账日期 DATA: l_string    TYPE string. " 获取采购订单抬头 CLEA

SAP ABAP编程 采购订单过账

FUNCTION zmm_jsd_post. *"---------------------------------------------------------------------- *"*"Local interface: *"  IMPORTING *"     VALUE(EBELN) TYPE  EKPO-EBELN *"     VALUE(EBELP) TYPE  EKPO-EBELP *"     VALUE(PO

采购订单批量创建 BAPI_PO_CREATE1

*&---------------------------------------------------------------------* *& REPORT  ZMM_PO_CREATE *& *& REPORTNAME   :批量创建PO *&---------------------------------------------------------------------* *& CREATED BY   : LIUXINYUAN *&am

【MM系列】SAP 采购订单的批量修改

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 现在有一个需求,我们需要冻结一批采购订单,但是由于批量冻结的后果无法预知,我们打算用一个折中的办法. 利用采购订单行项目中的“最近收货日期”字段,下面我们先看一下它的解释. 最近可能的收货这是收货(GR)的最近的可接受日期. 如果

002 MIRO发票校验采购订单项目科目分配类别检查增强-20150819

BADI SE19:ZINVOICE_UPDATE   MIRO发票检验过账好模拟时,检查采购订单line 是否有固定资产的行项目,如果有固定资产项目,则弹出提示框,提示消息:存在规定资产采购项目!   判断逻辑:检查MIRO ,选中的采购订单项目数据,项目的科目分配类别是否 = 'A',能找到为'A'的line ,则弹出提示框. DEVK905455       ABAP30       B235 MIRO发票校验资产栏位检查 by rainy on 20150817 req by fi me

MM--发票校验 及基于采购订单的MIRO发票校验过程(

一.介绍发票校验是物料管理(MM)系统的一部分.它提供物料管理部分和财务会计, 成本控制和资产管理部分的连接.物料管理模块的发票校验为以下目的服务:它完成物料采购的全过程 - 物料采购从采购申请开始,接下来是采购和收货, 并以收到发票而结束.它允许处理不基于物料采购的发票(例如,服务费, 其它花费,过程费用, 等等).它允许处理贷项凭证, 既可以是发票的取消, 也可以是打折扣. 发票校验不是对支付进行处理, 也不是对发票进行分析. 这些需要处理的信息被传递到其它部门. 发票校验的任务包括:输入接

3.12 批量创建采购订单

3.12.1   业务方案描述 在生成采购订单前,由采购员审核计划结果,根据供应商的供货状况调整供应商供货数量.供货日期. 所有合格供应商都能够通过下单平台批量下达采购订单,尽管供应商没有供货比例,或供货比例为0. 一个集成的界面,清晰的列出MRP/DRP结果,及相关辅助信息.以帮助仓管员调整计划时获得一些决策信息: 1)审核计划结果: 2)指定供应商: 3)调整计划结果: 4)批量生成采购订单: 3.12.2   业务方案逻辑控制(包含三部分) MRP建议补充程序: 1)将ASL中的该物料可供