维护流程链

学习目标

  • 使用 SAP BW/4HANA Cockpit 定义、执行和监控流程链

从显示组件迁移到 InfoArea

在 SAP BW 中,流程链通过专用的显示组件层次结构进行组织。对于 SAP BW/4HANA,显示组件会迁移到相应的 InfoArea

对于就地转换(in-place conversion),迁移会在升级到 SAP BW/4HANA 的技术升级期间自动完成。对于 Shell 转换或 Remote 转换,SAP 建议先将显示组件层次结构传输到目标 SAP BW/4HANA 系统,然后再传输任何流程链。如果不进行此传输,流程链会被临时传输到 NODESNOTCONNECTED InfoArea。传输完成后,流程链会重新分配到正确的 InfoArea。要传输显示组件层次结构,请在传输请求中添加程序 ID R3TR、对象 RSDC 和对象名称 RSPC。

SAP BW/4HANA 中的流程变体

在 SAP BW/4HANA 中,流程变体的数量比 SAP BW 的早期版本少得多。这与 SAP BW/4HANA 中对象类型可用性的精简有关。另一个原因是 SAP HANA 的特性,它不需要索引生成或数据库统计信息刷新之类的额外性能相关活动。此外还有两个新变体:

  • BW 请求状态管理 - 整理(BW Request Status Management - Housekeeping) : 清理 DataStore Object (advanced)、InfoObject 特征和 Open Hub Destination 中的请求 TSN。

  • 检查后继 DTP 的 ADSO 中的新数据(Check for new data in ADSO of successor DTP) : 启用 BCS/4HANA InfoProvider 的异步加载。仅与 BCS/4HANA 附加组件相关的场景才适用。

当您从 SAP BW any DB 迁移到由 SAP HANA 提供支持的 SAP BW 时,现有流程链中已过时的流程变体在处理期间会被跳过,并且无法在新的流程链中建模。不过,SAP 建议在此领域进行整理,以精简流程链。

转换为 SAP BW/4HANA 之后,若干流程变体不再可用。流程链本身仍完全受支持,但如果必须删除某个变体(例如在就地转换期间),则必须相应地调整对应的流程链,也就是说,必须从链中移除该变体,并封闭前序流程与后续流程之间的间隙。在某些情况下,必须用相应的新流程类型替换某个流程变体。此时,流程链也必须相应地调整。这些调整有一些工具支持,但无法避免人工投入。

在 SAP BW/4HANA Cockpit 中建模和监控流程链

在 SAP BW/4HANA Cockpit 中,还有一些与 SAP BW/4HANA 中流程链相关的附加应用。现有的 SAP GUI 事务暂时保留,但您越早熟悉这些新功能越好。

  • 建模流程链:

系统会显示系统中所有流程链的列表。您可以在此创建、更改和删除流程链。要创建和编辑流程链,您可以使用该应用中的图形化编辑器。您可以在其中通过选择流程变体来插入流程,也可以直接在编辑器中定义流程。

  • 建模流程变体:

系统会显示系统中所有流程变体的列表。您可以在此为许多流程类型创建流程变体。您可以在流程链中使用这些流程变体。不过,您不必先建模流程变体才能建模流程链。与过去一样,可以建模流程链并在其中创建相应的流程类型。

  • 监控流程链 — 仪表盘:

系统会显示各种图表,概述流程链和流程链运行的重要统计分析。您可以从此处导航到流程链的监控列表或流程链运行的列表。

  • 监控流程链 — 查看最新状态:

系统会显示所有流程链及其状态信息的列表。您可以在此计划、取消计划或修复流程链,并可以调用当前运行的日志。

  • 监控流程链运行:

系统会显示系统中所有流程链运行及其状态信息的列表。您可以在此修复某次运行,或调用某次运行的日志以分析错误。

引入流式处理流程链

2006 年,SAP NetWeaver 7.0 引入了一个称为**实时数据采集(RDA)**的概念,用于以极高的频率(从每小时到每分钟)实现新数据的快速上传,尤其适用于运营报表场景。RDA 仅适用于 InfoCube 和 DSO(经典),不适用于 ADSO,因此它不再是 SAP BW/4HANA 中有效的概念。作为一项高级替代方案,SAP 已将 RDA 能力实现到流程链的标准框架中。

