Performance and Feedback Options

Parallel Processing

Caching Files

Error Handling

Synchronous Print Mode

Print Job Status Feedback

Excluding printers from automated printing

Using Store/Recall Printing Mode

High-availability (Failover) Cluster

Load-balancing Cluster

Parallel Processing

Cloud_Business.png

Loftware Automation supports parallel processing for both – inbound and outbound processing. This ensures maximum efficiency on any system with installed software. Loftware Automation executes multiple tasks simultaneously, while still preserving the order in which the triggers have been added. Throughput of label job processing depends greatly on the hardware in use.

Caching Files

To improve the time-to-first label and performance in general, Loftware Automation supports file caching. When loading the labels, images and database data from network shares, you might experience delays while printing the labels. Loftware Automation must fetch all required files before the printing process can begin.

There are two levels of caching that complement each other.

  • Memory cache: Memory cache stores the already used files. The labels that have been used at least once are loaded in the memory cache. When a trigger requests a printout of the same label, the label is immediately available for printing process. Memory cache is enabled by default. Its contents are cleared after you remove or reload a configuration. The label file is checked for changes for each Open Label action. If there is a newer label available, it loads automatically, replacing the old version in the cache.

    [Note] Note

    After a label is not in use for 8 hours, it is offloaded from the memory cache.

  • Persistent cache: Persistent cache stores data to disk – its role is to provide medium term storage for files. Caching is managed per file object. After a file is being requested from the network share, the service first verifies if the file is already present in cache, and uses it. If a file is not in the cache, it is fetched from network share and cached for future use. The cache service continuously updates cache contents with new versions of files. You can configure the time intervals for version checking in Options menu.

Error Handling

If an error occurs while executing an action, Loftware Automation stops executing all actions in the trigger. If there are actions defined after the current action that reports an error, these actions are not executed.

For example, actions are defined as shown in the screenshot below. If Set Printer action fails due to invalid name or inaccessible printer, the actions Print Label and HTTP Request are not executed. Action processing stops at Set Printer, Automation Manager shows the trigger in error state and the trigger status feedback (if enabled) reports "wrong printer specified / printer not accessible".

UUID-8df9a3d9-034e-c424-cb5b-661d42118404.png

However, in this particular case you don't want to use synchronous feedback which is sent automatically if enabled in the trigger that supports synchronous feedback. Status feedback must be provided asynchronously using the HTTP Request action after the print job is created (or not). After the print process completes, update an application with its status. To achieve this, send the application an HTTP formatted message.

In this case, the HTTP Request action must be executed regardless of success of all the actions in the list above it. Enable the Ignore failure option for all actions that are placed above the HTTP Request action. The option is available under Execution and error handling options of an action.

UUID-f76df9a2-52ff-ab1d-65a1-4a5effd48295.png

If a particular action fails, Loftware Automation starts executing the next action on the higher level of hierarchy.

Example 93. Example

If the Set Printer action on level 1.1 fails, the execution does not continue with Print Label action on level 1.2 because it will likely fail as well. It continues with the HTTP Request action on level 2, because it is the next action in the higher-level hierarchy.


The same logic can be implemented for looping actions, such as Use Data Filter, Loop and For Each Record. With these actions, you iterate through all members on the list. If processing of one member fails from whatever reason, by default Loftware Automation stops processing all other members and reports an error. If you enable Ignore failure option, the processing of the failed member stops, but Loftware Automation continues with the next member. At the end, the error is reported anyway.

Synchronous Print Mode

Asynchronous Print Mode

The default operation mode of Loftware Automation is asynchronous mode. Asynchronous mode is a form of printing, during which a trigger sends data for printing and closes connection with the print subsystem. The trigger does not wait for the result of the printing process and does not receive any feedback. Immediately after the data is sent, the trigger is ready to accept a new incoming data stream.

Asynchronous mode boosts trigger performance and increases the number of triggers that can be processed in a time frame. Each printing process has buffer in front – this is where the trigger feeds the print requests in. The buffer accommodates for trigger spikes and makes sure no data is lost.

If an error occurs during processing, it still gets logged in Automation Manager (and Loftware Control Center, if you use it), but the trigger by itself is not aware of it. When running Automation in asynchronous print mode, you cannot define conditional actions that would execute, if the trigger execution is in error.

UUID-76ffc855-4119-ec92-0cef-d6f43901393a.png

Synchronous Print Mode

In comparison to asynchronous mode, synchronous mode doesn't break connection when the printing process begins. In this mode, the trigger sends data for printing and keeps the connection to the print subsystem established for as long as it is busy executing actions. When the printing process is complete (successfully or with an error), the trigger receives feedback about the status.

You can use this information inside the actions that are defined in the same trigger and decide to execute another action in case an error occurs. You can also send print job status back to the data-issuing application. For more information, see section Print Job Status Feedback.

UUID-41e828bd-9243-a6df-cbfa-1e287d23b464.png

Example 94. Example

You can report printing status to the ERP application that provided the data.


Print Job Status Feedback

The application that provides data for label printing into Loftware Automation might expect to receive information about print job statuses. Feedback can be as simple as "All OK" in case of a successful print job generation, or detailed error description in case of an issue. Due to performance reasons, Loftware Automation disables feedback possibility by default. This ensures high-throughput printing as trigger doesn't care about the print process execution. The errors are logged to log database, but the trigger does not handle them.

You can also use this method to send feedback about other data the trigger collects. This can be status of network printers, number of jobs in the printer spooler, list of labels in a folder, list of variables in the specified label file, and many more.

[Note] Note

To enable feedback support from print engine, enable synchronous print mode. For more information, see section Synchronous Print Mode.

Enable print job status feedback using one of the two available methods.

Excluding printers from automated printing

In certain cases, your printing environment requires you to exclude some of your printers from the automated printing process. Possible reasons why you should exclude printers from the automated printing are your company printing policy or the limitations of you license.

By default, Automation prevents automated printing using file printers, such as Microsoft Shared Fax Driver, Microsoft Print To PDF, Microsoft XPS Document Writer, and similar. These file printers require the users to manually select the location for their "printouts". The request for manual user intervention causes the print engine to stop, reporting an error.

To prevent the Automation from using specific printers in the running configurations:

[Note] Note

When specifying the excluded printers from the automated printing in the product.config file, you must also explicitly list your file printers.

  1. Open file product.config in text editor.

    The file is located here:

    %PROGRAMDATA%\Loftware\Loftware\product.config

  2. Create a backup copy of the product.config file.

  3. Automation uses two parameters to check which printer model and printer port should be excluded from automated printing. Add these parameters to your product.config file.

    • /IntegrationService/DisabledPrinterDrivers and type the printer models you want to exclude from automated printing.

    • /IntegrationService/DisabledPrinterPorts and type the ports you want to exclude from automated printing.

    UUID-3209fa51-aaff-68dc-a86e-503b1783df13.png
    <configuration>    <IntegrationService>        <DisabledPrinterDrivers>NiceLabel Graphics Driver,NicePrinter1200dpi</DisabledPrinterDrivers>    
            <DisabledPrinterPorts>LPT1,LPT2</DisabledPrinterPorts>    </IntegrationService></configuration>
  4. Once you define the printer models and printer ports in the product.config file, you can still run your Automation configurations, but your updated settings prevent printing on the listed printers. Automation reports an error if the these printers are part of the running configurations.

    [Note] Note

    Automated printing does not stop if the excluded printers are used in the Redirect Printing to File action.

Using Store/Recall Printing Mode

Store and Recall printing mode optimizes the printing process. It enhances printer response by reducing the amount of data that needs to be sent during repetitive printing tasks.

With store and recall mode activated, Loftware Automation does not need to resend the complete label data for each printout. Instead, the labels (templates) are stored in the printer memory. Fixed objects are stored as such, while placeholders are defined for the variable objects. Loftware Automation only sends data for variable label objects and the recall commands. The printer applies received data in the placeholders on the stored label and prints the label by recalling it from the memory. Typically, a few bytes of data are sent to the printer, compared to a few kilobytes as would be the case during normal printing.

The action consists of two processes:

  • Store label: During this process, the application creates a description of the label template formatted in the selected printer's command language. When done, the application sends the created command file to the printer memory and stores it. You can store a label from label designer or from Loftware Automation using the Store label to printer action.

    [Note] Note

    The label must have the store and recall printing mode defined in its properties before you can store it to printer.

  • Recall (print) label: A label stored in the printer memory is printed out immediately. Using the recall process, Loftware Automation creates another command file to instruct the printer which label from its memory should be printed. The actual amount of data sent to the printer depends on the current situation. For fixed labels without any variable contents, the recall command file only contains the recall label command. For variable labels that contain variable fields, the command file includes the values for these variables and the recall label command.

    To recall a label from Loftware Automation just use one of the usual printing actions. When executed, the action analyzes the label and enables the appropriate printing mode: normal print or recall print, as defined in the label.

[Warning] Warning

Before activating this mode, make sure the appropriate printer driver is selected for the label printer. Not all label printers have the ability to use the store and recall printing mode. The printer driver for which the label was created in the label designer must also be installed on the machine where Loftware Automation is running.

High-availability (Failover) Cluster

Cloud_Business.png

Loftware Automation supports Microsoft high-availability (fail-over) cluster. A fail-over cluster is a group of independent computers that work together to increase the availability of label printing through Loftware Automation. The clustered servers (called nodes) are connected by physical cables and by software. If one or more of the clustered nodes fail, other nodes begin to provide service (a process known as fail-over). In addition, the clustered roles are proactively monitored to verify that they are working properly. If they are not working, they are restarted or moved to another node. The clients providing data connect to the IP address that belongs to the entire cluster, and not to the individual node IP addresses.

To enable Loftware Automation to perform in a high-availability cluster, do the following:

  • Set up Microsoft Failover Clustering feature on your Windows Servers.

  • Install Loftware Automation on each node.

  • Enable fail-over cluster support in Loftware Automation properties on each node.

    Do the following:

    1. Open File > Options > Automation.

    2. Under Cluster Support group, enable Failover Cluster Support.

    3. Browse for the folder, located outside of both nodes, but still accessible with full access privileges to Loftware Automation software. Important system files that both nodes need will be copied to this folder.

  • Configure the cluster to start Loftware Automation on the second node in case the master node is down.

See the detailed description about configuring Automation failover cluster in our KB article.

Load-balancing Cluster

Cloud_Business.png

Loftware Automation supports Microsoft load-balancing cluster. Load-balancing cluster is a group of independent computers that work together to increase the availability and scalability of label printing through Loftware Automation. The clustered servers (called nodes) are connected by physical cables and by software. The incoming requests for label printing are distributed among all nodes in a cluster. The clients providing data connect to the IP address belonging to the cluster, and not to individual node IP addresses.

[Note] Note

You can use TCP/IP-based triggers with load-balancing cluster. These triggers are TCP/IP Server Trigger, HTTP Server Trigger, Web Service Trigger, and Cloud Trigger.

To enable Loftware Automation for load-balancing, do the following:

  • Set up Microsoft Load-balancing Clustering feature in your Windows Servers.

  • Install Loftware Automation on each node.

  • Load the same configuration files in Automation Manager on each node.