Dear Community!
We are looking for a way to prevent our ServiceMax App/Ipad Users to log more than 12 hours per Work Order.
Based on our first approach using Validation Rules, it seems that they are only getting the Validation Rule Error when the sync is happening, we actually would like this validation rule to be triggered and displays the error message even when there is no network and that their Ipad is basically offline.
What approaches have you used or would you recommend?
Hello Sylvaine Boyer. Yes. When configuring the SFM validation rule, you can create a business-friendly error message which is displayed within the SFM itself and prevents the work order from being saved until the issue is corrected.
Hi Sylvaine,
I'm blessed with a very knowledgeable colleague that found a solution for that: the first time the start time is synced, use a formula field that adds 12 hours to the start time and sync that back to the device. Then have a validation against that field. That works as long as there is a sync sometime while working on the Work Order. Of course, when only working offline this will still not work. We have multiple fields added to the Work Order etc just for these offline validations. If you want more info, contact Adam Cooper from CCEP...
Hello Sylvaine Boyer. For a completely offline solution, you can use an SFM Formula to sum up the total labor hours on a Work Order onto the header. Then you can use an SFM Validation rule to throw an error upon trying to save a work order with hours greater than 12 hours. The SFM Formula function that you would need to use is found on page 138 of the "SFM TRANSACTIONS DESIGNER GUIDE". This would be worth testing to ensure that the formula calculates before the validation rule fires.
Just verified the order of execution for these offline SFM processes and the solution should work per a diagram that Engineering sent me recently. Formulas execute first and then validation rules fire.
Thank you so much Michael, would this approach trigger an error message on the ipad even if the ipad is offline when the FSR is entering his time?
Hello Sylvaine Boyer. Yes. When configuring the SFM validation rule, you can create a business-friendly error message which is displayed within the SFM itself and prevents the work order from being saved until the issue is corrected.
Thanks Michael, this is awesome!
You're welcome Sylvaine Boyer. Glad I could help. We are heavily leveraging SFM formulas and validation rules to enable all of our multi-country, cross-border offline mobile use cases.
Hi Michael Majerus,
That means this should also work for our iPhone ServiceMax App? That's what 100% of our Techs use...
Would be very interested...
Regards,
Rob
Hello Rob van Waveren. I checked the ServiceMax "Apps Comparison Matrix" in the Userdocs and found this table which shows that the iPhone app does support SFM Data Validation Rules, and also SFM Formulas, so according to SMax Product team, this should work.
iphone app sfm validations sfm formulas ipad offline Lisa Mercer Anita D'Souza
Although you can do simple validations offline for the iPhone and iPad we have found several restrictions on more complex validation which is really holding us back. For instance validation to prevent labor hours from overlapping is impossible to do offline. Would be great if SMax could help with making the FSA more usable when offline
Totally agree- you can do the SUMOF function that Michael mentions, but this only works when working with line items. If you want to find the difference between two date/time fields (e.g. to check a max duration), this isn't possible, nor is summing two fields on the same record. Also there is no access to SF validation rule features like ISCHANGED, PRIORVALUE etc. which are really powerful.
Hello Adam Cooper. I haven't figured out a technical solution that would help Warren with the labor hours from overlapping yet, but I am aware of a couple SFM Formula functions which might help you with the difference between two date/time fields ' DATEDIFF' and also the 'ADD' function for adding field values. I wanted to point these out in case you need to use them in the future: