Vendor Form Plugins: Unleashing Dynamic Functionality in BMC Remedy and Beyond
In the ever-evolving landscape of IT Service Management (ITSM) and enterprise application development, the ability to customize and extend core functionalities is paramount. BMC Remedy AR System, a robust platform for managing IT services, provides a powerful set of tools for developers and administrators to tailor its behavior. At the heart of this customization lie workflow objects and the actions they can perform. This article delves into the intricacies of these workflow components, with a particular focus on how they enable dynamic, responsive user experiences and automated processes, often referred to as “Vendor Form Plugins” in the broader context of application integration and extensibility.
While the term “Vendor Form Plugins” might not be an official BMC Remedy designation, it aptly describes the powerful capabilities that allow external systems or custom-built components to interact with and influence BMC Remedy forms and their underlying data. These capabilities are primarily realized through BMC Remedy’s core workflow engine: Active Links, Filters, and Escalations, and the diverse actions they can execute.
Understanding the BMC Remedy Workflow Engine
Before diving into the specifics of how to achieve “plugin-like” behavior, it’s crucial to grasp the fundamental building blocks of BMC Remedy workflow. These are the mechanisms that automate processes, validate data, and trigger actions based on specific events. They are the engine that drives the intelligence behind your IT processes.
Workflow Object Functions: The Pillars of Automation
BMC Remedy’s workflow is structured around three primary object types, each with a distinct role and execution context:
- Active Link: Think of Active Links as the “client-side wizards” of your application. They execute in response to user interactions directly within the current form window. This means they can react instantly to what a user is doing on their screen – clicking a button, changing a field’s value, or even just navigating. They are ideal for providing immediate feedback, dynamic field behavior, or guiding users through a process without a round trip to the server.
- Filter: Filters are the “server-side gatekeepers” and data validators. They monitor form transactions as data is being processed by the AR System server. When a user submits, modifies, or deletes a record, filters intercept this action before it’s committed to the database. They can perform complex validations, update related data, trigger notifications, or even call external services.
- Escalation: Escalations are the “time-based enforcers.” They operate on a predetermined schedule, checking the database for requests that meet specific criteria at regular intervals. This is perfect for automated task management, such as reminding users of overdue tasks, automatically escalating issues that haven’t been addressed within a SLA, or performing routine data clean-up.
Forms: The Schema for Your Data
In BMC Remedy, forms are the visual representation of your data. Under the hood, each form maps to a table in the AR System database. When you create or modify records within a form, you’re essentially interacting with these database tables. The workflow objects we’ve discussed are designed to manipulate and manage the data within these forms.
Deep Dive into Workflow Object Behavior and Capabilities
Now, let’s explore the nuances of each workflow object and the powerful actions they can perform, which ultimately contribute to our “Vendor Form Plugin” concept.
Active Links: Reacting to User Interaction
Active Links are your primary tool for creating a dynamic and responsive user interface. Their core function is to trigger a series of actions based on events on the client side.
- Triggering: They fire when a user performs an operation on the current form.
- Limitations: A key point to remember is that Active Links cannot be triggered through an API program. Their domain is direct user interaction.
- Execution Location: They run on the client, within the context of the current form window.
- Naming Convention: BMC Remedy enforces unique names for Active Links. If you try to save an Active Link with a name that already exists, the system will automatically append
_cto the new name (e.g., if “MyActiveLink” exists, the new one becomes “MyActiveLink_c”). - Requirement: An Active Link must have at least one action defined to be saved.
- “Save As” Behavior: When you use the “Save As” functionality on a form, the Active Links associated with the original form are not copied. However, if you rename an existing form, all its associated Active Links will be carried over to the renamed form.
Filters: The Server-Side Guardians
Filters are crucial for ensuring data integrity and orchestrating server-side processes. They operate at the server level and can interact directly with the database.
- Triggering: Filters are triggered by specific operations on a form: Submit, Modify, Delete, Get Entry, and Merge.
- Execution Location: They execute on the AR System server.
- Permissions: Filters run with administrator permissions, giving them broad access to perform actions.
- Execution Order: Each filter has an execution order, typically starting from 500. This order determines the sequence in which multiple filters on the same form for the same operation are processed.
Escalations: Time-Based Automation
Escalations are designed for automated processes that don’t necessarily rely on immediate user action. They are powerful for scheduled tasks.
- Triggering: Unlike filters, which respond to specific operations, escalations are triggered at a predetermined time interval or after a defined period.
- Execution: They run on the AR System server and are typically executed by the `ar_escalator` user.
- Scope: A key difference from filters is that escalations can find and act on all requests that meet a qualification at the time they run, whereas filters typically act on the current request.
Access Control: Ensuring Security and Granularity
Managing who can access and modify data is critical. BMC Remedy provides robust mechanisms for this:
- Permission Groups and Roles: These are the cornerstones of access control in Remedy. You can define permission groups that grant specific access rights to forms, rows (records), and columns (fields). Roles often encompass a collection of permission groups, providing a higher-level abstraction for managing user access based on their responsibilities.
Workflow Actions: The Building Blocks of Functionality
The true power of Active Links, Filters, and Escalations lies in the diverse range of actions they can perform. These actions allow you to manipulate data, interact with users, and integrate with external systems, effectively creating sophisticated “plugins” within the Remedy framework.
Common Actions Across Workflow Types
Many actions are versatile and can be used across different workflow types, enabling seamless integration and data flow.
| Action Type | Active Links | Filters | Escalations |
|---|---|---|---|
| Call Guide | ✓ | ✓ | |
| Change Field | ✓ | ||
| Close Window | ✓ | ||
| Commit Changes | ✓ | ||
| Distributed Server Option | ✓ | ✓ | |
| Direct SQL | ✓ | ✓ | ✓ |
| Exit Guide | ✓ | ✓ | |
| Go to Guide Label | ✓ | ✓ | |
| Goto | ✓ | ✓ | |
| Log to File | ✓ | ✓ | ✓ |
| Message | ✓ | ✓ | ✓ |
| Notify | ✓ | ✓ | ✓ |
| Open Window | ✓ | ||
| Push Fields | ✓ | ✓ | ✓ |
| Run Process | ✓ | ✓ | ✓ |
| Service | ✓ | ✓ | ✓ |
| Set Fields | ✓ | ✓ | ✓ |
Filter Execution Options: When Do They Fire?
Filters have specific trigger events that define when they should execute:
- Modify: Fires when an existing request is updated.
- Submit: Fires when a new request is created.
- Delete: Fires when a request is removed.
- Get Entry: Fires when a request is retrieved from the database.
- Merge: Triggers when data is imported using tools like BMC Remedy Data Import or DSO.
- Service: This is a special execution option. When a filter is set to “Service” and is called by a “Service” action in an Active Link or another Filter, it accesses data from the current transaction and potentially the database, returning output values without performing other database operations. This is a key mechanism for creating reusable service components.
Unique Actions for Specific Workflow Types
Some actions are designed for the unique capabilities of a particular workflow object, offering specialized functionality.
| Only in AL | In FLR & ESCL but not in AL | In FLR but not in ESCL |
|---|---|---|
| DDE | Call guide | Log file |
| Change Field | Go to guide label | Message |
| Close Window | Goto | |
| Commit Changes | Exit guide | |
| OLE Automation | ||
| Open Window | ||
| Run Macro | ||
| Wait |
Focus on Key Actions for “Plugin” Behavior
Let’s explore some of the actions that are particularly instrumental in achieving “vendor form plugin” like functionality:
Direct SQL Action: Interacting with External Databases
This is a cornerstone for integrating with systems outside of BMC Remedy. The Direct SQL action allows you to submit any valid SQL command to a non-AR System database.
- Usage: Available in Active Links, Filters, and Escalations.
- Purpose: Essential for integrating with legacy systems, relational databases, or any external data source.
- Caveat: Use with extreme caution! BMC strongly advises against using
Direct SQLto modify data within AR System’s own tables (object definitions or form data). Doing so can lead to severe data corruption. This action should primarily be used for pushing data *to* non-AR System databases.
Official Documentation Reference: While specific direct links can change, you can find comprehensive guides on workflow actions within the BMC Remedy AR System documentation portal. Searching for “Direct SQL action” within BMC Documentation will lead you to relevant sections.
Run Process Action: Executing External Programs
The Run Process action is a powerful mechanism for invoking external applications or scripts.
- Usage: Available in Active Links, Filters, and Escalations.
- Functionality: This action executes a command-line specified program. This could be an AR System command, a workflow process command, or any external executable.
- Examples: Send an email via a command-line mail client, trigger a fax, log data to a specific file format on the server, or initiate a complex business process via an external script.
Service Action: Enabling Inter-Workflow Communication and External Services
The Service action is pivotal for creating modular and reusable components, and for consuming external services.
- Usage: Available in Active Links, Filters, and Escalations.
- How it Works: When a
Serviceaction is triggered, it invokes a filter with an “Execute On” condition set to Service. This filter can then access input data passed by the calling workflow and potentially retrieve additional data from the database. It can then return output data for further processing. - Integration: This action is crucial for integrating with AR System Web Services, allowing you to expose Remedy functionality as a service or consume services from external systems. It can also work in conjunction with
Set Fieldsactions within a filter to perform internal Remedy services. - Database Interaction: For Active Links and Filters, the
Serviceaction doesn’t directly modify the database. However, when used in an Escalation, it can set values in the database if output data is provided.
Push Fields Action: Automating Data Transfer
This is a fundamental action for synchronizing data between forms.
- Usage: Available in Active Links, Filters, and Escalations.
- Functionality: The
Push Fieldsaction allows you to transfer values from selected fields in the current request to fields in another request, either on the same form or a different form. It can update existing requests or create new ones. - Versatility: You can push values from all field types, even those not currently visible in the active view.
- Limitation: Each
Push Fieldsaction can push data to only one other form at a time, though it can update multiple requests within that target form. For pushing to multiple forms, you’d chain multiplePush Fieldsactions.
Commit Changes Action: Finalizing Operations
This action plays a role in ensuring that changes are written to the database.
- Usage: Primarily used in Active Links.
- Two Key Functions:
- With Dialog Boxes: When used in conjunction with
Open WindowandClose Windowactions, it captures data entered in a dialog box and pushes it to fields on the parent form. Crucially, this does not immediately save to the database. - With Regular Forms: When used on a regular, join, view, or vendor form, it applies the changes made to the form and executes the major form action (Submit, Search, Modify), thereby submitting the data to the database.
- With Dialog Boxes: When used in conjunction with
Comparing “Commit Changes” and Run Process “PERFORM-ACTION-APPLY”
Understanding subtle differences between actions can prevent unexpected behavior.
- Saving: If both actions are performed on a request in “modify” mode, both will result in the request being saved.
- Logging: The “Commit Changes” action is explicitly logged in AR System log files. However, when “PERFORM-ACTION-APPLY” is used within a
Run Processaction, the log will only show “Run Process” without specifying the underlying action. - Dynamic Workflow: For generating dynamic workflow,
Run Processwith “PERFORM-ACTION-APPLY” is often preferred. This is because the specific action performed can be dynamically determined based on values from fields, offering greater flexibility.
Advanced Workflow Concepts and Considerations
Audit Form Fields: Tracking Changes
Understanding how changes are tracked is essential for auditing and debugging. The audit form fields provide a numerical representation of the actions that triggered an audit event:
- 1: GET ENTRY
- 2: Set (equivalent to Modify)
- 4: Create
- 8: Delete
- 16: Merge
Cache Modes: Impact on Performance and Operations
The AR System server utilizes caching to improve performance. The cache mode has significant implications for administrative tasks and long-running processes.
- Production Cache Mode (Default): Designed for high user concurrency. Administrative operations create a separate copy of the cache, allowing regular users to continue working without interruption. This minimizes the impact of administrative tasks on end-users.
- Development Cache Mode: In this mode, administrative operations lock the shared cache. This means other users are temporarily blocked from accessing it until the administrative tasks are complete. Long-running processes like escalations or integrations can cause significant delays and lockouts in this mode, making it unsuitable for production environments with heavy user activity.
The `arsignal` Utility: Server Control and Reloading
The arsignal utility is a powerful command-line tool for managing AR System server processes. It forces the server to load or reload specific information, which can be crucial after configuration changes or deployments.
Syntax: arsignal serverName[:port][sigArgument]
Common Arguments:
-a: Updates Alert user information.-b: Recaches and reloads archive definitions.-c: Reloads the server’s configuration file (ar.conforar.cfg).-d: Transfers a signal to a DSO process.-e: Recaches and reloads escalation definitions.-g: Reloads group and data dictionary information.-l: Reloads license information.-m: Reloads computed group information.-p: Transfers a signal to an application process.-r: Recaches definitions from the database.-u: Reloads user information.
Troubleshooting Tip: If changes to workflow or configurations aren’t reflecting immediately, using the appropriate arsignal command (e.g., arsignal yourServerName -e for escalations) can often resolve the issue.
Ports and Queues: Network Communication
The “Ports and Queues” tab in the AR System Administration Console is vital for configuring how your AR System server communicates with other servers, clients, and services. Proper configuration here ensures that workflow actions involving network communication (like web services or direct SQL to remote databases) function correctly.
Troubleshooting Common Workflow Issues
Even with a solid understanding of workflow objects, you might encounter challenges. Here are some common pitfalls and how to address them:
Troubleshooting Workflow Issues:
- Workflow Not Firing:
- Check Execution Order: For Filters, ensure the execution order is correct, especially if multiple filters are trying to modify the same data.
- Verify Qualifications: Double-check the qualification clauses in your Active Links, Filters, and Escalations. An incorrect qualification will prevent the workflow from triggering.
- Client vs. Server: Confirm that the workflow is in the correct place. Active Links run on the client; Filters and Escalations run on the server. If you expect server-side logic from an Active Link, it won’t work.
- Cache Issues: Sometimes, especially after deployments or major changes, the AR System cache might need to be refreshed. Use
arsignal -corarsignal -ras appropriate. - Permissions: Ensure the user running the action has the necessary permissions on the form and fields involved.
- “Push Fields” Not Updating Target Form:
- Field Mapping: Verify that the source and destination fields are correctly mapped in the “Push Fields” action.
- Data Types: Ensure compatibility between source and destination field data types.
- Target Form Permissions: The user executing the workflow needs modify permissions on the target form.
- Workflow Conflicts: Another workflow might be interfering with the “Push Fields” action.
- Direct SQL Errors:
- Syntax: The SQL command must be syntactically correct for the target database.
- Database Connectivity: Confirm that the AR System server can connect to the target database (check connection strings, firewalls, credentials).
- Permissions on Target DB: The database user specified for the connection needs appropriate permissions to execute the SQL command.
- Data Corruption Risk: If you’re seeing unexpected data in your AR System forms after using Direct SQL, it’s a red flag. Re-evaluate the SQL statement and its target.
- Performance Degradation:
- Complex Qualifications: Overly complex or inefficient qualifications in filters or escalations can bog down the server.
- Excessive Workflow Chaining: Too many interdependent workflow objects can lead to performance issues.
- Frequent Direct SQL: Heavy reliance on
Direct SQLactions, especially for read operations on large datasets, can impact performance. - Database Optimization: Ensure the underlying AR System database and any integrated databases are properly optimized.
Interview Relevance: What Interviewers Look For
Understanding workflow objects and their actions is a fundamental skill for any BMC Remedy administrator or developer. Interviewers will often probe your knowledge in this area to gauge your practical experience and problem-solving abilities.
Key Interview Topics:
- Distinguishing Active Links, Filters, and Escalations: Be prepared to explain the core differences in their purpose, triggering conditions, and execution contexts.
- Use Cases for Specific Actions: Articulate scenarios where you would use actions like
Push Fields,Direct SQL,Run Process, orService. - Troubleshooting Scenarios: Describe how you would diagnose and resolve common workflow issues, demonstrating your analytical approach.
- Impact of Cache Modes: Understand the implications of production vs. development cache modes on administrative and end-user operations.
- Security and Access Control: Discuss how you would use permission groups and roles to secure data.
- Integration Capabilities: Explain how workflow actions facilitate integration with external systems.
- Performance Considerations: Discuss how to design efficient workflow to avoid performance bottlenecks.
Conclusion: Empowering Dynamic Applications
The concept of “Vendor Form Plugins” is seamlessly integrated into the fabric of BMC Remedy through its robust workflow engine. By mastering Active Links, Filters, and Escalations, and by judiciously applying the diverse range of actions they support, you can build highly dynamic, automated, and integrated solutions. Whether you’re extending BMC Remedy’s core functionality, integrating with third-party applications, or automating complex business processes, a deep understanding of these workflow components is your key to unlocking powerful and responsive applications.
Remember, continuous learning and hands-on experience are paramount. Refer to the official BMC Remedy AR System documentation for the most up-to-date information and detailed explanations of all workflow objects and actions.