这些所谓的流式处理流程链是自随 SAP BW 7.5 SP04 发布以来推荐的概念。它们支持将数据传输近乎实时地传送到 InfoProvider,并为 BW 报表呈现最新数据。它并非 100% 实时,因为在实际情况下延迟最理想也以分钟计。因此,不要期望出现例如纯数据复制场景中常见的毫秒到秒级延迟。

注意

一般而言,尽可能快地获取数据不应被视为首选。相反,SAP 建议尽可能利用虚拟化和数据联合。SAP BW/4HANA 提供了多种合适的建模选项,主要基于 SAP HANA 集成服务(SDA、SDI)、SAP HANA 建模选项(Calculation View),以及 BW 应用侧的 Open ODS View 或 CompositeProvider 等虚拟 InfoProvider。因此,只有当这些方法无法满足您的业务需求时,才应将流式处理流程链视为首选的替代方案。

没有从 RDA 概念到流式处理流程链的自动迁移。在 SAP BW/4HANA 转换的准备阶段,必须执行若干手动步骤来移除 RDA 组件,并基于流程链设置相同的逻辑。有关详细的分步说明,请参阅 SAP 注释 2447916。

提示

SAP 注释 2844555 – 流程链流式处理更正的重要 SAP 注释(BW Note Analyzer)

设置流式处理流程链

可以为具备增量能力且基于 SAP BW/4HANA 源系统 ODP_* 或 HANA_* 的 DataSource 设置流式处理流程。对于 ODP 源,如果 DataSource 启用了流式处理,则会更有优势,因为在这种情况下,只有当源中存在新的增量数据时,流程才会传输数据。对于 HANA 源,如果连接具有名为实时变更数据捕获的属性,则情况相同。如果满足这些前提条件,就可以避免空的加载请求。因此,这是使用流式处理流程链的首选模式。

流式处理流程链只能由少数几种流程类型组成,例如不应涵盖额外的整理任务。由于重点是快速执行和重复执行,DTP 执行ADSO 激活是这些情况下支持的主要流程变体。

流式处理是 SAP BW/4HANA 中流程链的一种运行模式。您可以通过在 SAP GUI 的菜单中选择流程链属性流式处理模式,或在 SAP BW/4HANA Modeling 应用的流程链属性中激活它。

流程链运行时,每个步骤都会花费一定的时间;有趣的问题是,在此期间如果再次启动该链(甚至可能启动多次),并且执行到达了上一次执行时已处于活动状态的流程,实际会发生什么:

  • 经典方法是在后台计划流程链。此时,第二次执行会等待上一次执行完成,最长等待 10 分钟。如果上一次执行在此期间未完成,第二次执行将被取消,流程链会被中断,并以错误结束。

  • 处于流式处理模式的流程链使用新的排队任务管理器框架执行。这允许灵活数量的工作进程作业从队列中获取下一个流程。如果第二次、第三次以及更多次执行到达当前活动的流程,这些再次启动该流程的请求只会被写入队列。不会占用更多资源,系统也不会等待。当前流程一完成,工作进程作业就会收到针对给定流程的所有这些启动请求,并且只重新启动该流程一次:它从队列中取出最近的链执行并执行它。这意味着第二次和第三次链执行会被丢弃,只有最近的链执行会继续。 想象一下这样的场景:几个人在机场外等候各自的出租车。他们都想去同一家酒店。最终他们都上了同一辆出租车,而其他出租车行程则没有发生。

流式处理运行模式

由流式处理流程链控制的数据传输可以分为不同的运行模式:一种 Push 运行模式和两种 Pull 运行模式。它们之间的主要区别在于,是消费系统还是源系统触发数据传输:

  • 在 Push 模式下,源系统向 SAP BW/4HANA 发送一个触发器,由后者执行数据传输。

  • 在 Pull 模式下,作为目标系统的 SAP BW/4HANA 起主导作用。这意味着,它会检查源中的新数据,并将新数据传输到目标 InfoProvider。此模式有两个版本:

  1. 智能 Pull : SAP BW/4HANA 会定期在源中检查新数据。但是,只有在检查成功时才执行数据传输。这意味着,目标 InfoProvider 中不会生成空请求。

  2. 计划的 Pull : 流程链利用流式处理框架,并按周期进行计划。如果需要,可以频繁执行,间隔最短可达每分钟一次。每次计划的运行都会执行数据传输,这意味着无论源中是否存在新数据,都会在目标 InfoProvider 中创建一个请求。

