BW例程

合集下载

bw题归类总结

bw题归类总结

一.Delta增量1.什么是DEL TA机制?答:DELTA就是说在第一次load (加载)数据之后,允许下次在load数据的时候只load 还没有load过的数据。

2.不同模块事务数据DEL TA加载的操作过程一样吗?答:不一样,MM有MM的DELTA機制,FI有FI的機制。

FI用的处理机制是时间戳,AIE,PULL。

LO用的处理机制是DELTA queue,ABR,PUSH。

3.通用提取的数据来源有哪几种,是否可以DEL TA加载?答:TABLE/VIEW,INFOSET,FUNCTION MODULE,可以DELTA加载。

4.什么是增量队列?(delta queue)答:增量队列是新建或已更改数据记录的数据储存形式(上次数据请求以来出现的数据记录)。

从系统收到数据请求时,会使用源系统中的更新流程或录入自动写入增量队列。

package几种更新模式?答:1完全更新2初始化增量流程3增量更新(F,I,D)6.什么是增量更新?答:增量更新仅为源系统中的请求上次加载以来已创建或已更改(或已删除)的数据记录。

7.各个增量流程都支持哪些记录类型?答:后像前像倒象新象。

8.平面文件的增量流程原理是怎么样的?答:如果增量流程使用平面文件,数据不会通过增量队列传输到BI ,而是直接从DA TASOURSE 加载到PSA。

平面文件肯定不会用到DELTA queue,因为这是数据源的增量原理。

9.0RECORDMODE 是什么?答:数据状态RECORDMODE:有以下几个值' '在更改记录或添加数据后传输记录状态。

只有在请求相应的前像时,才会将记录直接更新到InfoCube(稍后解释)。

'X' 前像在更改或删除记录前传输记录状态。

所有可以汇总(关键值)的记录属性必须用加/减冲销符号进行传输。

冲销加/减符号由提取器(缺省)或服务Service API 负责。

这些记录在DataStore 对象的非附加(覆盖)更新中予以忽略。

SAPBW例程(Routine)【开始例程、关键值或特性的例程、结束例程】

SAPBW例程(Routine)【开始例程、关键值或特性的例程、结束例程】

SAPBW例程(Routine)【开始例程、关键值或特性的例程、结束例程】定义可以使⽤例程定义关键值或特性的复杂的转换规则.例程是本地 ABAP 类,它们包括预定义的定义和实施范围.进站和出站参数的 TYPES及⽅法签名都存储在定义范围中.实际例程创建于实施范围中.使⽤该⽅法,可以分配 ABAP 对象.在⽣成期间,把此⽅法嵌⼊到转换程序中.转换包括以下类型的例程:启动例程关键值或特性的例程结束例程专家例程:此类型的例程仅⽤于特殊情况.如果提供的转换功能不⾜以满⾜您的要求,那么可以使⽤专家程序.在标准系统中所要求的功能可⽤前,可以使⽤它作为临时解决⽅案.在不使⽤可⽤规则类型的情况下,可以⾃⼰使⽤此⽅法对整个转换进⾏编程.如果要进⾏此操作,还必须亲⾃对监控器实施消息的转换.Invertierungsroutine步骤输⼊以下信息,以创建例程:1. 在*$*$ 全局开始 ... 和 *$*$ 全局结束 ...期间,可⽤定义全局数据声明 'CLASS-DATA',随后,它们将在所有的例程中可⽤.在当前包中,在当前包中,可以使⽤'DATA'存取数据声明.例如,这意味着可以在其他例程中使⽤中间结果,或者,如果再次调⽤相同的例程,那么可⽤重新使⽤第⼀次调⽤的结果.注意:只要为此请求专门保留的处理实例继续存在,那么,在序列装载期间,保持以 'CLASS-DATA '声明的数据.由于性能原因,在并⾏装载期间,已实例化的处理也不⽌使⽤⼀次.这意味着,保持处理实例中以'CLASS-DATA'声明的数据.因此,根据该⽅案,使⽤全局数据的'CLASS-DATA' 或 'DATA'.2. 在*$*$例程开始... 和 *$*$例程结束...之间,插⼊该例程的程序代码.在编码中不要使⽤ SAP COMMIT (ABAP 声明:COMMIT WORK).当执⾏声明时,⽤于从源中读取的使⽤指针丢失.作为替代,使⽤ DB COMMIT(调⽤功能模块DB_COMMIT)或避免这些 COMMIT 在⼀起。

