Skip to main content

Manual Background Print Call from Code - Knowledgebase / Lasernet FO Connector / Lasernet FO Connector FAQs - Formpipe Support Portal

Manual Background Print Call from Code

Authors list

When using the Performance Suite, the following code example can be used to manually call Background printing from the code:

/// <summary> /// This class gives an example how to call Batch print function from the code /// </summary> class LACTestBatchPrintJobScheduleCallExample { /// <summary> /// Tutorial to use Batch print function for Multithread big data processing /// </summary> [SuppressBPWarning('BPUpgradeCodeRunBaseRunCalled', 'Intentional call of the run instead of runOperation')] static void runBatchPrintJobSchedule() { LACTestBatchPrintJobSchedule batchPrintJobSchedule; QueryBuildDataSource qbds; SRSPrintDestinationSettings pds; batchPrintJobSchedule = LACTestBatchPrintJobSchedule::construct(LACTestBatchPrintApproach::BatchBundling); batchPrintJobSchedule.parmReportName = 'ReportName'; // Name of the LAC report batchPrintJobSchedule.parmTableName = 'TableForReport'; // Name of the table to be used in Query to pass records to generate Reports batchPrintJobSchedule.parmNumberOfThreads = 4; // Number of threads/tasks. Note that number of actual parallel threads is specified on batch servers. These tasks will be executed when available Batch Thread picks it up batchPrintJobSchedule.parmMaxRecords = 100; // Maximum of records (limit) to be processed. Takes all from query if 0 is set batchPrintJobSchedule.runInBatch = NoYes::Yes; // Parameter to run in Batch batchPrintJobSchedule.batchGroupId = ''; // Batch group ID for the Batch jobs batchPrintJobSchedule.bundleReports = NoYes::Yes; // Flag to make multiple reports per XML batchPrintJobSchedule.bundleReportFirstSize = 2; // Number of records bundled into 1st XML in each thread/task. It is not genereated if 0 set. batchPrintJobSchedule.bundleReportSize = 20; // Number of records bundled into middle (lardge) XML in each thread/task. It is calculated if 0 set by: bundleReportSize = (parmMaxRecords div parmNumberOfThreads) - bundleReportFirstSize - bundleReportLastSize batchPrintJobSchedule.bundleReportLastSize = 3; // Number of records bundled into last (3rd) XML in each thread/task. It is not genereated if 0 set. batchPrintJobSchedule.logPerReport = NoYes::Yes; // Flag to use logs per XML generation batchPrintJobSchedule.logWithLACArchive = NoYes::No; // Flag to wait for responce from Lasernet. DO NOT USE IT on big bundles! batchPrintJobSchedule.logSummary = NoYes::Yes; // Flag to use logs for execution batchPrintJobSchedule.logCPU = NoYes::No; batchPrintJobSchedule.logMemory = NoYes::No; // Setup query for the Scheduler whihc should pick up only required records. The best that it has single data source with ranges. No sorting or grouping. batchPrintJobSchedule.updateQueryRunByTable(true); qbds = batchPrintJobSchedule.queryRun().query().dataSourceNo(1); //qbds.addRange(...); // Add required ranges on status fields or dates // Setup print settings pds = new SRSPrintDestinationSettings(); pds.lacDestinationSettings().skipDelivery(false); pds.printMediumType(SRSPrintMediumType::LACFax); // Setup required destination. You can use FAX for testing pds.lacDestinationSettings().destTypes4Print(LACDestinationSettings::SRSPrintMediumType2LACDestTypes4Print(pds.printMediumType())); pds.lacDestinationSettings().fax('TEST'); // batchPrintJobSchedule.printSettings = pds.pack();; } static void main(Args _args) { LACTestBatchPrintJobScheduleCall::runBatchPrintJobSchedule(); } }
Helpful Unhelpful

0 of 1 people found this page helpful

Add a comment

Please log in or register to submit a comment.

Need a password reminder?