在SD模块中,我们经常会考虑Billing分拆,分拆的标准如下:
一、根据Billing的字段项目进行分拆
在sap的标准系统中,系统会比较VBRK表的所有字段(也包含复制拆分组合标准字段ZUKRI),只有这些字段完全相同才不会被拆分。如果有一个不同,系统就会自动拆分Billing. 大家可以参见下列代码:
FORM XVBRK_BEARBEITEN.
XVBRK = VBRK.
RC = 4.
OVBRK-FIX-ERZET = VBRK-ERZET.
IF OVBRK-FIX = VBRK.
XVBRK = OVBRK.
XVBRK_TABIX = OVBRK_TABIX.
READ TABLE XVBRK INDEX XVBRK_TABIX.
BELEG = XVBRK-VBELN.
PERFORM XVBRK_VORHANDEN USING RC.
ENDIF.
IF RC NE 0.
LOOP AT XVBRK.
........................................................
ENDFORM. "XVBRK_BEARBEITEN
二、根据自定义标准分拆
如果有时候比较VBRK表的所有字段(除去复制拆分组合标准字段ZUKRI),不能满足我们Billing拆分的要求,我们可以使用Billing的复制控制的项目拷贝公式来定义自己的拆分标准。我们可以写公式根据自己业务需求标准来填写复制拆分组合标准字段ZUKRI,系统也就会作做比较前会调用代码填写ZUKRI,再去比较VBRK。
公式代码样例如下:
FORM DATEN_KOPIEREN_007 .
* Header data
* VBRK-xxxxx = ............
* Item data
* VBRP-xxxxx = ............
* Additional split criteria
DATA: BEGIN OF ZUK,
MODUL(3) VALUE '001',
VTWEG LIKE VBAK-VTWEG,
SPART LIKE VBAK-SPART,
ABTNR LIKE LIPS-ABTNR,
EMPST LIKE LIPS-EMPST,
END OF ZUK.
ZUK-SPART = VBAK-SPART.
ZUK-VTWEG = VBAK-VTWEG.
ZUK-ABTNR = LIPS-ABTNR.
ZUK-EMPST = LIPS-EMPST.
VBRK-ZUKRI = ZUK.
ENDFORM.
三、更具设置billing里的最大项目数进行分拆。
Path:IMG SD => Billing => Billing Docs => Country Specific features.
在这里我们可以按照Sale Organization来设置Billing里的最大项目数,当超过这个数量,系统将自动拆分Billing。
相关Note:
Note 112724 - Manual actual postings: More than 999 lines in the document
Note 36353 - AC interface: Summarizing FI documents
Note 111813 - Billing doc: Collective run differs from individual creation