sap bw routine语法

sap bw routine语法

sap bw routine语法SAP BW Routine语法指的是在SAP BW系统中使用的一种编程语言,用于自定义数据提取、转换和加载过程中的逻辑和计算规则。

本文将介绍SAP BW Routine语法的基本概念和常用语法规则,帮助读者更好地理解和应用这一技术。

一、SAP BW Routine语法的基本概念1.1 Routine的作用和分类在SAP BW系统中,Routine是一段可编程的代码,用于自定义数据提取、转换和加载过程中的逻辑和计算规则。

Routine可以分为Extract Routine(提取例程)、Transfer Routine(传输例程)和Update Routine(更新例程)三种类型,分别用于不同的数据处理阶段。

1.2 Routine的语法结构SAP BW Routine语法采用类似ABAP(Advanced Business Application Programming)的语法结构,包括变量声明、条件判断、循环控制和函数调用等基本元素。

下面是一个简单的Routine语法结构示例:```DATA: lv_variable TYPE i.IF lv_variable > 0.lv_variable = lv_variable + 1.ENDIF.```二、SAP BW Routine语法的常用语法规则2.1 变量声明与赋值在SAP BW Routine语法中,通过使用DATA语句声明变量,并使用赋值语句给变量赋初值。

例如,下面的代码段声明了一个整型变量lv_variable,并给它赋初值1:```DATA: lv_variable TYPE i VALUE 1.```2.2 条件判断SAP BW Routine语法中使用IF语句进行条件判断,用来根据不同的条件执行不同的操作。

例如,下面的代码段判断变量lv_variable的值是否大于0,并根据判断结果进行不同的操作:```IF lv_variable > 0.lv_variable = lv_variable + 1.ENDIF.```2.3 循环控制SAP BW Routine语法中使用DO语句进行循环控制,用来重复执行某段代码。

BW - 配置操作手册 - 学习教材

BW - 配置操作手册 - 学习教材

SAP BW配置及操作SAP BW配置及操作概述业务说明基于SAP ECC6使用RSA30TCT_DS01数据源可以查看对BW数据的读取情况。

为了从EP中链接到SAP系统,需要配置单点登录,另外需要用户在ECC中拥有RSRR_WEB 的权限基本原理以下是基于文件的BW设置的基本原理,也可以说是一个基本的操作过程。

1.设置一个源系统,用于确定数据从哪里来。

2.创建一个Datasource,用于存放抽取过来的数据。

此时的抽取式通过InfoPackage实现的。

3.创建一个DataStore Object对象,用于存放处理后的数据。

Datasource和DataStore Object 之间通过Transformation(转换规则)进行关联,同时需要创建一个Transfer Process用于数据的抽取处理。

每个DataStore Object是属于一个InfoArea,也就是说一个Info Area下可以根据需要按照不同的规则更新出不同DataStore Object。

4.在Explorer中创建一个查询,查询需要的数据,设计查询时可以设置一个过滤器进行必要的筛选。

