Debug 发现,只有Free of Charge订单类型是才会显示成本中心字段。
Include: FV45PF0C_COBL_SEND_PBO_VBAK的form. COBL_SENG_PBO_VBAK下列代码
* Geschäftsbereich
int_coblf-fdnam = 'GSBER'.
int_coblf-output = char1.
int_coblf-active = char1.
append int_coblf.
clear int_coblf.
* Kostenstelle
if not vbak-kostl is initial or
vbak-vbtyp ca vbtyp_kl.
int_coblf-fdnam = 'KOSTL'.
if t180-trtyp ne chara.如果
int_coblf-input = char1.
说明:char1值为1。
说明:vbak-vbtyp为order type,vbtyp_kl(值为I,代表order type为free of charge类型)
如果在还未输入cost center的情况下,kostl即cost center已有值,或者order type为free of charge类型的 ,则将int_coblf-fdnam栏位的值置为’KOSTL’,后面相应的程序会根据int_coblf这个内表中是否有’KOSTL’来对内表SCREEN进行modify,从而控制屏幕中’KOSTL’栏位是否可见。(例如将栏位’KOSTL’的invisible属性置为1,则’KOSTL’栏位变为不可见)
endif.
int_coblf-output = char1.
int_coblf-active = char1.
append int_coblf.
clear int_coblf.
endif.
* Projekt
int_coblf-fdnam = 'PS_PSP_PNR'.
int_coblf-output = char1.
if t180-trtyp ne chara.
int_coblf-input = char1.
endif.
if fehler = charx and
fehlerfeld = 'VBAK-PS_PSP_PNR'.
int_coblf-cupos = char1.
endif.
int_coblf-active = char1.
append int_coblf.
clear int_coblf.
cobl-process = 'COBL_ALL'.
cobl-event = 'PRUEFEN'.
Sap的设计就是没有成本中心,如果有ML就会有后续问题。
没有必要把出库消耗到成本中心,一定要实现可以通过下面的方法实现:
可以参考以下代码
MV45AFZB
FORM. USEREXIT_COBL_SEND_ITEM.
INT_COBLF-FDNAM = 'KOSTL'.
INT_COBLF-OUTPUT = '1'.
INT_COBLF-INPUT = '1'.
INT_COBLF-REQUIRED = '1'.
INT_COBLF-INTENS = '1'.
INT_COBLF-CUPOS = '1'.
INT_COBLF-ACTIVE = '1'.
APPEND INT_COBLF.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10350860/viewspace-712026/
,如需转载,请注明出处,否则将追究法律责任。