Barcode reader.
- Import
isc.barcode
- Run:
/// Utility methods
Class isc.barcode.Utils
{
/// Main class to import
Parameter CLASS = "isc.barcode";
/// Gateway name to create/use
Parameter GATEWAY = "Java";
/// Get JGW object
ClassMethod connect(gatewayName As %String = {..#GATEWAY}, path As %String = "barcode-1.0-SNAPSHOT-jar-with-dependencies.jar", Output sc As %Status) As %Net.Remote.Gateway
{
set gateway = ""
set sc = ##class(%Net.Remote.Service).OpenGateway(gatewayName, .gatewayConfig)
quit:$$$ISERR(sc) gateway
set sc = ##class(%Net.Remote.Service).ConnectGateway(gatewayConfig, .gateway, path, $$$YES)
quit gateway
}
/// Get barcode
/// Write $System.Status.GetErrorText(##class(isc.barcode.Utils).getBarCode())
ClassMethod getBarCode(file As %String, debug As %Boolean = {$$$YES}) As %Status
{
#dim gateway as %Net.Remote.Gateway
#dim exception as %Exception.AbstractException
set sc = $$$OK
try {
set gateway = ..connect()
set start = $zh
set reader = ##class(isc.barcode).%New(gateway)
set end1 = $zh
set barcodes = reader.readBarCode(file)
set end2 = $zh
if debug {
write !,"Init: ",end1-start
write !,"Reader: ",end2-end1, !
zw barcodes
//break
}
set sc = gateway.%Disconnect()
} catch ex {
break:debug
set sc = $$$ADDSC(ex.AsStatus(), $g(%objlasterror))
}
quit sc
}
}