TableRSIDOCSA VE相关概念BI(Business Intelligence,商务智能)SAP BI(SAP Business Information Warehouse)DW(Data Warehouse,数据仓库)DM (Data Mining,数据挖掘)OL TP(Online Transaction Process,在线事务处理)OLAP(Online Analysis Process,在线分析处理)逻辑视图概念(BW)信息区域(Info Area)信息对象(InfoObject)概述信息对象组(InfoObject Catalog)特性Characteristic关键值Key figures单位(Unit)时间特性(Time Characteristic)数据对象的属性关键字段Key Field数据字段Data Field导航属性Navigation Attribution索引Indexes特征值ValueETL(Extract Transform Load)提取转换加载数据存储PSA(Persistent Staging Area,连续的分段传输区域)信息提供者Info ProviderODS(Operational Data Store,运营数据存储)-7.0变为DSO DSO(Data Store Object,数据存储对象)信息立方体(InfoCube)多信息提供者Multi Provider信息集InfoSet虚拟提供者(Virtual Provider)-未整理信息源InfoSource数据处理信息包InfoPackage转换Transformation配置顺序数据传递逻辑所有外部系统都可以看作镜像到SAP BI 的数据源(DataSource ),通过一定的映射关系(Mapping )与SAP BI 系统内部的信息提供者(InfoProvider )相关联。

BW_APD实例

BW_APD实例

APD使用实例APD是Analysis Processing Designer的简称,翻译过来就是分析处理设计器的意思,是用来将一些数据源当中的数据反写到需要这些数据的数据目标当中的一种集成在BW系统中的工具,数据源有很多,数据目标也有很多,中间的转换也有很多,但我们最常用的数据源是Query,最常用的数据目标是DSO,中间的转换最常用的就是ABAP例程,通常情况下我们都是将Query中的数据通过ABAP例程的方式反写到我们的DSO中来。

Open Hub也是一种集成在BW系统中用于传导数据的工具,这个工具的作用是将我们BW 系统里的数据导入到BW系统本身数据库的表、或者是外部文件、再或者是需要这些数据的第三方系统中。

注意;查询中必须通过变式直接能够执行查询。

查询的选择条件必须要在变式中设置。

执行TCODE RSANWB,创建一个APD。

拖拽一个查询对象:1)其中变式创建:右边创建变式:常见查询变式:输入查询默认的选择条件。

拖拽一个DSO。

DSO为直接写类型DSO。

事先进行创建。

设置好主键。

创建转换。

源字段:右边红色区域中为查询中的对象,拖拽至左边作为APD中使用的对象。

币种和单位也一并拖拽过去。

目标字段:选择APD使用的DSO中的对象。

历程:REPORT RSAN_WB_ROUTINE_TEMP_REPORT .TYPES: BEGIN OF y_source_fields ,/BIC/YQTZJLX TYPE /BIC/OIYQTZJLX ,COMP_CODE TYPE /BI0/OICOMP_CODE ,FISCPER TYPE /BI0/OIFISCPER ,KYF_0001 TYPE /BI0/OIAMOUNT ,KYF_0001_CURRENCY TYPE WAERS ,END OF y_source_fields .TYPES: yt_source_fields TYPE STANDARD TABLE OF y_source_fields .TYPES: BEGIN OF y_target_fields ,COMP_CODE TYPE /BI0/OICOMP_CODE ,FISCPER TYPE /BI0/OIFISCPER ,KYF_0001 TYPE /BI0/OIAMOUNT ,END OF y_target_fields .TYPES: yt_target_fields TYPE STANDARD TABLE OF y_target_fields .*---------- Begin of type definitions -------------------------------*TYPES: ...*----------- End of type definitions --------------------------------FORM compute_data_transformationUSING it_source TYPE yt_source_fieldsir_context TYPE REF TO if_rsan_rt_routine_context EXPORTING et_target TYPE yt_target_fields .*--------- Begin of transformation code -----------------------------DATA: ls_source TYPE y_source_fields,ls_target TYPE y_target_fields.LOOP AT it_source INTO ls_source.CASE ls_source-/BIC/YQTZJLX .WHEN '10' OR '20' OR '30' OR '40' OR '41' OR '50' OR 'G0'.MOVE-CORRESPONDING ls_source TO ls_target.COLLECT ls_target INTO et_target.WHEN '60' OR '70' OR '80' OR '90' OR 'A0' OR 'B0' OR 'C0' OR 'D0' OR 'E0' OR 'F0'OR 'H0'.MOVE-CORRESPONDING ls_source TO ls_target.LS_TARGET-KYF_0001 = - LS_TARGET-KYF_0001 .COLLECT ls_target INTO et_target.ENDCASE.ENDLOOP.*---------- End of transformation code ------------------------------ENDFORM.。

