FI 数据源(AP) 及 增量逻辑

AP

一般AP里要分析行项目数据,交易数据,历史付款信息。

还有一些供应商主数据。

基础的抽取数据源就是下面几个:

  • 0FI_AP_4: Vendors: Line Items with Delta Extrcation
  • 0FI_AP_6: Vendor Sales Figures via Delta Extraction
  • 0FI_AP_7: Vendor SGL Sales Figures using Delta Extraction

1. 数据源

1.1 0FI_AP_4

这个是从表BSIK(未清项)和BSAK(已清项)来的。

提取器:BWFID_GET_FIAP_ITEM

提取结构:DTFIAP_3 (从原先那个0FI_AP_3改来的)

在数据源里有个CI_BSIK结构用来添加附加字段。

这个CI_BSIK结构自动包括在主结构DTFIAP_3里。

这里有个0FI_AP_30数据源,也是一样的提取结构DTFIAP_3。

但是它不支持delta init:

提取结构一样,提取器不一样。

0FI_AP_4用的是时间戳方法。而不是delta queue。

字段

描述

原始表

原始表字段

BUKRS

Company code

BSIK, BSAK

BSIK-BUKRS

FISCPER

Fiscal year/period

BSIK, BSAK

BSIK-GJAHR

BSIK-MONAT

BELNR

Accounting document number

BSIK, BSAK

BSIK-BELNR

BUZEI

Account document posting line

BSIK, BSAK

BSIK-BUZEI

UPOSZ

Subitem number

= 0001

STATUSPS

Status of the FI item (O = open, C = cleared)

BSIK, BSAK

BSIK-BSTAT,

BSIK-AUGDT

LIFNR

Account number of the vendor or creditor

BSIK, BSAK

BSIK-LIFNR

KKBER

Credit control area

BSIK, BSAK, T001

BSIK-KKBER or T001-KKBER

MABER

Dunning area

BSIK, BSAK

BSIK-MABER

KOART

Account type

= K

UMSKZ

Special G/L indicator

BSIK, BSAK

BSIK-UMSKZ

BLART

Document type

BSIK, BSAK

BSIK-BLART

BSCHL

Posting key

BSIK, BSAK

BSIK-BSCHL

FISCVAR

Fiscal year variant

T001

T001-PERIV

BLDAT

Document date in document

BSIK, BSAK

BSIK-BLDAT

BUDAT

Posting date in the document

BSIK, BSAK

BSIK-BUDAT

CPUDT

Day on which accounting document was created

BSIK, BSAK

BSIK-CPUDT

AUGDT

Clearing date

BSIK, BSAK

BSIK-AUGDT

MADAT

Last dunning date

BSIK, BSAK

BSIK-MADAT

NETDT

Due date for net payment

BSIK, BSAK

通过FM DETERMINE_DUE_DATE 计算

SK1DT

Due date according to cash discount terms 1

BSIK, BSAK

通过FM DETERMINE_DUE_DATE 计算

SK2DT

Due date according to cash discount terms 2

BSIK, BSAK

通过FM DETERMINE_DUE_DATE 计算

ZFBDT

Baseline date for due date calculation

BSIK, BSAK

BSIK-ZFBDT

ZBD1T

Cash discount days 1

BSIK, BSAK

BSIK-ZBD1T

ZBD2T

Cash discount days 2

BSIK, BSAK

BSIK-ZBD2T

ZBD3T

Net payment terms period

BSIK, BSAK

BSIK-ZBD3T

ZBD1P

Cash discount percentage 1

BSIK, BSAK

BSIK-ZBD1P

ZBD2P

Cash discount percentage 2

BSIK, BSAK

BSIK-ZBD2P

LAND1

Country key

T001

T001-LAND1

ZLSCH

Payment method

BSIK, BSAK

BSIK-ZLSCH

ZTERM

Terms of payment key

BSIK, BSAK

BSIK-ZTERM

ZLSPR

Payment block key

BSIK, BSAK

BSIK-ZLSPR

RSTGR

Reason code for payments

BSIK, BSAK

BSIK-RSTGR

MANSP

Dunning block

BSIK, BSAK

BSIK-MANSP

MSCHL

Dunning key

BSIK, BSAK

BSIK-MSCHL

MANST

Dunning level

BSIK, BSAK

BSIK-MANST

LCURR

Currency key of the local currency

T001

T001-WAERS

DMSOL

Debit amount in local currency

BSIK, BSAK

BSIK-SHKZG,

BSIK-DMBTR

DMHAB

Credit amount in local currency

BSIK, BSAK

BSIK-SHKZG,

BSIK-DMBTR

DMSHB

Local currency amount (+/-)

BSIK, BSAK

BSIK-SHKZG,

BSIK-DMBTR

SKNTO

Cash discount amount in local currency

BSIK, BSAK

BSIK- SKNTO

WAERS

