Bulk PDF Publishing Architecture: Aras 13.0 Trade-off Analysis
This isn’t purely an upgrade question, but the upgrade-survivability concern is central enough to frame the entire decision. Both approaches carry distinct risk profiles across your 13.0 → future migration path.
Pre-Upgrade / Pre-Implementation Checks
Before committing to either approach, validate these in your 13.0 environment:
- Confirm your Office Connector version and whether native
ConvertToPDF methods are exposed via IOM server methods or only through the client context — this determines Approach 1’s feasibility without a UI session.
- Check whether your Aras instance runs Aspose or a different rendering engine under the hood (verify in your version); this affects fidelity and concurrency limits.
- Identify whether your documents have CAD viewables, Office files, or mixed types — xEngine connectors handle these differently.
- Baseline your SQL Server load during peak release cycles. 500–1000 documents through server-side iteration will hammer the app tier if not throttled.
- Audit existing server-side methods that touch your document ItemTypes — collision risk during upgrades scales with customization depth.
Approach Comparison
Approach 1 — Server-Side Scripting
Pros: tight IOM integration, no external dependency, easier access to relationship graphs and lifecycle state.
Cons: Aras server-side methods run synchronously in a single execution context unless you implement explicit Action queuing via Workflow or a scheduled Agent. At your volume, you risk HTTP timeouts and thread exhaustion. Error state management must be custom-built — you’re responsible for retry logic, partial-failure tracking, and surfacing status back to the Document item.
Upgrade risk is moderate. Server methods written against stable IOM interfaces (Innovator.newItem(), apply()) generally survive, but any method referencing internal Aras database views or undocumented stored procedures will break.
Approach 2 — xEngine Integration
Pros: offloads conversion workload entirely, purpose-built for batch throughput, error handling is largely the engine’s responsibility.
Cons: adds an external process boundary — you need a durable job queue (typically a staging table or message queue) and a callback or polling mechanism to write results back to Aras. Integration points (REST/SOAP endpoints, file staging paths) must be explicitly documented and tested on every upgrade.
Upgrade risk is lower for Aras core but higher for the integration layer. The xEngine connector itself may need recertification after an Aras upgrade if it uses SOAP-based server-side calls or older OAuthClient patterns (verify in your version).
Recommended Step Sequence
- Implement a lightweight orchestration method in Aras that builds a processing manifest (Item IDs, file references, target states) and writes it to a staging ItemType — this decouples document selection logic from rendering.
- Trigger conversion via xEngine (Approach 2) reading from that staging table, keeping the Aras server out of the conversion loop.
- Use a callback server method or scheduled Agent to poll xEngine results and update document File relationships and lifecycle states.
- Log per-document success/failure to the staging ItemType; expose failures via a simple Grid report for release managers.
Rollback Procedure
- The staging ItemType is non-destructive — documents retain their original File attachments until explicitly replaced.
- On failure, set staging records to an
Error state via method; original PDFs (if any) remain associated.
- If rolling back a full upgrade, export staging ItemType schema via Package Definition before upgrading — reimport is straightforward since it carries no core dependencies.
Maintainability verdict: Approach 2 with a staging-table orchestration layer wins at your volume. The key is keeping Aras responsible only for metadata and state, not the conversion process itself.
This draft is based on general Aras Innovator knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.