1.BW基础概念知识

1.BW基础概念知识

1.基础问题集锦:关键值下的“累计值/非累计值”是什么意思?1) 累计值。

使用这一选项的关键值是一个自身存储数据的字段,在运行查询或报表时,系统会按照"集合"子窗口的设置将相应的值加总或平均,这也是最常见的设置。

2) 带非累计值更改的非累计值。

使用这一选项的关键值是一个非累计值,自身并不存储数据,但是它带有一个附加关键值,这一附加的关键值是存储数据的,表示的是非累计值的增量变化,非累计关键值的取值为附加关键值的累计结果。

3) 带流入和流出的非累计值。

使用这一选项非累计值带有两个附加关键值,分别表示非累计值的流入和流出的值,其取值为这两个附加关键值的累计结果。

做增量的时候,Tcode:LBWE下集中更新模式的区别是什么啊?Direct Delta:这就是一种V1模式,数据同步更新到增量队列,这种模式系统负荷很重,特别是对于业务量大的凭证,通过RSA7可以直接查看增量数据;Queued Delta:类似于V3的更新模式,与V3更新的区别在于,增量数据首先被收集到一个抽取队列中(V1模式),此时可以通过LBWQ查看增量数据,然后通过一步Job操作增量数据被送到增量队列中(V3模式),此时可以通过RSA7查看;Unserialized V3 Update:此模式与Queued Delta模式类似,唯一的区别是增量队列中的数据是无序的,而Queued Delta中的数据是排序的,这个对于采用覆盖模式的模型来说是最致命的,所以如果更新目标是DSO的话,还是不要采用这种模式,通过SM13可以查看增量数据。

什么是V3更新模式?V1同步更新模式,即凭证产生就更新增量,与业务数据同步更新;V2异步更新模式,就如同一个两步的操作一样,业务凭证产生以后,第一步更新业务数据源,第二步更新增量表,也就是说业务数据源和增量表是异步更新的;V3异步更新模式,也是两步操作,业务凭证产生以后首先更新业务数据源,然后再更新增量表,与V2的区别在于它的更新是通过后台事件来触发的,即定一个任务定时收集增量并更新至增量表。

BW基础知识(介绍)

BW基础知识(介绍)

SAP NetWeaver™ People Integration Multi-Channel Access Portal Collaboration Life Cycle Management



Information Integration Business Knowledge Intelligence Management Master Data Management Process Integration Integration Business Process Broker Management Application Platform J2EE ABAP DB and OS Abstraction
BW基本概念:InfoCube 有几种形式的InfoCube

物理数据存储器,包括基本InfoCube和MultiInfoCube
(目前我们的报表都是基于MultiInfoCube的)

虚拟数据存储器,包括远程立方体(RemoteCubes) 有服务 功能的虚拟信息立方体(Virtual InfoCubes with Serivces)
BW基本概念:ODS 什么是 ODS ?
InfoCube
Update Rules
ODS ( Operation Data Store )
ODS对象是文档层次上
集合和清除事物数据的 一个存储地址.ODS对象 描述了一个或者多个数 据源获得一个统一的数 据集,这个数据集存放的 是颗粒度比较小,一些行 项目的信息数据。由特 性和关键指标组成,与 R3的数据库表结构相似。
…..R3 ………. ……….
2LIS_11_VAITM 2LIS_03_BF
……….

BW操作文档

BW操作文档

