调用BAPI修改SO中的PC,PH


背景:这个程序是为了整个公司组织结构作调整,pc,ph需要做改变是用,项目比较紧,所以程序写的比较粗糙,没有什么注释,半天完成(加测试),朋友们凑或着看.

Source code.rar

需求:修改so中的profit center以及product hierarchy

分析:两种方法,bapi和bdc

利用bapi,速度快一些,程序代码也少一些。不过因为系统使用了大量的enhancement,这些字段对应起来麻烦。

利用bdc,简单,性能也不至于太差,毕竟数据量并没有大到要狠狠地考虑性能的地步。最大的缺点,修改settlement rule时很麻烦,同时有些时候前台是反灰的,无法修改,而bapi却可以修改(迷惑中,为啥涅??????)。

结果:只能选择bapi

程序设计:

选择屏幕—〉list—〉结果

List选择alv,结果更新在alv列表中。

使用面向对象的程序设计。

class lcl_data_process:负责数据的选择以及检查,以及整个流程的处理。

class lcl_alv_process:主要是alv的处理,包括显示数据,处理数据,显示最终结果。

class lcl_bdc_process:这个就是写着做备用的,刚开始的时候不知道bdc不能修改一些字段,就放在那里了。

class lcl_bapi_process:调用bapi更新so,包括输入数据的整理等等。

主程序

at selection-screen.

check sy-ucomm = ‘ONLI’.

perform set_sel_cond.

create object ref_data(type ref to lcl_data_process)

exporting sd_type = sel_auart

sales_org = sel_vkorg

company = sel_bukrs

sd_num = sel_vbeln

exceptions no_data_found = 4.

if sy-subrc <> 0.

message e001(00) with ‘No data found!’.

endif.

start-of-selection.

call screen 100.

屏幕:100,里面只要一个ok_code,其他不需要

Status:里面有一个back按钮,以及一个excute按钮。


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

No Comments

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量