Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

System Setup / Plugin Customization / Plugin Configuration [SET062].

The current DATASCOPE WMS Core printing is managed by a A built-in Crystal Report-based engine manages the current DATASCOPE WMS Core printing. This process allows for custom Report (RPT) files to be created for the system's specific printing parts. These are then populated using a dataset and spooled to the printers configured within the different modules.

This allows for customization within the RPT files; however, customers are still hooked on using the Crystal Engine. Some of the its limitations of this are speed and stability within the printing engine. Printing thousands and thousands of labels can be heavy on Crystal and slow in some cases.

To resolve the problem statement, the most simple and flexible solution is to introduce a DATASCOPE WMS Plugin for the core printing process in the system. This means that if configured, the system will call this new plugin, and it can then manage the printing whichever way it likes.

Info

Release notes 24.1 (Ticket # 8326) - A new Printing Plugin has been developed.

Info

If you don’t like reading, you can watch the video.

Panel
panelIconId1f3a5
panelIcon:movie_camera:
panelIconText🎥
bgColor#DEEBFF

None

View file
namepremium_2_CUSTOM_PLUGINS_TYPES_CORE_PRINTING_product_userguide_UG - v0.12.pdf

Try it!

Type

Plugin Name

Interface

Module

Linked Action

Printing

Core Printing

ICorePrinting

<various>

Core Printing

The plugin works the same as all existing plugins, if its configured it will be called, if not configured the existing logic will be applied. Thus, if configured the core system will expect the plugin to manage the printing and nothing will be sent to the Crystal Engine.

To configure this plugin:

  • From the Main Menu, browse to System Setup / Plugin Customization / Plugin Configuration

  • Select Core Printing Plugin from the Plugin Name drop-down.

  • Select ADDfrom the Action drop-down
  • Enter a Display Name (i.e. Printing)

  • Select the applicable DLL - in this case it will be Print.dll

  • InfoAll the Plugin .DLL files are located

    Overview of the Source Code

    The plugin's source code is provided within the DLL file and can be changed for additional or different logic.

    Info

     Note: All the plugins. DLL files are stored on the DATASCOPE WMS server under C: / Program Files (x86) / DATASCOPE / DATASCOPE WMS WebAPI / Plugins. . Refer to https://datascopewms.atlassian.net/wiki/spaces/TG/pages/109051919/What+is+needed+to+work+with+Plugins#Location-of-plugin-files .

    • Select Save to save the configuration.

    • This plugin will now be configured all Core Printing functions (buttons).

    image-20240312-075450.pngImage RemovedThe return type of the plugin

     The plugin's return type will be a string. The string will have three options: True, False, or Error. This will allow the plugin to tell the core system to print the report, not print the report or return an error message.

    • If the plugin returns a “True” “True,” = the document has been printed, and the core system DOES NOT need to print anything.

    • If the plugin returns a “False” - the document has NOT been printed, and the core system MUST print the document.

    • If the plugin returns an “Error” - the message will be thrown in the core system and be displayed to the Operator.

    This  This logic will give the plugin an additional function that it can handle some of the printing but not all of it. So if , suppose the 3rd party developer only wants the plugin to handle Track ID Reprints. In that case, they can code it in such a way so that when called for any other print job, it simple simply returns a False, indicating that the core system should continue to print the document.

    The new plugin to will be created and located within the existing core print processed process in the Webservices and WebAPI printing processes.

    The existing printing is contained in a single location within the Webservices and WebAPI print processes and this . This is the most logical point of entry for the Plugin to be placed for a minimal minimally invasive implementation.

    The existing plugin “template” should be used where the plugin it is only loaded if it is configured in the tables. The

     The following parameters will be supplied to the plugin and defined in the interface:

    • pBaseProperties - This is standard on all plugins and business objects and provides the developers with some basic information like Company ID, Operator, GUID, etc., for use in the plugin as needed.

    • pSystemAction - This pSystemAction—This is the System Action that is linked to the print job being processed. This It is a key field as it indicates the “type” of print that is happening. This is the field that the The developers can use this field to determine if whether they are handling the print or not in if the case plugin is not printing everything is being printed by the plugin.

    • pWarehouse - This pWarehouse—This is the Warehouse code linked to the print job. In the core system, this , along with the and System Action , is used to determine the Printer and/or report name.

    • pReportName - This pReportName—This may or may not get used, but it will contain the name of the core-configured Crystal Report template file that would be used by the core if it were to be printingprint.

    • pData - This pData—This is the RAW data that the system would have used to bind to the report being printed. This The developer can be used use or not used as the developer use this as he or she sees fit. There is no specific structure to this, and if the developer were to need this needs it, they can dump it out using the plugin first. This changes from system action to system action.

    • pNoPages - This is the number of pages that the core system was requested to print for the particular print job being processed.

    • pPrinterName - This pPrinterName—This is the name of the Printer that to which the core system would have printed the print job to. This will be a network printer , installed on the WMS Server.

     

    Building the Plugin

    For more information regarding building the plugin, refer to the high-level overview on how to build a basic plugin - Developing your own plugins