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 does allow allows for a level of 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

NoneNone

View file
namepremium_2_CUSTOM_PLUGINS_TYPES_CORE_PRINTING_product_userguide_UG - v0.2.pdf

RELEASE NOTES

  • Release notes 23.4 (Ticket #8326) - Add new Core Printing plugin

Try it!

Plugin details

Type

Plugin Name

Interface

Location

Method Name

Module

Linked Action

Printing

Core Printing

ICorePrinting

DATASCOPE.SDK.PluginInterfaces

<various>

Core Printing

InfoAll the Plugin .DLL files are located

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

  • DATASCOPE SDK.dll will provide you access to all the available Interfaces and Classes required to develop your plugin.

    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 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 if 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.

     
    • .

    image-20240402-131131.pngImage Added

    To develop your own 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

    Info

    Strong development skills are required in order to develop your own plugins.

    For more information, refer to What is needed to work with Plugins?

    • Open a Class Library Project within Visual Studio

    • Insert the DATASCOPE SDK

    • Insert the inheritance from the DATASCOPE SDK

    • Select the required Interface.

    • Write your code as per your own requirement.

    • Build it into a single .dll file and save it in the C:/ Program Files / DATASCOPE / DATASCOPE WMS WebAPI / Plugins folder on the server.

    • Test it in the module.

    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. CorePrinting)

    • Add the compiled DLL file name, developed by a developer, in the Dll FileName field - for example CorePrinting.dll

    Info

    The DLL file name added into the Dll FileName field must be exactly the same as the .DLL file saved in the C: / Program Files (x86) / DATASCOPE / DATASCOPE WMS WebAPI / Plugins folder.

    Info

    All the Plugin .DLL files are located 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 for either all modules with a Print buttons, or depending on the return string, only certain modules.

    For more information on configuring a plugin, refer to Create a Custom Plugin and link it to a Module or System Setting (configuring plugins) or https://datascopewms.atlassian.net/wiki/spaces/TG/pages/109707274/Developing+your+own+plugins#Configuring-the-plugin-in-the-software