S/4HANA Cloud三系统Cloud ABAP开发案例介绍
2023-12-1 22:41:40 Author: blogs.sap.com(查看原文) 阅读量:12 收藏

随着三系统(3SL)被引入到了SAP S/4HANA Cloud,public edition,我们在可扩展性中增加了一个全新的板块:开发者可扩展性,也被称为云ABAP开发。但是,开发者可扩展性能做什么?我们可以像在以前做OP一样在SAP S/4HANA Cloud中进行ABAP编程吗?我们可以进行代码调试吗?关键用户扩展之后会没用了吗?……我们脑海中涌现出许多问题。今天,我想给你们介绍一些我们使用开发者可扩展性做的扩展案例,希望它能给你们提供一些关于开发者可扩展性能力的具体展示,以及我们可以使用开发者可扩展性实现的典型场景。

案例1: 批量更改工作中心

在SAP S/4HANA Cloud中,我们确实有一些用于批量处理的标准应用,例如用于主数据的批量维护的应用等。然而,并不是每一个业务对象都有标准的批量处理应用。从我们的客户那里了解到,他们确实对某些业务对象有批量处理的需求。

在API Business Hub上,有一个全新的部分叫做“Developer Extensibility”,在这个部分下,你可以找到业务对象接口(Business Object Interface):

API%20Business%20Hub%u4E0A%u7684Business%20Object%20Interface%u90E8%u5206

API Business Hub上的Business Object Interface部分

随着业务对象接口(Business Object Interface)的可用性,我们可以开发用于批量处理的定制Fiori应用程序。在这里,我们提供了一个示例,我们通过利用工作中心的业务对象接口创建一个全新的应用程序。有了这个新应用程序,客户可以选择多个工作中心来批量更新某些字段的值。

%u4E1A%u52A1%u5BF9%u8C61%u63A5%u53E3%uFF1A%u5DE5%u4F5C%u4E2D%u5FC3

业务对象接口:工作中心

%u81EA%u5F00%u53D1%u5E94%u7528%u201C%u6279%u91CF%u66F4%u6539%u5DE5%u4F5C%u4E2D%u5FC3%u201D

自开发应用“批量更改工作中心”

%u9009%u62E9%u9700%u8981%u6279%u91CF%u66F4%u6539%u7684%u5B57%u6BB5

选择需要批量更改的字段

如您在上文中看到的,我们根据客户需求选择三个字段(Supply Area,Usage,Back Flush)进行批量更新。只要业务对象接口支持,您也可以实施其他字段的批量更新。

另外要提的是,在SAP S/4HANA Cloud中,我们无法在两系统中创建自定义业务目录。使用三系统,我们也可以创建自定义业务目录,并将自定义应用程序分配给自定义业务目录。这将帮助我们更准确地进行权限控制。

%u4E3A%u81EA%u5F00%u53D1%u5E94%u7528%u7A0B%u5E8F%u521B%u5EFA%u81EA%u5B9A%u4E49%u4E1A%u52A1%u76EE%u5F55

为自开发应用程序创建自定义业务目录

案例2: 采购申请批量上传

这是批量处理的另一个自定义应用程序的案例——采购申请的批量上传/创建。在这个例子中,我们为批量上传采购申请创建了一个定制的Fiori应用程序。它可以从Excel文件模板中创建多个采购申请。您可以根据自己的需求定义上传模板。这是通过采购申请的业务对象接口实现的。

%u4E1A%u52A1%u5BF9%u8C61%u63A5%u53E3%uFF1A%u91C7%u8D2D%u7533%u8BF7

业务对象接口:采购申请

%u81EA%u5B9A%u4E49%u5E94%u7528%u7A0B%u5E8F%u201C%u6279%u91CF%u4E0A%u4F20%u91C7%u8D2D%u7533%u8BF7%u201D

自定义应用程序“批量上传采购申请”

案例3: 增强的收货流程

