Plugin: CDSoftware RequestProcessor
- Maintainer: Angel Lara <[email protected]>
- Sponsors: La Casa del Software
- Status: Tested with release 13.0.0
- License: GPLv2
- Sources: CDSoftware Request Processor
- Documentation: Repository README
Description
This plugin customizes the automatic email notifications generated for iDempiere requests. Administrators can select a mail template for each supported notification event and optionally use different templates for different request types. Templates support configurable subjects, plain text or HTML bodies, request information, and recipient variables. When no usable template is configured, native iDempiere email behavior is preserved.
Features
- Configurable email templates for due requests, overdue reminders, inactivity alerts, escalations, and request updates.
- General templates and request-type-specific templates.
- Template selection scoped by tenant and organization.
- HTML rendering of the request summary when the mail template is configured as HTML.
- Additional variables for request update messages, recipients, and senders.
- Application Dictionary configuration through the Request Mail Template window.
Supported notifications
| Event | Purpose | Configuration context |
|---|---|---|
RequestDue |
Due request notifications, including the standard transition from due to overdue. | Request next action date and the request type's due/overdue email options. |
RequestAlert |
Overdue reminder notifications. | Request Processor overdue alert and reminder settings; request type overdue email option. |
RequestInactive |
Inactivity notifications. | Request Processor inactivity alert and reminder settings. |
RequestEscalate |
Escalation notifications to the responsible user and supervisor, when applicable. | Request Processor overdue assignment settings and supervisor configuration. |
RequestUpdated |
Notifications generated after monitored request changes. | Standard request update events and recipients; requires the email handler configuration described below. |
Requirements
- iDempiere 13. The repository declares this target; compatibility with other releases is not established by this page.
- Java 17, as declared in the repository prerequisites and compiler settings.
- Working outgoing email configuration and valid recipient email addresses.
- An active Request Processor and the relevant request type notification settings for scheduled notifications.
- The plugin's Application Dictionary configuration installed in the target system.
Installation
- Deploy the
com.cdsoftware.requestprocessorOSGi bundle in the target iDempiere environment. - Verify that the bundled dictionary packages have been applied and that the Request Mail Template window is available. The repository contains
META-INF/2Pack_1.0.0.zipandMETA-INF/2Pack_1.0.1.zip, and the bundle declares an incremental 2Pack activator. Check the installation logs and package history before considering a manual import. - Review the mail templates and routing rules for the intended tenant and organization.
- Check the request update email handler configuration below.
- Restart iDempiere so the custom Request Processor factory and the email handler blacklist are loaded.
Request update email handler
For RequestUpdated notifications, the following entry must exist in ${ADEMPIERE_HOME}/event.handlers.blacklist:
org.adempiere.base.event.RequestEventHandler[idempiere/requestSendEMail]
The plugin attempts to append this entry automatically when it starts. If filesystem permissions prevent the update, an administrator must add the entry manually. Restart iDempiere after the file changes. This entry disables only the standard request email delivery handler for that topic, allowing the plugin to send the message. Without it, duplicate update emails can be sent. Do not replace it with a wildcard entry that disables the entire standard request event handler, because that can stop request update notifications.
Configuration
- Create or review the mail text records used for request notifications. Configure the subject and body, and enable HTML when required.
- Open Request Mail Template and create an active routing record.
- Select the event and the mail template.
- Select a request type for a specific rule, or leave it empty for a general rule.
- Set the tenant, organization, and sequence for the intended scope.
- Save the record and verify the notification using a test request and the corresponding event settings.
Template selection
Only active rules for the requested event, with a mail template, are considered. Eligible rules must match the request's tenant and organization or use their system/all-organizations scope, and must match its request type or leave the type empty. The rules are ordered by:
- Exact request type before an empty request type.
- Exact organization before organization zero.
- Exact tenant before tenant zero.
- Lower sequence number.
- Record ID, to resolve remaining ties.
For example, create a general RequestAlert rule with no request type, then another RequestAlert rule for a support request type. Eligible support requests use the specific template; other eligible request types use the general template.
Template variables
Request columns can be used as standard mail text variables, for example @DocumentNo@, @Summary@, @R_Status_ID@, @SalesRep_ID@, and @DateNextAction@.
The following additional variables are available for RequestUpdated:
| Variable | Content |
|---|---|
@OriginalSubject@ |
Native iDempiere request update subject. |
@RequestUpdateMessage@ |
Native request update message in plain text. |
@RequestUpdateMessageHtml@ |
Native update message converted to HTML, with the summary rendered as an HTML fragment. |
@RecipientName@ |
Recipient's name. |
@SenderName@ |
Sender's name, when available. |
When the mail template is marked as HTML, @Summary@ is rendered as an HTML fragment. Plain text templates retain the standard parsing behavior.
Fallback behavior
If no eligible template is found or the referenced mail text cannot be loaded, the plugin uses native email content and behavior for that event. Scheduled notifications preserve the standard responsible-user recipient and request PDF behavior; escalation also includes the supervisor when applicable. For request updates, the plugin uses the native update message when no custom template applies. If email delivery fails, it preserves creation of an iDempiere notice for the recipient.
Documentation and source code
- Source code and README
- The repository's plugin-module README provides detailed event conditions, configuration examples, and manual testing notes.