PUSH 模式

PUSH 模式的主要特征是,当源系统生成新记录时,SAP BW/4HANA 会收到来自源系统的触发器。此事件会立即启动流程链的执行,将新数据传输到 InfoProvider。流程链以流式处理模式计划一次,无需定义周期性重复。这是 ODP 源的首选模式,因为只有当源系统中存在新数据时,流程链才会运行。

前提条件:

  1. 此模式仅适用于以下类型的 ODP DataSource: SAP 抽取器 、 ABAP CDS View 、 BW InfoProvider 和 SLT 。其他 ODP 类型(如 ODP_HANA 或 ODP_BYD)不支持此推送模式。

  2. 另一个前提条件是 DataSource 需要 支持增量(Delta-capable) :

  • ODP_SAP 或 ODP_CDS:增量能力取决于具体实现。

  • ODP_BW:增量能力取决于源 InfoProvider。受支持的源为 DSO(经典)、InfoCube 和 ADSO。

  • ODP_SLT:所有 DataSource 通常都具备增量能力。

  1. 最后,DataSource 还需要支持 流式处理(Streaming) :

  • ODP_CDS、ODP_BW、ODP_SLT:所有具备增量能力的 DataSource 默认都支持此属性。

  • ODP_SAP:此属性取决于抽取器的具体实现。例如,LO Cockpit DataSource(2LIS_)由于其复杂性(例如由于排队的增量)通常不启用流式处理,但其他 SAP 交付的 DataSource 可能支持此功能。不过,大多数 SAP 交付的 DataSource 在交付版本中并未启用流式处理。 系统提供了一些更正(请参阅 SAP 注释 1692484、1780297、1782173),但在大多数情况下,必须在 SAP 源系统中手动设置所谓的实时标志*(例如,通过客户报表将 ROOSOURCE-REALTIME 更新为值 'X')。不过,请注意,这仅对能够实时提供新数据的 DataSource 才有意义,也就是说,在任何时间点都有增量可用(另请参阅 SAP 注释 905089,该注释当前未发布,因此仅限 SAP 内部)。 客户开发的 DataSource 最初也没有此属性。必须在 DataSource 定义中显式启用它(事务 RSO2 )。相应的属性称为 实时启用(Real-Time enabled) ,可在增量模式的定制设置中使用。

如果满足这三个前提条件,则 ODP 队列守护程序能够在目标 SAP BW/4HANA 系统中触发流程链,以执行 DTP 并立即加载新数据。必须在 SAP 源系统中将此守护程序作为常规作业 ODQ_DAEMON_CLIENT_xxx 计划到 ODP 队列中(事务 ODQMON转到 / 实时守护程序...)。

智能 PULL 模式

智能 Pull 模式的主要特征是,目标 SAP BW/4HANA 系统会非常频繁地(每 60 秒)检查源中是否生成了新记录。如果检查成功,则立即启动流程链,将新数据传输到目标 InfoProvider。流程链以流式处理模式计划一次,无需定义周期性重复。这是 HANA 源的首选模式,因为只有当源系统中存在新数据时,流程链才会运行。

