If any scoped application developed depends on a plugin then that is tracked as part of dependency.  Dependency is a must for scoped applications that are submitted to the ServiceNow store. This is to ensure that customers who purchase the scoped application are aware of all the prerequisite plugins to be installed prior to installing the app on their instance. In this blog, I will talk about when a dependency is tracked automatically in a scoped application and steps to capture dependencies manually.

 

How to automatically track plugin dependencies

The system can automatically identify and add dependencies on the plugin when you:

  • Extend a table
  • Add a field to a table
  • Call a script include

 

For example, let's assume I have activated "Facilities Service Management" plugin on my instance. As part of my scoped app use case, I need to create a custom table "Now Fac Space" and extend it from the OOTB table "Facility Space" (the table which was created when we activated FSM plugin).

 

  1. Create a custom table "Now Fac Space" and extended from Facility Space

    create custom table.jpg

  2. Navigate to System Application>Application>Click on Edit button under application "Now application" and check for related list "Dependencies"

    dependencies.jpg

You will note the dependency on the plugin "Facilities Service Management" is automatically tracked and is captured as part of dependency list in scoped app "Now application". The reason the dependency is tracked automatically here is because we extended an OOTB table which belongs to "Facilities Service Management" plugin.

 

How to capture Plugin Dependencies manually

The system cannot identify dependencies on client-side resources such as UI-based JavaScript libraries. In such cases, you must manually add the dependency. Below are the steps to be followed to add dependency manually.

 

For example, let's assume I have to capture the "orchestration" plugin dependency manually in my scoped app "Now application".

 

  1. On your instance navigate to System Applications>Studio
  2. Click on open Studio tab.

    Studio+servicenow.jpg

  3. Now select one of the applications from the list (for example, Now application)

    code+search+application.jpg

  4. Click on File>Settings.

    Screen Shot 2017-04-25 at 2.04.56 PM.png

  5. From the Dependencies related list, click Edit and select the exact dependency from the left slush bucket and move it to right and save the form. For ex: added "Orchestration" plugin as a dependency.

    dependencies related list.jpg

 

Wooo we have successfully added "Orchestration" plugin as a dependency in scoped application. There will be message warning on the screen with the name of the prerequisite plugin to be installed when the customer tries to install this application on his instance.

 

Global dependency is not captured as a dependency in any application because global artifacts can be created by the user on any instance manually

 

The same steps apply in case a manual dependency is to be captured on any scoped application.

 

We have successfully covered how a dependency is tracked automatically and how to capture dependency manually in scoped application. If any scoped application intended to be published on the store and has a dependency on plugins, vendors have to make sure that all required plugins are captured as part of dependencies in scoped application. This is to ensure that customers who purchase the application from the store are aware of all the prerequisite plugin before installing the app on their instance.