查找:CODE_SCANNER事务
创建:BAPI_ACC_DOCUMENT_POST 修改:预制会计凭证 BAPI PRELIMINARY_POSTING_DOC_WRITE
F-65生成预制凭证
CALL FUNCTION ‘BAPI_ACC_DOCUMENT_POST’
EXPORTING
DOCUMENTHEADER = WA_DOCUMENTHEADER "录入凭证头
TABLES
ACCOUNTGL = IT_ACCOUNTGL "总帐科目项
ACCOUNTRECEIVABLE = IT_ACCOUNTRECEIVABLE "客户项目
ACCOUNTPAYABLE = IT_ACCOUNTPAYABLE "供应商项目
CURRENCYAMOUNT = IT_CURRENCYAMOUNT "货币项目
ACCOUNTTAX = IT_ACCOUNTTAX "税收项目
EXTENSION2 = IT_EXTENSION2 "扩展字段
RETURN = IT_RETURN "返回值
CRITERIA = IT_CRITERIA " CO-PA
VALUEFIELD = IT_VALUEFIELD. "CO-PA
DESCRIBE TABLE IT_RETURN LINES L_RETURN_TABCOUNT.
LOOP AT IT_RETURN INTO WA_RETURN WHERE TYPE CA 'XAE'.
L_ERROR = 'X'.
ENDLOOP.
IF L_ERROR = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
-
IMPORTING
-
RETURN = . CALL FUNCTION 'SUSR_DISPLAY_LOG' EXPORTING DISPLAY_IN_POPUP = 'X'
-
LOG_TITLE =
-
DISPLAY_IN_SUBSCREEN = TABLES
-
IT_LOG_SPROT = IT_LOG_BAPIRET2 = IT_RETURN EXCEPTIONS PARAMETER_ERROR = 1 OTHERS = 2.
ELSE.
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.
ENDIF.DATA: L_MSG TYPE STRING,
L_POS1 TYPE I,
L_POS2 TYPE I,
L_POS3 TYPE I.IF L_ERROR IS INITIAL.
LOOP AT it_return into wa_return where id = ‘RW’ .
IF WA_RETURN-MESSAGE CA ‘BKPFF’.
L_POS1 = SY-FDPOS + 6.
L_POS2 = L_POS1 + 10.
L_POS3 = L_POS2 + 4.
CONCATENATE ‘成功生成凭证号码:’ WA_RETURN-MESSAGE+L_POS1(10) ‘公司代码:’ WA_RETURN-MESSAGE+L_POS2(4) ‘年度:’ WA_RETURN-MESSAGE+L_POS3(4) INTO L_MSG. -
MESSAGE L_MSG TYPE 'I'.
CALL FUNCTION ‘PRELIMINARY_POSTING_DOC_WRITE’
EXPORTING
- I_UF05A =
I_BSTAT = ‘V’
TABLES
T_VBKPF = TVBKPF
T_VBSEC = TVBSEC
T_VBSEG = TVBSEG
T_VBSET = TVBSET - T_VACSPLT =
- T_VSPLTWT =
- EXCEPTIONS
- ABNORMAL_TERMINATION = 1
- INSERT_ERROR = 2
- UPDATE_ERROR = 3
- READ_ERROR = 4
- OTHERS = 5
.
IF SY-SUBRC <> 0. - Implement suitable error handling here
ENDIF.