点击此处---> 群内免费提供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)
你好,维克多
非常感谢您的详尽解释。
正如您所说,是的,服务URL字段中定义的URL仅用于计数。 由于这是一个odata请求,因此您可以在其中设置每个所需的过滤器。
您知道存在"方案定义"的可能性,但这只会针对任务定义ID进行过滤。
按照标准,应用程序会按状态进行过滤以获取任务列表,并且此任务已在应用程序中进行了硬编码,因此当前不支持您所请求的内容。
谢谢
亲切的问候,
布鲁诺
嗨,布鲁诺,
我尝试在SAP Java Enterprise Portal 7.5 SP17的FLP上实现发件箱图块
,但是在iview应用程序参数中设置时,它不喜欢&outbox = true参数。
它接受其他参数,例如expertMode = true&allItems = true
我遇到错误
{"错误":{"代码":空,"消息":{" lang":" en","值":"发生错误。500内部服务器错误。日志ID:C0000A6F5E0F1B2100000002000055C2"}}}
[EXCEPTION] sap.com/tc~bpem~tm~ear 。 嵌套的异常是:java.lang.NullPointerException:尝试在以下位置调用从com.sap.bpem.index.object.IObjectIndex.getEndTime()
org.apache.olingo.odata2.api.exception.ODataApplicationException:javax.ejb.EJBTransactionRolledbackException:事务以错误结束,原因: 嵌套的异常是:javax.ejb.EJBException:ASJ.ejb.005043(组件失败: sap.com/tc~bpem~tm~ear ,BC-BMT-BPM-DSK)公共java.util.List com.sap.bpem.tm.query.QueryManagerBean.queryOwnTasks的调用引发异常 (com.sap.security.api.IUser,java.util.Locale,java.util.TimeZone,com.sap.bpem.tm.task.LifeCycle [],com.sap.bpem.tm.task.Category [] ,com.sap.bpem.tm.task.PrincipalAssignmentStatus [],com.sap.bpem.tm.task.Priority [],java.sql.Timestamp,java.sql.Timestamp,java.util.Set,java.sql .Timestamp,java.sql.Timestamp,java.sql.Timestamp,java.sql.Timestamp,java.util.Set,com.sap.glx.util.id.UID,com.sap.bpem.tm.query.QuerySortCriteria Bean实例com.sap.bpem.tm.query.QueryManagerBean@62d86d8f上的[],com.sap.bpem.tm.query.QueryResultParameters,com.sap.bpem.tm.query.QueryContentCriteria,java.util.Set)方法 对于豆 sap.com/tc~bpem~tm~ear*annotation|sap.com~tc~bpem~tm~ejb.jar*annotation|QueryManagerBean 在应用程序
返回的空对象的方法java.sql.Date.getTime()时 com.sap.bpm.odata.logging.BPMODataErrorCallback.getExceptionForTracing(BPMODataErrorCallback.java:129)
有什么想法吗?
致谢
奥托(Otto)
感谢您提供信息。
一周热门 更多>