Manhattan WMOS Integration
Manhattan Associates’ Warehouse Management for Open Systems (WMOS) is a warehouse management solution for retailers which can output in a variety of formats, including PostScript (.PS) and Extensible Markup (.XML) via the Manhattan Integration Framework (MIF).
eFORMz integrates with WMOS via Java Print Service (JPS). There are a variety of methods for handling the data as it’s printed out of Jasper or other Java Print Services. The eFORMzPrinter options are listed below.
- “file” – This is local to the WMOS server. It can be on a shared or Network File System (NFS) volume.
- “ws” – This is web service call from the WMOS side into eFORMz, usually to POST the data into the Director. For more on the eFORMz API: eFORMz API Management (Developer Resources)
- “jms” – This is a Java Message Service call.
- “socket” – This a raw TCP/IP socket sending of the data. For more information, consult the following post: NetPort Listener input source in eFORMz Director
A sample configuration is available here: Config
Enable Java Print Service (JPS)
To check if Java Print is on or off, run the following:
Select * From application_configuration Where key = 'labelprinting.javaprintservice'
If Value = FALSE then Java Print is turned off and WMOS is using Unix printing. To turn on Java Print, run the following SQL statement and then restart the environment:
update application_configuration set value = 'TRUE' where key = 'labelprinting.javaprintservice' and value = 'FALSE'
Best Practices
eFORMz works with any version of WMOS, but the integration methods can vary widely. Even within the same year there are platform and non-platform versions that require different approaches for integration. In pre-2010 versions or non-Platform versions, integration is done by reading the “RPT_REQST_Q “ table for the print request and then reading other tables for additional required data. When integrating with WMOS version 2010 and newer, eFORMz intercepts the system print output by looking to the user as a normal printer. When the output is intercepted, it is processed by the eFORMz engine to produce the desired output as designed, and then it is outputted to its final destination.
More specifically, for WMOS version 2010 and newer, the eFORMz Java Print Service Provider jar file (eFORMzPrinter.jar) is installed in WMOS Classpath. This doesn’t make any changes to WMOS code. Be sure to add the following in a Java command to whatever is calling the print service (e.g. WebSphere):
-DefzPrintServicesDefaultDirectory=<config directory>
The <config directory>
refers to a directory created to contain the PrintServices.xml file. It is also the directory that will contain the folders for the intercepted output from WMOS. Typically we use /minisoft
or /opt/minisoft
.
PrintServices.xml is a part of the eFORMz installation and it holds configuration of eFORMz printers. The Director Toolkit (Configuration) is a Minisoft App to configure eFORMz printers. The eFORMz Java Print Service Provider translates Java drawing operations to Minisoft eFORMz Document (.efd) formatted output. The flow of this process is detailed in the diagram below.
Consult the following post for additional details: Process w/Director
Depending on the version of WMOS, it’s possible that some combination of the four main integration options for eFORMz could be used. Contact a Minisoft support representative for specific integration options regarding your version of WMOS.
WebSphere Container
To manually install the .jar file, please perform the following:
1. Copy the new jar to $WMS_INSTALLATION_HOME/distribution/scope.ear/lib
2. Extract$WMS_INSTALLATION_HOME/distribution/scope.ear/scope.war/META-INF/MANIFEST.MF
3. Edit MANIFEST.MF
and append new lib name (better to do this from a dev environment and move the scope.ear to production)
4. Paste the updated MANIFEST.MF
in scope.ear/scope.war/META-INF/MANIFEST.MF
5. Re-deploy WMS
6. Start WMS application