关于bapi创建利润中心其实很简单了,本来参数也不多,比较麻烦的是利润中心那里我还做了个cepc的屏幕增强,具体怎么是实现
去翻看一下我之前的帖子
现在的问题点是增强字段,sap虽然在bapi里面预留了一个结构给我们传,但是尝试了很多遍发现不行
最后有个我们这的大佬去修改了创建利润中心的BAPI_PROFITCENTER_CREATE这个baip,弄了个隐式增强,代码如下:
代码如下:
DATA: ls_return LIKE bapiret2,
ls_profitcenterid TYPE bapi0015id2,
lv_validfrom TYPE bapi0015_3-date,
lv_validto TYPE bapi0015_3-date,
ls_basicdata TYPE bapi0015_4,
lt_companycodes TYPE TABLE OF bapi0015_7,
ls_companycodes LIKE LINE OF lt_companycodes,
lt_extensionin TYPE bapiparextab,
ls_extensionin LIKE LINE OF lt_extensionin,
ls_segment TYPE ZAFI_002.
ls_profitcenterid-co_area = 'YS00'.
ls_profitcenterid-profit_ctr = 'FA133'.
lv_validfrom = '20200131'.
lv_validto = '99991231'.
ls_basicdata-prctr_name = 'SDJK'.
ls_basicdata-long_text = 'MIAOSH'.
ls_basicdata-in_charge = 'FD'.
ls_basicdata-prctr_hier_grp = 'YS00'.
ls_companycodes-comp_code = '2000'.
ls_companycodes-assign_to_prctr = 'X'.
APPEND ls_companycodes TO lt_companycodes.
ls_segment-zzkunnr = 'FA132'.
ls_segment-ZZKUNNRTXT = 'TXT324'.
ls_extensionin-structure = 'ZAFI_002'.
PERFORM frm_transfer_to_extensionin USING ls_segment CHANGING ls_extensionin.
APPEND ls_extensionin TO lt_extensionin.
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
EXPORTING
profitcenterid = ls_profitcenterid
validfrom = lv_validfrom
validto = lv_validto
basicdata = ls_basicdata
* ADDRESS = lt_COMPANYCODES
* COMMUNICATION =
* INDICATORS =
* TESTRUN =
* LANGUAGE =
IMPORTING
return = ls_return
* PROFITCENTER =
* CONTROLLINGAREA =
TABLES
companycodes = lt_companycodes
profitcenter_extensionin = lt_extensionin.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
FORM frm_transfer_to_extensionin USING is_bapi_extensionin TYPE any
CHANGING cs_bapiparex TYPE bapiparex.
DATA l_distance_characters TYPE i.
FIELD-SYMBOLS <any> TYPE any.
DESCRIBE DISTANCE BETWEEN cs_bapiparex-structure
AND cs_bapiparex-valuepart1
INTO l_distance_characters
IN CHARACTER MODE.
ASSIGN cs_bapiparex+l_distance_characters(*) TO <any>
CASTING LIKE is_bapi_extensionin.
<any> = is_bapi_extensionin.
ENDFORM.
代码方面需要注意的点就是那个ZAFI_002