在API Business Hub网站的Developer Extensibility部分下,有一个部分是:Business Add-Ins,也就是我们熟知的BAdIs。你可以找到一份BAdIs的列表,你可以利用这些BAdIs来通过实施自己的逻辑来增强你的业务流程。

%u9002%u7528%u4E8E%u5F00%u53D1%u6269%u5C55%u7684BAdls

适用于开发扩展的BAdls

我们收到一个需求,当为采购单据做过账货物收货时,客户希望将一些备注信息传递给系统自动创建的检验批上。我们通过使用两个BAdI来实现这个功能。第一个BAdI是MMIM_GR4XY_CHECK_DATA(检查收货中的表头和行项目数据),我们在过账货物收货时保存备注信息。第二个BAdI是BADI_QPL1_CHANGE_AT_CREATE4CLD(在创建检验批期间更改检查批表头),当系统自动创建检查批时,我们将保存的备注文本传递到新创建的检查批的短文本字段上。

%u505A%u6536%u8D27%u52A8%u4F5C%u65F6%u8F93%u5165%u5907%u6CE8%u4FE1%u606F

做收货动作时输入备注信息

%u5907%u6CE8%u4FE1%u606F%u4F1A%u4FDD%u5B58%u5230%u81EA%u52A8%u521B%u5EFA%u7684%u68C0%u9A8C%u6279%u4E0A

备注信息会保存到自动创建的检验批上

%u901A%u8FC72%u4E2ABAdl%u6765%u5BF9%u6536%u8D27%u52A8%u4F5C%u8FDB%u884C%u589E%u5F3A

通过2个BAdl来对收货动作进行增强

通过开发扩展,我们可以像以前一样,在代码中设置断点,并轻松地调试代码。当需要故障排除时,这将使开发者的工作变得更容易。

%u5728Eclipse%20ADT%u5DE5%u5177%u4E2D%u8FDB%u884C%u8C03%u8BD5

在Eclipse ADT工具中进行调试

案例4: 自定义库龄报表

报表是SAP S/4HANA Cloud中常用的业务场景之一。在两系统中,客户通常创建自定义CDS视图,并使用嵌入式SAC创建各种报表。有了三系统,我们可以在ADT工具里使用ABAP创建自定义CDS视图。我们可以在ABAP代码中实现更复杂的业务逻辑,这在两系统中不容易做到。

库龄报表是被我们的客户们广泛使用的报告之一。我们使用ABAP代码在三系统中实现了该报表。我们定义了一个自定义实体进行数据存储,并在自定义类中实现复杂的逻辑。此外,我们定义了一个维护对象,客户可以在其中维护哪些移动类型将被计入库龄报表的统计中,这给我们这张库龄报表带来了非常大的灵活性。

%u81EA%u5B9A%u4E49%u5B9E%u4F53

自定义实体

%u81EA%u5B9A%u4E49%u7C7B%u91CC%u5199%u4E1A%u52A1%u903B%u8F91

自定义类里写业务逻辑

%u81EA%u5B9A%u4E49%u5E93%u9F84%u62A5%u8868

自定义库龄报表

由于篇幅所限,此篇博客并未涵盖所有我们目前所尝试的开发扩展的案例介绍,我们将在之后对每一个场景做更详细的技术实现介绍,敬请期待。希望此篇博客能给您带来一些新的想法。

在此感谢以下同事对这些扩展案例的支持: Rex XieHongbo WangRiya YangQi LiuEcco LiuZhehui XiaAngela DaiJoey Li.

如果您想了解更多关于开发扩展的场景,我建议您访问: SAP Extensibility Explorer.

如果您想了解关于开发扩展的更多信息,您可以访问: official Developer Extensibility Help Document.


文章来源: https://blogs.sap.com/2023/12/01/s-4hana-cloud%e4%b8%89%e7%b3%bb%e7%bb%9fcloud-abap%e5%bc%80%e5%8f%91%e6%a1%88%e4%be%8b%e4%bb%8b%e7%bb%8d/
如有侵权请联系:admin#unsafe.sh