Showing results for 
Search instead for 
Do you mean 
Community Home Request Access Read Blogs Share Your Ideas Search Community View My Settings
Reply
Copper Super Contributor
Posts: 172
Registered: ‎07-06-2010

Questions about SLX Mobile and Extensibility

I've been an SLX developer now for a couple of years (with a lot of C# enterprise development experience under my belt) and I have to say I am very puzzled by the current documentation situation for the Mobile product.

 

I have spent a LOT of time piecing together disparate documentation sources, training videos, and articles that are in many cases outdated.  By Sage's own admission, documentation for the mobile product is poor. With the developer training videos (outdated in many cases), CustomerFX training videos (better, but shallow content), the ARGOS SDK wiki (targeted at 2.0), and random snippets I have stumbled upon in my research, there is no clear path to development on the mobile platform. Honestly, I feel if it weren't for Ryan Farley's toolkit work, I'd still be stumbling in the dark. 

 

Given the obvious direction of mobile workforces in general, I sincerely hope that the leadership responsible for product management improves this situation. 

 

Now, with that out of the way, I have been asked to assess the viability of customizing the OOTB platform for my organization. Our business needs require LOTS of customizations and I have serious concerns about the mobile apps extensibility. I'm not sure it can support our specific needs.

 

We have a need for many custom views that would have to be built from the ground up. These views have to consolidate data from multiple data sources that are not exposed by SDATA and display them in OOTB views. From what I've gathered, we would have to write proxies to have this data delivered in JSON anyway. Doing so takes us down the road of a full custom HTML5 solution built on the back of SubLogix and SDATA, which has the benefit of our team knowing our own solution from the bottom up without having to cobble together a bunch of possibly outdated documentation.

 

Where would I start in even assessing whether what we need is possible with Mobile 1.2? We don't need "this is how you set up SLX Mobile and inject a Quick Action item" information. I'm looking for more advanced customization information. 

 

Thanks for reading and for any direction anyone can offer.

 

Copper Super Contributor
Posts: 27
Registered: ‎06-23-2009

Re: Questions about SLX Mobile and Extensibility

We've been developing in SLX Mobile for quite sometime and we have a number of projects on the go for 2.0.  I can honestly say that for us the decision was a no brainer.  Once the customer saw the performance and ease of use there was a real push to move as much functionality into the mobile as as possible. 

 

As for building your own proxies I'm not sure that's really required.  We have added a few Webservices for those rare times when something cannot be handled through sData but combining the normal entities with custom entities (based on views) for aggregated data and custom service operations for small complex data requests we've been able to use sData for almost all our data needs on our customizations.

 

Of course there's a few drawbacks we've run into so I'll share them in case this helps your decision.

 