BW操作文档创建简单的ODS一创建信息对象1 创建特征(Characteristics)1)登陆BW RSA1 进入“数据仓库工作台:建模”界面如下:2)在练习目录下右键创建工作范围,以自己姓名命名,如:ZDEV_LUXINGWEI3)在ZDEV_LUXINGWEI文件夹下右键创建特征如下图:4)再在特征下创建具体的特征如大类、中类、小类、物料编码特征有:一般、业务浏览器、主数据/文本、层次结构、属性、组合六大标签抬头有描述、版本,也就是激活状态等信息A对一般标签主要是修改数据类型和长度:B 对主数据/文本主要是勾选是否带有属性和文本:C 对属性标签,若有主数据和文本,不但要勾选上,还要添加上相应的属性:其中的大类、中类、小类也是创建的特征。

2创建关键值关键值:类型/单位、聚集、附加财产三个标签。

抬头跟特征一样有描述、版本,也就是激活状态等信息在类型处只能选择金额,数量,编号,日期,时间5种类型的数值字段。

选择不同的类型,在数据类型处也会自动对应不同的选择。

在货币/计量单位处:固定货币是指国家,单位/货币处是输入单位信息对象。

一般修改主要是类型/单位标签二创建源系统创建原系统简单,在文件下面右键创建即可如:LUFITE三创建数据源和抽取数据选中数据源在石药练习用下面右键点击创建数据源填写数据源名和数据源的数据类型,数据源的数据类型分为业务数据、主数据属性和主数据文本,三种类型的创建大同小异,在此以主数据属性为例惊醒创建。

主数据属性一般标签中主要填写简要描述和中间的说明如下图:对于主数据属性的提取标签主要填写文件名称,要忽略的抬头行和数据分隔符,数据分隔符用英文输入法下的逗号等如下图:对于建议标签,主要是点击装载示例数据,就会显示装载的字段、数据类型和长度等,需修改字段、长度、格式,有时还需要勾选小写字母有利于数据的装换。

对于字段标签,可以手动输入字段。

然后保存,激活主数据属性就可以了。

还要创建数据包对实际数据进行抽取。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BW 例程(Routine)
2013-06-04 10:50:51| 分类:默认分类 | 标签: |举报 |字号大中小订阅
例程就是我们可以自己定义的程序代码。

通过程序代码来完成我们的需求,因为业务是千变万化,如果想让产品能跟随上业务的脚步,就必须要有非常灵活的功能来补充。

大家都知道软件产品都是通过代码来编制出来的,所以这里的例程是用最灵活的代码来进行补充,以达到完成客户灵活的业务变化。

当然在BW模块中,代码的编写只是其中一个小的功能,不像ABAP顾问,主要是通过编程来实现需求。

BW顾问注重的是建模,性能,是完成数据仓库,分析数据等等。

在"转换"中,最重要的有三种类型的例程,开始例程,转换例程及结束例程;此外还有专家例程,反向例程。

开始例程:开始例程在每个数据包开始进行转换时运行。

开始例程没有返回的值,它直接对数据包进行计算、修改或删除等操作,将操作的结果直接保存在数据包中进行后续的转换步骤。

当然,开始例程也可以访问和操作SAPBI 系统中的其他数据库表。

转换例程:则是在每笔数据传输过程中,对数据进行的一个转换,例如数据根据条件进行的匹配转换。

当在每个字段的详细规则中,选择例程的规则类型就会弹出对话框来贴些转换例程。

结束例程:结束例程对经过转换规则转换后的数据进行操作,它操作的是一个与目标对象字段结构一致的表结构。

与开始例程一样,它也是逐个数据包进行处理的。

在结束例程中,可以进行各种数据的操作,比如,删除不需要的数据、进行数据质量检查等。

专家例程: 专家例程是系统提供的进行数据转换的另一个选项,这一类型的例程较少使用。

一般只在SAP BI 提供的标准函数不能满足转换需要的时候,才使用专家例程。

在已知道数据库表逻辑时,出于提高性能的考虑,也可以使用专家例程而不使用图形界面。

专家例程还可以更方便地将一条长记录分成多条短记录。

使用专家例程可以编写系统提供的规则类型以外的任意转换,这时需要自定义写入数据加载日志的信息。

一旦为一个转换创建了专家例程,系统会删除同一转换内已经定义好的其他转换规则。