前提条件:

  1. 此模式仅适用于 HANA DataSource 。

  2. 这些 DataSource 需要 支持增量(Delta) 。

  3. 如果源系统类型为 HANA_LOCAL 或 HANA_MDC ,请检查 SAP 注释 2372534 中的附加要求。

  4. 如果源系统类型为 HANA_SDA ,则使用哪种类型的远程连接非常重要:

  5. SAP HANA Smart Data Access (SDA) 驱动程序 通常 不支持 此运行模式。

  6. SAP HANA Smart Data Integration (SDI) 适配器 : 智能 Pull 仅适用于支持 实时变更数据捕获(Real-time Change Data Capture) 的 SDI 适配器,如 SAP HANA SDI 适配器功能概览中所述(来源:SAP Product Availability Matrix,又称 PAM: https://support.sap.com/content/dam/launchpad/en_us/pam/pam-essentials/TIP/PAM_HANA_SDI_2_0.pdf )。自 SAP HANA SDI 2.0 SPS05 起,这些适配器包括:

  • ASELTLAdapter, ASELTLECCAdapter

  • DB2ECCAdapter, DB2ECCLogReaderAdapter, DB2LTLAdapter, DB2MainframeLogReaderAdapter

  • MssqlECCAdapter, MssqlLogReaderAdapter

  • OracleECCAdapter, OracleLogReaderAdapter

  • PostgresSQLLogReaderAdapter

  • HanaAdapter

  • TeradataAdapter

  • AbapAdapter

  • CloudDataIntegrationAdapter

  • TwitterAdapter

如果满足这些前提条件,流程链就可以启用智能 PULL 模式。简而言之,SDI 适配器会实时将每个更改复制到生成的 BW 表(/BIC/CMT*)中。您可以在 BW DataSource 定义中识别此表,其中有一个名为 SAP HANA 对象的按钮。流式处理流程链每 60 秒就是在此位置检查新数据的。如果源中存在新数据,流程链会立即启动,将其加载到目标 InfoProvider。

注意:对于与源系统 HANA_* 相关的 BW DataSource,流式处理属性始终处于关闭状态(此 DataSource 无法触发流式处理)。此属性仅涉及且仅适用于 PUSH 模式的 ODP 源)。

提示

在前一单元中,在以下演示中创建流式处理流程链和流式传输数据更改,我们已经创建并使用了采用智能 PULL 运行模式的流式处理流程链。抽取基于 SAP HANA SDI HanaAdapter,因而基于源系统类型为 HANA_SDA 的 BW DataSource。在初始加载之后,我们更改了源中的几条记录。最终,这些更改被快速更新到目标 DataStore Object (advanced) 中。

计划的 PULL 模式

计划的 PULL 模式的主要特征是,SAP BW/4HANA 系统会非常频繁地执行流程链,仅仅是为了利用新的任务管理器框架。如果源更新极其频繁(例如每秒一条记录),这可能是最合适的模式。此时,智能 PULL 或 PUSH 模式将无法以相同的速度传输新数据,而简单的计划调度将是把数据加载到 SAP BW/4HANA 的更高效方式。

前提条件:

  1. 此模式适用于 ODP DataSource ,前提是这些 DataSource 未启用流式处理 。

  2. 此模式也适用于 HANA DataSource ,这些 DataSource 依赖上面运行模式中未列出的 SAP HANA SDA 驱动程序或 SDI 适配器。

  3. 另一个前提条件是 DataSource 支持增量(Delta) 。

如果满足这些前提条件,则必须以高频率将处于流式处理模式的流程链计划为周期性作业(如果需要,最高可达每分钟一次)。如果有可用的更新,它们会立即加载到 SAP BW/4HANA。另一方面,如果没有新数据,则会在目标 InfoProvider 中创建一个空请求。

不满足 PUSH 模式或智能 PULL 模式的前提条件,并不意味着您无法以流式处理模式运行流程链。对于具备增量能力的 DataSource,您仍然可以利用排队任务管理器框架以高频率运行它们。在这种情况下,需要将流程链计划为周期性作业以从源中拉取数据,而不是仅在源中有新数据时才触发流程链。

小结

注意

更多详细信息请参阅以下来源:

本课其余配图

PChains_Infoarea_Image_LJ

Compar_PC-Class_vs.HANA-Opt2_LJ

ObsoleteProcessVariants_LJ

PC Variants Conversion2_LJ

PC Variants Conversion1_LJ

BW4Cockpit_PChains_Image_LJ

StreamingPC_Intro1_Image_LJ

StreamingPC_Intro2_Image_LJ

StreamingPC_Push_image_LJ

StreamingPC_Pull1_image_LJ

StreamingPC_Pull2_image_LJ

StreamingPC_Summary_image_LJ

本课其余配图

PC Variants Conversion2_LJ

PC Variants Conversion1_LJ

本课其余配图

PC Variants Conversion2_LJ

PC Variants Conversion1_LJ

本课其余配图

PC Variants Conversion2_LJ

PC Variants Conversion1_LJ