Currency key

BSIK, BSAK

BSIK-WAERS

WRSOL

Debit amount in foreign currency

BSIK, BSAK

BSIK-SHKZG,

BSIK-WRBTR

WRHAB

Credit amount in foreign currency

BSIK, BSAK

BSIK-SHKZG,

BSIK-WRBTR

WRSHB

Foreign currency amount (+/-)

BSIK, BSAK

BSIK-SHKZG,

BSIK-WRBTR

SKFBT

Amount eligible for cash discount in document currency

BSIK, BSAK

BSIK-SKFBT

WSKTO

Cash discount amount in document currency

BSIK, BSAK

BSIK-WSKTO

KTOPL

Chart of accounts

T001

T001-KTOPL

HKONT

General ledger account in G/L accounting.

BSIK, BSAK

BSIK-HKONT

SAKNR

G/L account number

BSIK, BSAK

BSIK-SAKNR

FILKD

Branch account number

BSIK, BSAK

BSIK-FILKD

AUGBL

Clearing document number

BSIK, BSAK

BSIK-AUGBL

XBLNR

Reference document number

BSIK, BSAK

BSIK-XBLNR

REBZG

Invoice document number

BSIK, BSAK

BSIK-REBZG

REBZJ

Fiscal year of the relevant invoice

BSIK, BSAK

BSIK-REBZJ

REBZZ

Posting item in the relevant invoice

BSIK, BSAK

BSIK-REBZZ

VBELN

Sales document number

XREF1

Reference key of the business partner

BSIK, BSAK

BSIK-XREF1

XREF2

Reference key of the business partner

BSIK, BSAK

BSIK-XREF2

XREF3

Reference key for the document items

BSIK, BSAK

BSIK-XREF3

SGTXT

Item text

BSIK, BSAK

BSIK-SGTXT

XNEGP

Flag: Negative Posting

BSIK, BSAK

BSIK-XNEGP

XARCH

Indicator: amount already in archive

BSIK, BSAK

BSIK-XARCH

UMSKS

Transaction class Special Ledger

BSIK, BSAK

BSIK-UMSKS

UPDMOD

BW delta process: Update mode

ZUONR

Assignment number

.INCLUDE DTFIAP-WF

.INCLUDE CI_BSIK

Customer exits for extract structureDTFIAP_3

增强

1.2 0FI_AP_6

这个数据源从表LFC1 (供应商主数据交易数据)来的。

提取器:BWFI2D_GET_FIAP_TRFI

提取结构:DTFIAP_1 (从原先那个0FI_AP_1改来的)

字段

描述

原始表

原始表字段

LIFNR

Account number of the vendor

LFC1

BUKRS

Company Code

LFC1

FISCPER

Fiscal Year/Period

LFC1

FISCVAR

Fiscal Year Variant

LFC1

CURTYPE

Currency Type

LFC1

CURRENCY

Currency key

LFC1

UM01S

Total Debit Postings

LFC1

UM01H

Total Credit Postings

LFC1

UM01K

Accumulated Balance

LFC1

UM01U

Sales of the Period

LFC1

UPDMOD

BW delta process: update mode

LFC1

1.3 0FI_AP_7

这个从LFC3(供应商主数据 特殊总账交易数据)来的。

提取器:BWFI2D_GET_FIAP_TRFI_SPGL

提取结构:DTFIAR_7

字段

描述

原始表

原始表字段

LIFNR

Account number of the vendor

LFC3

BUKRS

Company Code

LFC3

FISCPER

Fiscal Year/Period

T001

FISCVAR

Fiscal Year Variant

LFC3

CURTYPE

Currency Type

LFC3

CURRENCY

Currency key

LFC3

UM01S

Total Debit Postings

LFC3

UM01H

Total Credit Postings

LFC3

UM01K

Accumulated Balance

LFC3

UM01U

Sales of the Period

LFC3

1.4 行项目提取增量逻辑

采用时间戳增量。也就是说会有一个时间戳字段在行项目里,然后会有个时间戳的表,记录哪些时间段已经被读取过了。下次抽取增量数据集从时间戳开始直接发送到BW里。不用再放到ERP的Delta queue里。

行项目数据源基本都用AIE(after-image delta)后像增量。这个就不好直接到BW的Cube类型的ADSO里。因为Cube里是直接累加,没有前像的抵消,累加会重复。

所以这种得先到标准ADSO里,用它的change log表来找到更改的记录,再往后传到上层ADSO。

那么时间戳在哪里?实际上在GL的抬头表BKPF里,在字段BKPF-CPUDT里。

当上一次的delta DTP抽取完了,ECC里面就会记录两个时间戳字段在BWOM2_TIMEST里面。

AEDAT是你的DTP抽取的时间。TS_LOW和TS_HIGH是从1900.01.01开始的秒数。抽完了就会在这两个字段对应的区间范围打个X。表示上次抽过这里的数据了,下次抽得从HIGH的往后。

