SAP专业人员每天都在忙着为业务和用户提供支持,不断寻求流程的改进。他们在SAP系统中收集需求、配置或编码,更多的时候他们要与SAP图形用户界面(GUI)打交道。他们对SAP系统内的数据以及业务流程都有很深的了解,能够像念咒语一样召唤出一大群事务代码。当要求提供分析报告时,他们实际上有两种选择:在SAP系统中通过编码生成分析报告,或者将数据推送到数据仓库,由其他人生成报告。这两个过程都是典型的耗时长、资源密集型工作,会给终端用户和SAP专业人员带来挫败感。对于特定的客户,SAP用户最大的抱怨是,当他们最终收到请求的报告时,报告已经不再适用了。
本书将为SAP专业人员提供帮助,在业务专家和数据科学家之间架起一座桥梁。在这几页内容中,你会找到一些方法,以摆脱这种典型的报告形式和至今仍在严格遵循的分析方法。正如我们前面所讨论的,要做到这一点,首先就是直接提出更好的问题。
下面是一个典型的SAP场景:Cindy负责应收账款的业务。她需要一份客户30-60-90天逾期报告,根据客户的逾期时间是30天、60天还是90天进行分类。财务部的Sharon收到了这个请求,她知道可以创建一个标准的ALV(ABAP列表查看器)报表,或者提取数据并将其推送到业务数据仓库(BW),在数据仓库中可以使用Microstrategy或其他任何工具来生成报告。
如果将Sharon的角色换成数据科学家将会怎样呢?Sharon收到报告请求,她知道她可以送交满足要求的报告,但她转念一想:“是不是还可以再做点什么呢?”她打开记事本,记下了如下想法。
逾期付款的人之中是否有屡犯者?
数据中是否有一些有趣的关联性?我们知道的客户信息有姓名、付款历史、采购项目和金额。
如果客户延迟付款,我们能够预测这种情况吗?会延迟多久呢?
我们可以使用这些数据评估客户吗?如果库存较低,评分较高的客户也提出相同的请求时,这时评分较低的客户可能无法获得订单。
什么类型的可视化会更有用呢?
Sharon草绘了一个交互式仪表盘报告,她认为该报告对客户非常有用。有了这些想法和草图,Sharon向部门的数据科学家或SAP开发人员咨询报告的可行性。
这两种方法有明显的不同。第一种方法是典型的SAP响应,限制了业务分析人员的创造性和知识能力。第二种方法利用了他们的创造力。Sharon不仅仅提供所要求的信息,当她看到SAP中的数据并提出更好的问题时,她会对流程的实质改进起到很大的作用。
这只是一个例子。试想一下典型的SAP团队可能会遇到各种各样的请求,因此就有了本书!
另一种将SAP团队的思维转变为更加动态和以数据为中心的方法是使用更好的工具,这是SAP开发人员的职责。大多数SAP开发人员都生活在一种称为ABAP(高级业务应用程序编程)的应用程序编程语言的世界中,要求他们提供报告或流程改进时,他们会立即转向SAP用户界面或Eclipse,那里是他们愿意花费时间和传递价值的地方。
ABAP的原意是通用的报表处理程序(Allgemeiner Berichts-Aufbereitungs-Prozessor),它是一种服务器端的编程语言,专门用来扩展SAP的核心功能。你可以用它创建程序,用来显示报表、运行商业事务,或者接收外部系统数据并将其集成到SAP系统。大量的SAP ERP事务只在ABAP代码上运行。
ABAP开发人员通常专注于SAP提供的一个或多个业务功能。由于ABAP程序经常用来直接提升标准的SAP特性,所以ABAP开发人员对企业设计流程非常熟悉。熟悉ABAP的人员通常会同时承担技术编程和业务分析两种角色。
我们真诚希望SAP开发人员将SAP视为数据源。如图1-1所示,报告的表示层和逻辑层应从数据库层中抽象出来。值得注意的是,SAP数据是高度结构化的,具有严格的业务规则。这种方法最明显的一个优点是逻辑层可以访问其他数据源,比如公共数据。在SAP系统中,如果要查看胶鞋销量与天气模式之间的相关性,则必须将来自NOAA的天气数据输入BI或SAP系统中。然而,分层模型可以通过逻辑层访问数据,并在表示层中显示数据。通常,数据可能是一个应用程序接口(API),它允许在不存储的情况下访问数据。分层模型还允许逻辑层绑定到诸如Azure Machine Learning Studio之类的工具中,以便在SAP数据上执行机器学习或深度学习。
SAP缺少Python语言或R语言
中成千上万的库或软件包的支持,也不具备轻松创建动态或交互式仪表盘和数据可视化的能力。但是不要误会,SAP确实有做高级分析、仪表盘和可视化的工具,只是需要花费大量的金钱、精力和时间。有些地方在创建报告之前是以月或季度为单位计算交付期的,有时候有效的业务问题窗口是以小时为单位计算的。借助本书介绍的工具,我们打算缩小这一差距。如果你是SAP开发人员,强烈建议你学习Python和R等编程语言,这样就可以使用它们对SAP数据进行分析。首先,这些编程语言不局限于SAP生态系统;其次,它们都是免费的。
图1-1:数据科学发现的简单分层模型:数据库层、逻辑层和表示层
除了SAP之外,还有许多工具可以帮助SAP开发人员展示SAP数据。你可以使用R中的RMarkdown和Shiny、Python中的Jupyter Notebook、PowerBI、Tableau、Plotly等工具。在本书中,我们将提供PowerBI、RMarkdown和Jupyter Notebook的演示示例。