简介
我们在一个带有Abap 7.50 SP07版本的GW系统上实现了Fiori MyInbox。
WF在后端版本7.40 SP11上。
我们需要一些关于MyInbox的额外信息,这些信息在标准实现中不可用。因此,我增强了应用程序以获取这些数据。
以下是我在增强所有内容时遇到的问题以及我是如何解决的。
我的主要文档,我用来增强我的收件箱,可以在这里找到:2118812.
系统
我将在这里使用的系统是2
GW:7.50 SP07版本的网关/前端系统
be:7.40 SP11版本的后端系统
在我的工作流中,我为工作流中需要的对象实现了工作流类。标准TASKPROCESSING不会为基于类的对象生成URL。所以我必须自己做。
在BE系统上:
第一步是创建一个URL。我已经决定使用一个界面YIF\ u工作流,我可以在每个类中使用。定义很简单:
现在在我的类中,大数据传输,实现也很简单,例如YCL\u WF\u类。
在display方法中,你可以做任何你想做的事情,例如调用事务。
也是系统。
由于MyInbox在前端网关上,我需要通过RFC从我的后端获取数据。
因此我生成了一个dunction模块YEWF\u get\u MISSING\u URL此编码:
现在我们需要转到GW系统。
下一步是增强网关服务。调用transaction SEGW并创建一个新项目(YTASKPROCESSING)
然后右键单击节点数据模型上的上下文菜单并调用redefine ODate Service
您需要版本2中的/IWPGW/TASKPROCESSING:
标记所有条目并单击execute:
单击顶部的generate按钮并保持原样。系统将生成一些类,我们可以对这些类进行增强。
现在就是这样。无需更多操作。
在GW上,我们现在可以找到一个类YCL\u YTASKPROCESSING\u DPC\u EXT。在这里,我们需要重新定义方法CASE\u GET\u ENTITYSET,以便在调用对象时调用我们的RFC:
好的,就在这里。
现在在GW上,调用TA/IWFND/MAINT\u服务并单击new SERVICE:
因为Systemalias使用"LOCAL"并检查服务:
find点击你的服务,接受下一个弹出窗口并返回。
在概述中,淘客,您将发现您的服务具有本地目标:
在这里您需要将系统别名更改为指向。
因此单击。
复制现有条目并将别名更改为您的BE:
至少删除别名为"本地"的条目。
现在是增强MyInbox的时候了。为此,微博淘客,在Eclipse中创建一个新的SAPUI5应用程序,如Coobook中所述。您只需要创建组件.js上传到你的服务器上。
现在是时候测试你的更改了:调用独立测试的URL:
哦。这是什么?
试着用chrome上的调试工具找出错误。点击F12
非常奇怪的信息。调试了一段时间后,我发现调用了一个名为
的entityset I,淘客返利软件,它在我的扩展服务类中没有定义。
解决方案:
转到方法CASE\u GET\u entityset并在开头插入这行:
再试一次:
瞧,没有错误,请稍候。带对象链接的选项卡在哪里?
原图:
好的,好像少了点什么。
解决办法:
我花了一整天的时间才找到解决办法。
我做的是:
首先我检查原图。是S3。查看.xml. 在这里我发现了一些有趣的东西:
这是ObjectLinks的图标。正如您所看到的,visible属性是通过后端设置的,在我们的例子中是GW.
检查编码。相关的是class/IWPGW/CL\u TGW\u TASK\u FACADE\u BWF。在/IWPGW/IF\u TGW\u TASK\u FACADE~ READ\u TASK方法中,从BE中选择一个任务,然后映射:
好,云服务器哪个好,似乎可以工作,但在调试器中我发现:
正如您在GW中看到的,标志TASKOBJECT被设置为space。我的第一个想法就是把它放在我的扩展课上。但"确认"和"重新提交"也设置为空格。这是对后端负责的东西。所以我的解决方案是:
创建一个子类YCL\u TGW\u FASCADE,它继承自/IWPGW/CL\u TGW\u TASK\u FACADE\u BWF
重新定义必要的方法:
在gateway服务类中我们需要重新定义方法CASE\u GET\u ENTITY,实体集任务和实体集任务:
案例集任务:
实体集任务:
这里我们需要调用我们自己的类。因此,从第42行到第51行进行了相关的更改。
实体任务
这里我们做了与上述相同的操作。cjanges在第32–39行:
激活并重试:
现在它工作了。
如果我遇到其他问题,我会继续写博客。
祝你有愉快的一天。