[ 技术接口 ] - SAP SD与FI之间的接口架构
1. 概述
本文主要介绍SD与FI集成的接口,以及FI document posting的程序架构。从架构层面上了解SD与FI的集成点,有助于项目实施过程中的方案设计,以及在程序调试过程中的数据追踪。
2. 业务背景
在SD模块开票的过程中,SD会将相关的信息传递到FI/CO,并产生相应的会计凭证。在这个过程中SD invoice中:
VBRK : Billing Document: Header Data
VBRP : Billing Document: Item Data
VBPA : Sales Document: Partner
KONV :Conditions (Transaction Data)
相关字段会填充到相关的FI/CO接口內表中:
XACCHD : Header of accounting document
XACCIT : Items of accounting document
XACCCR : Rate and currency, tax and G/L account line etc
在FI相关的posting过程中,BKPF , BSEG 以及 BSET将会被构建出来,从而最终产生相关的FI document,包括:customer line item , revenue and tax lines等。
3. 两个重要的BAPI接口函数
当执行以下transaction时,接口 RV_ACCOUNTING_DOCUMENT_CREATE将会被调用:
VF01 -> Save;
VF02 / VFX3 -> Release to accounting;
VF11 -> Save;
当执行以下transaction时,接口RV_ACCOUNTING_DOCLIST_CREATE将会被调用:
VF21 -> Save;
VF22 / VFX3 -> Release to accounting;
VF26 -> Save;
在release的过程中,标准程序提供了以下user exit供定制化开发,更多信息参见 SAP Note: 301077。
EXIT_SAPLV60B_001 : Change ACCHD header data
EXIT_SAPLV60B_002: Change ACCIT customer line
EXIT_SAPLV60B_004: Change ACCIT G/L account line
EXIT_SAPLV60B_006: Change ACCIT tax line
EXIT_SAPLV60B_008: Change ACCCR & ACCIT
4. Accounting Interface 架构
数据传递到FI后,主要通过以下两个重要的 FI BAPI完成posting的动作:
AC_DOCUMENT_CREATE : 完成FI document的构建
AC_DOCUMENT_POST : 执行最终的posting动作
下图清晰展示了內表之间数据的传递过程,其中完成FI重要內表构建的动作发生在FI_DOCUMENT_PROJECT 中,在这个函数中,XBKPF , XBSEG, XBSET被构建出来,并保存在函数组的全局变量中。AC_DOCUMENT_POST中会调用 FI_DOCUMENT_POST 完成最终DB的更新。
下图展示了在调试过程中,堆栈的调用情况: