--- title: "Manual Background Print Call from Code - Lasernet FO Connector" slug: "manual-background-print-call-from-code" description: "When using the Performance Suite, code such as the example in this article can be used to manually call Background printing from the code." updated: 2024-04-09T13:47:37Z published: 2024-04-09T13:47:37Z canonical: "kb.lasernetgroup.com/manual-background-print-call-from-code" --- > ## Documentation Index > Fetch the complete documentation index at: https://kb.lasernetgroup.com/llms.txt > Use this file to discover all available pages before exploring further. # Manual Background Print Call from Code When using the Performance Suite, the following code example can be used to manually call Background printing from the code: ```javascript /// ///  This class gives an example how to call Batch print function from the code /// class LACTestBatchPrintJobScheduleCallExample {    ///    ///   Tutorial to use Batch print function for Multithread big data processing    ///    [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();        batchPrintJobSchedule.run();    }    static void main(Args _args)    {        LACTestBatchPrintJobScheduleCall::runBatchPrintJobSchedule();    } } ```