BarTender - how to do label printing from the cloud?

Hello,

In Syteline V9 on-prem we have (or “used to have”) BarTender software, that communicates with the Label Printers. In Syteline, when users wanted to print labels, we use to insert data into a SQL Server Table, and BarTender was monitoring and reading data from this table. As soon as there is a new record in this table, BarTender will fetch it and send the label printing command to appropriate printer using the appropriate label template etc.

 

Now, we are in the process of migrating to multi-tenant cloud. So I would like to know the best approach to do this. If anyone have experience of going through this process, that would be great. Any Infor’s KB article on this will also be helpful. I have the following approach in my mind:

 

I will create a web-service on the on-prem BarTender server. This web-service will receive the data and insert it in the BarTender’s table (so that everything continue to work as is). Next, in CSI, I will create C# IDO Extension Class Library and through and IDO Method, I will call this web-service. My question is:

 

  1. Since our on-Prem BarTender server is behind a firewall (VPN), so, will need to white-list the IPs that will communicate to this web-service. Will it be possible for me to have the list of IP addresses of Infor’s multi-tenant cloud? How frequently will those IP addresses change? Is this a workable approach?
  2. Will my concept of calling webservice from IDO Extension Class work? Or should I look for some other complicated integration using ION (Infor OS) etc?

 

Thanks a lot.

