Plugin: CDSoftware Base
From iDempiere en
- Maintainers: Eduardo Gil <[email protected]> / Ángel Lara <[email protected]>
- Sponsors: La Casa del Software
- Status: Tested with release 12.0.0
- License: GPLv2
- Sources: CDSoftware Base
- Documentation: Repository README
Description
CDSoftware Base provides shared administrative processes and Application Dictionary customizations for iDempiere. It includes IMAP email-to-request processing, PostgreSQL materialized-view refresh, payment reporting data, and deployment of attached home-page templates through Lirionizer.
Its dictionary packages also extend SQL-expression fields used by chart data sources and view components, add legal paper formats, and install the records required by the plugin processes.
Features
- Converts IMAP messages into new iDempiere requests and appends replies to existing requests.
- Preserves email sender, subject, and Message-ID information on requests.
- Refreshes registered PostgreSQL materialized views in exclusive or concurrent mode.
- Prepares payment and allocation information in
T_CDS_C_Paymentfor reporting. - Deploys attached HTML, JSP, properties, and ZIP resources for a customized home page.
- Extends SQL-expression fields for complex chart and view definitions.
- Adds Legal Portrait and Legal Landscape print-paper definitions.
Processes
| Process | Purpose | Configuration and result |
|---|---|---|
RequestEMailProcessor |
Creates or updates R_Request records from IMAP messages. |
Configure the IMAP host, credentials, inbox, processed and error folders, request type, and optional defaults. Successful messages are copied to the request folder and deleted from the source inbox. Reply matching uses the normalized subject. |
RefreshMaterializedView |
Refreshes a PostgreSQL materialized view registered in AD_Table. |
Select AD_Table_ID and optionally IsConcurrent. Concurrent mode requires a unique index. The process validates the object name and checks pg_matviews before executing the refresh.
|
UnallocatedPayments |
Populates T_CDS_C_Payment for payment reporting. |
Accepts an accounting-date range, receipt/payment selector, and optional business partner. Rows are associated with the current process instance and include calculated allocated and open amounts. |
Lirionizer |
Deploys a home-page template attached to the process. | The Prefix parameter selects the attached resources. The process replaces matching server files and extracts the template ZIP under iDempiere home.
|
Requirements
- iDempiere 12.
- Java 17.
- PostgreSQL for
RefreshMaterializedView. - An accessible IMAP mailbox for
RequestEMailProcessor. - Database and filesystem permissions appropriate to the selected process.
Installation
- Deploy the
com.cdsoftware.baseOSGi bundle in iDempiere 12 and refresh or restart the runtime. - Verify that the bundle resolves the runtime mail packages used by the IMAP processor.
- Review the Incremental 2Pack import log. The repository contains nine dictionary packages under
com.cdsoftware.base/META-INF. - Verify the installed process definitions, parameters, report table, translations, attachments, and role access before enabling the processes.
The presence of the 2Pack files in the source repository does not by itself confirm that they were imported successfully in a specific environment.
Configuration and usage
Email-to-request processing
- Configure an IMAP or IMAPS host, mailbox credentials, inbox folder, processed-request folder, and error folder.
- Select a request type or define a default request type in iDempiere. Configure the optional business partner, contact, role, sales representative, priority, and confidentiality defaults.
- Confirm that processed messages may be copied to the request folder and deleted and expunged from the source inbox.
- Run the process with a controlled mailbox before scheduling it. Verify new requests, reply matching, attachments, destination folders, and server logs.
Materialized views
- Register the PostgreSQL materialized view as an active
AD_Tablerecord. - Select the table in
RefreshMaterializedView. - Enable concurrent mode only when the view has a suitable unique index and the database satisfies PostgreSQL concurrent-refresh requirements.
Payment reporting
- Select the accounting-date range, receipt/payment value, and optional business partner.
- Run
UnallocatedPaymentsand consume the generatedT_CDS_C_Paymentrows for the currentAD_PInstance_ID. - Verify that the range semantics match the intended report before distributing results.
Home-page templates
- Attach the required prefix-named HTML, JSP, properties template, or ZIP resources to the Lirionizer process.
- Confirm the destination paths and back up the resources that will be replaced.
- Run Lirionizer and verify the server files and rendered home page.
Compatibility and known limitations
LirionizerreadsjettyPathbut the iDempiere 12 execution path currently derives the server-plugin directory and does not apply that parameter.- Lirionizer replaces files and deletes the previous prefix-template directory. Review process attachments and filesystem paths before execution.
UnallocatedPaymentsrestricts both payments and allocations to the selected date range. It is not a cumulative historical balance as of the range end, does not restrict results to nonzero open amounts, and does not clean earlier rows before inserting the current process rows.- The materialized-view process accepts only unqualified alphanumeric/underscore object names and performs an unqualified catalog lookup. Verify the PostgreSQL search path when multiple schemas are used.
- Email reply association is based on a normalized subject search. It is not strict Message-ID threading.
- Some 2Packs replace process attachments or reset browser-title configuration. Review the target configuration and PackIn log during installation.
