调用BAPI修改SO中的PC,PH

引用:翱翔云天

215 views

背景:这个程序是为了整个公司组织结构作调整,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按钮。

原文地址:https://www.cnblogs.com/wequst/p/1513298.html