1. Coding everything by hand:  Basically we've had to build most of our customization by hand inside .js files.  This can be tedious and time consuming.  I cannot tell you how many times an extra comma has caused me grief stopping the entire application from running.  JSLint and other tools can help in visual studio but there's no architect type tool yet (at least that I'm aware of) in dojo like we had with ExtJs.

 

2.  Browser support - We're facing many customers looking at the Mobile as a "SalesLogix Lite" which means that okay they're using it on their iPhone but more and more we're seeing it being used on tablets of all makes and flavours (including Windows 8), so not supporting IE does have it's disadvantages (I'm not sure but maybe this goes away with IE 10).

 

3.  Deployment - I've yet to dig into building my own deployment actions in the AA but this has often been a challenge since we don't like having to always remember to  build and manually move .js files around to ensure that everything get's deployed properly with our bundles.

 

 

Copper Super Contributor
Posts: 172
Registered: ‎07-06-2010

Re: Questions about SLX Mobile and Extensibility

Hi James:

Thanks for your insight.

So, just to be clear - you've set up web services that are being called in native JS, and you're building objects with the returned JSON?

Our current data architecture means we have to somehow incorporate these "custom data" fields into views without the benefit of SDATA integration. In addition, we have to extend the existing views (the one that comes to mind is Account) so that they can send data over the wire to other sources.

For example, our solution requires inserting some records on account creation into another database. We are doing this today in SLX web using a call to a REST service. Are you suggesting that we can do this, and similar operations, by "injection"?
Nickel Elite Contributor
Posts: 81
Registered: ‎04-13-2009

Re: Questions about SLX Mobile and Extensibility

I would suppose there are several approaches you could take.

1. SData pushing the data into SLX and then using a Business rule to push your data to an external source
2. provide custom service endpoints and JS to read and write your data to the external source. Might be easier from the server then from the client to avoid cross site scripting issues. Also if the data is critical you have then the capability to precache on the server to ensure no loss of data.
3. Provide custom regions of information. Ultimately mobile is open and you can do what ever you need including hosting up your own custom Html, JS .. Really the only limitation is what services are provided by the hardware.

James I think with IE 10 with better HTML5 support the mobile client will run better.

Copper Elite Contributor
Posts: 40
Registered: ‎03-31-2010

Re: Questions about SLX Mobile and Extensibility

We've setup web services to allow us to do things that might be not be possible with sData alone.  One example is we've set up a web portal for customers' clients to provide the appropriate authToken allowing contacts to login.  Things like that.

 

We often use the sData client dll inside the WCF but on occaision we cheat and access the database directly but that's usually read-only type scenarios.  If we can use sData from the client directly we do ( we build a lot of ExtJs applications built with sencha architect)  we might switch to Dojo if it becomes a mature a product as ExtJS.  In fact we've found that now that SalesLogix is not using the extjs core it actually helps us because we're free to use more recent versions without fear of incompatibilty with ootb UI functionality.

 

I'm not quite sure what you mean by custom data fields and not using sData.  We have all kinds of custom data and fields in saleslogix being accessed through sData.  And for aggegated information or things that don't fit into the entity model then we use service operations or custom SQL views brought into the entity framework.  This will still work if you only need to deliver read only data from external sources, however if you need to push updates to sources outside sData, you may need to still pass those calls through your webservice.  (We've been playing with microsoft's implementation of oData for accessing external SQL data sources and it works fantasitic (very close to sdata) and the drag and drop entity framework model really helps reduce coding time).

 

Personally, if I need to co-ordinate transactions into external data sources I'd opt for SQL Triggers rather than put that logic in the UI or even the middle tier (WCF) so don't have to worry about keeping various clients in sync (i.e. webclient, mobile, client, portals, integrations, etc).

 

Hope that helps.

 

James.

James Sutton
Bronze Super Contributor
Posts: 195
Registered: ‎03-17-2009

Re: Questions about SLX Mobile and Extensibility

I completely understand the frustration. Getting into mobile isn't easy and knowing what you can and can't do can be hard to understand at first. Pretty much, every things you're wanting to do is possible, but it might need some rethinking so that it fits into the mobile architrecture. As Mark mentioned there are a few different routes you could take. Adding the integration on the server so everything is returned in the SData certainly works. However, you can also customize the mobile client do to everything there as well.

 

I have some mobile customizations where I add the UI elements normally in mobile but then wire them up with my own code that pulls the data in from other systems. It works great and you and load in the data from the other systems asynchronously so mobile isn't slowed down by the call to the other system. You can do this to stuff in your own HTML and script sections as well. All pretty easy to do once you've done it once and figured it out, but not so easy to know where to start to do this the first time.

 

I actually do have a blog post written (that won't be published until later this month) that shows just how to do this. The blog post includes code that uses the Twitter API to grab the last tweet from a contact and display it on the contact detail screen. Like I said, the post is written just not published yet (I have several articles on customizing mobile that are all queued up to publish each Tuesday starting tomorrow 4/2 - it will start with basics but then builds with more advanced topics each week).

 

Back to what you originally asked, you don't need to use proxies, per se. It depends on how the data is exposed. It obviously has to be exposed somehow and you'll be using Javascript to write the code to access it (and JSON is a no-brainer easy way to access the data). If you're have the data exposed already then using it won't be a problem. Also, BTW, the Sublogix entities serialize easily to JSON if you wanted to go that route. With the data exposed online in someway, consuming it and displaying it in mobile is easy. So yeah, the mobile client can do all that you're after from what it sounds like. However, it might take some rethinking. Things don't work the same way in javascript in the mobile app as you're used to in the web client (obviously) but once mobile starts "clicking" for you then some of how your customizations need to work to fit that architecture will start to make more sense.


Ryan Farley - Customer FX Corporation / Director of Development


customerfx.com
| slxdeveloper.com | My SalesLogix Development Blog
Bronze Super Contributor
Posts: 195
Registered: ‎03-17-2009

Re: Questions about SLX Mobile and Extensibility

Also, BTW if you're going to go to mobile (and customize it heavily) then for sure go with mobile 2.0 instead of 1.2.


Ryan Farley - Customer FX Corporation / Director of Development


customerfx.com
| slxdeveloper.com | My SalesLogix Development Blog
Copper Super Contributor
Posts: 172
Registered: ‎07-06-2010

Re: Questions about SLX Mobile and Extensibility

"Also, BTW, the Sublogix entities serialize easily to JSON if you wanted to go that route. With the data exposed online in someway, consuming it and displaying it in mobile is easy."

 

This is interesting. 

 

We are using Sublogix now in the application that I want SlxMobile to "talk" to. This will be useful later on. We're using Mobile 2.0. I'm getting the hang of things now and I'm at the point where the heavy lifting starts.

 

Let me ask this - have you all just used hosted Google jQuery for your web service POSTs? We are using RESTful services for this app that I need to get data from, and getting the output to JSON is relatively easy... but I'm not sure how to integrate the JS libraries to do the actual POST/GET operations. 

 

Thanks.

Highlighted
Bronze Super Contributor
Posts: 195
Registered: ‎03-17-2009

Re: Questions about SLX Mobile and Extensibility

Hi Elliot,

 

If you're using Mobile 2.0, then I'd go with just using Dojo for things instead of adding jQuery. Dojo can do everything that jQuery can do, but it is one more thing to learn Smiley Tongue

 

I've never tried using Dojo and jQuery in the same application, but I would think they might not play nice. Would probably be OK as long as you used the jQuery or Dojo function itself rather than the global scope $ variable (and possibly a call to jQuery.noConflict()) But, I'd not even bother and just use Dojo for everything. Is there something you wanted to do that you were thinking you'd need jQuery for? Sounds like maybe some jQuery ajax requests? You could do that with Dojo using dojo/request just the same. See http://dojotoolkit.org/documentation/tutorials/1.8/ajax/

 

I have two blog posts queued up that show using Dojo Ajax requests in the mobile client coming within the next few weeks that might help (I think the first of which is queued for next Tuesday).


Ryan Farley - Customer FX Corporation / Director of Development


customerfx.com
| slxdeveloper.com | My SalesLogix Development Blog
Copper Super Contributor
Posts: 172
Registered: ‎07-06-2010

Re: Questions about SLX Mobile and Extensibility

"Is there something you wanted to do that you were thinking you'd need jQuery for?"

 

Yep, the GETs and possible POSTs to my JSON web service. My JS development background is somewhat limited so I was going to "go with what I knew" - jQuery. Thanks a lot for the link - if Dojo can do it then I'll go that route. 

 

It turns out I may only have to do GETs at this point, which will simplify things a lot, at least starting out.