當科目配置設定類别為M時
如果配置了科目自動過賬,REQUISITION_ACCOUNT_ASSIGNMENT傳銷售訂單号,科目号不能傳,如果傳了會報錯: ME038 “對于總帳帳戶 在公司碼 中無直接記帳能被做”。正确是不傳科目号,但是如果BAPI不能自動找到科目,會報錯:06138 “不可能确定一個消耗帳戶”
具體原因:
ME51N會根據輸入的銷售訂單以 KZBWS = '' 去查找自動過賬的科目,查不到進函數SD_ORDER_CHECK,函數有個增強,增強裡調用函數SD_DOCUMENT_ACCOUNT_ASSIGNMENT,會把E_COBL-KZBWS改成'A',再去查。
查科目的函數是ME_ACCOUNT_ASSIGNMENT。
BAPI隻會直接根據KZBWS = ''去查,如果此時科目配置不标準(表T030),BAPI就會出現BUG,
此時做一個隐式增強,在函數ME_ACCOUNT_ASSIGNMENT開頭,限定TCODE,把I_KZBWS 改成 'A'