SAP Fiori我的收件箱-收件箱/发件箱拆分问题

2020-08-14 21:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我部署了我的收件箱,并且在大多数情况下都可以正常工作,除了一个问题。

我想将"收件箱"磁贴分割为4。

1。个人收件箱(需要我批准)

2。个人发件箱(由我创建)

3。部门收件箱(我的团队需要批准)

4。部门发件箱(由我的团队创建)

我为测试的.Individual收件箱和.Individual发件箱创建了图块。

动态图块可以正常工作。

收件箱:27,发件箱:20

为实现这一点,我意识到仅凭状态无法区分数据。 所以我添加了几个过滤器。

下面的屏幕是"收件箱"磁贴配置。

收件箱的收件箱服务URL:

/sap/opu/odata/IWPGW/TASKPROCESSING; mo; v = 2/TaskCollection/$ count/?$ filter = TaskDefinitionID eq'RFA'和Processor eq'INDIVIDUAL'和ProcessorName eq'INBOX'和 (状态为" READY"或状态为" IN_PROGRESS"或状态为" FOR_RESUBMISSION")

计数的发件箱服务URL:

/sap/opu/odata/IWPGW/TASKPROCESSING; mo; v = 2/TaskCollection/$ count/?$ filter = TaskDefinitionID eq'RFA'和Processor eq'INDIVIDUAL'和ProcessorName eq'OUTBOX'



我在类和方法中添加了自己的编码。

类名:ZCL_TGW_TASK_FACADE_ABS

方法:QUERY_TASKS

LOOP AT mt_filter_select_options INTO ls_filter_select_option。
IF ls_filter_select_option-property ='Status'。
LOOP AT ls_filter_select_option-select_options INTO ls_select_option。
INSERT ls_select_option INTO TABLE。 br> ELSEIF ls_filter_select_option-property ='TaskDefinitionID'。
遍历AT ls_filter_select_option-select_options INTO ls_select_option。
插入ls_select_option INTO TABLE lt_select_options_task。
ENDLOOP。
ELSEIF ls_filter。 > LOOP AT ls_filter_select_option-select_options INTO ls_select_option。
INSERT ls_select_option INTO TABLE lt_select_options_proc。
ENDLOOP。
ELSEIF ls_filter_select_option-property ='ProcessorName'。 ls_select_option INTO表lt_select_options_proc_name。
ENDLOOP。 ct_options
AND task_def_id IN lt_select_options_proc
AND处理器IN lt_select_options_proc
AND Processor_name IN lt_select_options_proc_name。
插入ls_task INTO TABLE et_tasks。
ENDLOOP。


依靠瓷砖可以正常工作。


----------------------------------------

问题来了!

但是,当我单击图块时,ABAP方法不会添加过滤器,而是仅显示每个参数(收件箱或发件箱)过滤器的状态。 当我单击平铺按钮并确认Fiori收件箱屏幕仅发送状态时,我抓住了oData。

这就是明细数据具有不同编号的原因。

收件箱中的收件箱计数:27->使用状态和拥有者(" RFA"," INDIVIDUAL"," INBOX")过滤器计算的系统

收件箱中的详细信息:36->仅根据状态计算的系统

获取收件箱oData:

GET TaskCollection?sap-client = 100&$ skip = 0&$ top = 110&$ orderby = CreatedOn%20desc&$ filter =(( Status%20eq%20%27READY%27%20or%20Status%20eq%20 %27RESERVED%27%20or%20Status%20eq%20%27IN_PROGRESS%27%20or%20Status%20eq%20%27EXECUTED%27 )))&$ select = SAP__Origin%2cInstanceID%2cTaskDefinitionID%2cTaskDefinitionName%2cTaskTitle%2cCreatedByName% 2cCreatedBy%2cCompletionDeadLine%2cSubstitutedUserName%2cStatus%2cPriority%2cPriorityNumber%2cHasComments%2cHasAttachments%2cHasPotentialOwners%2cCreatedOn%2cTaskSupports%2cSupportsClaim%2cSupportsFlease2%

花费了数次后,我知道用于切片计数的Service URL过滤器和用于详细数据的过滤器完全不同。 Fiori我的"收件箱"屏幕使用磁贴参数确定状态,并将其发送到SAP(方法)。

下面是每个图块参数设置。

收件箱参数:allItems = true

发件箱参数: allItems = true&outbox = true

我尝试添加一些参数,包括字段名称,但被SAP流程忽略。

SAP仅发送两种状态列表(收件箱:4状态,发件箱:2状态)。


为了您的理解,我尝试添加尽可能多的屏幕。

我的底线是这个。

当我单击每个图块时,我希望从Fiori我的收件箱中获取除状态以外的更多参数或过滤器,以便我可以在方法中添加ABAP编码以拆分相应的数据。

如果可以这样做,我可以拆分用户收件箱,用户发件箱,部门收件箱和部门发件箱。

为解决这个问题,我尝试了几件事。

1。在方法SET_QUERY_STRING_OPTION中添加了自己的过滤器。

it_filter_select_options []不可编辑,因此在mt_filter_select_options []中添加了几个过滤器选项。 ->看起来还可以,但是系统在oData的某处使用了原始过滤器。

2。尝试在单击图块时在SAPUI5一​​侧修改oData。 ->很难。

请让我知道如何实现这一目标。

非常感谢您。

维克多

(8.8 kB)