Parents Reply Children
  • We maintain a local Bartender server—a virtual machine within our infrastructure—securely situated within our network’s firewall.

    Additionally, our network hosts a file server, also a virtual machine, dedicated to providing file systems for Syteline environments. For further details, please refer to the Syteline Form: FileServers.  Documentations available from Infor how to setup a file server in MT cloud environment.

    Regarding the Flat File, Infor supplies a standard template which we utilize during print operations from a Factory Track environment. We have incorporated several custom fields to meet our specific needs. A sample file has been generated has been added below.

     My rationale is that, upon the availability of the flat file on the File Server or Bartender Server, it is possible to configure the Bartender software to search for, retrieve these files and print the labels. This is an out of box configuration.

    -----
    Sample Flat File:

    %BTW% /AF="C:\Label_Print_Directory\Templates\item.btw" /PRN="LABEL-ZT411-001" /P /D="%Trigger File Name%" /C=1 /R=3
    %END%
    LabelRequestIdString|LabelRequestId|LabelRequestSeqString|LabelRequestSeq|SiteString|Site|WhseString|Whse|LocString|Loc|ItemString|Item|DescriptionString|Description|QtyString|Qty|UMString|UM|RevisionString|Revision|LotString|Lot|SerNumString|SerNum|ProjectString|Project|OrderTypeString|OrderType|OrderNumberString|OrderNumber|OrderLineString|OrderLine|OrderReleaseString|OrderRelease|CustVendorString|CustVendor|CustVendorItemString|CustVendorItem|OrderUMString|OrderUM|Gs1CompanyCodeString|Gs1CompanyCode|SerialShippingContainerCodeString|SerialShippingContainerCode|GlobalTradeItemNumberString|GlobalTradeItemNumber|ReceiptNumString|ReceiptNum|ShipmentString|Shipment|ShipmentPkgString|ShipmentPkg|CarrierNameString|CarrierName|CarrierPkgString|CarrierPkg|ShipViaDescriptionString|ShipViaDescription|WeightString|Weight|ProductionLineString|ProductionLine|CrossdockLocationString|CrossdockLocation|CrossdockOrderString|CrossdockOrder|RefOrderTypeString|RefOrderType|RefOrderNumberString|RefOrderNum|RefOrderLineString|RefOrderLine|RefOrderReleaseString|RefOrderRelease|MfgDateString|MfgDate|ExpiryDateString|ExpiryDate|ContainerNumString|ContainerNum|NumberOfBoxesString|NumberOfBoxes|AltItemCodeString|AltItemCode|ItemTypeString|ItemType|DescriptionBString|DescriptionB|DescriptionCString|DescriptionC|DescriptionDString|DescriptionD|LocFromString|LocFrom|OperationString|Operation|QtyAdvisedString|QtyAdvised|RunNumberString|RunNumber|SearchKeyString|SearchKey|SequenceString|Sequence|SernString|Sern|DateString|Date|HuLevelString|HuLevel|MultiItemHuString|MultiItemHu|ParentHuString|ParentHu|QtyStorageUnitString|QtyStorageUnit|ReceiptLineString|ReceiptLine|SerialPresentString|SerialPresent|ShipmentLineString|ShipmentLine|StatusString|Status|FixedLocString|FixedLoc|HeightString|Height|InvDateString|InvDate|InspectionFlagString|InspectionFlag|LengthUnitString|LengthUnit|LotCertString|LotCert|RecommendedLocString|RecommendedLoc|SupplierLotString|SupplierLot|WidthString|Width|DepthString|Depth|WeightUnitString|WeightUnit|WorkCenString|WorkCen|ActivityDescString|ActivityDesc|CostCompDescString|CostCompDesc|ProjectDescString|ProjectDesc|ElementDescString|ElementDesc|ExtensionDescString|ExtensionDesc|FromActivityString|FromActivity|CostComponentString|CostComponent|ElementString|Element|ExtensionString|Extension|ReceiptDateString|ReceiptDate|KanbanIdString|KanbanId|KanbanLocString|KanbanLoc|ReplenishWhseString|ReplenishWhse|QtyOpenString|QtyOpen|DayString|Day|MonthString|Month|YearString|Year|Add1String|Add1|Add2String|Add2|CustVendNameString|CustVendName|UserNameString|UserName|LabelName|NumCopies|PrinterName|RefRequestId|Userid|LabelPrintSoftware|FileName|QuietPrint|TaskTypeString|TaskType|TaskCodeString|TaskCode|TaskDescriptionString|TaskDescription|EmployeeNumberString|EmployeeNumber|FirstNameString|FirstName|LastNameString|LastName|BadgeNumberString|BadgeNumber|ReasonCodeString|ReasonCode|ReasonCodeDescriptionString|ReasonCodeDescription|QCSReceiverNumString|QCSReceiverNum|CountryOriginString|CountryOrigin|CountryOriginNameString|CountryOriginName|NoOfLabelsPerUnit|NoOfLabelsPerUnit Data|LabelSequence|LabelSequence Data|CustomerGroupCode|CustomerGroupCode Data|
    Label Request Id|88638|Label Request Seq|1|Site|NW_OH|Whse|MAIN|Location|STOCK|Item|SG-CR-DK|Description|FOR DUKE COUNTER - 193995 - Custom Sneez|Qty|1.00000000|UM|EA|Revision| |Lot| |Serial Number| |Project| |Order Type|P|Order Number|OP00010685|Order Line|1|Order Release|0|Cust Vendor|BSI0110|Cust Vendor Item| |Order UM| |Gs1 Company Code| |Serial Shipping Container Code| |Global Trade Item Number| |Receipt Num| |Shipment| |Shipment Pkg| |Carrier Name| |Carrier Pkg| |Ship Via Description| |Weight|1.00000000|Production Line| |Cross dock Location| |Cross dock Order| |Ref Order Type|O|Ref Order Num|CHIDF00024|Ref Order Line|0|Ref Order Release|2|Mfg Date| |Expiry Date| |Container Num| |Number of Boxes|1.00000000|Alternate Item| |Item Type| |Description B| |Description C| |Description D| |Location From| |Operation| |Qty Advised| |Run Number| |Search Key| |Sequence| |Advice| |Date| |HU Level| |Multi-Item HU| |Parent HU| |Qty Storage U/M| |Receipt Line| |Serial Present| |Shipment Line| |Status| |Fixed Location| |Height| |Inv Date| |Inspection Flag| |Length U/M| |Lot Certification| |Recommended Loc| |Supplier Lot| |Width| |Depth| |Weight U/M| |Work Center| |Activity Description| |Cost Component Description| |Project Description| |Element Description| |Extension Description| |From Activity| |Cost Component| |Element| |Extension| |Receipt Date|20240423 00:00:00.000|Kanban ID| |Kanban Location| |Replenish Warehouse| |Qty Open| |Day| |Month| |Year| |Address (1)| |Address (2)| |Customer/Vendor Name|BSI LLC|User Name|username@user.com|item.btw|1|LABEL-ZT411-001| |257|1|PoReceipt.dd|0|Task Type| |Task Code| |Task Description| |Employee Number| |First Name| |Last Name| | | |Reason Code| |Reason Code Description| |QCS Receiver Num| |Country of Origin| |Country of Origin Name| |NoOfLabelsPerUnit|1|LabelSequence|0101|CustomerGroupCode|TAM|

  • Perfect. Now I have a good idea of how to achieve it. Thanks a lot.