Global Data

From AgileApps Support Wiki

Service Provider URL: http://{yourDomain}/networking/Service?t=1&targetpage=ViewPort.jsp
Settings > Service Provider Settings > Service Configuration > Global Tenancy

About Global Data

Global data consists of records in objects that are defined and maintained in a "global tenancy". Sharing objects from that tenancy is then a two step process:

  1. In the Service Provider Settings, designate the objects (and the tenancy they're in) as "global".
  2. Create a Package that contains those objects, and publish it.

Data stored in those objects is seen immediately by tenants who have installed (and are therefore subscribed to) the package. Tenants who have not installed the package, meanwhile, do not see those objects.

Once the package has been installed:

  • Data changes made in the global tenancy are immediately visible to all subscribers.
  • New objects and modified objects are seen by tenants only when the installed package is re-published.
  • As with any other shared object, installers are free to add their own records to the object.

Considerations:

  • A global object cannot be customized by a subscribed tenant. It can only by customized in the global tenancy.
    (However, packaged objects that are not global can still be customized by installers, as before.)
  • Global objects cannot be used in reports that use the Grouping option.
  • When a global object is the target of a lookup, the Auto Completion feature suggests local records only. (With that feature, the system suggests records that contain the typed characters.) Typing characters, therefore, does not work to find shared records. Those are found by clicking the magnifier icon that accompanies the field, and filtering the list of records that appears.
    Learn more: Lookup

Configuring Global Data

To set up global data sharing:

  1. Create a tenant from which to share objects and the data they contain.
  2. Log in to that tenant.
  3. In that tenant, create any objects you intend to share.
  4. Create a Package that contains the objects to share.
    If any of those objects have a Lookup field, the objects targeted by those fields are automatically added as dependencies.
    Important:
    That package should be locked, to prevent installers from modifying those objects.
    (If modified, the structure of local data records added to the object will differ from the structure of shared global data, with potentially unpredictable results.)
  5. From the Object Properties page for each object, get the Object ID.
  6. From Company Information, get the Tenant ID.
  7. Go to the Service Provider URL: http://{yourDomain}/networking/Service?t=1&targetpage=ViewPort.jsp
  8. Log in to the admin tenancy.
  9. Go to Settings > Service Provider Settings > Service Configuration
  10. In the Global Tenancy section, provide the following:
    • Global Tenancy ID - Enter the ID of the global tenant.
    • Global Tenancy Shared Object List
      Enter the IDs of all objects that are to be shared, separated by commas or semi-colons, and optional spaces.
      Note:
      Any objects that are the target of a Lookup from a shared object must be included in this list.
      (The objects in the list must include the objects contained in the package.)

Working with Global Data

Sharing Data

Once the package is published, any tenant who installs it will be able to see (but not modify or delete) the records in the objects it contains.

Changes to the data in those objects are seen immediately by all tenants.

Tenants will be able to add their own records, as well, but those additions appear only in their own tenancy.

Creating and Modifying Objects

To make a new objects visible to tenants:

  1. Add the object to a package, and publish (or re-publish) the package.
    (When an installed package is re-published, subscribed tenants are automatically updated. A new package requires a separate install.)
  2. Add it to the shared object list in the Service Provider Settings.

Similarly, if an Object's structure changes (for example, by adding a field), the change is not visible to tenants until the package is re-published.

Deleting an Object

To delete an object, first remove it from the shared-object list in the Service Provider Settings. It can then be deleted like any other object.

Any data added to that object by a tenant will continue to be visible to that tenant, but the object will no longer contain shared data.