Should we follow Update Set or Application Scope?

Kaka Nayeem
Tera Guru

Hi,

    I have queries regarding developing app from Service Now.

    Which approach should i follow while developing app's ?

    I) Update Set

    II) Application Scope

 

    Any Expert can give suggestions with advantage and disadvantage of approaches.

Thanks,

Kaka Nayeem

6 REPLIES 6

Alikutty A
Tera Sage

Hi,



You should be using application scope when building applications and update sets are used for changes to baseline configurations, store particular app version or to get an export file of XML. It also act as a backup file.



Application scope allows you provide better run and design time security when they are installed in other instances with the help of application settings. It prevents naming conflicts and allows to determine what changes an application developer or an API call can make to an application artifact.



Thanks


PS: Hit like, Helpful or Correct depending on the impact of the response


vinitha3
Tera Guru

Hi Kaka Nayeem,



Please view the discussion here, Update Sets or Applications?



Personally I would tell, for isolation and security, you can use scoped apps. Added advantage are,



  • Dependencies - if you build a custom app that makes use of CMDB (or Incident or another custom app), that dependency is captured and you can see what other resources an app makes use of before you even install it.
  • Isolation - when you are building a scoped app and try to make changes to a resource in another scope (including Global), the platform will flag that for you and you can respond accordingly.   How many times have you been working on one thing, forgotten to change update sets and accidentally included a change for something else?   Simply not a problem in a scoped app.
  • Interfaces - You can now make a Script Include private to your application so only your app can access it.   Same thing with tables, what previously required a whole mess of roles & ACLs can now be achieved with a couple checkboxes.   You can make a table entirely private to your application or expose it for read-only while forcing updates to occur through a Script Include (think conference room scheduling, reading the rooms and their schedule by other apps isn't a problem, but to schedule a room, you can actually require a call to your Script Include which could check availability, priority and all sorts of other things before actually inserting the row)


Update sets can be preferred for any minor customization changes.



Thank you,


Vinitha.K



PS: Hit like, Helpful or Correct depending on the impact of the response


Dominik Simunek
Tera Guru

Hi Kaka,



If you want to ever publish the app in the AppStore, you must use app scope. App Scope have some limitations (see Developer API) like that not all functions from global scope work in app scope (e.g. GlideSystem's date-time methods). However it brings you also some new features that are not available in global scope - integration to Git, Delegated Development, Studio and probably some others.



Also you can use update sets even if you decide to use app scope (but moving the app through app repository between your own instances is much easier so you would not use update sets in most cases). The question is more about if to implement custom app in app scope or global scope, isn't it?



Regards,


Dominik


Julian Hoch
ServiceNow Employee
ServiceNow Employee

Hi Nayeem, every configuration or customization you make should be made in a separate scope, if possible.


If you need to make changes to the global scope, you should do so in a global app.


Using plain update sets to make changes to global scope configuration records should be a last resort.