实用云,提供最全最实时的云市场资讯

手机站:/m

大带宽_数据库连接数_优惠券

时间:2021-09-25 20:21编辑:实用云来源:实用云当前位置:主页 > 云服务器 >

大家好,

从我上一篇关于UI修改的文章中,我进一步尝试修改现成的Fiori应用程序来创建销售订单。

在这篇文章中,我们将讨论并了解如何修改现有的标准应用程序以满足定制需求。

尽管这在SAP上其他作者之前的一些文章中已经讨论过开发者论坛,我认为讨论是一个好主意,因为我找不到任何涉及数据创建场景的例子。

我能找到的大多数帖子都是关于扩展模型结构的扩展,以及通过BADI填充细节。

但是由于我的问题都无法解决,我不得不扩展标准Odata服务并重写一些方法。让我们探究一下原因?

SAP以销售代表的角色提供的销售订单创建应用程序(SD\U SO\U CRE)如下所示。

https://www.sapfioritrial.com/sites?helpset=trial&sap client=001#SalesOrder create

当您尝试使用应用程序创建订单时,您必须遵循向购物车添加产品、查看订单、,审核发货,然后最后下订单。

在所有这些过程中,我们关心的是手动输入收货地址,这在交付标准版本时是不可能的。

收货方审核屏幕如下:

我们的要求是允许上述屏幕输入地址详细信息,如地址、城市、,和状态等,并允许用户使用此地址创建订单。

通常在进行此类更改时,淘客返利,过程是分析应用程序的UI5和Odata端的选项。

当我观察到应用程序的UI5部分时,我可以找到一些现有结构,在其中我可以将这些详细信息传递回Odata。

我遵循相同的扩展性窗格进行了修改,并找出了以下两个需要修改的视图和控制器来进行此更改:

这里使用的Odata服务是SRA017\u SALESORDER\u CREATE。DPC\u扩展类(odata的数据提供程序)有一个名为SALESORDER\u CREATE\u DEEP\u ENTITY的方法。此方法负责在我们从UI5应用程序下订单的最后一步创建销售订单。

我发现没有BADI可用于确保从UI5应用程序传递的值得到正确处理,以便将其用作合作伙伴地址以发送到。

不幸的是,此特定方法不适用提供任何扩展,例如BADI调用,以确保从UI5应用程序传递的值得到正确处理,以便将它们用作Ship to的合作伙伴地址。

没有BADI调用,可以实现它来分叉现有的创建订单的方法。这正是我们面临的挑战。

这个问题的解决方案分为三个主要部分:

现在让我们详细地看一下解决方案:

我们发现,我们有以下文件可以进行修改,返利app怎么用,以允许输入的地址字段,并通过将值放入正确的结构中来提交订单,然后再将其发送到服务器后端Odata服务。

对view SalesOr的扩展版本进行以下修改derCartDetailsCustom.view.xml文件

旧代码:

新代码:

请确认此视图的控制器derCartDetailsCustom.view.xml文件处理用户输入并用相关细节更新模型。为此,我们将修改SalesO文件RderCartDtailsCustom.controller.js文件.

最后,在函数调用将数据发送回odata服务之前,我们需要从模型中提取值并将其放入正确的结构中。最后一步是SalesO,我们修改了控制器rdereviewcartcustom.controller.js文件.

2. 扩展标准Odata服务SRA017\u SALESORDER\u CREATE,要重新定义方法SALESORDER,请在子类中创建\u DEEP \u实体。

正如我们在UI5部分中所做的那样,现在是在创建订单之前获取这些值并将其放入正确结构的时候了。

https://wiki.scn.sap.com/wiki/display/Fiori/sap+Fiori+-+ExtensibilitySo我创建了Odata服务的扩展基于标准OData服务的模型命名为ZSRA017\u SALESORDER\u CR。为此,高返利页游,我们需要创建标准OData服务SRA017\u SALESORDER\u create的扩展。怎么做?好吧,下面的链接提供了大量有用的资料:我重新定义了SALESORDER\u CREATE\u DEEP\u ENTITY方法来编写代码:最后一段代码,我在这里所做的就是在BAPI调用创建订单之前,将我们从UI5应用程序获得的值传递到相关的结构地点。一个请注意,当我们扩展任何方法时,它将是空的,您可以在这里编写新代码,也可以从超类方法复制。只根据自定义需求执行自定义代码是一种很好的做法。对于像标准场景这样的任何其他情况,我建议调用方法的超类版本,如下所示:*尝试。*调用方法SUPER->SALESORDER\u CREATE\u DEEP\u ENTITY*导出*LS\u salesforder=LS\u salesforder*IT\u KEY\u TAB=IT\u KEY\u TAB*IV\实体\名称=IV\实体\名称*导入*ER\u DEEP\u ENTITY=ER\u DEEP\u ENTITY*ES\ U SALESORDER=ES\ U SALESORDER*    .*CATCH/IWBEP/CX\u MGW\u BUSI\u异常。*CATCH/IWBEP/CX\u MGW\u TECH\u异常。*结束。这个这种方法将确保应用程序在不涉及自定义需求时使用标准代码。 完成此操作后,需要激活此Odata服务并将其发布到网关。你知道我的意思吧?或者按照上面提到的wiki页面上的教程进行操作。三。向UI5扩展应用程序注册新的Odata服务。作为拼图的最后一块,服务器 云服务器,我们需要确保我们的自定义UI5应用程序版本指向Odata服务的自定义版本。为了实现这一点,服务器云,我们可以遵循以下步骤中提到的步骤:在工作区中选择自定义应用程序,然后右键单击主文件夹->选择新建->扩展。按照步骤单击"下一步",直到到达步骤扩展选择,此处选择"替换"服务。在下一步从中选择Odata服务后端:那呢就这样! 现在,如果您查看输出,屏幕允许编辑:

当您下订单时,订单有定制的送货地址。

上一篇域名解析_阿里云oss上传_年度促销

下一篇云主机_阿里云呼叫中心_价格

世界之最排行

世界之最精选