Are you still developing in the global scope?

Chuck Tomasi
Tera Patron

I'm hearing more and more that a lot of people are still developing their solutions in the global scope despite all the great development advancements we've built in to the platform (e.g. Git integration, Studio, delegated development, publish/install, etc.). Our platform business unit has the vision that we should all be building using scoped apps. This includes new apps as well as extensions to existing applications (even in the global scope.) I'd like to know what's keeping you from realizing that vision. Examples may include:

  • There is a scripting API that is not available to scoped apps
  • Our requirements force us to use synchronous Ajax
  • We are still on Eureka
  • I love update sets!
  • I just don't know enough about creating scoped apps (and that's OK.)

Specifics are always appreciated. Thanks!

52 REPLIES 52

gyedwab
Mega Guru

+1 to the scripting APIs that are not available in a scoped app. We had a certified integration since Berlin, and despite us identifying issues with the scoped app several releases ago, the feedback we're getting is that the scripted APIs we used in the pre-App world will never be available in the scoped app.

We haven't hit any of the downsides of update sets in the meantime, and none of our customers are asking for apps. The old way works, is better supportable, and doesn't come with limits. It might be different if ServiceNow's technical team would work with us to ensure our functionality will still work, but it's pretty hands-off.

Good feedback, Guy.

 

The downside of global apps is that all apps have access to all data. There's no "fencing" between apps to say "You app shouldn't be deleting records in my table." Managing update sets can get rather unwieldy after months/years of development. Compared to publishing apps through the repo, update sets feel rather clunky.

 

Look for some interesting announcements regarding global development in London. I believe there's a session on this at CreatorCon 18!

 

Are there still more areas of improvement on APIs when it comes to scoped apps? Sure. Are all global APIs going to be available in scopes? Probably not as some of them would break the concept of scoping. 🙂

Hey Chuck,

Given that our integration has to do with reporting on data, access across tables isn't a downside -- it's read-only, so we haven't come across any issues, and because it's self contained we don't really crash with customer updates. We're in our fourth year of developing this integration and it hasn't become an issue yet, and the set-up of update sets (download, important, preview, commit) hasn't been tough to explain to our customers.

The API we're most interested in is the one that allows us to ensure that our reporting is secure, it's a major value to our customers, especially domain separated ones or ones with complex security models.

I can see how the new scoped app model might work for other people, but for us it's just not good for our customers.

Chris Sanford1
Kilo Guru

I was just thinking about this since I completed my developer certification exam, which heavily emphasized scoped apps. I would love to, but for me the issue is I work on a team, and that team and team lead like things done a certain way. As for the synchronous AJAX, that has been a pain point for me exactly once. I think for the team it's more of the 'I love update sets!', and just friction that keeps people resistant to change. We only have two sub-prod instances, so team development isn't really something we could easily take advantage of. I think it's also just that the security policies for cross-scope access, while pretty simple to understand, are added work that we don't have to deal with when everything is in the global scope.

Yea....if you take a look, there are so many reasons to switch to scoping, especially with teams. Scoping will completely eliminate the collisions issues you get with update sets when working with teams. If they could only clean up the issues. There are still just too many stopping blocks with scoped apps to be able to switch.