这是关于如何构建您自己的SAP Fiori Approve Purchase Orders应用程序的教程系列的第十三部分。
本教程的目的是逐步向您展示如何构建您自己的SAP Fiori Approve Purchase Orders应用程序,并提供有关为什么某些方面已按原样开发的其他见解。
请参阅介绍性文章(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序)了解有关本教程的背景信息。
之前发布的章节可在此处找到:
第2部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序-第2部分)
在本章中,我们使用SAP Web IDE设置应用程序,并使用模拟数据运行应用程序。
第3部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第3部分)
在本章中,我们调整了应用程序的列表屏幕。
第4部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第4部分)
在本章中,我们调整了详细屏幕应用程序的第5部分:
第5部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第5部分)
在本章中,我们启用了Approve和reject按钮。
第6部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第6部分)
在第6章中,我们设置了一个存储全局应用程序状态的新模型。
第7部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第7部分)
在第7章中,我们封装了Approve/reject服务调用。
第8部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第8部分)
在第8章中,我们模拟了后端逻辑。
第9部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第9部分)
在第9章中,我们刷新了主屏幕和详细屏幕。
第10部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第10部分)
在第10章中,我们实现了阻止屏幕进行进一步输入的代码,例如,防止用户两次批准同一个采购订单,我们还创建了扩展点。
第11部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第11部分)
在第11章中,我们实现了用于Purchase approval应用程序的OData服务并创建了CDS视图。
第12部分:(教程:构建您自己的SAP Fiori Approve Purchase Order应用程序–第12部分)
在第12章中,我们将当前用户注册为企业采购模型(EPM)用户。
在第十三章中,我们将在OData服务中实现缺少的批准/拒绝功能。
实现批准和拒绝功能我们现在将实现缺少的approve/reject函数作为OData服务的一部分。基本上,EPM模型包含所需的业务功能,但我们需要使其适合我们的OData服务。
定义所需的函数导入
每个函数都实现为函数导入。
UI5 OData模型检查OData服务元数据中函数导入的定义。如果您调用函数import而不定义它,您将从UI5 OData模型得到一个异常。
1。使用事务SEGW启动SAP Gateway Service Builder.
2。在您的项目中,右键单击数据模型–>创建–>复杂类型以创建在其中定义函数导入的文件夹。
3。创建新类型函数importResult。这是函数导入的返回结构。它包含一个布尔标志success,用于指示采购订单的成功执行。选择ABAP结构SEPMRA\u S\u FUNCIMPORT\u SUCCESS.
4。展开"属性"节点,基于Edm Typeboolean创建新的属性success.
5。右键单击项目的"导入"功能节点,从关联菜单中选择"创建"。
6。添加ApprovePurchaseOrder和RejectPurchaseOrder作为返回类型FunctionImportResult的函数导入
7。重新生成运行时工件。
我们现在定义了两个函数导入。现在,我们需要实现业务逻辑。这将在我们的OData服务的DPC\u EXT类中完成。我们现在需要切换到ABAP开发工具
实现业务逻辑
1。在ABAP开发工具中,找到数据模型提供程序扩展类(\u DPC\u EXT)。2在这个类的私有部分,我们将定义:
方法APPROVE\u PO来存储审批逻辑方法REJECT\u PO来存储拒绝逻辑方法SET\u PO\u COMMENT实现注释处理方法ID_TO_KEY来执行从外部PO密钥到内部UUID密钥的密钥映射函数导入的常量
私有部分。
[…]
方法:
批准采购订单
导入
IO技术请求
上下文类型REF TO/IWBEP/IF\ MGW\ REQ\ FUNC\ U导入
引发
/IWBEP/CX\ MGW\ U BUSI\ U异常,
拒绝
导入
IO技术请求
上下文类型参考/IWBEP/IF MGW REQUE功能导入
提升
/IWBEP/CX MGW BUSIU异常,
设置
PO注释
导入
IV注释类型如果
EPM\U TEXT=>如果
EPM\U TEXT数据节点
数据文本
如果
EPM\U BO=>TT\U节点
提升
/IWBEP/CX MGW
BUSIU异常,
!将采购订单ID映射到相应的采购订单密钥(UUID)。如果购买
"!订单不存在或已处理,出现异常。
"!
"! @参数四采购订单id采购订单id
"!@参数rv|U键|采购订单键
"!@异常lcx|U异常|如果采购订单根本不存在或已经处理,则引发
ID|U到|U键
导入
IV|U采购订单ID类型如果|EPM|U头=>TY|U节点|U数据-采购订单ID
返回
值(RV|U键)类型如果|EPM|U=>TY|U节点|U键
引发
CX|EPM|U REF|U应用程序|U业务异常
常数:
"!此服务提供的OData服务操作的常量
开始GC\U服务\U操作,
"!服务操作:"批准采购订单"
批准采购订单类型/IWBEP/MGW\u技术名称值"批准采购订单"##无#文本,
"!服务操作:"拒绝采购订单"
拒绝采购订单类型/IWBEP/MGW\U技术名称值'拒绝采购订单'##无#文本,淘客怎么赚钱,云计算与大数据,
GC\U服务操作结束。
3。在public部分,定义/IWBEP/IF\u MGW\u APPL\u SRV\u RUNTIME~EXECUTE\u ACTION的重新定义。网关调用此方法来解析函数导入调用的逻辑。
类ZCL\u Z\u PO\u TUTORIAL\u DPC\u EXT DEFINITION
PUBLIC
继承自ZCL\u Z\u PO\u TUTORIAL\u DPC
CREATE PUBLIC.
PUBLIC SECTION.
METHODS CONSTRUCTOR.
METHODS/IWBEP/IF\u MGW\u APPL\u SRV\u RUNTIME~执行操作
重新定义。