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的记录:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/97961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小白到运维工程师自学之路 第八十集 (Jumpserver堡垒机管理)2

5、登录普通用户进行测试 这里的操作和在linux系统中的终端操作一样 在Xshell中登录 创建一个普通文件 在web终端中查看 五、审计台 在审计台中可以看到服务器的各种详细操作 在这里可以看到哪个用户在哪个时间对服务器具体使用了什么命令,还可以看到录频回放。 …

windows使用技巧

1、windows 快捷键 winM:所有页面最小化 winD:快速到达桌面 winE:打开我的电脑 winV:剪切板记录 win,:查看桌面(松开恢复原样) winW:全屏截屏 winR:快速运行…

实现不同局域网文件共享的解决方案:使用Python自带HTTP服务和端口映射

文章目录 1. 前言2. 本地文件服务器搭建2.1 python的安装和设置2.2 cpolar的安装和注册 3. 本地文件服务器的发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用…

交换机端口安全

文章目录 一、802.1X认证1. 定义和起源2. 认证方式本地认证远程集中认证 3. 端口接入控制方式基于端口认证基于MAC地址认证 二、端口隔离技术1. 隔离组2. 隔离原理3. 应用场景 首先可以看下思维导图,以便更好的理解接下来的内容。 一、802.1X认证 1. 定义和起源 8…

Vector<T> 动态数组(模板语法)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 动态数组 Vector(难度1) 其中,2 是 1 中的一个作业。2 中详细讲解了动态数组实现的基本原理。 本文目标 1 学会写基本的C类模板语法; 2 为以后熟练使用 S…

深度学习8:详解生成对抗网络原理

目录 大纲 生成随机变量 可以伪随机生成均匀随机变量 随机变量表示为操作或过程的结果 逆变换方法 生成模型 我们试图生成非常复杂的随机变量…… …所以让我们使用神经网络的变换方法作为函数! 生成匹配网络 培养生成模型 比较基于样本的两个概率分布 …

Delphi 11.3 FMX 多设备平台中使用 TGrid 实现类似 TDBGrid 的效果

Delphi Firemonkey 中 TDBGrid 这个控件已经没有了。如何实现类似这个效果呢。其实可以用TGrid 来实现。以下用 11.3 来讲解。 查询里面用到的 connection 和 query 等控件那些一般的数据库用法,就不做过多描述了。请参考其他资料。 方法一.通过界面配置来实现 在…

DWA算法学习

一、DWA概念  DWA(动态窗口法)属于局部路径规划方法,为ROS中主要采用的方法。其原理主要是在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,再通过一个评价函数对这些轨迹打分,最优的…

【conda install】网络慢导致报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url

⭐⭐问题&#xff1a; 部署安装环境经常会出现由于网络慢问题&#xff0c;导致conda安装不了库&#xff0c;报错如下&#xff1a; Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/…

Python钢筋混凝土结构计算.pdf-已知弯矩确定混凝土梁截面尺寸

计算原理 确定混凝土梁截面的合理尺寸通常需要考虑弯矩、受力要求和约束条件等多个因素。以下是一种常见的计算公式&#xff0c;用于基于已知弯矩确定混凝土梁截面的合理尺寸&#xff1a; 请注意&#xff0c;以上公式仅提供了一种常见的计算方法&#xff0c;并且具体的规范和设…

[halcon] 局部图片保存 gen_circle 和 gen_rectangle2 对比 这怕不是bug吧

背景 我想实现一个功能&#xff0c;获取图片中瑕疵的位置&#xff0c;将瑕疵周边的一块区域抠图并保存。 上代码 一开始我代码这么写的&#xff1a; gen_circle (Rectangle, Row[i], Column[i], 256) reduce_domain(Image,Rectangle,GrayEllipse) crop_domain(GrayEllipse,…

mac清理磁盘空间软件有哪些 mac清理磁盘空间怎么清理

随着时间的推移&#xff0c;Mac电脑上的文件会越来越多&#xff0c;很快就会占满磁盘空间。这时候&#xff0c;我们需要一个好的Mac清理磁盘空间软件来释放空间&#xff0c;保持电脑的良好性能。那么&#xff0c;mac清理磁盘空间软件有哪些呢&#xff1f;接下来&#xff0c;我将…

Skip Connection——提高深度神经网络性能的利器

可以参考一下这篇知乎所讲 https://zhuanlan.zhihu.com/p/457590578 长跳跃连接用于将信息从编码器传播到解码器&#xff0c;以恢复在下采样期间丢失的信息

P5-P8都需要掌握哪些技术

P5级别技术栈 职级:中级工程师 薪资:年薪20万-40万 要求:扎实的Java基础&#xff0c;对常见的设计模式与数据结构算法有颇多研究&#xff0c;熟悉常见的开发规范。 P6级别技术栈 职级:高级/资深工程师 薪资:年薪40万-60万 要求:熟悉各种技术中间件的使用与优化&#…

腾讯云-对象存储服务(COS)的使用总结-JavaScript篇

简介 对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;是腾讯云提供的一种存储海量文件的分布式存储服务&#xff0c;具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式&#xff0c;用户可简单、快速地接入 COS&#xff0…

机器学习:异常检测实战

文章目录 Anomaly Detection目录任务介绍数据集方法评估Baseline报告报告评价标准 Anomaly Detection 目录 任务介绍 无监督的异常检测 数据集 方法 autoencode 是否能够还原出原始类型图片&#xff0c;基于重构loss来判断是否正常 重构误差当作异常分数 评估 采用ROC和AUC…

Gitlab创建一个空项目

1. 创建项目 Project slug是访问地址的后缀&#xff0c;跟前边的ProjectUrl拼在一起&#xff0c;就是此项目的首页地址&#xff1b; Visibility Level选择默认私有即可&#xff0c;选择内部或者公开&#xff0c;就会暴露代码。 勾选Readme选项&#xff0c;这样项目内默认会带…

探索OLED透明屏的优缺点:引领科技未来的革命性突破

OLED透明屏作为一项革命性的创新技术&#xff0c;其令人惊叹的透明度和柔性性能引起了全球范围内的关注。 然而&#xff0c;了解OLED透明屏的优缺点对于我们全面认识其在科技未来中的地位至关重要。 今天&#xff0c;尼伽将深入探讨OLED透明屏的优势和限制&#xff0c;并借助…

【重要】【转载】NOR Flash芯片内执行(XIP)

为什么程序不能直接在nandflash上执行&#xff1f;出于这个疑惑带来了这篇博文&#xff0c;是我在网上找了很多资料后总结的&#xff0c;假如有误&#xff0c;希望马上指出来&#xff0c;免得我误人子弟。谢谢&#xff01; 首先认识下nandflash和norflash&#xff1a; NOR Flas…

Python学习 -- 异常分类

在编写Python代码时&#xff0c;异常处理是至关重要的一部分&#xff0c;它能够帮助我们更好地应对意外情况&#xff0c;提高程序的健壮性。本文将详细介绍Python中常见的异常类型&#xff0c;包括AttributeError、FileNotFoundError、IndexError、KeyError、NameError、TypeEr…