Хороший Триггеры Автоматизации Этикетки и VBScript - PullRequest
0 голосов
/ 09 мая 2019

Мы используем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...