Solved

Sync Rule Entity Filter - mWO Service


Badge +12

Hi,

For filtering the Work Type in mWO Service, I’ve added Entity Filters and Security Grants as shown below. Still, I can view all the work types in the dropdown. Am I missing any configuration?

App Details

  • Created Entity Filter for Work Type

Security Grant Filters by Entity Filter

  • Added all permission sets as Security Grants for the Work Type Filter

Kind Regards

Priyanka

icon

Best answer by kathlk 8 December 2022, 15:12

View original

32 replies

Userlevel 7

Did you remember to click “Clear Security Cache” after you defined your grants? 

Then initialize the device, and it should work. 

Userlevel 6
Badge +14

Hi 

What’s the IFS Cloud Version and SU level?

Yes of cause you need to clear the cache to apply the filter to the Sync Service. Just asked the version because this has been delivered fully in 22.1 EA. 

Badge +12

Hi @anmise, yes I’ve cleared the Security Cache and initialized the device. It is still the same.

@kathlk The current version I’m using is Cloud 22R1.

 

Kind Regards

Priyanka

Userlevel 6
Badge +14

Hi,

I think I have seen a similar issue. Can you only add ‘BasicData’ to this filter and then try because that’s the only one relevant for your entity? 

 

If that does not work then please enable sync trace for this app user and need to verify underline SQL. 

Badge +12

Hi @kathlk,

Thank you. It worked by adding just the ‘BasicData’. Any idea why we have the issue when we add all the Permission Sets? If not, I can take a look at the Sync Trace to find out more details.

 

Kind Regards

Priyanka

Userlevel 6
Badge +14

Hi 

I think it’s a bug. ☹️ Normally you only need to grant your filter to the correct Security Group that entity is belong to. Today we allow all entities in the Aurena Web screen. As a result of that, it allow you to add the filter to all security groups which might confuse sync service and ignore it (My guess). Can you please report this as a defect to us (RnD Mobile Experience)?

For you or any one who do use filters need to make sure add it to the correct group as a workaround until we provide a fix.

-Kapila-

Badge +12

Hi @kathlk,

Thanks for sharing the information.

Sure, I will raise a bug. I believe, we need to raise the defect through ServiceNow. Please let me know if otherwise. 

 

Kind Regards

Priyanka

Userlevel 3
Badge +8

Hi 

I think it’s a bug. ☹️ Normally you only need to grant your filter to the correct Security Group that entity is belong to. Today we allow all entities in the Aurena Web screen. As a result of that, it allow you to add the filter to all security groups which might confuse sync service and ignore it (My guess). Can you please report this as a defect to us (RnD Mobile Experience)?

For you or any one who do use filters need to make sure add it to the correct group as a workaround until we provide a fix.

-Kapila-

Hi @kat

I’m working with 21R2 UPD 15

We have the problem that users can see resource groups in LOV from AUrena, but the Resource Group LOVs in the “new work” assistant in the MWO maintenance app are empty. I have defined entity filters like this:

CONTRACT IN (‘A’, ‘B’) and connected the entity filters to  entities MobileEqpResourceGroup and MobileResourceGroup

Additionally I’ve connected to the following Security Groups:

My first question is: are entity filters inclusive or exclusive? If i set contract = ‘A’ will A contract be filtered out from the mobile application synchronizations?

Secondly, is the filter in my example mapped to correct security group? I think it is but the sync is still not working correctly as the data is missing form mobile clients

Userlevel 6
Badge +14

Hi,

Security filters simply adding your condition in the filter as a SQL ‘AND’, so anything you defined in the filter will be applied as a additional SQL in the final filter and filter the default data set further. Does that makes sense? 

But in your case you do not have any data? Then first clear all filters and see you get data via the default filterer. 

How many inactive app versions do you have? Worth manually delate inactive app versions as it can confused some times. But we have done a improvement in latest SUs where we clear inactive app versions via the app deploy process. 

 

Badge +12

Hi @kathlk,

I’m trying to filter the Work List in mWO Service using the below filter but it doesn’t reflect or restrict the data shown.

  • Query 1: Is there are a list of syntaxes supported by the Entity Filter screen or a way to debug if there is any issue in the Condition we add?
    • I’ve tried with both SYSDATE and CURRENT_DATE.
  • Query 2: Can we restrict the Assignments sent to mobile through Drip-Feed method using Synchronization Rules and Entity Filters? 
    • For example: Send Assignments/Task one at a time to the technician after they complete the previous Assignment/Task.

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

Hi,

Query 1:

If you use next tab ‘By Entity’ then it has list of attributes you can user in the filter to map with the data set. Also filter supports any oracle PLSQL syntax and key words. 

 

To Test the filter, you can assign the filter to a user and do a ‘Test Initialization’ via the installed device app screen. Then it will initialize a dummy device and you can check the logs to find any SQL errors. Also by enabling data sync traces for a user, you can see actual SQL statement which has been executed internally by sync optimizer to pull data.  This might be useful to evaluate your SQL and the behaviour of the added filter. Some times it help you to optimized the SQL by taking the oracle explain plan via a SQL developer tool. 

 

Query 2:

Currently those entities are sync via push data and default behaviour is send data to engineer as soon as tasks are assigned to them. To enable that type behaviour might need a custom filtering and ownership queries which might need a customization to the meta data. 

Badge +12

Thanks @kathlk for the detailed explanation.

Based on Query 1:

After we add the Entity Filter for the first time, we will Initialize the mobile device.

