BADI:UJD_ROUTINE
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BADI:UJD_ROUTINE相关的知识,希望对你有一定的参考价值。
BADI:UJD_ROUTINE
在将数据写入数据库之前,Transformation file 和Conversion file是用于帮助处理导入的数据。在BPC 10.1中,Transformation file现在支持使用两个新的参数选项,即START_ROUTINE和END_ROUTINE。这些参数用于触发后端ABAP系统上的BAdI得以实现,用户可以在其中写入自定义的ABAP code来处理数据以满足特定的需求。
概念 :
START_ROUTINE: 作用于读取数据源之后,但在Transformation file 和Conversion file逻辑被应用之前中触发。通常,START_ROUTINE用于检查,报错,过滤。
END_ROUTINE: 所有处理完成后,在数据提交到数据库之前调用。通常可以灵活调取自定义数据,修改数据等。
例子 :
对于END_ROUTINE BAdI实现,我们将实现将从自建表中取值,然后更新到BPC主数据中。
- ENTITY主数据属性如下:

属性
- 通过flat file上传ENTITY主数据如下:

zprofitcenter为空
- 自建表数据如下:

zid对应flat file中的ID,将zprofitcenter写入entity属性中
步骤:
创建实施类 :se19

se19

name

Filter Name = BADIIMPL Name

编译method
输入代码:
-
- METHOD if_ujd_routine~runroutine.
-
-
- DATA: lo_dataref TYPE REF TO data.
-
- FIELD-SYMBOLS: <lt_data_im> TYPE STANDARD TABLE.
-
- FIELD-SYMBOLS: <lt_data_ex> TYPE STANDARD TABLE.
-
- FIELD-SYMBOLS: <ls_data> TYPE ANY.
-
- FIELD-SYMBOLS: <lv_id> TYPE string.
-
- FIELD-SYMBOLS: <lv_ecc_cc> TYPE string.
-
- * Assign importing data reference to field symbol
-
- ASSIGN ir_data->* TO <lt_data_im>.
-
- * Create work area for importing data
-
- CREATE DATA lo_dataref LIKE LINE OF <lt_data_im>.
-
- ASSIGN lo_dataref->* TO <ls_data>.
-
- * Create new internal table for exporting data
-
- CREATE DATA lo_dataref LIKE TABLE OF <ls_data>.
-
- ASSIGN lo_dataref->* TO <lt_data_ex>.
-
- * Get ECC_CC value from custom table or other datasource
- LOOP AT <lt_data_im> ASSIGNING <ls_data>.
- * 将flat file中主数据中写入
-
- ASSIGN COMPONENT ‘ID‘ OF STRUCTURE <ls_data> TO <lv_id>.
- IF sy-subrc <> 0 OR <lv_id> IS INITIAL.
- CONTINUE.
- ENDIF.
-
- ASSIGN COMPONENT ‘ZPROFITCENTER‘ OF STRUCTURE <ls_data> TO <lv_ecc_cc>.
- IF sy-subrc <> 0 OR <lv_id> IS INITIAL.
- CONTINUE.
- ENDIF.
-
- // 具体选择代码如下
- select single zprofitcenter
- into <lv_ecc_cc>
- FROM zpc_cc
- where zid = <lv_id>.
-
- APPEND <ls_data> TO <lt_data_ex>.
- ENDLOOP.
- * Exporting data to exporting data references
- GET REFERENCE OF <lt_data_ex> INTO er_data.
-
- ENDMETHOD.
-
-
- transformation file

transformation file
结果:

get
结论:
举例比较简单,所实现的效果,可以被很多功能替代,但是可以初步了解下badi的作用。
欢迎使用 小书匠编辑器,您可以通过设置里的修改模板来改变新建文章的内容。
以上是关于BADI:UJD_ROUTINE的主要内容,如果未能解决你的问题,请参考以下文章
谁告诉我SAP,ABAP中BADI的BADI定义,接口,类,实现,方法,这几个概念之间的关系是啥啊