ME51N, ME52N 创建采购申请的一个BADI
ME51N ME52N创建修改采购申请时的一个BADI
(2013-07-11 16:50:58)
显示参数
双击进入im_header
一般都会有get_data.此处还有个get_tiems
打开参数
双击查看该结构
就是想要的采购申请号和行项目号,不过描述是:last
item number
说明是一条数据,而不是个表
注意看看后面的描述
然后看get_items,一般情况这两个方法是常用的
会发现re_itmes是
个内表
而且这个内表参考类型,是个类IF_PURCHASE_REQUISITION_ITEM
一般也会有get_data.
一层层跟下去,调用的时候定义类对象,调用其方法即可
另外:ME53N查看时,点编辑按钮,进入编辑状态,可以在ME_PROCESS_REQ_CUST --
open方法中写逻辑
FM内代码:
FUNCTION zlm_fm_me52n.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IM_HEADER) TYPE REF TO IF_PURCHASE_REQUISITION
OPTIONAL
*" EXPORTING
*" VALUE(E_ITEM_DATA) TYPE MEREQ_ITEM
*" EXCEPTIONS
*" ERROR
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IM_HEADER) TYPE REF TO IF_PURCHASE_REQUISITION
OPTIONAL
*
*1、 通过Tcode:ME52N进行采购申请修改时,
* 更改行项目物料编码保存时需判断已更换物料是否未冻结物料,
* 如果为冻结物料,则禁止采购申请保存并给与错误提示:行项目XXX新更换物料XXXXXXX已冻结,请选择其他物料。
*2、 冻结物料判断逻辑如下:
* 当物料主数据MARA-MATNR的跨工厂物料状态MARA-MSTAE为非空时表示该物料已经冻结;
* 当物料主数据MARA-MATNR的MARA-LVORM字段为“X”表示该物料已删除
*"----------------------------------------------------------------------
DATA: wa_head TYPE mereq_header.
"表头数据:采购申请号等
DATA: it_item TYPE mmpur_requisition_items.
"行项目表:采购申请下各行项目
DATA wa_item LIKE LINE OF it_item.
"行项目工作区
DATA cl_item TYPE REF TO
if_purchase_requisition_item. "获取行项目数据的类
DATA l_item_data TYPE mereq_item.
"行项目中具体值
DATA: l_matnr TYPE matnr.
DATA:
BEGIN OF str_dongjie,
mstae TYPE mstae,
lvorm TYPE lvorm,
END OF str_dongjie,
wa_dongjie LIKE str_dongjie.
"获取头数据
CALL METHOD im_header->get_data
RECEIVING
re_data = wa_head.
"如果不是ME52N进入,没有采购申请单号,采购申请单号第一位是‘#’,不需要进行后续校验
IF wa_head-banfn(1) = '#'.
RETURN.
ENDIF.
"获取行项目
CALL METHOD im_header->get_items
RECEIVING
re_items = it_item.
"解析行项目
LOOP AT it_item INTO wa_item.
"获取行项目数据的类
cl_item = wa_item-item.
"获取行项目值
CALL METHOD cl_item->get_data
RECEIVING
re_data = l_item_data.
CLEAR l_matnr.
"获取采购申请物料号
SELECT SINGLE matnr
FROM eban
INTO l_matnr
WHERE banfn = wa_head-banfn AND
bnfpo = l_item_data-bnfpo.
"如果修改了物料,检查更新的物料是否被冻结,冻结则输出物料信息、抛出异常并退出
IF l_item_data-matnr <> l_matnr.
SELECT SINGLE mstae lvorm
INTO wa_dongjie
FROM mara
WHERE matnr = l_item_data-matnr.
IF sy-subrc = 0 AND ( wa_dongjie-mstae IS NOT INITIAL OR
wa_dongjie-lvorm = 'X' ) .
e_item_data = l_item_data.
RAISE error.
RETURN.
ENDIF.
ENDIF.
ENDLOOP.
ENDFUNCTION.
ME51N, ME52N 创建采购申请的一个BADI的更多相关文章
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- SAP MM 无料号采购申请单中'评估价格'之填写
SAP MM 无料号采购申请单中'评估价格'之填写 1),SAP系统中,采购申请里的'评估价格'来源有二, a)如果是有物料号的采购,则该价格来自于物料主数据里里的成本价(移动平均价或者标准价),自动 ...
- [转载]ME51n,ME52n,ME53n屏幕增强
原文地址:ME51n,ME52n,ME53n屏幕增强作者:cyzhang811 http://blog.sina.com.cn/s/blog_721b218c0100zch9.html 使用增强:ME ...
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...
- 详解EBS接口开发之采购申请导入
更多内容可以参考我的博客 详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...
- SAP MM 根据采购订单反查采购申请?
SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...
- 函数使用二:采购申请BAPI_PR_CREATE
REPORT YTEST01. ***************************采购申请创建*****************************begin DATA:LV_BANFN TY ...
- ABAP-增强-MRP运行-根据工厂/父件/子件/供应商拆分采购申请
最近有个业务需要,MRP运行过程中需要根据生产计划订单/子件/供应商对应关系来拆解采购申请. 1.具体实例: a.基础数据 整车物料:NL1G58420151001219 子件:00000000888 ...
- 从0系统学Android--1.3创建你的第一个 Android 项目
1.3 创建你的第一个 Android 项目 环境搭建完成后,我们就可以写下我们的第一个项目了. 1.3.1 创建 HelloWorld 项目 在 Android Studio 的欢迎页面点击 Sta ...
随机推荐
- 基于Tiny4412的I2C驱动分析
本文以tiny4412平台上到三轴加速度器为例简单分析了Linux下到i2c驱动编程. http://pan.baidu.com/s/1c0H5vRq
- android的多次点击事件的实现(有源码)
三次点击事件的原理图:数组的复制(android源码的调用): 下面就是第一步: 创建long数组,里面的数字代表点击的次数. 下面是主要代码实现: system.arraycopy();里面的参数描 ...
- java编程思想第四版第9章
练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print( ...
- C#调用C++Dll封装时遇到的一系列问题【转】
最近帮底层开发的同时用C#重新封装一下dll,也就是用C#类来封装C++Dll里的方法,以供用户使用. 之前也用到过类似的应用,大多数问题都出在类型转换上,但是这次的应用层出不穷,所以在这里总结一 ...
- 常用快递API及快递在线下单API分享
1.常用快递API 支持顺丰.EMS.申通.圆通.韵达.汇通.中通.天天.德邦.全峰等主流快递公司. 文档地址:https://www.juhe.cn/docs/api/id/43 1.1常用快递查询 ...
- element的el-tabs控制,以及el-select 多选默认值
一.el-tabs 1.element自己已经封装好了,当切换时v-model的值自动切换为el-tabs-pane的name对应的值. 如下: <el-tabs v-model='active ...
- hdu4405Aeroplane chess 概率dp水题
//从0到n有n+1个格子 //对于格子i,掷一次骰子的数为x.那么能够从位置i到位置i+x //格子之间有连线,假设格子a和b有连线,那么从a到b不用掷骰子 //求从0到n的骰子掷的次数的期望 // ...
- iOS之手势滑动返回功能
iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的 ...
- BFC简析
一.BOX模型 box是CSS中布局的基本单位,而不同类型的box,会参与不同的Formatting Context(一个决定如何渲染文档的容器),box内的元素会以不同的方式渲染. block-le ...
- css3动画学习资料整理
现在主流浏览器(先不管IE8,IE9吧),尤其是移动端浏览器基本都支持css3了,为了增强页面的表现力,css3动画必不可少了.这篇文章主要整理一下我在学习css3动画所查阅的一些好的资料,并附上两个 ...