Customizing BMC SLM using overlays
An overlay is a copy of a BMC Remedy AR System structure or workflow object that is used in place of the origin object. Out-of-the-box BMC Remedy AR System application and server objects, and objects created in the Base Development mode of BMC Remedy Developer Studio, are origin objects.
This topic provides the following information:
To customize out-of-the-box BMC Remedy AR System objects and ensure that the customizations are not lost when a BMC Remedy AR System application or server is upgraded, create an overlay of the origin object, and modify the overlay instead of the origin object.
At run time, the BMC Remedy AR System server and clients (such as the mid tier) use overlay objects in place of the origin objects. For example, if a filter is to be used during an operation and BMC Remedy AR System detects that the filter has an overlay, the server executes the overlay filter instead of the origin filter. Or if a client is required to fetch an object from the server and the object has been overlaid, the client fetches the object's overlay instead.
During upgrades, a BMC Remedy AR System installation program ignores overlays---it does not undo their modifications, overwrite them, or delete them; in fact, it is unaware that overlays exist. The install program changes only the objects that were installed with the application or server. After the upgrade, the application or server continues to use the overlays instead of the origin objects for runtime operations.
Overlays also make it easy to identify all the customizations in your applications.
Restrictions on using overlays
Overlays do not perform the following functions:
- Preserve customizations made to an object that is deleted during an application upgrade. If an existing object in your production environment is deleted during an application upgrade, any overlay of the object is deleted as well.
- Automatically merge customizations with functionality added during upgrades. For example, if a filter has three new actions in an upgraded application, those actions will not automatically be added to the filter's existing overlay. Instead, you must identify the new actions by comparing the overlay to the upgraded origin object and then add them to the overlay if you decide to use them.
- Enable you to make all possible changes to BMC Remedy AR System objects. For example, you cannot make changes that would alter the underlying database, such as changing a field's data type.
You can create overlays for the following objects:
- Active links
- Active link guides
- Local applications
- Packing lists
- Filter guides
- Web services
- Deployable applications
You cannot create overlays for the following items:
- Custom objects — A custom object is an object created by a BMC Remedy AR System user. Upgrades do not modify or destroy custom objects.
- Overlaid objects — You cannot create multiple overlays for the same object.
- Overlay objects — You cannot create overlays of overlays.
- Form data — BMC Remedy Distributed Server Option (DSO) mappings, DSO pools, flashboards, Skins, and templates are stored as data in a form. They are not BMC Remedy AR System objects. Therefore, you cannot use overlays to customize them, and any modifications that you make to them might be lost when an application or server is upgraded.
For more information concerning overlays, see Customizing applications using overlays and custom objects.
Recommendations for BMC Remedy OnDemand and BMC Remedy ITSM
To make code changes to BMC Remedy ITSM applications that are retained when you upgrade:
- Make any customizations to out-of-the-box workflow using overlays when you are customizing BMC Remedy applications. Overlays protect the customization from being lost during an upgrade.
- Use an overlay to customize a field but ensure that the field continues to be used for the same purpose. Overlays do not protect the contents of fields,so re-purposing an existing field to do something other than what it was originally designed for can cause issues in the applications and the code using the field.
- When making a user interface change, make a form overlay and then make an overlay of the view that you are working on. During an upgrade, your changes will be saved but you must ensure that making these changes as overlays will not merge user interface changes in future application releases with the overlaid view.
- Take performance into account when making any code changes. If you add an active link workflow, you must ensure that it does not make the same server calls as an existing workflow, which would impact performance. Tune user interface widgets such as table fields to use indexes and chunking. They should display data only when that data is required.
In the BMC Remedy OnDemand environment, you must use overlays to customize objects. Also, when you use overlays you still must test your customizations when you upgrade.