反向例程:在上图中没有标识出来,它将目标对象在运行报表时的选择条件和输出字段转化为对源对象的选择条件和输出字段的要求。

反向例程只在两种情况下使用。

1) 如果为虚拟信息提供者定义了例程,出于性能方面的考虑,可以使用反向例程。

由于虚拟信息提供者本身并不存储数据,只在运行报表时直接到源系统读取数据,转换中的例程可能使报表的选择条件与输出字段与源系统不存在直接的对应关系,因此有必要把这些信息通过反向例程传给源对象。

2) 当使用SAPBI 的报表跳转功能,从SAPBI 系统跳转到其他SAP 系统的事务处理界面时,如果数据是经过例程转换的,需要使用反向例程将报表中相应的信息返回给其他的SAP 系统。

在这两种情况下,如果不使用反向例程,系统选择源对象所有的值。

在代码*$*$ begin of global …和*$*$end of global ...之间输入用户的数据定义。

用户可以使用两种方式声明数据:
1 )使用语句'CLASS DATA'进行全局数据声明。

用这一方法声明的数据在整个数据请求
中都有效。

2) 使用语句'DATA'进行全局数据声明。

用这一方法声明的数据只在当前的数据包中都
有效。

全局数据声明使不同的例程之间共享数据成为可能。

例如,可以在例程中使用其他例程的中间计算结果,或者在稍后再次调用同时例程时重用例程的数据。

下面分别给出一个开始例程,传输例程及结束例程的应用场景及代码实现,如下:
1.开始例程程序范例及场景:
在数据传输伊始就需要删除AAA工厂数据,则可以在传输例程中写入如下程序:
*$*$ begin of routine - insert your code only below this line
"删除AAA工厂
DELETE SOURCE_PACKAGE WHERE /BIC/ZPLANT = 'AAA'
*$*$ end of routine - insert your code only before this line
2.转换例程应用:
在数据传输过程中需要补充物料前导零,则在信息对象例程中加入以下代码即可。

*$*$ begin of routine - insert your code only below this line
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = SOURCE_FIELDS-MATNR
IMPORTING
OUTPUT = RESULT.
*$*$ end of routine - insert your code only before this line
3.结束例程应用:
如果数据源的结构是一个扁平化结构,现在需要将其拆分成多行,例如结构源数据是办事处一月份销量二月份销量三月份销量...
而目标的结构为办事处月份销量;则就可以在结束例程里做文章了;示例代码如下:先在开始例程中定义一个与源一模一样的内表,并且将源值赋给这个内表,代码如下:*$*$ begin of routine - insert your code only below this line *-* ... "insert your code here
ITAB [] = SOURCE_PACKAGE [].
*$*$ end of routine - insert your code only before this line *-*
然后在结束例程中,在写入以下程序:
*$*$ begin of routine - insert your code only below this line *-* ... "insert your code here
REFRESH RESULT_PACKAGE.
DATA: WA_RESULT TYPE _TY_S_TG_1.
LOOP AT ITAB INTO WA_ITAB.
WA_TG-/BIC/ZSM_OFF = WA_ITAB-ORG_ID.
*****1月
WA_TG-CALMONTH2 = '01'.
WA_TG-/BIC/ZSM_BPQTY = WA_ITAB-M1.
APPEND WA_TG TO ITAB_TG.
****2月
WA_TG-CALMONTH2 = '02'.
WA_TG-/BIC/ZSM_BPQTY = WA_ITAB-M2.
APPEND WA_TG TO ITAB_TG.
****3月
WA_TG-CALMONTH2 = '03'.
WA_TG-/BIC/ZSM_BPQTY = WA_ITAB-M3.
APPEND WA_TG TO ITAB_TG.
ENDLOOP.
LOOP AT ITAB_TG INTO WA_TG.
MOVE-CORRESPONDING WA_TG TO WA_RESULT.
APPEND WA_RESULT TO RESULT_PACKAGE.
ENDLOOP.
*$*$ end of routine - insert your code only before this line *-*。

相关文档
最新文档