Mastering BMC Remedy Workflow: A Comprehensive Guide for Technical Professionals
In the intricate world of IT Service Management (ITSM) and enterprise application development, efficiency and automation are paramount. BMC Remedy (now part of BMC Helix ITSM) has long been a cornerstone for organizations seeking robust solutions for incident management, change management, service requests, and more. At the heart of its power lies its sophisticated workflow engine. Understanding BMC Remedy workflow objects is not just about knowing definitions; it’s about grasping how to orchestrate complex business processes, automate repetitive tasks, and ensure seamless data flow across your organization.
This article delves deep into the core components of BMC Remedy workflow: Active Links, Filters, and Escalations. We’ll break down their functions, explore their nuances, and provide practical insights that will empower you to design, implement, and troubleshoot effectively. Whether you’re a seasoned Remedy administrator, a developer, or a budding ITSM professional, this guide is designed to be your go-to resource.
Understanding the Foundation: What is Workflow?
Before we dive into the specifics, let’s establish a clear understanding of what “workflow” means in the context of BMC Remedy. At its core, workflow is the definition of the processes that govern how your company operates. BMC Remedy automates these processes through a set of powerful components, primarily Active Links, Filters, and Escalations. These components are designed to trigger specific actions based on predefined conditions or events, essentially bringing your business logic to life within the application.
Think of it like a sophisticated assembly line. Each stage in the assembly line is a step in your business process. Workflow objects are the mechanisms that move the product (data) from one stage to the next, perform necessary operations, and ensure that everything happens in the right order and at the right time. Without well-defined workflows, even the most powerful application would be a static tool, incapable of adapting to the dynamic needs of a business.
Key Workflow Object Functions: The Building Blocks
BMC Remedy workflow is built upon three primary object types, each with a distinct role:
- Active Link: These are designed to react to user interactions within the client application. They execute based on what the user is doing on the current screen, offering immediate, client-side feedback or actions.
- Filter: Filters operate at the server level. They are triggered by transactions as data is processed through forms on the server. They are crucial for enforcing business rules, performing data validation, and manipulating data before it’s permanently stored.
- Escalation: Escalations are also server-side components, but their trigger is time-based. They are designed to periodically check the database for records that meet specific criteria and then perform actions on them. This is ideal for tasks like reminders, overdue notifications, or periodic data cleanups.
Defining the Core Components: Workflow Object Definitions
To better understand how these functions are realized, let’s look at the underlying definitions:
- Forms (Schema): These are the fundamental structures for representing data. In database terms, think of them as tables. Forms hold the information that your business processes will act upon.
- Active Links: An Active Link is an object that fires in response to user interaction within the application. This could be anything from displaying a message to changing the color of a field label, or more significantly, pushing data to or fetching data from other forms. They are the client-side “smart buttons” or “auto-fillers” of your application.
- Filters: A Filter is triggered by events happening at the data or record level during server processing. These events are typically form transactions like submitting, modifying, or deleting a record. Filters are the workhorses for enforcing data integrity and business rules on the server.
- Escalation: Similar to a Filter in its server-side execution and database interaction, an Escalation’s trigger is time. It executes at a predetermined interval, checking requests in the database against specific criteria.
A note on Access Control: Before we get too deep into workflow execution, it’s vital to mention that controlling who can do what is crucial. In BMC Remedy, Permission Groups and Roles are the primary mechanisms used to manage access to Forms, specific Rows (records), and Columns (fields). This ensures that your workflows operate within the bounds of security and compliance.
Deep Dive: Active Links – The Client-Side Powerhouses
Active Links are your first line of defense for creating dynamic user experiences. They are the unsung heroes that make applications feel responsive and intelligent to the end-user.
Key Characteristics of Active Links
- Trigger: An Active Link is triggered by a user performing an operation. This could be clicking a button, changing a field’s value, or opening a form.
- Limitations: A critical point to remember is that Active Links cannot be triggered through API programs. Their domain is strictly user interaction within the client.
- Execution Environment: Active Links perform their operations on the client, specifically within the context of the current form window. This means they can directly affect what the user sees and interacts with in real-time.
- Naming Convention: BMC Remedy enforces unique names for Active Links. If you attempt to save an Active Link with a name that already exists, the system will automatically append `_c` to the new name to ensure uniqueness.
- Essential Component: Every Active Link must have at least one action defined. An Active Link without an action is like a button with no purpose.
- “Save As” Behavior: When you use the “Save As” function for a form, Active Links are not copied automatically. However, if you rename a form, BMC Remedy intelligently associates the existing Active Links with the renamed form, preserving their functionality.
Real-world example: Imagine a form for logging a new incident. When a user selects “Hardware” from a “Category” dropdown, an Active Link could automatically display a “Subcategory” field and populate it with relevant hardware subcategories. Or, if a user enters a priority of “Critical,” an Active Link could change the background color of the “Description” field to red, immediately drawing their attention.
Interview Relevance: Be prepared to explain the client-side nature of Active Links and why they aren’t suitable for server-side data validation or complex business logic that must be enforced regardless of the client being used.
Deep Dive: Filters – The Server-Side Guardians
Filters are the backbone of server-side data processing and business rule enforcement in BMC Remedy. They are where the real “brains” of your application’s logic reside, ensuring data integrity and automating critical processes.
Key Characteristics of Filters
- Trigger: Filters are triggered at the server level. They are executed when a form transaction occurs (Submit, Modify, Delete, etc.).
- Database Interaction: Filters are designed to interact with the database. They can retrieve data, validate it, and perform updates.
- Execution Context: Filters execute on the AR System server and run with administrator permissions. This gives them broad access and the ability to modify data as needed.
- Scope of Execution: Filters operate at the form level. They are associated with a specific form and execute based on operations performed on that form.
- Execution Order: Filters have an execution order, typically starting with a default of 500. This order is crucial when multiple filters might be triggered by the same event, allowing you to define the sequence of operations.
Filter Execution Options: When Do They Fire?
The trigger for a filter is often an operation performed on a form. BMC Remedy provides distinct execution options to precisely define when a filter should activate:
| Execution Option | Description |
|---|---|
| Modify | Executes when a record (request) is modified on the form. This is your go-to for validating changes or triggering subsequent actions after an update. |
| Submit | Executes when a new record is submitted to the server for a form. Ideal for initial data validation, setting default values, or triggering creation workflows. |
| Delete | Executes when a record is deleted. Useful for logging deletions, cascading deletions, or performing cleanup operations. |
| Get Entry | Executes when a record is retrieved from the form. This can be used for on-retrieval processing or logging. |
| Merge | Executes when records are merged into the database, typically through tools like BMC Remedy Data Import, DSO, or command-line imports. This option is vital for ensuring data consistency during bulk import operations. |
| Service | This special execution option is used when an Active Link performs a ‘Service’ action. The filter then processes the request with field values passed from the Active Link and retrieves further data from the database if necessary, returning output values to the calling request. Importantly, this option does not perform any other database operations itself. It’s about passing data and enabling further processing without a direct database write. |
Real-world example: On an Incident form, a Filter with the ‘Submit’ execution option could check if the ‘Description’ field is populated. If it’s empty, the filter might prevent the submission and display an error message to the user (via a Message action). Another filter on the ‘Change’ form with the ‘Modify’ execution option might check if the ‘Scheduled End Date’ is before the ‘Scheduled Start Date’ and prevent the modification if the condition is met.
Troubleshooting Tip: If a filter isn’t firing when you expect it to, first check the Execution Option and the Qualification. These are the most common reasons for unexpected filter behavior. Also, verify that the filter is enabled and that its execution order doesn’t conflict with other filters.
Interview Relevance: Be ready to discuss the difference between ‘Submit’ and ‘Modify’ execution options and provide examples of use cases for each. The ‘Service’ execution option is a bit more advanced; understanding its purpose in conjunction with Active Links is a plus.
Deep Dive: Escalations – The Time-Based Taskmasters
Escalations are your automated agents that perform tasks on a schedule. They are invaluable for proactive management and ensuring that critical processes don’t fall through the cracks due to inactivity or neglect.
Key Characteristics of Escalations
- Trigger: Like Filters, Escalations operate at the server level and interact with the database. However, their trigger is time-based, not a specific user operation.
- Execution User: Escalations are typically executed by the
ar_escalatoruser, which has specific system privileges. - Time-Based Execution: Unlike Filters, which run in response to specific operations, Escalations run at a specific time or after a defined time interval.
- Broad Action Scope: When an Escalation runs, it has the capability to find and act on all requests that meet its defined qualification. This is a key difference from Filters, which typically act on the current request.
Real-world example: An Escalation could be set to run every day at 2:00 AM. It might query all open Incident tickets that haven’t been updated in 7 days, set their priority to “Low,” and send a notification to the assigned support group that these tickets require attention. Another common use is to automatically close out ‘Resolved’ incidents that have been open for 14 days without being re-opened.
Interview Relevance: The distinction between how Filters and Escalations act on records (current request vs. all matching requests) is a frequent interview topic. Be able to articulate this clearly.
Common Workflow Actions: The Tools of the Trade
Active Links, Filters, and Escalations all leverage a shared set of actions, as well as some unique ones, to perform their magic. Understanding these actions is key to building effective workflows.
Using Workflow Actions
Here’s a look at what actions are available across the different workflow types:
| Action Type | Active Links | Filters | Escalations |
|---|---|---|---|
| Call Guide | ✓ | ✓ | |
| Change Field | ✓ | ||
| Close Window | ✓ | ||
| Commit Changes | ✓ | ||
| Distributed Server Option (DSO) | ✓ | ✓ | |
| Direct SQL | ✓ | ✓ | ✓ |
| Exit Guide | ✓ | ✓ | |
| Go to Guide Label | ✓ | ✓ | |
| Goto | ✓ | ✓ | |
| Log to File | ✓ | ✓ | ✓ |
| Message | ✓ | ✓ | ✓ |
| Notify | ✓ | ✓ | ✓ |
| Open Window | ✓ | ||
| Push Fields | ✓ | ✓ | ✓ |
| Run Process | ✓ | ✓ | ✓ |
| Service | ✓ | ✓ | ✓ |
| Set Fields | ✓ | ✓ | ✓ |
Actions Unique to Specific Workflow Types
While many actions are shared, some are exclusive to certain workflow types, highlighting their unique capabilities:
| Only in AL | In FLR & ESCL but not in AL | In FLR but not in ESCL |
|---|---|---|
| DDE (Dynamic Data Exchange) | Call Guide | Go to Guide Label |
| Change Field | Message | Log to File |
| Close Window | ||
| Commit Changes | ||
| OLE Automation | ||
| Open Window | ||
| Run Macro | ||
| Wait |
Understanding Specific Actions in Detail
- DDE Action (Dynamic Data Exchange): Exclusively for Active Links, this action enables data exchange between a client and server application. Think of it as a way to “talk” to other applications running on the user’s machine.
- Direct SQL Action: Available in all three workflow types (Active Links, Filters, Escalations), this action allows you to submit any legal SQL command to a non-AR System database. It’s a powerful tool for integration but should be used with extreme caution, especially to avoid corrupting AR System’s own data. It’s best used for pushing data *to* external databases, not modifying AR System data directly.
- Goto Action: Found in Active Links and Filters, the Goto action allows you to deviate from the standard execution order. You can specify a target execution order, and the workflow will jump to the next item with an order number greater than or equal to that value. This can be useful for creating loops or repeating sequences of workflow logic.
- Go to Guide Label: Also in Active Links and Filters, this action is used in conjunction with “Guides” (a way to organize workflow). It redirects execution to a specific labeled point within the guide, enabling modular and reusable workflow segments.
- Run Macro Action: Exclusive to Active Links, this action executes a macro created in BMC Remedy User. It’s a way to automate complex user actions that might be repetitive. Note: This action is not supported in the web client.
- Run Process Action: Available in all three workflow types, this is a versatile action that allows you to run an independent process on either the client computer or the AR System server. You can execute AR System commands, workflow commands, or external programs for tasks like sending faxes or custom logging.
- Service Action: A powerful action present in all three workflow types. It triggers filters with an “Execute On” condition of ‘Service’. It facilitates data exchange, allowing workflows to call upon other services (internal or external) and retrieve or update data based on input mappings.
- Commit Changes Action: Used primarily in Active Links, this action has two main functions:
- When used with a dialog box, it captures data entered in the dialog and pushes it to fields on the parent form without immediately saving to the database.
- When used with regular forms, it performs the major form action (Submit, Search, Modify) and does save data to the database.
- Push Fields Action: A fundamental action in all three workflow types, Push Fields automates data transfers. You can push values from selected fields in the current request to another request in the same or a different form. It can update existing records or create new ones. It’s crucial for synchronizing data across forms.
Audit Form Fields: Understanding Data Changes
When tracking changes, it’s helpful to understand how operations are logged. The “Audit Form Fields” provide insight into the actions that triggered an audit:
- 1 GET ENTRY: Indicates the retrieval of a record.
- 2-Set: Represents a modification or update to a record.
- 4-Create: Signifies the creation of a new record.
- 8-Delete: Denotes the deletion of a record.
- 16-Merge: Tracks records that were merged, often from data import processes.
Comparing Workflow Behaviors: Commit Changes vs. Run Process “PERFORM-ACTION-APPLY”
This is a common point of confusion for developers. While both can save a request, they have subtle differences, particularly in logging and dynamic workflow generation.
- Saving Behavior: If used in a ‘Modify’ context, both actions will effectively save the request.
- Logging: The ‘Commit Changes’ action is explicitly logged in the AR System logs. ‘Run Process “PERFORM-ACTION-APPLY”‘ might not be as directly identifiable in the logs, making debugging specific actions within it more challenging.
- Dynamic Workflow: ‘Run Process’ is often preferred for generating dynamic workflow. The action performed can be determined at runtime based on values in fields, offering greater flexibility. ‘Commit Changes’ is more of a static, predefined action.
Note: For generating dynamic workflow or when finer control over the logged operations is needed, ‘Run Process’ can be more advantageous. However, for straightforward saving operations, ‘Commit Changes’ is perfectly adequate and more transparent in logs.
Filter Phasing: Order Matters!
Filter execution order isn’t just about numbers; it’s about controlling the flow of data and logic. Understanding “Phasing” is crucial for complex configurations.
- E-Mail Engine: When dealing with email notifications, the
Email_Notificationweb path needs to be correctly configured. If it’s blank, the default web path is used. Ensure this path correctly points to your mid-tier server for opening requests from notifications. - DSO (Data Synchronization): For Distributed Server Option configurations, especially when dealing with firewalls, you might need to enable placeholder mode from the DSO tab in the AR System Administration Console. This allows the system to correctly manage connections and data flow between servers.
Troubleshooting Tip: If email notifications aren’t opening the correct forms, double-check the Email Notifications Web Path. For DSO issues across firewalls, investigate the placeholder mode and ensure the correct ports are open.
Cache Modes: Optimizing Performance and Development
BMC Remedy uses caching to improve performance, but understanding the different cache modes is vital for managing your server and preventing unexpected behavior.
- Production Cache Mode (Default): This is the standard for live environments. When administrative operations occur (like workflow changes), the server creates a copy of its cache. This allows regular users to continue working with the shared cache without interruption. It prioritizes application availability.
- Development Cache Mode: In this mode, administrative operations lock the shared cache, preventing other users from accessing it until the admin changes are complete. This means that long-running tasks (like escalations or complex queries) can cause significant delays for administrators and users alike. It’s generally not recommended for production environments due to its potential for disruption.
Note: The ‘Development cache mode’ is useful for testing and development where immediate visibility of changes is paramount, but it’s a major performance bottleneck in production. Always ensure you’re using ‘Production cache mode’ for live systems.
Essential Utilities: The `arsignal` Tool
The `arsignal` utility is a command-line tool used to force a BMC Remedy AR System server to load or reload specific information. It’s a powerful diagnostic and administrative tool.
Using `arsignal`
The general syntax is: arsignal {-a | -b | -c | -d | -e | -g | -l | -m | -p | -r | -u serverName[:port][sigArgument]
Here’s a breakdown of the common arguments:
serverName[:port]: The name of the server to signal. The optional port is used if the server doesn’t register with the AR System Portmapper.sigArgument: Used with specific options to provide additional details.
Key `arsignal` Options:
- -a: Update internal Alert user information.
- -b: Recache and reload archive definitions.
- -c: Reload information from the configuration file (
ar.conforar.cfg). Essential after making direct changes to these files. - -d: Transfer the signal to a DSO process.
- -e: Recache and reload escalation definitions. Crucial after modifying escalations.
- -g: Reload group and data dictionary information from the database.
- -l: Reload license information.
- -m: Reload computed group information.
- -p: Transfer the signal to an application process.
- -r: Recache definitions from the database (general purpose recaching).
- -u: Reload user information.
Troubleshooting Tip: If you’ve made changes to escalations in the Admin Console and they aren’t firing, try running arsignal -e your_server_name to force a reload of escalation definitions.
Interview Relevance: Knowing the purpose and common arguments of `arsignal` demonstrates practical server administration knowledge. Be ready to explain why you might use `arsignal -c` or `arsignal -e`.
Server Ports and Queues: The Network Interface
The Ports and Queues tab in the AR System Administration Console is where you configure the server’s network interface. This includes setting up server ports and RPC numbers to facilitate communication with clients, other servers, and services. The Server Queue region is particularly important for tuning the server’s performance by configuring server queues and threads, taking advantage of BMC Remedy AR System’s multithreaded architecture.
Conclusion
Mastering BMC Remedy workflow is a continuous journey, but by understanding the fundamental roles of Active Links, Filters, and Escalations, and by leveraging the power of their associated actions and utilities, you can build robust, efficient, and highly automated solutions. This article has provided a comprehensive overview, touching upon key concepts, practical applications, and crucial troubleshooting and administrative insights. Armed with this knowledge, you’re well-equipped to tackle your next BMC Remedy workflow challenge, impress in interviews, and ultimately, drive greater value for your organization.