• Home
  • Products
    • Print & Mail>
      • OfficeMail>
        • OfficeMail for Print Bureaux
        • OfficeMail for Corporates
        • OfficeMail for Business Service Organizations
        • Newsletter articles
        • Downloads
      • Output Manager>
        • Newsletter articles
        • Downloads
      • Barr EOM>
        • Newsletter articles
        • Downloads
    • Insight>
      • Downloads
    • Stir02>
      • Downloads
    • EmmA>
      • Downloads
  • Support
  • Contact us
Emtex Output Enhancement Large Document Handling

When VDE (Output Enhancement) was originally designed, Emtex expected all documents defined in a BOUNDARY OBJECT to be of a size that would fit into an envelope; therefore not particularly large.  However, we have recently been encountering larger and larger "documents" and in some cases these have exceeded the Windows 2GB Process Limit (RAM allowed per single process).

Accordingly, Emtex have developed a method to "handle" such documents without holding every side in memory - this is done by using SIDEINFO variables.  These allow a document to be indexed by simply declaring the FIRST and LAST mailpiece sides (as SIDEINFO variables).

Here's a basic example, where a BOUNDARY object has been turned into a REGION object, with FIRST and LAST side tests.

[OBJECT_oldboundary] OBJECT REGION SCAN0
   BEGINWINDOWX 50000 BEGINWINDOWY 2000
      TEST [TEST_FIRST]
      ACTION [EXTRACT_INDEX_START]
   ENDWINDOWX 70000 ENDWINDOWY 10000
   BEGINWINDOWX 50000 BEGINWINDOWY 2000
      TEST [TEST_LAST]
      ACTION [EXTRACT_INDEX_END] AND [INDEX_INVNO]
   ENDWINDOWX 70000 ENDWINDOWY 10000;

[EXTRACT_INDEX_END] EXTRACT [VARIABLE_INDEX_END] FROM WINDOW;
[EXTRACT_INDEX_START] EXTRACT [VARIABLE_INDEX_START] FROM WINDOW;

[INDEX_INVNO] INDEX "INVNO" BEGIN [VARIABLE_INDEX_START] END
[VARIABLE_INDEX_END] FROM [VARIABLE_INVOICE_NO] UNSORTED;

[VARIABLE_INDEX_END] VARIABLE [STORETYPE_SIDEINFO];
[VARIABLE_INDEX_START] VARIABLE [STORETYPE_SIDEINFO];

[STORETYPE_SIDEINFO] STORETYPE SIDEINFO;

This methodology eliminates the need to store the entire mailpiece in memory as it is being searched for the end of the boundary.  Note that this will require some alterations to your code, to emulate the inbuilt counters supplied when a boundary object is used, such as PAGENUMBER FROM OBJECT, often used in barcode construction.

On the other hand, this makes your code truly future proofed against ever larger documents coming down the pipe.

Contact Atac if you need help with any aspects of Output Enhancement programming.
Copyright Atac 2011