OrderFlow Configuration

Introduction

This document is primarily about PrintServer and applet printing, and not OrderFlow configuration. However, a little understanding on how print queues are set up will be helpful in gaining a better overall picture of how the pieces fit together.

As described in the PrintServer section, print queues are used by OrderFlow to identify target destinations for printed output. Each print queue used in the application needs to be set up as an entry visible on the OrderFlow GUI, shown below.

_images/orderflow-print-queues.png

A number of different mechanisms are used within the application to determine the print queue for a printable document, or print item.

For shipment batches, each shipment batch type is typically associated with a print queue. However it is also possible for the queue to be used for a batch print job to depend directly on the workstation from which the batch printing is initiated.

For other types of documents, the print queue typically depends on a workstation-specific property value. The name of the property will itself be context dependent, changing according to the type of document being generated.

Shipment Batches

Every shipment batch is associated with a print queue through the shipment’s batch type, as shown below.

However, it is also possible to associate a shipment batch with a workstation-specific print queue. This is only possible for shipment batches which are printed manually. Shipment batches printed automatically using a scheduled job can only be associated with the print queue associated with their parent batch types.

_images/orderflow-batch-types.png

In the screenshot above, the multiline batch type has been associated with the DEFAULT print queue.

During their lifecycle, Print Items on OrderFlow can be in the ready state or the downloadable state. Those in the ready state get printed out automatically by the Print Server. Those in the downloadable state have to be dragged to a printer on the “Printing Control” page of the Print Server web interface. Shipment batches can be configured to default their Print Items to either state, using the batch.download.before.printing application property (on OrderFlow).

Workstation-specific Print Queue Naming

The following section describes some best practices that can be applied when using the Print Server for printing documents on the packing desk. This can apply both for despatch notes and labels.

In this scenario, you will need the Print Server to be installed not just on a single workstation, but on each of the packing desks.

Establishing and applying sensible naming convention for workstations, Print Servers and print queues is important in making this arrangement easy to set up, replicate or extend with further packing desks.

For the configuration just described, you will need:

  • an instance of the Print Server to be installed set up on each packing desk.
  • a Workstation instance on OrderFlow for each packing desk.
  • for each document type that is to be printed using the Print Server, a Print Queue queue for each workstation and documentation type combination.

The naming of the Print Server itself can be set up using the fetch.friendly.name property in the fetch.properties configuration file.

For example, if you are using the Print Server to print A4 despatch notes to a laser printer, and 6x4 labels to a thermal printer, then you a suitable naming convention might be.

  • a numbered workstation for each packing desk, for example, WORKSTATION_01, WORKSTATION_02 etc.
  • corresponding named print queues for A4 document printing: DOCUMENT_01, DOCUMENT_02 etc.
  • corresponding named print queues for label printing: LABEL_01, LABEL_02 etc.

These values will be reflected in the Print Server’s print.properties file configuration. The will also be reflected in the Workstation Property values, described in the next section.

Applet and PDF Printing

Note that there are two print queue names which have a special meaning in the way that they are interpreted by OrderFlow:

  • APPLET: used for direct printing via the Java Applets browser plugin.
  • PDF: used for direct printing of PDF documents via the Adobe Reader browser plugin.

In both cases, the Print Server is not involved; the print items created are sent directly to the browser for printing.

The main question then becomes the choice of application property to configure.

The following table illustrates some of the scenarios:

Example Property Usage
Property Type Value Usage
despatch.note.default.print.queue Application Property APPLET All despatch notes to be printed using Applet printing.
despatch.note.print.queue Workstation Property APPLET Despatch notes at an individual workstation use Applet printing.
label.default.print.queue Application Property APPLET All labels by default use Applet printing.
label.print.queue Workstation Property PDF Labels printed to an individual workstation use PDF printing.

Note that APPLET printing is only for documents that are generated on OrderFlow, usually via a custom or built-in report using Jasper Reports. PDF printing is more common for documents that are generated on third party systems as PDF documents, and imported into OrderFlow as such.

Workstation-specific Documents

For many of the printing operations, the user is expected to be associated with a workstation. Different workstation properties are used to identify the workstation-specific target for different types of printed documents.

_images/orderflow-workstation-properties.png

Note the workstation properties which end print.queue.

Property Purpose Possible values
despatch.note.print.queue Despatch notes printed from packing screen
DOCUMENT_01: routes to Print Server
APPLET: reserved for applet printing
label.print.queue Courier labels from packing screen
LABEL_01: routes to Print Server
APPLET: reserved for applet printing
shipment.batch.print.queue Despatch notes printed via batch printing
DOCUMENT_01: routes to workstation specific queue
No value: uses shipment batch default (see below)

Note also that similar values can be set for crossdock.print.queue (where a workstation is being used for cross docking shipments from incoming deliveries), and for shipatease.print.queue (where a print queue is being used to support integration with DPD shipatease).

Note that while it is normally not possible to specify a printer directly, there is an exception to the rule for applet printing.

In screenshot above, the properties label.printer and despatch.note.printer are being used to explicitly set the printer to be used for applet printing for labels and despatch notes respectively, from a particular workstation. This is to accommodate the situation where both labels and despatch notes are printed from the packing screen, but to different printers (typically, despatch notes would be routed to a A4 laser printer, while labels will be outputted to a smaller thermal printer).