cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Fiori My Inbox - Inbox/Outbox split issue

former_member369804
Discoverer
0 Kudos

Hi experts,

I deployed My Inbox and working fine in most cases except one issue.

I want to split My Inbox tiles by 4.

1.Individual Inbox( which I need to approve)

2.Individual outbox(which I created)

3.Department Inbox(which my team needs to approve)

4.Department Outbox(which my team created)

I created tiles for .Individual Inbox and .Individual outbox for the test.

Dynamic tiles counts work fine as I expected.

Inbox : 27, Outbox :20

To achieve this, I realized it is impossible to distinguish data with only Status. So I added several filters.

Below screen is Inbox tile configuration.

Inbox Service URL for counts:

/sap/opu/odata/IWPGW/TASKPROCESSING;mo;v=2/TaskCollection/$count/?$filter=TaskDefinitionID eq 'RFA' and Processor eq 'INDIVIDUAL' and ProcessorName eq 'INBOX' and (Status eq 'READY' or Status eq 'IN_PROGRESS' or Status eq 'FOR_RESUBMISSION')

Outbox Service URL for counts:

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



I added my own coding in the class and method.

class name : ZCL_TGW_TASK_FACADE_ABS

method : 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 lt_select_options.
ENDLOOP.
ELSEIF ls_filter_select_option-property = 'TaskDefinitionID'.
LOOP AT ls_filter_select_option-select_options INTO ls_select_option.
INSERT ls_select_option INTO TABLE lt_select_options_task.
ENDLOOP.
ELSEIF ls_filter_select_option-property = 'Processor'.
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'.
LOOP AT ls_filter_select_option-select_options INTO ls_select_option.
INSERT ls_select_option INTO TABLE lt_select_options_proc_name.
ENDLOOP.
ENDIF.
ENDLOOP.

LOOP AT lt_tasks INTO ls_task
WHERE status IN lt_select_options
AND task_def_id IN lt_select_options_task
AND processor IN lt_select_options_proc
AND processor_name IN lt_select_options_proc_name.
INSERT ls_task INTO TABLE et_tasks.
ENDLOOP.


Counts on tile work fine.


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

Problem is Here!

But when I click tiles, added filters doesn't come to the ABAP method and it only comes status for filter per parameters(Inbox or Outbox). I grabbed oData when I click tile button and confirmed Fiori Inbox screen only sends Status.

That's why detail data have different number.

Inbox Count in tile : 27 --> system calculated with Status and own("RFA", "INDIVIDUAL", "INBOX") filters

Detail numbers in Inbox : 36 --> system calculated with only Status

grabbed Inbox 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%2cSupportsRelease%2cSupportsFo

After spending several times, I knew Service URL filters for tile counts and filters for detail data are completely different. Fiori my Inbox screen decides status with tile parameters and sends to SAP(method).

Below is each tile parameter setting.

Inbox parameters: allItems=true

Outbox parameters: allItems=true&outbox=true

I tried to add several parameters including field name, but ignored by SAP process.

SAP only sends two types of status(inbox : 4 status, outbox:2 status) for lists.


I tried to add many screens as many as possible for your understanding.

My bottom line is this.

I want to receive more parameters or filters other than status from Fiori My Inbox for lists when I click each tiles so that I can add ABAP coding in method to split corresponding data.

If I can do like this, I can split user Inbox, user Outbox, department Inbox and Department Outbox.

To solve this, I tried several things.

1.Added own filters in method SET_QUERY_STRING_OPTION.

it_filter_select_options[] was not editable, so added several filter options in mt_filter_select_options[]. --> it looks OK, but system uses original filter somewhere from oData.

2.Tried to modify oData in SAPUI5 side when tile is clicked. -->it is very difficult.

Please let me know how I can achieve this.

Thank you so much.

Victor

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member369804
Discoverer
0 Kudos

Thank for the information.

0 Kudos

Hi Victor,

Thank you very much for your very detailed explanation.

As you said, yes, the defined url in the servcice url filed is only for the count. as this is an odata request, you can set there every filter you want.

You know that there exists "scenario definitions" possibility but this will filter only regarding task definition ids.

By standard the app is filtering by the status to get the task list and this is hardcoded in the app so currently what you are requesting is not supported.

Thank you

Kind regards,

Bruno