云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

虚拟主机_色诺芬数据库_返利

小七 141 0

这是关于如何构建您自己的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章中,我们实现了阻止屏幕进行进一步输入的代码,例如,电子商务数据分析,防止用户两次批准同一个采购订单,我们还创建了一个扩展点。

在第十一章中,我们将实现用于采购审批应用程序的OData服务。

实现OData服务本教程一方面尽可能降低后端实现的工作量,另一方面尽量保持编码的独立性。因此,此编码显示了基本原理。接受/拒绝以非常直接的方式实现。有关更复杂的业务逻辑,请参阅SAP Fiori的ABAP编程模型。

OData服务的重用

请记住,每个SAP Fiori应用程序都需要一个专用的OData服务。不允许跨多个应用程序重用OData服务。但是,在实现中允许重用。例如,您可以在ABAP类、BOPF对象、CDS视图等中封装要跨多个应用程序重用的功能。兼容性

OData服务交付后,您需要确保其兼容性。也就是说,您需要确保对后端交付的OData服务的任何更改都不需要对前端的Fiori应用程序进行更新,反之亦然。

基本上,我们将为我们的服务介绍以下步骤:

创建一个空的OData服务首先,我们要创建一个空的网关项目来托管我们的新OData服务接下来,我们将为purchase orders和purchase order项创建所需的CDS视图。两者都将从现有的企业采购模型(EPM)中选择数据。

CDS曝光

在OData服务中如何曝光我们的两个CDS视图基本上有两个选项:引用和映射数据源(RDS/MDS)。我们将使用RDS,因为这是最直接的方法,OData模型是从CDS视图定义自动生成的。作为副作用,云服务器是什么,实体集名称将从CDS视图名称派生。如果您使用本教程以外的其他名称,则必须使用本教程中未涉及的映射数据源方法,或者将我们的前端编码调整为您的CDS视图名称。

为了不仅可以访问CDS视图,还可以访问生成的ABAP类,您应该添加正在使用的包ABAP开发工具中的收藏夹。在左侧的项目资源管理器中,右键单击收藏夹软件包并添加您的软件包。如果您像本教程那样使用$TMP,请选择用户的本地对象并输入您的用户名。

采购订单的CDS视图

接下来,我们将创建一个新的DDL源。DDL源表示用于定义ABAP CDS实体的ABAP开发对象。

1。要创建新的DDL源,请选择File–>new–>Other。展开ABAP节点,选择DDL源

2。出现一个向导。输入在中使用的包名称网关服务生成器($TMP)。输入CDS视图的名称(Z\u C\u PURCHASEORDER)并提供说明。

3。最后,我们将在视图中粘贴以下CD DDL:

@AbapCatalog.sqlview名称:'ZC采购订单'

@AbapCatalog.compiler.compareFilter比较过滤器:正确

@访问控制.授权检查:#检查

@EndUserText.label文件:'采购订单'

定义视图Z\U C\U Purchaseorder

为从SEPM\U I\U Purchaseorder中选择为Purchaseorder

-金额转换的目标货币是员工的公司货币

左外一个加入SEPM\u I\u员工作为当前用户当前用户.SystemUser= $会话用户

将[0..*]关联到Z\U C\U Purchaseorderitem作为上的\U PurchaseOrderItems_PurchaseOrderItems.POId= $投影.POId

{

键PurchaseOrder.采购订单作为警察,

@EndUserText.label文件:'总金额'

@语义:{amount.currency代码:'货币代码'}

货币换算(

金额=>PurchaseOrder.GrossAmountInTransacCurrency公司,

来源货币=>PurchaseOrder.TransactionCurrency采购订单.TransactionCurrency,

目标货币=>当前用户_公司货币,

汇率日期=>cast(左)(cast(tstmp\U current\U utctimestamp())abap字符(23)),8)如abap数据),

错误处理=>'设置为空',作为GrossAmount,

@语义:{currencyCode:true}

CurrentUser_公司货币作为货币代码,

计数(不同的采购订单_Item.PurchaseOrderItem项目)作为ItemCount,

采购订单_供应商.公司名称作为供应商名称,

@EndUserText.label文件":"Ordered By"

concat_with_space(PurchaseOrder_CreatedByUser.FirstName创建,采购订单_CreatedByUser.LastName创建,1)按姓名排序,

-在OData曝光期间,cast语句将属性映射到适当的EDM类型

@EndUserText.label文件:'交货日期'

铸件(最小值)(采购订单。\项目_ScheduleLine.DeliveryDateTime)作为时间戳保留类型)作为交货日期最早,

计数(不同的采购订单。\项目_ScheduleLine.DeliveryDateTime)既然存在,

@EndUserText.label文件:'更改于'

PurchaseOrder.LastChangedDateTime随着时间的推移,

@EndUserText.label文件:'交付至'

concat

concat_,带空间(当前用户公司)_地址.街道名称,当前用户。\u公司_地址.门牌号,1),

concat\u with \u space(',淘客查询,',

concat(

concat\u with \u space(CurrentUser.\u Company_地址.邮政编码,当前用户。\u公司_地址.CityName,1),用","空格连接",当前用户。\u公司_地址。国家,1)

),1)作为送货地址,

/*关联*/

}

其中

PurchaseOrder.PurchaseOrderOverall状态=#D#PO#U OA'P'-'P'='等待批准'

分组依据

PurchaseOrder.采购订单,

PurchaseOrder.LastChangedDateTime,

PurchaseOrder.GrossAmountInTransacCurrency公司,

PurchaseOrder.TransactionCurrency采购订单.TransactionCurrency,

当前用户_公司货币,

采购订单_供应商.公司名称,

采购订单_CreatedByUser.FirstName创建,

采购订单_CreatedByUser.LastName创建,

当前用户\公司_地址.街道名称,

当前用户\公司_地址.门牌号,

当前用户\公司_地址.邮政编码,

当前用户\公司_地址.CityName,

当前用户。\u公司_地址。国家

不要生成CDS视图,大数据资源,因为它包含与当前未定义的采购订单项目视图的关联。

有几点值得一提:

每个CDS视图都有一个对应的ABAP SQL视图(@AbapCatalog.sqlview名称安诺