[SAP-SD]Sales Order 中的User Exit开发
来源:互联网 发布:淘宝怎么设置好友来访 编辑:程序博客网 时间:2024/05/17 07:23
在标准SAP业务应用中常会修改标准程序和增加一些自己的功能代码来满足特定化的需求,SAP提供了一些出口对特定的程序、屏幕、MENU以及Docuement进行扩展与修改,他们并不包含任何功能,并被分离存在特定的package里所以他既不会影响标准SAP源代码也不会妨碍升级。除了通过后台配置客户化,我们常用主要有三种用户出口来进行Enhancement和Modification:
对于Order Business Process的MV45AFZZ中User Exit开发主要常用在下面几个Form中:
userexit_save_document
userexit_save_document_prepare
userexit_field_modification
userexit_move_field_to_vbap
当然还包括ZZ程序里的很多类似的Form,通过Google搜可以详细知道他们分别有不同的用途。
如常用T-code SHD0来标准的屏幕Field创建一个Variant,然后用VOV8来为不同的doc type指定不同的Variant,这样可以对屏幕Field进行控制:预设置值,必须/可选值,显示/隐藏值等等,这样非常容易设置sales order screen layout。对于更为细致的设置可以选用userexit_field_modification,例如通过权限来控制那些字段是可见或非可见的
if sy-tcode ='XXXX' and screen-name = <your screen field>.
endif.
User Exit的选用
User Exit的选用应该是非常谨慎的,如果有合适的其他出口可代替最好不好,特别是order包括inquiry/quotation/contract大量代码公用,以及SAP最为初始的源代码非常不易于Debug甚至后台运行,选用上还是根据具体的业务找合适的位置:是初始化的修改,是SAVE前的校验,是SAVE时的值的更新与增删,无外乎是对VBAP,VBAK,VBKD,VBEP,VBSN,VBUP,VEDA等等各个表的操作。
值的选取
值的选取不像Customer Exit和BADI,import和export的数据非常清楚,在order user exit则非常含糊,如VBAK *VBAP XVBAP YVBAK FXVEDA FYVBPF等等带* X Y FX FY的表都具有特定的意义:
X: 一般表示更新的值,
Y: 一般表示不完整的值,
FX,FY:中间变量。
另外,在条件判断上可能并没有提供相应的值,可以通过abap memory来获取;另外系统也提供了一些类似sd_vbxx_select来获取当前最新的值。
数据库问题
事实上在取值上直接通过select VBXX来获取,一些字段可能已经被更新甚至是删除以至获取的数据是过时的,这样会导致数据误操作,最终还得多从X,Y表上去检测。
同样,尽量减少Open SQL的操作(insert/delete/modify/upate),运用自身的business process来完成。
代码作用域
上面提到大量代码公共,在什么情况下该使用呢?适当的逻辑判断是非常有必要的,例如像我们常用的的order type(vbak-auart )外还有一些不可忽视的条件:
sy-tcode
sy-ucomm
t180-trtyp
测试与监控
对于user exit代码的测试,采用我们一般的测试办法问题并不大,但对memory里的数据操作,如何去检测似乎并不是一件简单的事,特别是对一些“很莫名”的问题:
(SAPLV45W)XVEDA[],类似的其他表可以查看更新后的值
ST05,通过这个t-code可以对sql进行trace,查看值是否被成功写入DB
SM13,查看update Request是否成功执行
SM21,查看system log,是否有些process被中止
以及其他的一些sm35 sm50 st01 st22 类似的SM/ST的t-code。
- [SAP-SD]Sales Order 中的User Exit开发
- Sales Order 中的User Exit开发
- Sales Order 中的User Exit开发
- Sales Order 中的User Exit开发
- Sales Order 中的User Exit开发
- Sales Order 中的User Exit开发
- SAP SD Sample Certification Questions in Sales Order Processing
- SAP SD Sales Order - Maintain billing plan & Billing Dates
- SAP-SD-ABAP-VMOD 查找和应用SD模块用户出口(user exit) 好方法
- SAP one Sales Order & several Deliveries
- SAP SD (Sales & Distribution) Training Tutorial
- SAP SD (Sales & Distribution) Training Tutorial
- QM user exit for sap
- sap 用户接口(User exit)
- Sales Order
- TALBES IN SAP(6) -- Sales and Distribution (SD)
- SD VL06F增强 user-exit V50Q0001
- Enhancement--User exit documentation from SAP
- java多线程(一)-Thread类和Runnable接口
- freemarker字符串替换操作
- ViewPager
- C. Anton and Fairy Tale
- 046-Java-037
- [SAP-SD]Sales Order 中的User Exit开发
- 有序表上的查找(二分查找法)
- 阿里云OSS存储开发
- 第十三周OJ-Q58解题方法
- nginx反向代理tomcat会出现session失效问题
- 使用科大讯飞的语音听写,在初始化时需要注意的点!
- Linux进程间通信-信号量
- java基础知识
- 将一个列表中每几个元素按行输入到txt中