上一章讲了一些MM模块的豆知识。
- MM01中设定的安全在库和最小安全在库
- MM01/MMSC/Customize自动 扩张物料的保管场所
- MM01中定义生产订单的默认入库保管场所
- VA01受注票中设定禁止贩卖某个物料
SAP MM学习笔记 - 豆知识03 - 安全在库和最小安全在库,扩张物料的保管场所的几种方法,定义生产订单的默认入库保管场所,受注票中设定禁止贩卖某个物料-CSDN博客
本章继续学习MM模块的豆知识。
1,MM01上定义Customer Exit 来Check评估Class
1-1,CMOD 扩张Project管理
Spro > Logistics > 品目Master > 扩张
点一下 实行 图标前面的那个图标
这样就显示了一下内容:
- 扩张点:MGA00001
- 组件:EXIT_SAPLMGMU_001
点一下Exit的链接,出来详细内容,我也没太看懂是啥意思,先跳过
a),登录扩张Project
点一下 执行图标以后,显示下面的画面(CMOD)
要建一个 SAP 扩张Project管理
输入
- Project:ZMM01
点登录按钮
b),扩张割当(分配)Exit(这里指MGA00001)
输入 内容说明,然后点 扩张割当 按钮
点 确定 按钮
输入
- Package:$TMP
然后点 保存
输入上面的Help里面显示的扩张点
- 扩张:MGA00001
c),有效化Component
点 Component,进行激活
点保存
选中 Function Exit,然后点 激活图标
这样就有效化(激活)完成了
d),写Customize Exit的Check代码
双击 Function Exit 可以进入Exit详细代码页
双击 ZXMG0U02,然后提示说要不要创建,当然要啊
然后就显示了下面的页面
点修改,然后写一段Check的代码上去
DATA lv_t023_bklas TYPE t023-bklas.
SELECT SINGLE bklas FROM t023 INTO lv_t023_bklas
WHERE matkl = wmara-matkl.
IF sy-subrc EQ 0.
IF wmbew-bklas NE lv_t023_bklas.
MESSAGE w398(00) WITH 'Invalid valuation class' wmbew-bklas.
RAISE APPLICATION_ERROR.
ENDIF.
ENDIF.
这段代码是啥意思呢?
其实就是从 T023 表里取ValCl(评估Class)
这样看得清楚一些哈
品目Group 007 --》对应的是评价Class 3200
所以上面那段代码的意思是,从T023 里取评价Class值(比如 Group 007的话,就取到了 3200)
品目Master保存的时候,判定是否品目Master 中设定的评价Class值等于3200,不等的话就报错
这样就把 品目Group 与 评价Class进行了1:1绑定
TODO:品目Group 与 评价Class是可以在Customize里面设定的,我暂时没找到在哪,先放过
为了做演示,我把表数据直接修改了一下。
修改方法可以参照如下文章。
SAP MM学习笔记 - 豆知识04 - SE16N 如何在SAP中直接修改表数据(Edit any table in SAP)-CSDN博客
品目Group 001, 评价Class:7925
1-2,MM01 品目登录 里测试一下
品目 P-100-F1
选 基本Data1,2 和 会计1 视图,然后点确定
输入Plant 1000
a),确认品目Group
注意
- 品目Group:001
b),确认评价Class(不等于设定值的情况)
点到 会计1 Tab
- 评价Class:默认是7920
直接点Check,好像没啥反映
直接点 保存按钮则会出以下错误
Data転記中发生Error; 请选择"転記Error"。
Msg 番号 MG153
点上图的 Error(转记) 按钮
这次显示更新清晰详细的Message
告诉你 7920 这个评价Class 是不行的
c),确认评价Class(等于设定值的情况)
把评价Class改成 7925
然后再保存
这次就OK了
有关Customer Exit更详细的内容,可以参照下面链接
http://powerofstudy.blog.fc2.com/blog-entry-2359.html
1-3,无效化 Customer Exit
Spro > Logistics > 品目Master > 扩张
或直接 CMOD
点 变更
点 Component
点无效化 图标
无效化完成
1-4,总结一下
以上就是Customer Exit的用法,就是在标准功能里面,加点儿自己的代码进去。
自己可以控制它的有效化和无效化。
有关Customer Exit,可以参照如下文章:
SAP MM学习笔记7-SAP标准功能和Add-on之间的关系_fit gap analyse需求匹配分析-CSDN博客
而且上面只是借用了 T023 这个表做一下演示。
这是个SAP自带的表,有别的用途。
真正做User Exit的时候,一般会另外再建一个自定义的表,然后把初期数据批量导进去,
再按照上面的步骤做扩张。
更多文章请点击如下链接
https://blog.csdn.net/shi_ly/category_12216766.html