从基本表添加别的字段到标准提取器0FI_GL_4。
在项目中,我们经常需要增强标准数据源,从基本表添加附加字段。因为这些附加字段在标准提取器里面没有。
那不写代码的情况下怎么实现呢?
DataSource ECC R/3 Table Extract Structure Customer Include
0FI_AP_4 BSIK/BSAK DTFIAP_3 CI_BSIK
0FI_AR_4 BSID/BSAD DTFIAR_3 CI_BSID
0FI_GL_4 BSEG DTFIGL_4 CI_BSIS
来看下数据源0FI_GL_4: RSA6
看下数据源里面的提取结构,然后点到提取结构里面去看。
好了,然后我们去找include: CI_BSIS
点到这个CI_BSIS里面去,这也是个结构:
插播:怎么找extractor的base table:
RSO2去找这个数据源,提示是用FM提取的。
SE37去找这个function module
设置要读的base table~这里可以看到:
点进去看表定义:
20211026更新*
这个数据源是标准数据源,而我是在一般数据源RSO2里面查的。
由于我之前完全是自己摸,没有系统知识,我都没搞清楚标准数据源和一般数据源的区别。
对于标准数据源,其实在ROOSOURCE这个表里。
可以看到提取器和提取方式:
这个提取器是FM,那就se37去看好了。
插播结束
回到include:CI_BSIS:
在这个结构里添加字段MATNR和MENGE,也就是BSEG的字段。
这样添加了之后,如果你接下来直接激活,你将得到一个错误:
这个错误告诉你,MENGEquantity这个字段,需要指定参照表和参照字段。(这个就是关系到currencies/amounts/quantity这种字段的时候,我们要搞的)
去给搞一个参照:
如果这个结构里已经有了单位或货币字段,那就直接参考该结构中的字段。如果没有呢,那就定义一个:ZZMEINS指向标准MEINS(标准域)。
或者指向基本表:
(以上讲的不清楚,下次再讲,(lll¬ω¬)
然后到RSA6里面,选择数据源,点击更改进去
这个隐藏和field only的复选框都给它勾掉:
然后激活这个数据源。
再跑到RSA3里面去提取数据,看看这两个字段的数据。
之后呢,就是到BW里面复制,加载数据源了。