转换一下来看: 

每次抽取都会在最新的一次区间内打钩。

所有的行项目都是这么个抽取方式:

 对于行项目来讲,一天只能抽上一天的所有增量集。因为在字段BKPF-CPUDT里,只有date没有time。大概就这么设计的,安全区间就是1天,用AIE过来,只取一天内最后一次更改的后像。

那么如果月末进行的更改,持续到了下月初一,这数据岂不是要到初二才能拿过来。这明显不行啊。

这种情况下,SAP说可以去设置一个表BWOM_SETTINGS里面的参数。

BWFIOVERLA

这个参数默认是空的。设置成X就允许时间区间的重叠。注意这个是有限制的,在BWFITIMEBOR这个里面是020000,也就是说如果提取时间是在02:00:00之前开始,就是打了X,也还是会提取前一天的数据。但是这个设置我们没有做,所以暂时行项目里我们只能拿到前一天的数据。

*解释SETTING表参数

BWFILOWLIM 这个就是你初始化增量的DTP的起始时间。默认值设置为19910101。

BWFISAFETY 计算提取日期上限,初始化的就是从当前日期到提取日期当天。增量的话就是从上次增量到当前日期-BWFISAFETY。这个是天数,最小1天。就是你最少能抽一天的增量,最大就是上次抽取的时间到前一天。

DELTIMEST 这个就是日志保留时间 默认60天。(是针对三个log表BWFI_AEDAT, BWFI_AEDA2 , BWFI_AEDA3)时间戳表BWOM2_TIMEST里会保留60天的抽取记录。60天前的会被删掉。那么对应的,日志表中的BWFI_AEDAT/2/3的更改记录也会被删掉。

BWFITIMBOR 默认为2点,格式为HHMMSS。意思是如果delta抽取时间在2点之后,那数据就是前一天的。如果是2点之前,那就是会取昨天之前一天的,又倒退一天。这也是个安全区间吧。比如你9月10号两点前跑DTP,那会去拿9月8号那天的。而两点后去跑,会去拿9月9号的。

BWFIOVERLA 这个是针对于年结或者月结的大批量数据处理,假设12月31号晚上处理的数据到1号的提取时间还没确认。还没存到数据库里。

默认是空,就是抽取的是上次的抽取时间戳到本次抽取时间-1天内的所有增量。

那么,填X 意思是忽略BWFISAFETY里面的值,delta的时间会是从上一次抽取的时间戳到这次抽取的时间。

BWFINEXT: 打了X好像是流抽取。默认是空。这个没整过。如果这里打了X,那这几个参数就被忽略了BWFIOVERLA , BWFISAFETY , BWFITIMBOR。具体在Note 991429里有。

*解释结束

如果GL没有进行增量抽取,那么AR和AP也就没有增量数据。所以处理链里先搞GL。

对于在上次增量抽取过后做更改的行项目数据,没有办法记录更改的时间。所以所有行项目只要做了更改都会被记录到系统里,更改了的行项目和凭证的key,和时间都会放到表BWFI_AEDAT里。

就相当于是个change日志表:

根据这个log表,提取器能找到增量数据集。

只要是你手动更改了行项目凭证的,或者是清行项目,或者是更改行项目的催款数据的。都会被记到这个表里。

这些都是由一些系统自带的更新程序搞起来的。细节的咱就不去追了。

只要知道在表TPS31里面有FM BWFIP_WRITE_AEDAT_POINTER就行了。SM30可以添加这条。它这FM是说写BKPF的change pointer。

在BW的增量初始化的时候就会自动在表TPS31里加这条。加了之后就是告诉系统接下来要记录增量了。我以后要弄增量DTP了。AEDAT这里写的是BSEG和BKPF的增量,其他的可以自己去看。

基本上搞完增量初始化,根据setting表里的增量区间,比如是1就是1天,那一天后可以开始增量抽取。

当然对于增量初始化的,也还是应该先搞GL的,再弄AR和AP的。要不然数据不一致了。有些时候增量初始化需要对财年和公司代码做限制的。那么应收和应付也都是跟着总账来,总账先搞哪些过滤参数,应收应付也是跟着用哪些过滤参数。

对行项目的增强可以在customer include里进行:

那么有两种情况,如果你在CI里面加的字段,就在它本身提取结构的表里,那就不用写增强逻辑了,因为提取器里就写了从那些表来的move corresponding 就能直接取出来。

如果是从其他表来的,就得用BW的BADI了,现在就是那个RSU5啥的。搞完了去RSA6把隐藏的字段给放出来。

1.5 交易数据提取增量逻辑

过程一样。就是增量日志表不一样:BWFI_AEDA2

时间戳表是一样的:BWOM2_TIMEST.

Delta init的DTP执行时候会生成这条在TPS31的记录:

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaomici

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值