Often there will be a label printing requirement as part of an MII implementation. Possible solutions range from commercial offerings from Bartender or Loftware, writing a custom action or jsp in MII, or simply having the user print from their workstation. Well with the release of MII version MII14.0 SP4 Patch 3+ and the new ability to push messages from MII over a socket connection thru PCo as discussed here: http://scn.sap.com/docs/DOC-54265 , there is now another option. This is because the Intermec and Zebra type industrial label printers we often find in shop floor environments have the ability to receive print commands directly via a socket connection. I will walk thru a simple example you can use as launching point for you own investigations. If you are new to PCo or are looking for more information I suggest starting with the PCo application help here: http://help.sap.com/pco.
To begin open the PCo Management Console and create a Socket Agent type source system.
Configure a Communication Port to connect to the printer. Set the Length to 1 so all messages from MII will be pushed to the printer.
Now create an Agent Instance for our Socket Agent Source system.
Configure the Query Port so MII can connect to our Agent.
Now Start the Agent and also make sure the PCo Management Host service is running.
Now we need to configure a PCo Data Server connection in MII.
From the MII Admin Menu navigate to Data Services --> Data Servers and create a new PCoConnector connection.
Now that we have a connection we can create a PCo query to send our print commands to our printer.
In the MII workbench create a new PCo query and select our new connection as the server and TagFixedQuery as the mode.
On the Tag Fixed Query tab you will use something like the following:
CALL SEND(address='123.456.789.101', port='9100', message='FT \"Swiss 721 BT\"
PT \"HELLO SDN!!\"
PF
');
Your actual address, port and message will differ based on your specific printer.
We can now run the query in the workbench. If all goes well we should get a successful return code (0) and a nice label should print.
And here it is:
Of course an actual implementation would take a bit more planning and development than the simple solution demonstrated here. I hope many of you will be able to take advantage of this new functionality. Please let us know if you do.
Regards,
Christian