Мы используем NiceLabel Automation Builder - Easy
У нас есть триггер, который открывает этикетку, устанавливает принтер (через переменную), печатает этикетку и затем выполняет скрипт vbscript, как показано ниже.
Основной проблемой является использование переменной метки [POC.ID]
, когда мы пытаемся присвоить ее adpar1Value
, мы получаем следующую ошибку.
Приложение использует значение неправильного типа для текущей операции
в строке кода ниже.
set par1 =adoCmd.CreateParameter (adPar1Name, adPar1Type, adPar1Direction,4,adpar1Value)
Однако, если мы жестко закодируем значение для adpar1Value, например. adpar1Value = “48”
и выполните скрипт, он работает как задумано.
Может кто-нибудь подсказать ошибку в строке кода?
Может кто-нибудь предложить перехват ошибок в процессе NiceLabel Automation Builder?
Мы не уверены, сохранит ли [POC.ID]
свое значение в VBScript после печати этикетки.
'Function to query database and return xml string
Dim Part ' as StockCode Filter
Dim adoCmd ' As ADODB.Command
Dim adoConn ' As ADODB.adoConnection
Dim outStrm ' As ADODB.Stream
Dim txtResults ' String for results
Dim ConString ' String for adoConnection
Dim sQuery ' Query String
Dim fso ' File System Object
Dim ts ' Text Stream
Dim dbName ' The DNS name or IP address of your DB Server
Dim Catalog ' The specific database to adoConnect to
Dim TableName ' The table we will retrieve data from
Dim UID ' The User Name to login to your database (Not used)
Dim PWD ' The Password to login to your database (Not used)
'Connect to the database
'*******************************************************
Catalog = "DataWarehouse_XXXX"
'Set our server name
dbName = "OUR-SERVER"
ConString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;" _
& "Initial Catalog=" & Catalog & ";Data Source=" & dbName & ";"
'msgbox (sadoConn)
Set adoConn = CreateObject("ADODB.Connection")
adoConn.ConnectionString = ConString
' adoConn.CursorLocation = 3
adoConn.Open
'Execute a stored procedure
'********************************************
'Create SQL Command Object
Set adoCmd = CreateObject("ADODB.Command" )
adoCmd.commandtype = 4 'To run store procedure
adoCmd.commandtext = "CHC_Labels.usp_UpdatePrinterStatus" 'stored procedure name
'Create Parameter object
dim par1, adpar1Value
Const adPar1Name="@ID"
Const adPar1Type=200 'For string see microsoft docs DataTypeEnum
Const adPar1Direction = 1 'For input see microsoft for ParameterDirectionEnum
'Const adPar1Size = 200 ' specifies the maximum length for the parameter value in characters or bytes.
adpar1Value = [POC.ID]
' Format Set parameter = command.CreateParameter (Name, Type, Direction, Size, Value)
set par1 =adoCmd.CreateParameter (adPar1Name,adPar1Type, adPar1Direction,4,adpar1Value)
'Add the parameter to the Command object
adoCmd.Parameters.Append par1
adoCmd.ActiveConnection = adoConn
adoCmd.Execute
'Cleanup Database objects
'*******************************************************
adoConn.Close
set adoConn = Nothing
set adoCmd = Nothing
set outStrm = Nothing