But do we need to ‘Initialize’ the mobile device every time for the same conditions to reflect in mobile (or) based on the default Sync interval we define in the Application Parameters, the conditions will be reflected automatically?

Example: I’m trying to remove certain records from the My Work screen based on Entity Filters. The changes are reflected only when I initialize the device. Even when I click on the ‘Sync’ button in mobile, it does not sync the data.

Please let me know.

 

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

Hi

it will automatically optimize your data in the next background sync cycle and changes will be sync to devices. it’s based on the sync rule defined in the meta data. Device ‘Sync’ button does not trigger the backend sync process. It does download any pending data from the server out queue. If you want to run the data sync for a entity before the shedule starts, then there is a option called ‘Sync Now’ in the back end sync rule. Admin type user can perform this to activate data sync for a entity. 

Badge +12

Understood. Is there a way we can write a script based on conditions to automate the ‘Sync Now’ button for a specific Entity, maybe through BPA? If so, can you please provide the steps to execute.

 

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

What’s the reason for the automation? Do you want to force sync after security setting update? Basically automation is already there where Entity sync is based on the sync rules schedules. Please explain the use case where why you think you want to automate ‘Sync Now’? 

Badge +12

There are 2 Use Cases:

Use Case 1: I would like to add/remove the Tasks displayed in the ‘My Work’ screen in mWO Service based on certain Task status changes. 

Currently, based on the Entity Filter, the records are removed from the My Work screen after we Initialize the device or based on the Sync Rule schedule. Therefore, I’m looking for a way to trigger the ‘Sync Now’ button to remove the records from the List screen immediately when the Task status changes to a specific value.

Use Case 2: Based on the Work Shift status change in mobile, would like the Tasks to be displayed/hidden in mobile. If the Shift Status = ‘Onshift’, Tasks should be displayed; If not, Tasks should not be displayed in the My Work screen.

 

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

Hi,

Use Case 1: This should be handled by the application by default. Task (entity JtTask) is a push enabled entity and any changes to this entity record trigger a push data synchronization for all users who own that Task. This is based on the entity filters. So you do not need extra customization to get this done . Please correct me if this is a different scenario than specified here? 

Use Case 2: This is more application data specific question and I will ask some one who has functional knowledge to answer this. FYI @skullk 

 

All those type of data change events are handled by the mobile data sync and normally do not require any customizations. But need to understand why you see this as a requirement. 

Userlevel 5
Badge +10

Hi,

Use case 2 was discussed in a separate post as well as I remember. We have a way to enforce the user to log on to the shift before transacting an assignment in mobile, but we have no way to show/hide the work list based on log on status. Not sure if it can be achieved through the page designer otherwise a customization would be needed.

Thanks

Sampath

Badge +12

 @kathlkFor Use Case 1: I agree. Any changes to the Task related data are pushed to mobile and vice versa.

  • But in my scenario for example: I would like to remove the Assignments from the ‘My Work’ list screen if the status = ‘Pending Completion’.
  • This doesn’t remove the Assignment automatically from the list, therefore I’ve added a Entity Filter as shown below. 
  • Even with the Entity Filter, the Assignment record is removed from the list only when I Initialize from mobile (or) Sync the entity through Sync Rules (or) based on the Sync Interval specified for the Entity.
  • I’m trying to understand if there is a way to automatically remove the Assignment from mobile list screen immediately when the Task status goes to ‘Pending Completion’ and we need not wait for the Sync Interval of the Entity (JTExecutionInstance) to execute.

@skullk, For Use Case 2: Yes but the enforcement does not restrict the user from performing further actions in the screen. Currently, I do not see an option to do this via Page Designer.

  • Any idea if we can add Screen Filters in Page Designer to mention when to display the screen in mobile Dashboard or if this is available in 23R1?

Appreciate your inputs.

 

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

For Use Case 1: Thanks for the detailed explanation :-)  It’s perfectly clear now. I will try to explain this.

  • Client see the record in the list view because that record still in the local database and client does not know about the filter you added in the server. 
  • Until server sync the data in the next sync cycle this filter you added in the server does not apply to the data set. When it happened, server send a delete message to the device.
  • If you need this to happened immediately then I would think you will need a customization.

 

Badge +12

Hi @kathlk,

Can you please let me know if we have any limitation in restricting the data sent to mobile for Misc Resource Allocation?

Using Entity Filter, I’m using the below statement to send only the records which are ‘Approved’. In mobile in ‘My Misc Allocations’ screen, I can view all the records even in ‘Pending Approval’ and ‘Cancelled’ status. I’ve cleared security cache and initialized the mobile device.

Kind Regards 

Priyanka Cecilia

Userlevel 6
Badge +14

Hi

Can you please try with a single security group? In your case it’s ‘MiscResourceAlloc’ the one you should use. If you still don’t see filter applied, then worth check sync data traces to make sure it’s applied.  

 

Badge +12

@kathlk,

I added only the ‘MiscResourceAlloc’ security group and still see all records. I enabled the traces for my device but do not see any data in the Synchronization Traces screen.

Then I looked at the Synchronization Rules screen for ServiceEngApp and can view only entity ‘MiscResourceAllocationQuery’ and not ‘MiscResourceAllocation’. Could this be the reason why the filter does not reflect in mobile?

The entity ‘MiscResourceAllocationQuery’, does not have the state attribute so I’m unable to utilize this entity. Please let me know your thoughts.

 

Kind Regards

Priyanka Cecilia

Userlevel 6
Badge +14

What’s the IFS cloud version and SU level? 

Badge +12

We are in 23R1 SU 1.

 

Kind Regards

Priyanka Cecilia

Reply