I just wanted to get some thoughts on a possible solution for our requirement.
Client requires that I create a form that can be available on-the-go, of course I instantly think of Nintex Mobile (I also think of PowerApps though). The app is a CRM app where the user will be able to call up a customers info from our Data Warehouse and submit changes (client has a LOT of gaps in their CRM data).
Ah! External data, as far as I can tell, this is more problematic! They also want users to be able to submit data offline (agriculture company with clients in far flung rural places with little or no connectivity).
Option 1. We create a SharePoint on-prem solution using a layout for a mobile device, this allows us to use SQL Requests etc. The user has a mobile device with connectivity, we provision them with a VPN connection to our network and create a form layout for their mobile device through the browser. This solves our external data issue however, for the user, they would have to fire up the VPN connection and navigate to the form. There is no offline option here. As far as I can tell, this is currently the only option for that allows us to access our data from SQL.
Option 2. We move our data into SharePoint. By this, I'm not suggesting we actually MOVE but, by using SSIS we push customer info from the Data Warehouse into a SharePoint List on regular intervals. This option allows us to use the Nintex Mobile App as we're performing list lookups rather than external data lookups. We've looked at BCS but I think (and I'm happy to be corrected here) there's limitations around the mobile app and external list look. Negatives here I guess are that the CRM data needs to be pushed at regular intervals, that's going to place some strain on local resources, we're also talking about over a million rows of data (albeit each user can only view a few hundred each) so performance here might be interesting.
PowerApps is an option, this allows us to connect direct to the data warehouse from the app using the Data Gateway (the sooner Nintex starts using this the better) however, MS have managed to roll this out without the ability to work with views or queries...only raw data. This isn't much use to those normal people who normalize their data, unless we create a view and then write the results of that view back to a table...yuck!
Be interested to hear if any of you good people out there have come up with a better solution for this. Currently I sway towards Option 2 as we have quite a bit of SSIS action going on already so it's established. It then allows us full functionality on the data and gives us an air gap between our users and the actual data.
Good outline and I follow your thoughts the same. Even if the SSIS push is at interval, the time delay should be no issue as the field users are not able to get updated data anyways being offline. Note that if you need a drop down in the mobile app to be up to date, you must do a manual refresh (as of today) to get the new list data in the lookup. A small UX problem there.
They query may be an issue, but I don't see a real performance issue. But the query on any form wont pull that much information, so some kind of cascading lookup or pre-filter will be necessary. Or breaking up parts of the information into other lists, like account names, or region/state, etc.
PowerApps still have a lot of limitations, you will have to POC any dev there.
Thanks for the response Andrew.
I'm STILL waiting on the client to buy Nintex so started down the powerapps route. Through some bludgeoning I've got an online working solution (PowerApps has limitations around the number of rows it returns (500)), and increasing that number results in a performance impact.
I've told them to park offline forms until they invest in Nintex. The PowerApps solution for offline forms is not good at the moment (in that it's not baked in) although they are developing this at the moment. I'm quite impressed with PowerApps actually, but there are a number of limitations which are somewhat glaring.