How do i remove the ability to edit the Product Item record from Inventory in FSL mobile app? Alternatively is there a way of preventing users from editing the "quantity on hand" field? I was hoping to simply remove the "Edit Product Item" action, but doesn't seem possible, unless i'm missing something?
So if you chose to uncheck the box in Field Service Mobile Settings for full Edit Access on records the only place the Technician could potentially go to actually attempt to update the Quantity on Hand would be through the Inventory Tab > Edit Inventory Action.
To your point, making the quantity on hand field read only isn't possible as far as I know, just based on past experience and what I see in the org. You would have to go the route of making the entire Product Item Object Read Only, which could get complicated in my opinion.
You'd most likely have to make it Private in OWD Settings, then open it up from there using Sharing Rules, which depending on how many Items you have, could get difficult to manage. You'd have to determine who is going to get Edit Access, who would remain read only, etc... and then confirm that there are no implications into your current processes based on the Items being just read only for certain folks. To be honest, that does not sound like a fun path to go down.
You could investigate using a Validation Rule on the Product Item, using something like an ISCHANGED() on the Quantity on Hand Field as well validate the profile. So in essence if the quantity on hand is changed and the user doing it is a technician profile, then show the validation error.
Again, if you went that route you would want to test throughly to confirm that doesn't have an impact in the product consumption process, which you might be ok on as long as the running user to create the product item transactions is the system and not the technician.
Also keep in mind that if you go this route, the user would still be able to attempt the editing of their inventory through the inventory tab, but when that change tried to sync to the database, it would throw an error. That error would be visible in the profile tab.
You would need to be mindful to of when the stock transactions you mentioned occur in the other app, do those come through into SF tagged to an integration user or directly to the technician salesforce user, as that could trigger the validation as well.
Hope this helps!