Comandos POSXML

Comandos disponíveis na linguagem POSXML

Confira abaixo os comandos existentes até o momento na linguagem POSXML, que está em constante evolução, e por este motivo novos comandos podem ser adicionados.

Caso você execute algum aplicativo contendo um comando não suportado pela versão do Framework WALK instalada no terminal POS, ocorrerá o erro “WALK: Byte Mode Error…”, informando que aquele Byte Code daquele comando ainda não existe nesta versão.

Lista de comandos disponíveis na versão 6.5.6.0 do WALK Compiler


ajustadatahoraVoltar ao topo

Permite atualizar o relógio interno do terminal. É necessário informar o ano, mês, dia, hora, minuto e segundo, no formato ‘yyyyMMddhhmmss’.

Parâmetros

  1. datahora: Data/hora no formato yyyyMMddhhmmss (string).

Exemplo

<ajustadatahora datahora="20121221235959" />

baixaarquivoVoltar ao topo

Baixa um arquivo do WALK Server para o terminal, em um protocolo de comunicação próprio semelhante ao FTP.

O terminal busca o arquivo no diretório de downloads do WALK Server.

Parâmetros

  1. nomearquivo: Nome do arquivo que será gravado na memória do terminal (string).
  2. caminhoremoto: Nome do arquivo na pasta de downloads do WALK Server. Deve iniciar com ‘\’ (string).
  3. excluiaposdownload: Deve excluir o arquivo (WALK Server) após o download? 0 – Não ou 1 – Sim (inteiro).
  4. variavelretorno: Resultado da operação, que pode ser (inteiro):
 2: Arquivo tem o mesmo CRC do arquivo do servidor(WALK Server 3)
 1: Arquivo baixado com sucesso
 0: Erro no encode do arquivo para base 64
-1: Arquivo não encontrado no servidor ou não foi possível encoda-lo
-2: Erro na conexão no envio do buffer
-3: Erro no recebimento do buffer de conteúdo do arquivo no servidor
-4: Erro no pacote recebido do servidor
-5: Erro na conexão com o servidor
-6: Erro na transferência do header ou do footer
-7: Erro no envio da confirmação de download completo
-8 Serial number não autorizado(WALK Server 3)

Exemplo

<variavelint value="0" variable="iRet" />
<baixaarquivo nomearquivo="file.dat" caminhoremoto="\file.dat" excluiaposdownload="0" variavelretorno="$(iRet)" />

breakVoltar ao topo

O comando break possibilita a saída imediata do loop while.

Exemplo

<variavelint valor="0" variavel="i" />
<while variavel="$(i)" operador="menor" valor="10">
  <display linha="0" coluna="0" mensagem=" Loop ..." />
  <variavelintoperador operador="++" variavelorigem="$(i) />
  <break /> <!-- sai do loop -->
</while>

chamafuncaoVoltar ao topo

O comando chamafuncao é um termo de desvio responsável por fazer uma chamada e executar uma função contendo um bloco de comandos.

Parâmetros

  1. nome: Função a ser executada (função).

Exemplo

<chamafuncao nome="Imprime_cupom" />

closeserialportVoltar ao topo

Fecha a porta serial, previamente aberta com a instrução openserialport.

Parâmetros

  1. variavelhandle: Variável retornada em openserialport. Deve ser diferente e maior que zero (inteiro).

Exemplo

<variavelint valor="0" variavel="iRet" />
<openserialport porta="COM1" velocidade="115200" configuracao="A8N1" variavelretorno="$(iRet)" />
<closeserialport variavelhandle="$(iRet)" />

conectarVoltar ao topo

O comando conectar prepara o dispositivo de conexão, seja um modem analógico ou não, e envia todas as informações coletadas (nas variáveis) pelo operador ao sistema atendedor, que irá receber as informações coletadas.

Exemplo

<conectar />

conversaointeiroVoltar ao topo

Permite converter um número inteiro em um número binário, octal ou hexadecimal.

Parâmetros

  1. numero: Número que será convertido (inteiro).
  2. base: 2: binário, 8: octal ou 16: hexadecimal (inteiro).
  3. tamanhoretorno: Tamanho do resultado. Se o número convertido for menor, então vai ser completado com zeros a esquerda (inteiro).
  4. variavelretorno: Variável onde será armazenado o número convertido (string).

Exemplo

<variavelint valor="12" variavel="iNum"/>
<variavelint valor="2" variavel="iBase"/>
<variavelint valor="10" variavel="iTamanho"/>
<variavelstr valor="" variavel="sRet"/>
<conversaointeiro numero="$(iNum)" base="$(iBase)" tamanhoretorno="$(iTamanho)" variavelretorno="$(sRet)"/>
<display coluna="0" linha="0" mensagem="$(sRet)"/>
<esperatecla/>

convert.tointVoltar ao topo

O comando convert.toint permite converter uma string contendo um número binário, decimal ou hexadecimal em um número inteiro.

Parâmetros

  1. base: Base do número que será convertido, que pode ser 2, 10 ou 16 (string).
  2. numero: Número que será convertido (string).
  3. variavelretorno: Variável onde será armazenado o número convertido (inteiro).

Exemplo

<convert.toint base="16" numero="FF" variavelretorno="$(num)" />

crypto.encryptdecryptVoltar ao topo

Este comando criptografa ou descriptografa uma mensagem utilizando os algoritmos DES, 3DES, NEWDES ou 3DESTripleLength.

Tipo de Algoritmo Quantidade de Bytes Quantidade de Caracters
DES 8 16 (em hexadecimal)
NEWDES 15 30 (em hexadecimal)
3DES 16 32 (em hexadecimal)
3DESTripleLength 24 48 (em hexadecimal)

Parâmetros

  1. cryptotype: Tipo de algoritmo: DES, NEWDES, 3DES ou 3DESTripleLength (string).
  2. key: Representação hexadecimal da chave criptográfica, baseado na tabela acima (string).
  3. message: Representação hexadecimal de 8 bytes da mensagem que será criptografada ou descriptografada. Caso a mensagem seja maior do que 8 bytes, será necessário dividi-la em blocos de 8 bytes (string).
  4. type: Ação que será executada: 0 – Criptografia ou 1 – Descriptografia (inteiro).
  5. variavelretorno: Representação hexadecimal do resultado da operação (string).

Exemplo

<crypto.encryptdecrypt cryptotype="3DES" key="30313233" message="$(str_msg)" type="0" variablereturn="$(str_msg_cript)" />

crypto.lrcVoltar ao topo

Gera um byte de LRC com base na string informada em buffer.

Parâmetros

  1. buffer: Buffer no formato hexadecimal que será gerado o byte de LRC (string).
  2. size: Tamanho do buffer (inteiro).
  3. variavelretorno: Byte LRC no formato hexadecimal (string).

Exemplo

<crypto.lrc buffer="4B91443C5F1234" size="7" variavelretorno="$(sHexLrc)" />

crypto.xorVoltar ao topo

Realiza uma operação binaria XOR entre os bytes de buffer1 e buffer2, o tamanho de ambos deve ser igual (preencha com zeros caso o tamanho for diferente).

Parâmetros

  1. buffer1: Buffer que sera realizado o XOR no formato hexadecimal (string).
  2. buffer1: Buffer que sera realizado o XOR no formato hexadecimal (string).
  3. size: Tamanho do buffer (inteiro).
  4. variavelretorno: Buffer com o resultado do XOR no formato hexadecimal (string).

Exemplo

<crypto.xor buffer1="$(hexStartVector)" buffer2="$(sPacket8Bytes)" size="8" variavelretorno="$(hexPacket8BytesXOR)" />

desligamodemVoltar ao topo

O comando desligamodem cancela as operações do dispositivo de conexão, finalizando a conexão aberta com o host (atendedor) e desliga o modem.

Exemplo

<desligamodem />

diferencadatahoraVoltar ao topo

Permite calcular a diferença entre duas datas especificadas em datahora1 e datahora2. Basta criar uma variável do tipo inteiro, que receberá o resultado da diferença das duas datas na forma de segundos, para ser exibida. Se a diferença entre as duas datas ultrapassar uma hora, a função indicará erro de datetime.

Parâmetros

  1. datahora1: Data final (maior) no formato yyyyMMddhhmmss (string).
  2. datahora2: Data inicial (menor) no formato yyyyMMddhhmmss (string).
  3. variavelretorno: Diferença em segundos entre as duas datas (inteiro).

Exemplo

<variavelint valor="0" variavel="var"/> <variavelstr valor="" variavel="var2"/>
<diferencadatahora datahora1="20070510155135" datahora2="20070510155030" variavelretorno="$(var)"/>
<inttostring variavelint="$(var)" variavelstr="$(var2)"/>
<display coluna="0" linha="0" mensagem="$(var2)"/>

digitadecimalVoltar ao topo

O comando digitadecimal aguarda o operador do terminal digitar um valor com ponto (.) através do teclado do terminal utilizando a tecla * para inserir o ponto. Exibe uma mensagem em linha e coluna especificadas. O valor digitado é armazenado em uma variável string de memória do terminal POS, incluindo o ponto.

Parâmetros

  1. variavel: Variável onde será armazenado o valor digitado (string).
  2. linha: Linha de exibição da mensagem (inteiro).
  3. coluna: Coluna de exibição da mensagem (inteiro).
  4. mensagem: Mensagem que será exibida no display do terminal (string).

Exemplo

<variavelstr valor="1.00" variavel="valor" />
<digitadecimal variavel="$(valor)" linha="1" coluna="1" mensagem="Kilogramas:" />

digitaformatoVoltar ao topo

O comando digitaformato exibe uma mensagem no visor do terminal na linha e coluna especificadas e aguarda o operador do terminal digitar uma informação que tenha formato específico da máscara de entrada.

A informação digitada no teclado do terminal é então armazenada em uma variável.

Parâmetros

  1. linha: Linha de exibição da mensagem (inteiro).
  2. coluna: Coluna de exibição da mensagem (inteiro).
  3. mensagem: Mensagem que será exibida no display do terminal (string).
  4. variavel: Variável onde será armazenado o valor digitado (string).
  5. Máscara: Formato da entrada de dados, onde 9 é numérico, * é senha e A é alfanumérico. Os demais caracters serão inseridos automaticamente (string).

Exemplo

<digitaformato linha="1" coluna="1" mensagem="Data da compra:" variavel="$(Data)" formato="99/99/9999" />

digitainteiroVoltar ao topo

O comando digitainteiro permite a digitação de dados numéricos através do teclado do terminal POS. Uma mensagem é exibida no visor do terminal na linha e coluna especificadas, e este fica aguardando a digitação da informação solicitada.

Pode se configurar os intervalos mínimo e máximo do valor numérico digitado, que por sua vez é armazenado em uma variável.

Parâmetros

  1. linha: Linha de exibição da mensagem (inteiro).
  2. coluna: Coluna de exibição da mensagem (inteiro).
  3. mensagem: Mensagem que será exibida no display do terminal (string).
  4. variavel: Variável onde será armazenado o valor digitado (inteiro).
  5. minimo: Número mínimo a ser digitado (inteiro).
  6. maximo: Número máximo a ser digitado (inteiro).

Exemplo

<digitainteiro linha="1" coluna="1" mensagem="Digite CEP:" variavel="$(CEP)" minimo="0" maximo="999999" />

digitaopcaoVoltar ao topo

Semelhante ao comando digitainteiro, com a diferença que ao digitarmos o número máximo especificado, a instrução pula automaticamente para a próxima, como se tivéssemos pressionado as teclas ENTER ou OK.

Parâmetros

  1. linha: Linha de exibição da mensagem (inteiro).
  2. coluna: Coluna de exibição da mensagem (inteiro).
  3. mensagem: Mensagem que será exibida no display do terminal (string).
  4. variavel: Variável onde será armazenado o valor digitado (inteiro).
  5. minimo: Número mínimo a ser digitado (inteiro).
  6. maximo: Número máximo a ser digitado (inteiro).

Exemplo

<digitaopcao linha="0" coluna="0" mensagem="Digite a opcao:" variavel="$(Var)" minimo="0" maximo="9" />

digitavalorVoltar ao topo

O comando digitavalor exibe uma mensagem no visor do terminal na linha e coluna especificadas e aguarda o operador do terminal digitar um valor monetário através do teclado do terminal. A informação digitada no teclado do terminal é então armazenada em uma variável.

Note que este comando possui uma máscara de pontos e vírgulas dinâmica, ou seja, os pontos e virgulas são exibidos no display conforme o operador vai digitando o valor, porém o valor armazenado na variável é do tipo inteiro e não contem pontos nem vírgulas.

O valor armazenado na variável segue a especificação ISO8583, onde:

  • 1 = 1 centavo
  • 10 = 10 centavos
  • 100 = 1 real
  • 1000 = 10 reais
  • 10000 = 100 reais
  • 100000 = 1000 reais
  • 1000000 = 10000 reais

Parâmetros

  1. linha: Linha de exibição da mensagem (inteiro).
  2. coluna: Coluna de exibição da mensagem (inteiro).
  3. mensagem: Mensagem que será exibida no display do terminal (string).
  4. variavel: Variável onde será armazenado o valor digitado (inteiro).

Exemplo

<digitavalor linha="1" coluna="1" mensagem="Valor da Compra:" variavel="$(valor)" />

displayVoltar ao topo

O comando display é utilizado para exibir no visor (display) do terminal POS uma mensagem específicada na posição linha e coluna.

Parâmetros

  1. linha: Linha de exibição da mensagem (inteiro).
  2. coluna: Coluna de exibição da mensagem (inteiro).
  3. mensagem: Mensagem que será exibida no display do terminal (string).

Exemplo

<display linha="1" coluna="1" mensagem="POSXML" />

editaarquivoVoltar ao topo

Permite escrever um arquivo no formato WALK dbfile (‘chave=valor\nchave=valor\n’).

Parâmetros

  1. nomearquivo: Nome do arquivo a ser editado ou criado (string).
  2. chave: Chave do valor que será editado no arquivo (string).
  3. valor: Valor que será atribuído a chave especificada (string).

Exemplo

<variavelstr valor="config.dat" variavel="filename" />
<variavelstr valor="senhatecnica" variavel="key" />
<variavelstr valor="12345 " variavel="buffer" />
<editaarquivo nomearquivo="$(filename)" chave="$(key)" valor="$(buffer)" />

elseVoltar ao topo

O comando else é utilizado dentro de um if, como uma condição lógica (se não).

Exemplo

<variavelint valor="0" variavel="num"/>
<if operador="igual" variavel="$(num)" valor="1">
  <display coluna="0" linha="0" mensagem="Variavel igual a 1"/>
  <esperatecla/>
<else/>
  <display coluna="0" linha="0" mensagem="Variavel diferente de 1"/>
  <esperatecla/>
</if>

enviaarquivoVoltar ao topo

Envia um arquivo do terminal para o WALK Server, em um protocolo de comunicação próprio semelhante ao FTP. Se no envio não ocorrer nenhum erro o arquivo vai estar disponível no caminho remoto especificado, dentro da pasta de upload do WALK Server.

Parâmetros

  1. nomearquivo: Nome do arquivo que está na memória do terminal que desejamos enviar para o Walk Server (string).
  2. caminhoremoto: Nome do arquivo que será criado na pasta de upload do Walk Server 2. Deve iniciar com ‘\’ (string).
  3. variavelretorno: Resultado da operação, que pode ser (inteiro):
     1: Arquivo enviado com sucesso
     0: Erro no encode do arquivo para base 64
    -1: Arquivo não encontrado
    -2: Erro na conexão no envio do buffer
    -3: Erro no recebimento da confirmação de recebimento do buffer do arquivo pelo servidor
    -4: Erro no pacote enviado para o servidor
    -5: Erro na conexão com o servidor
    -6: Erro na transferência do header ou do footer

Exemplo

<enviaarquivo nomearquivo="file.dat" caminhoremoto="\file.dat" variavelretorno="$(ret)" />

esperaVoltar ao topo

O comando espera aguarda o tempo especificado em mili-segundos até liberar o fluxo de execução do programa. O aplicativo irá aguardar o tempo especificado mesmo que operador pressione qualquer tecla.

Parâmetros

  1. milisegundos: Tempo em mili-segundos que a instrução irá aguardar antes de continuar a execução (inteiro).

Exemplo

<espera milisegundos="1000" />

esperateclaVoltar ao topo

O comando esperatecla aguarda o operador do terminal pressionar qualquer tecla para continuar alguma operação.

Exemplo

<esperatecla />

esperateclatimeoutVoltar ao topo

O comando esperateclatimeout é basicamente igual a instrução esperatecla. Aguarda o operador do terminal pressionar qualquer tecla no terminal para continuar alguma operação, com a diferença que podemos especificar em segundos o tempo que a instrução irá aguardar até que seja pressionado uma tecla para prosseguir a ação.

Parâmetros

  1. segundos: Segundos que a instrução vai aguardar antes de continuar a execução (inteiro).

Exemplo

<esperateclatimeout segundos="10" />

excluiarquivoVoltar ao topo

Permite excluir um arquivo do sistema de arquivo do POS.

Parâmetros

  1. nomearquivo: Nome do arquivo a ser excluído (string).

Exemplo

<variavelstr valor="config.dat" variavel="filename" />
<excluiarquivo nomearquivo="$(filename)" />

executeVoltar ao topo

O comando execute permite executar um aplicativo PosXML compilado armazenado no disco. Basta passarmos o nome do arquivo no parametro nomedoarquivo para que se inicie a execução do mesmo.

Parâmetros

  1. nomedoarquivo: Nome do arquivo POSXML compilado que será executado (string).

Exemplo

<execute nomedoarquivo="inicio.posxml" />

exitVoltar ao topo

Encerra imediatamente a execução do aplicativo POSXML.

Exemplo

<variavelint valor="0" variavel="i" />
<while variavel="$(i)" operador="menor" valor="10">
  <display linha="0" coluna="0" mensagem=" Loop ..." />
  <variavelintoperador operador="++" variavelorigem="$(i) />
  <exit /> <!-- sai da aplicaticacao -->
</while>

file.closeVoltar ao topo

Fecha o arquivo que foi previamente aberto com file.open

Parâmetros

  1. handle: Handle do arquivo que será fechado(inteiro).

Exemplo

<file.close handle="$(iRet)"/>

file.openVoltar ao topo

Abre um arquivo para leitura ou escrita

Parâmetros

  1. filename: Nome do arquivo(string).
  2. mode: Modo de abertura “w” para write ou “r” read mode(string).
  3. variablehandle: Resultado da operação, -1: não foi possível abir o arquivo, >-1: handle para arquivo aberto(inteiro).

Exemplo

<file.open filename="teste.dat" mode="w" variablehandle="$(iRet)"/>

file.readVoltar ao topo

Lê um arquivo que foi previamente aberto com file.open.

Parâmetros

  1. handle: Handle do arquivo que será lido(inteiro).
  2. size: Numero de bytes que queremos ler do arquivo(inteito).
  3. variablebuffer: Variavel na onde será armazenado os bytes lidos no formato hex ascii(string).
  4. variablereturn: Variavel na onde será armazenado a quantidade de bytes lidos(inteiro).

Exemplo

<file.read handle="$(iRet)" size="8" variablebuffer="$(sBuffer)" variablereturn="$(iBufReturn)"/>

file.writeVoltar ao topo

Grava um arquivo que foi previamente aberto com file.open.

Parâmetros

  1. buffer: Buffer no formato hex ascii que será gravado no arquivo(string).
  2. handle: Handle do arquivo que será gravado(inteito).
  3. size: Número de bytes que queremos gravar no arquivo(inteiro).

Exemplo

<file.write buffer="$(sBuffer)" handle="$(iRet)" size="8"/>

filesystem.filesizeVoltar ao topo

Retorna o tamanho do arquivo especificado.

Parâmetros

  1. nomearquivo: Nome do arquivo (string).
  2. variavelretorno: Tamanho do arquivo em bytes (inteiro).

Exemplo

<filesystem.filesize nomearquivo="$(nome)" variavelretorno="$(ret)"/>

filesystem.spaceVoltar ao topo

Permite verificar o tamanho total da memória, o espaço utilizado, o espaço livre e o número de arquivos na memória.

Parâmetros

  1. dir: Diretório que será analisado, podendo ser I: ou F: (string).
  2. tipo: Tipo da informação, que pode ser free, used, total ou countfiles (string).
  3. variavelretorno: Espaço em bytes ou número de arquivos (inteiro).

Exemplo

<filesystem.space dir="$(dir)" tipo="$(tipo)" variavelretorno="$(ret)"/>

funcaoVoltar ao topo

O comando funcao é responsável por nomear uma função ou bloco de código contendo outros comandos e regras lógicas.

A execução da função sé se dará após a execução do comando chamafuncao.

Não é possível declarar blocos de funções dentro de funções

Parâmetros

  1. nome: Função a ser chamada (string).

Exemplo

<funcao nome="Imprime_cupom">
  <imprimagrande mensagem="Plano Be" />
  <imprimagrande mensagem="Tecnologia" />
  <paperfeed />
</funcao>

guardavariavelVoltar ao topo

O comando guardavariavel é um termo de atribuição, responsável pelo armazenamento e enfileiramento do conteúdo de uma variável para ser enviado ao host (atendedor).

O conteúdo é armazenado em um buffer na memória do Terminal POS, onde cada execução do comando guardavariavel faz com que o conteúdo da variável seja armazenado no buffer, separado por virgula.

Ao executar o comando conectar, o terminal envia o buffer completo para o host.

Parâmetros

  1. variavel: Variável que será armazenada no buffer que será enviado ao host (string ou inteiro).

Exemplo

<guardavariavel variavel="$(numeroCartao)" />

ifVoltar ao topo

O comando if é utilizado para especificar uma tomada de decisão ou comparação lógica, onde outros comandos e instruções podem ser declarados dentro de um block if, e estes são executados caso a expressão seja verdadeira.

A instrução processa a operação entre a variável e o valor especificado, e entra na execução da próxima instrução dentro de if, caso seja verdadeiro o resultado.

Todos os operadores (igual, diferente, maior, menor, maiorigual e menorigual) no caso de uma variável inteiro realizam as operações padrões de comparação de qualquer linguagem de programação.

Já os operadores (maior, menor, maiorigual e menorigual) no caso de uma variável string, o valor da variável será convertido para ponto flutuante e a comparação será realizada.

Os operadores igual e diferente seguem a mesma lógica de comparação de qualquer linguagem de programação.

Parâmetros

  1. variavel: Variável para comparação (string ou inteiro).
  2. operador: Operador de comparação: menor, maior, igual, diferente, maiorigual, menorigual (string).
  3. valor: Valor para comparação (string ou inteiro).

Exemplo

<if variavel="$(TipoServico)" operador="igual" valor="1">
  <guardavariavel variavel="$(TipoServico)" />
  <pegacartao primeiramensagem="1. Cartao ou (OK)" segundamensagem="Digite Cartao:" minimo="15" maximo="16" />
  <conectar />
</if>

imprima e imprimagrandeVoltar ao topo

Os comandos imprima e imprimagrande enviam para a impressora do terminal uma mensagem especificada, que por sua vez é impressa em papel, independente do tipo de impressora (térmica, matricial de impacto, etc).

O comando imprima imprime a mensagem com o tamanho de fonte normal, enquanto o comando imprimegrande realiza uma impressão com tamanho de fonte dupla, ou seja, duas vezes maior que o tamanho normal.

Parâmetros

  1. mensagem: Mensagem a ser impressa pela impressora do terminal (string).

Exemplo

<imprimagrande mensagem="Plano Be" />
<imprima mensagem="Tecnologia" />

imprimabitmapVoltar ao topo

Permite imprimir um bitmap monocromático, após o mesmo ter sido baixado da pasta download.

Parâmetros

  1. nomearquivo: Nome do arquivo bitmap que será impresso (string).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Bitmap não encontrado
     1: Impressão realizada com sucesso
    -1: Bitmap com tamanho inválido
    -2: Bitmap não monocromático

Exemplo

<variavelint valor="1" variavel="ret"/>
<variavelstr valor="teste.bmp" variavel="arquivobmp"/>
<baixaarquivo caminhoremoto="\teste.bmp" excluiaposdownload="0" nomearquivo="$(arquivobmp)" variavelretorno="$(ret)"/>
<imprimabitmap nomearquivo="$(arquivobmp)" variavelretorno="$(ret)"/>
<esperatecla/>

imprimacodigodebarrasVoltar ao topo

Imprime o código de barras no formato I25, especificado na variável string numero. O formato I25 é o padrão adotado pela FEBRABAN ficando possível imprimir boletos de cobrança e qualquer outro titulo.

O parâmetro numero deve ter o numero de caracters par, pois é exigido pelo formato I25, por exemplo: “1234” funcionaria e imprimiria o código de barras normalmente. “123” não funcionaria, pois não conseguiríamos codificar no formato exigido pelo padrão I25.

Parâmetros

  1. numero: Número do código de barras a ser impresso (string).
  2. horizontal: Informe 1 caso queira imprimir na horizontal (inteiro).

Exemplo

<imprimacodigodebarras horizontal="0" numero="123456" />

incrementadatahoraVoltar ao topo

Permite incrementar (somar) dias a uma data pré-estabelecida. Basta criar uma variável do tipo string que receberá o valor de retorno dos dias incrementados. Em datahora será informada a data base, com a qual você deseja efetuar o cálculo; em dias, o número de dias que serão acrescidos na data base; o formatoretorno recebe o formato como a nova data calculada será exibida; e por último, a variavelretorno, criada anteriormente, que receberá a data calculada.

Opções de formato de retorno:

 y - Ano com 2 dígitos
yy - Ano com 4 dígitos
 M - Mês com 2 dígitos
 d - Dia com 2 dígitos
 h - Hora com 2 dígitos
 m - Minuto com 2 dígitos
 s - Segundo com 2 dígitos

Parâmetros

  1. datahora: Data e hora no formato yyyyMMddhhmmss (string).
  2. dias: Quantidade de dias que será incrementado (inteiro).
  3. formatoretorno: Formato da data que será retornada (string).
  4. variavelretorno: Variável que irá armazenar a data com os dias acrescentados no formato especificado (string).

Exemplo

<variavelstr valor="0" variavel="var"/>
<incrementadatahora datahora="20070501165807" dias="5" formatoretorno="d/M/y h:m:s" variavelretorno="$(var)"/>
<display coluna="0" linha="0" mensagem="$(var)"/>

inttostringVoltar ao topo

O comando inttostring converte o conteúdo de variáveis do tipo inteiro para o tipo string. O conteúdo convertido é armazenado em uma variável do tipo string.

Parâmetros

  1. variavelint: Variável que será convertida (inteiro).
  2. variavelstr: Variável que irá armazenar o valor convertido para string (string).

Exemplo

<inttostring variavelint="$(ValorInteiro)" variavelstr="$(ValorStr)" />

iso8583.analisamensagemVoltar ao topo

Inicia o processo de análise e decomposição dos campos da mensagem especificada.

Parâmetros

  1. formato: Formato da mensagem que desejamos analisar, podendo ser : “ASCII” ou “BCD” (string).
  2. tamanho: Tamanho da mensagem que vamos analisar (inteiro).
  3. variavelmensagem: Variável onde está localizada a mensagem que será analisada (string).
  4. variavelidentificador:Variável onde será armazenado o identificador da mensagem, se a análise foi realizada com sucesso (string).
  5. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: mensagem analisada com sucesso
    -806: erro na mensagem que foi analisada

Exemplo

<iso8583.analisamensagem formato="$(formato)" tamanho="$(tam)" variavelmensagem="$(var_msg)" variavelidentificador="$(var_id)" variavelretorno="$(ret)"/>

iso8583.finalizamensagemVoltar ao topo

Finaliza a montagem de uma mensagem a ser enviada ao host autorizador, iniciada por iso8583.iniciamensagem.

Parâmetros

  1. variaveltamanho: Variável onde será armazenado o tamanho da mensagem finalizada (inteiro).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: mensagem finalizada com sucesso
    -803: buffer overrun
    -802: function error

Exemplo

<iso8583.finalizamensagem variaveltamanho="$(tam)" variavelretorno="$(ret)"/>

iso8583.iniciamensagemVoltar ao topo

Inicia a montagem de uma mensagem que será enviada ao host autorizador.

Parâmetros

  1. formato: Formato da mensagem que desejamos montar, podendo ser : “ASCII” ou “BCD” (string).
  2. identificador: Identificador da mensagem com 4 digitos, por exemplo: “0200” ou “0400” (string).
  3. variavelmensagem: Variável onde será armazenada a mensagem que está sendo montada (string).
  4. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: mensagem iniciada com sucesso
    -803: buffer overrun
    -801: invalid parameter

Exemplo

<iso8583.iniciamensagem formato="$(formato)" identificador="$(id)" variavelmensagem="$(var_msg)" variavelretorno="$(ret)"/>

iso8583.iniciatabelacamposVoltar ao topo

Inicia a tabela de campos ISO8583 de acordo com os campos especificados no arquivo definido no parâmetro nomearquivo. Esta função deve ser chamada antes de iniciarmos o trabalho com as mensagens ISO8583.

Parâmetros

  1. nomearquivo: Nome do arquivo contendo o formato e o tamanho de todos os 128 campos da norma ISO8583 (string).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: tabela de campos iniciada corretamente
    -802: não foi possível iniciar a tabela de campos

Exemplo

<iso8583.iniciatabelacampos nomearquivo="$(arquivo)" variavelretorno="$(ret)"/>

iso8583.inserecampoVoltar ao topo

Insere um campo na mensagem a ser enviada, iniciada por iso8583.iniciamensagem. Os campos devem ser inseridos sempre em ordem crescente.

Parâmetros

  1. numerocampo: Número do campo que vamos inserir da mensagem. Podemos especificar de 2 a 128 (inteiro).
  2. tipo: Tipo do campo que vamos inserir da mensagem, podendo ser: “string” ou “integer” (string).
  3. valor: Valor do campo (string ou inteiro).
  4. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: campo inserido com sucesso
    -801: invalid parameter
    -802: function error
    -803: buffer overrun
    -804: field error

Exemplo

<iso8583.inserecampo numerocampo="$(n_campo)" tipo="$(tipo)" valor="$(val)" variavelretorno="$(ret)"/>

iso8583.pegacampoVoltar ao topo

Extrai um campo de uma mensagem previamente analisada através do comando iso8583.analizamensagem. Os campos devem ser extraídos sempre em ordem crescente.

Parâmetros

  1. numerocampo: Número do campo que vamos pegar da mensagem. Podemos especificar de 2 a 128 (inteiro).
  2. tipo: Tipo do campo que vamos pegar da mensagem, podendo ser: “string” ou “integer” (string).
  3. variavelvalor: Variável onde será armazenado o valor do campo (string ou inteiro).
  4. variavelretorno: Resultado da operação, que pode ser (inteiro):
       0: campo inserido com sucesso
    -801: invalid parameter
    -802: function error
     803: buffer overrun
    -805: no field
    -806: msg error

Exemplo

<iso8583.pegacampo numerocampo="$(n_campo)" tipo="$(tipo)" variavelvalor="$(val)" variavelretorno="$(ret)"/>

iso8583.transactmessageVoltar ao topo

Efetua a discagem, conecta ao host, acrescenta o size da mensagem, acrescenta o header e o trailler da mensagem ISO 8583 de acordo com os parâmetros previamente configurados, envia a mensagem ao host e faz 10 tentativas de recebimento da mensagem de resposta.

Canais disponíveis:

"NONE" : Nenhum size acrescentado
"NAC"  : Size de 2 bytes binários (x01 x00 ou 0000-0001 0000-0000)
"NCC"  : Size de 2 bytes no formato BCD (x02 x56)
"RAW"  : Size de 4 bytes no formato binário (x00 x00 x01 x00 ou
         0000-0000 0000-0000 0000-0001 0000-0000)
"ASCII": Size de 4 bytes no formato ASCII (x30 x32 x35 x36 ou 0256)

Parâmetros

  1. channel: Size que será incrementado (string).
  2. header: Header que será acrescentado ao inicio da mensagem ISO 8583 antes do envio (string).
  3. trailler: Trailler que será acrescentado ao final da mensagem ISO 8583 antes do envio (string).
  4. isomsg: Mensagem ISO 8583 (string).
  5. variavelresposta: Mensagem ISO 8583 de resposta do autorizador (string).
  6. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0 Tamanho da mensagem de resposta
    -1: Channel desconhecido ou não implementado
    -2: Não foi possível conectar ao host ou fazer a discagem
    -3: Falha no envio da mensagem
    -4: Falha ao receber o tamanho da mensagem de resposta
    -5: Falha ao receber a mensagem de resposta

Exemplo

<iso8583.transactmessage channel="NONE" header="$(header)" trailler="$(trailler)" isomsg="$(isomsg)" variavelresposta="$(resposta)" variavelretorno="$(retorno)" />

learquivoVoltar ao topo

Permite ler um arquivo no formato WALK dbfile (‘chave=valor\nchave=valor\n’). Se por algum motivo o arquivo não existir, o nome da chave não existir no arquivo, ou qualquer outro erro no sistema de arquivos, vardestino será completado com um espaço em branco (‘ ’).

Pode-se ler arquivos criados por instruções POSXML ou mesmo arquivos criados em outros programas e carregados no terminal de alguma maneira, desde que sigam o formato citado.

Parâmetros

  1. nomearquivo: Nome do arquivo em disco a ser aberto (string).
  2. chave: Chave do valor, que será lido no arquivo (string).
  3. variaveldestino: Variável onde será armazenado o valor lido (string).

Exemplo

<variavelstr valor="config.dat" variavel="filename" />
<variavelstr valor="senhatecnica" variavel="key" />
<variavelstr valor=" " variavel="buffer" />
<learquivo nomearquivo="$(filename)" chave=$(key)" variaveldestino="$(buffer)" />

Opções de filtro

É possível utilizar o comando learquivo passando como parâmetro uma chave que será utilizada como filtro. Para isso, ao informar a chave, utilizar duas barras, da seguinte forma:

Parâmetro Conteúdo do arquivo Resultado da operação
/400/
4004  = "N"
4005  = "Y"
40001 = "N"
4004
/4000/
4004  = "N"
4005  = "Y"
40001 = "N"
40001
/40049876543/
4004  = "N"
4005  = "Y"
40001 = "N"
4004
/4/
4004  = "N"
4005  = "Y"
40001 = "N"
4004
/abcde/
4004  = "N"
4005  = "Y"
40001 = "N"
sem registro

Exemplo

<variavelstr valor="bins.dat" variavel="filename" />
<variavelstr valor="/400/" variavel="key" />
<variavelstr valor=" " variavel="buffer" />
<learquivo nomearquivo="$(filename)" chave="$(key)" variaveldestino="$(buffer)" />

learquivobyindexVoltar ao topo

Permite ler um arquivo no formato WALK dbfile , ex: ‘chave=“valor”\nchave=“valor”\n’. Especificamos o index da chave que queremos pesquisas, e se a mesma existir no arquivo, variavelchave, e variavelvalor serão preenchidos com seus respectivos valores. Se por algum motivo o arquivo não existir, o nome da chave não existir no arquivo, ou qualquer outro erro no sistema de arquivos, variavelretorno será igual a 0. Do contrário será igual a 1.

Pode-se ler arquivos criados por instruções PosXML ou mesmo arquivos criados em outros programas e carregados no terminal de alguma maneira, desde que sigam o formato citado.

Parâmetros

  1. nomearquivo: Nome do arquivo formato WALK dbfile
  2. index: Index da chave que queremos analisar. Começa em 0, e vai aumentando de acordo com a quantidade de items no arquivo (inteiro).
  3. variavelchave: Variável que irá armazenar o valor da chave do item no index especificado (string).
  4. variavelvalor: Variável que vai armazenar o valor do item no index especificado (string).
  5. variavelretorno: Resultado da operação, que pode ser (inteiro):
    0: Item não encontrado
    1: Item encontrado

Exemplo

<variavelstr valor="" variavel="key" />
<variavelstr valor="" variavel="value" />
<variavelint valor="0" variavel="ret" />
<learquivobyindex nomearquivo="teste.db" index="0" variavelchave="$(key)" variavelvalor="$(value)" variavelretorno="$(ret)" />

leteclaVoltar ao topo

O comando letecla é semelhante ao comando esperateclatimeout. Ele aguarda o operador do terminal pressionar qualquer tecla no terminal para continuar alguma operação, com a diferença que em variavelretorno, estará disponível a tecla pressionada pelo operador.

Parâmetros

  1. milisegundos: Milisegundos que a instrução vai aguardar antes de continuar a execução (inteiro).
  2. variavelretorno: Tecla pressionada pelo usuário. As teclas padrões que todos terminais possuem são: KEY_0 , KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_POUND, KEY_STAR, KEY_CLEAR, KEY_CANCEL, KEY_ENTER. As teclas opcionais variam de terminal pra terminal, e podem ir de KEY_EXTRA1 até KEY_EXTRA99 (string).

Exemplo

<variavelint valor="2000" variavel="segs"/>
<variavelstr valor="" variavel="ret"/>
<variavelstr valor="KEY_1" variavel="tecla"/>
<display coluna="0" linha="0" mensagem="aperte uma tecla"/>
<letecla milisegundos="$(segs)" variavelretorno="$(ret)"/>

<if operador="igual" variavel="$(ret)" valor="$(tecla)">
  <display coluna="0" linha="1" mensagem="numero 1 digitado!"/>
  <esperatecla/>
</if>

limpadisplayVoltar ao topo

O comando limpadisplay é utilizado para apagar todas as mensagens exibidas no visor (display) do terminal POS.

Exemplo

<limpadisplay />

limpavariaveisVoltar ao topo

O comando limpavariaveis é utilizado para apagar o conteúdo da variável que armazena o buffer que é enviado ao host.

Exemplo

<limpavariaveis />

O comando menu monta um menu na tela do terminal, conforme o número de linhas do mesmo, onde o caracter ‘\’ é utilizado para efetuar a quebra de linha entre as opções.

Quando o quantidade de opções atingi o número máximo de linhas, é exibido o caracter ‘+’, indicando que é possível rolar para a próxima tela, pressionado as teclas ENTER ou OK.

A primeira opção antes da primeira barra é utilizado como título, o qual estará sempre visível, mesmo que a quantidade de opções seja maior que a tela, causando o efeito de rolagem.

O usuário pode digitar de 0 a 9, ou seja, existe a possibilidade de utilizar até 10 opções de menu.

O valor digitado é armazenado na variável informada.

Parâmetros

  1. variavel: Variável onde será armazenado o valor digitado (inteiro).
  2. opcoes: Opções do menu delimitadas por ‘\’ (string).

Exemplo

<menu variavel="$(var1)" opcoes="MENU\1. primeira linha\2. segunda linha 2 \3. terceira linha"/>
<if variavel="$(var1)" operador="igual" valor="2">
  <display linha="0" coluna="0" mensagem="Segunda Opcao" />
  <esperatecla />
</if>

A instução menuwithheader constrói um menu na tela do terminal, conforme o número de linhas do mesmo. Na constante string opções para cada barra “\” existente, vai ser uma quebra de linha. O cabeçalho será quebrado em “|” e mostrado na primeira linha atualizando baseado no tempo definido em timeouttiulo. Quando o número de opções atinge o tamanho máximo do número de linhas, vai aparecer um sinal de “+” indicando que é possível rolar para outra tela. É possível mostrar a outra tela, pressionando(enter ou OK). O Usuário pode digitar qualquer key. O valor digitado fica armazenado em variavel. Quando estourar o timeout retornará “-1”. A chave do config.dat iskeytimeout deve ser 1.

Parâmetros

  1. header: Opções de cabeçalho delimitadas por “|”(string).
  2. options: Opções do menu delimitadas por “\”(string).
  3. timeout: Timeout de função, iskeytimeout deve ser 1(string).
  4. timeoutheader: Tempo para a troca do próximo cabeçalho(string).
  5. variablereturn: Variavel onde ficará armazenado o valor digitado(string).

Exemplo

<menuwithheader header="Bem Vindo|d/M/yy h:m:s|d/M/yy h:m:s|h:m:s MENU|h:m:s AA|BB" 
timeoutheader="1" options="1.Opcao A\2.Opcao B\3.Opcao C\4.AA\5.BB\6.CC\7.DD\8.EE\9.FF" 
timeout="30" variablereturn="$(sMenu)"/>
<imprima mensagem="$(sMenu)"/>

mostrabitmapVoltar ao topo

Permite mostrar um bitmap monocromático no visor do terminal, que pode ser utilizado para animações, layout, entre outras finalidades. Para isso, é necessário salvar o bitmap na pasta download e baixar o arquivo com o comando baixaraquivo.

Parâmetros

  1. nomearquivo: Nome do arquivo bitmap que será exibido no display (string).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Bitmap não encontrado
    -1: Bitmap com tamanho inválido
    -2: Bitmap não monocromático

Exemplo

<variavelint valor="1" variavel="ret"/>
<variavelstr valor="teste.bmp" variavel="arquivobmp"/>
<baixaarquivo caminhoremoto="\teste.bmp" excluiaposdownload="0" nomearquivo="$(arquivobmp)" variavelretorno="$(ret)"/>
<mostrabitmap nomearquivo="$(arquivobmp)" variavelretorno="$(ret)"/>
<esperatecla/>

network.checkgprssignalVoltar ao topo

O comando network.checkgprssignal checa o status da conexão GPRS, caso o terminal tenha suporte a este tipo de conexão.

Parâmetros

  1. variavelstatus: Porcentagem do nível do sinal GPRS (inteiro).

Exemplo

<network.checkgprssignal variavelstatus="$(status)" />

network.hostdisconnectVoltar ao topo

Efetua a desconexão entre o terminal POS e o host, porém o terminal ainda permanece conectado à rede.

Exemplo

<network.hostdisconnect />

network.httprequestVoltar ao topo

Permite realizar um POST ou GET do protocolo HTTP. Possibilita baixar e enviar arquivos, receber e enviar informações de um servidor HTTP.

Parâmetros

  1. url: URL do host, contendo o nome do arquivo será acessado, sem http:// (string).

  2. campos: Campos que serão enviados no POST no formato abaixo (string):

    variavel_1=valor_1&variavel_2=valor_2
    Note que se este campo estiver vazio, ao invés de um POST, o comando network.httprequest irá efetuar um GET na url especificada.

    É possível também especificar neste campo, um arquivo a ser enviado. Para tal, utiliza-se a nomenclatura file:nomedoarquivo e em seguida as outras variáveis do POST.

    Atente-se que somente um arquivo pode ser especificado por vez, e file: deve ser especificado sempre como primeiro campo, conforme o exemplo abaixo:
    file:inicio.posxml&variavel_1=valor_1&variavel2=valor_2

  3. savetofile: Nome do arquivo que irá armazenar a resposta do host. Se esta variável estiver vazia a resposta então será armazenada em variavelresponse (string).

  4. variavelresponse: Variável que irá armazenar a resposta do host, caso a variável savetofile não tenha sido especificada (string).

. variavelstatuscode: Código de status do protocolo HTTP que será retornado pelo host (string).

  1. variavelretorno: Resultado da operação, que pode ser (inteiro):
    -9 : Arquivo de upload invalido
    -8 : Download incompleto
    -7 : Erro ao iniciar gravação do arquivo
    -6 : Não foi possível conectar-se ao host
    -5 : Tamanho máximo da resposta do host excedido
    -4 : Erro no header recebido do host
    -3 : URL inválida
    -2 : Erro no recebimento do POST
    -1 : Erro no envio do POST
     0 : Se a variável savetofile foi especificada, arquivo baixado com sucesso
    >0 : Tamanho da resposta do host, armazenado em variavelresponse

Exemplo

<network.httprequest url="$(str_url)" campos="$(str_campos)" savetofile="$(str_file)" variavelresponse="$(str_response)" variavelstatuscode="$(str_status)" variavelretorno="$(ret)"/>

network.pingVoltar ao topo

O comando network.ping checa o status do host.

Parâmetros

  1. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Sucesso
    -1: Sem conexão com o servidor
    -2: Falha no envio

Exemplo

<network.ping variavelretorno="$(retorno)" />

network.receiveVoltar ao topo

O comando network.receive recebe um buffer do host atualmente conectado. O resultado da operação é armazenado em variavelretorno, e pode ser:

  • 1: Buffer recebido com sucesso
  • 0: Erro no recebimento do buffer
É necessário já estar conectado a um host com o comando preconexao.

Parâmetros

  1. variavelbuffer: Variável que irá armazenar o buffer recebido do host (string).
  2. tamanhomaximo: Tamanho máximo do buffer que é desejado receber do host (inteiro).
  3. variavelbytesrecebidos: Número de bytes recebidos do host (inteiro).
  4. variavelretorno: Resultado da operação (inteiro).

Exemplo

<network.receive variavelbuffer="$(buf)" tamanhomaximo="$(tamanho_max)" variavelbytesrecebidos="$(bytes)" variavelretorno="$(ret)"/>

network.sendVoltar ao topo

O comando network.send envia um buffer para o host atualmente conectado. O resultado da operação é armazenado em variavelretorno, e pode ser:

  • 1: Buffer recebido com sucesso
  • 0: Erro no recebimento do buffer
É necessário já estar conectado a um host com o comando preconexao.

Parâmetros

  1. buffer: Buffer que será enviado para o host (string).
  2. tamanho: Tamanho do buffer que será enviado (inteiro).
  3. variavelretorno: Resultado da operação (inteiro).

Exemplo

<network.send buffer="$(buf)" tamanho="$(tamanho)" variaveretorno="$(ret)"/>

network.webserviceaddparameterVoltar ao topo

Adiciona parâmetros dentro da estrutura XML anteriormente criada na memória do POS.

Parâmetros

  1. method: Nome do method existente no WebService (string).
  2. type: Tipo da variável que será adicionada no method (string).
  3. variable: Nome da variável que será adicionada ao method (string).
  4. value: Valor da variável adicionada ao method (string).
  5. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Sucesso
    -3: Tipo inválido
    -2: Estrutura XML inválida
    -1: Arquivo de envio não encontrado

Exemplo

<network.webserviceaddparameter method="$(method)" type="$(type)" variable="$(variable)" value="$(value)" variavelretorno="$ (variavelretorno)"/>

network.webserviceconnectVoltar ao topo

Comando responsável por conectar no WebService, enviar a estrutura XML com os dados e receber a resposta.

Parâmetros

  1. variavelresposta: Variável que irá armazenar a resposta do WebService (string).
  2. savetofile: Nome do arquivo que irá armazenar a resposta do WebService. Se esta variável estiver definida, a variável variavelresposta ficará vazia (string).
  3. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Sucesso
    -8: Method não encontrado
    -7: Tamanho máximo da resposta do servidor excedido
    -6: Erro no header recebido do servidor
    -5: Erro no recebimento do post
    -4: Erro no envio do post
    -3: Não conseguiu conectar no servidor
    -2: Estrutura xml inválida
    -1: Arquivo de envio/configuração não encontrado

Exemplo

<network.webserviceconnect variavelresposta="$(variavelresposta)" variavelretorno="$(variavelretorno)" savetofile="$(savetofile)"/>

network.webservicenewVoltar ao topo

Esta função cria em memória uma nova estrutura XML para realizar uma requisição em um determinado WebService.

Parâmetros

  1. method: Nome do method existente no WebService (string).
  2. soapAction: Concatenação de “http://” + url + o nome do method (string).
  3. url: URL do host, contendo o nome do arquivo que será acessado, sem “http://” (string).
  4. xmlnamespace: Namespace utilizado no method do WebService (string).

Exemplo

<network.webservicenew method="$(method)" soapAction="$(soapAction)" url="$(url)" xmlnamespace="$(xmlnamespace)"/>

openserialportVoltar ao topo

Abre a porta serial para comunicação com periféricos externos.

Parâmetros

  1. porta: Nome da porta serial. Pode ser: COM1, COM2, COM3, COM4 ou COM5 (string).
  2. velocidade: Velocidade da porta serial. Pode ser: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 12000, 14400, 28800 ou 33600 (string).
  3. configuracao: Configuração da porta serial. Pode ser: A7E1, A7N1, A7O1, A8E1, A8N1 ou A8O1 (string).
  4. variavelretorno: Retorna -2, se algum parâmetro de configuração está incorreto. Qualquer valor menor ou igual a zero, ocorreu algum erro no processo de abertura da porta serial. Se abriu com sucesso retorna a handle para manipular a porta serial através das instruções: readserialport, writeserialport e closeserialport (inteiro).

Exemplo

<variavelint valor="0" variavel="ret" />
<openserialport porta="COM1" velocidade="115200" configuração="A8N1" variavelretorno="$(ret)" />

operacaomatematicaVoltar ao topo

Realiza uma operação matemática entre valor1 e valor2 e coloca seu resultado em variaveldestino. Para realizar operações com pontos flutuantes devemos utilizar em variaveldestino uma variável do tipo string.

Devemos sempre obedecer a regra de utilizar o mesmo tipo de variáveis nos parâmetros valor1, valor2 e variaveldestino.

Os operadores matemáticos são:

+ : soma
– : subtração
* : multiplicação
/ : divisão
^ : exponenciação
% : resto da divisão

Parâmetros

  1. valor1: Primeiro valor da operação matemática (string ou inteiro).
  2. operador: Operador da operação matemática, sendo : +,–,*,/,%,^ (string).
  3. valor2: Segunda valor da operação matemática (string ou inteiro).
  4. variaveldestino: Variável contendo o resultado da operação matemática (string ou inteiro).

Exemplo

<variavelstr valor="1.2" variavel="var1" />
<variavelstr valor="3.4" variavel="var2" />
<variavelstr valor=" " variavel="var3" />
<operacaomatematica valor1="$(var1)" operador="+" valor2="$(var2)" variaveldestino="$(var3)" />

paperfeedVoltar ao topo

O comando paperfeed envia para a impressora do terminal POS um sinal, de forma que o papel salte algumas linhas e seja possível destaca-lo sem cortar o conteúdo da impressão.

Exemplo

<paperfeed />

pegacartaoVoltar ao topo

O comando pegacartao fica aguardando o operador do terminal POS passar um cartão magnético em sua leitora de trilhas ou a digitação dos números de um cartão, podendo exibir duas mensagens, uma para ser exibida quando o terminal pedir que o operador passe o cartão na leitora e a outra para ser exibida quando o operador pede para digitar o cartão.

É possível também determinar o número mínimo e máximo de bytes que podem ser digitados. O conteúdo do cartão digitado ou capturado pela tarja magnética é armazenado na memória, até ser enviado ao host no seguinte formato:

  • <cartao>00000000000000000 se foi passado ou
  • <cartao>D0000000000000000 se foi digitado

A configuração de trilhas a serem analisadas e se é permitido que o operador digite o numero do cartão é definido no parâmetro tiposcartao.

Se configurarmos o terminal de modo que não seja permitido a digitação do cartão, quando o operador pressionar qualquer tecla do terminal, ao invés de passar o cartão, o aplicativo se encerrará.

Parâmetros

  1. primeiramensagem: Primeira mensagem exibida no display (string).
  2. segundamensagem: Mensagem exibida após o usuário pressionar OK (string).
  3. minimo: Número mínimo a ser digitado (inteiro).
  4. maximo: Número máximo a ser digitado (inteiro).

Exemplo

<pegacartao primeiramensagem="Passe cartao ou tecle OK" segundamensagem="Digite cartão com 16 digitos" minimo="16" maximo="16" />

pegacartaoevariavelVoltar ao topo

Semelhante ao comando pegacartao, a diferença é que o valor capturado não é enviado ao host, e sim armazenado na variável informada.

Parâmetros

  1. primeiramensagem: Primeira mensagem exibida no display (string).
  2. segundamensagem: Mensagem exibida após o usuário pressionar OK (string).
  3. minimo: Número mínimo a ser digitado (inteiro).
  4. maximo: Número máximo a ser digitado (inteiro).
  5. variavel: Variável que irá armazenar o valor do cartão (string).

Exemplo

<pegacartaoevariavel primeiramensagem="Passe o cartao ou tecle OK" segundamensagem="Digite o Cartao:" minimo="4" maximo="40" variavel="$(PIN)" />

pegadatahoraVoltar ao topo

Permite colocar o valor de data/hora atuais em uma variável do tipo string, no formato especificado em formato, onde qualquer caracter de formatação de data será substituído pelo valor do relógio do terminal.

Os caracters reservados para formatação de data são:

  • yy: ano com 4 dígitos
  • y: ano com 2 dígitos
  • M: mês com 2 dígitos
  • d: dia com 2 dígitos
  • h: hora com 2 dígitos
  • m: minuto com 2 dígitos
  • s: segundos com 2 dígitos

Parâmetros

  1. formato: Formato da data que será armazenada (string).
  2. variaveldestino: Variável contendo a data no formato especificado (string).

Exemplo

<variavelstr valor=" " variavel="buffer" />
<pegadatahora formato="Data Hoje : d/M/yy h:m:s" variaveldestino="$(buffer)" />

pinpad.closeVoltar ao topo

O comando pinpad.close encerra a comunicação com um pinpad interno ou externo que foi previamente estabelecida com pinpad.open. Ainda define a messagem padrão do display do pinpad externo.

parâmetros

  1. message: Mensagem default que será mostrado no display do pinpad(string)

Exemplo

<pinpad.close message="Pinpad encerrado"/>

pinpad.displayVoltar ao topo

O comando pinpad.display exibe a mensagem contida no parâmetro message do display do pinpad externo. Não aplica ao pinpad interno.

parâmetros

  1. message: mensagem que vai ser mostrada no display(string).

Exemplo

<pinpad.display message="$(sMessage)"/>

pinpad.getkeyVoltar ao topo

O comando pinpad.getkey captura uma tecla que seja pressionada no pinpad externo enquanto exibe uma mensagem contida no parâmetro message no display do pinpad externo. Não aplica ao pinpad interno.

parâmetros

  1. message: mensagem que vai ser mostrada no display(string).
  2. timeout: Timeout em segundos que a instrução vai aguardar antes de continuar a execução(inteiro).
  3. variavelretorno: -1: timeout, KEY_ENTER, KEY_CANCEL, KEY_CLEAR, KEY_EXTRAS(string).

Exemplo

<pinpad.getkey message="$(sMessage)" timeout="10" variavelretorno="$(iRet)"/>

pinpad.getpinduktVoltar ao topo

O comando pinpad.getpindukpt captura um pin e encripta o mesmo usando o padrão DUKPT no pinpad externo ou interno enquanto exibe uma mensagem contida no parâmetro message no display do pinpad externo ou na tela do terminal POS.

parâmetros

  1. maxlen: Número máximo de caracteres digitados no pin(inteiro).
  2. message: Mensagem que vai ser mostrada no display(string).
  3. pan: Account number(string).
  4. type: 0:DES 1:3DES(inteiro).
  5. variavelretorno: 0:OK, -1: Comm error, -2: Cancel, -3: error pin(inteiro).
  6. variavelretornoksn: KSN(string).
  7. variavelretornopin: Pin cifrado DUKPT DES ou 3DES(string).

Exemplo

<pinpad.getpindukpt maxlen="$(iMax)" message="$(sMessage)" pan="$(sSen)" type="0" variavelretornoksn="$(sKsn)"
variavelretornopin="$(sPin)" variavelretorno="$(iRet)"/>

pinpad.loadipekVoltar ao topo

A instrução pinpad.loadipek grava uma chave inicial em uma KSN inicial na memória do pinpad interno ou externo para efetuarmos uma encriptação de senhas usando o padrão DUKPT.

parâmetros

  1. ipek: Chave inicial em formato hex ascii 16 ou 32 caracteres(string).
  2. ksn: Ksn inial em formato hex ascii 20 caracteres(string).
  3. type: 0: DES 1: 3DES(inteiro).
  4. variavelretorno: 0: OK, -1: Error(inteiro).

Exemplo

<pinpad.loadipek ipek="$(sIpek)" ksn="$(sKsn)" type="1" variavelretorno="$(iRet)"/>

pinpad.openVoltar ao topo

O comando pinpad.open habilita a comunicação entre o pinpad interno ou externo e o POS.

parâmetros

  1. type: 0: pinpad interno 1: pinpad externo(inteiro).
  2. variavelretorno: 0: pinpad conectado 1: pinpad não conectado(inteiro).
  3. variavelserialnumber: Variavel onde ficará armazenado o serial number do pinpad que acabou de ser aberto(string).

Exemplo

<pinpad.open type="1" variavelserialnumber="$(sSerial)" variavelretorno="$(iRet)"/>/>

preconexaoVoltar ao topo

O comando preconexao inicializa o dispositivo de conexão e armazena na variável o resultado da operação, onde o valor -1 significa que ocorreu um erro de conexão, e 0 indica que o terminal está conectado ao host.

Diferente do comando conectar, esta instrução não envia informações ao host, apenas realiza a conexão.

Parâmetros

  1. variavelstatus: Variável que indica o status da conexão (inteiro).

Exemplo

<variavelint valor="-1" variavel="iConectado" />

<preconexao variavelstatus="$(iConectado)" />

<if variavel="$(iConectado)" operador="igual" valor="-1">
   <display linha="0" coluna="0" mensagem=" Erro de conexao" />
</if>

<if variavel="$(iConectado)" operador=" igual" valor="0">
   <display linha="0" coluna="0" mensagem=" Conectado ..." />
   <esperatecla />
</if>

predialVoltar ao topo

O comando efetua uma pré-discagem. Lembrando que este comando não conecta ou envia informação para o host, apenas faz a discagem.

Parâmetros

  1. opcao: 1 para realizar a pré-discagem ou 2 para verificar se a discagem foi completada (inteiro).
  2. variavelstatus: Indica o status da discagem, onde (inteiro):
     0: Discado
    -1: Erro na discagem
    -2: Valor inválido na variável opcao

Exemplo

<predial opcao="1" variavelstatus="$(status)" />

readserialportVoltar ao topo

Lê um buffer capturado pela porta serial que está plugada a um dispositivo externo, previamente aberta com a instrução openserialport.

Parâmetros

  1. variavelhandle: Variável retornada em openserialport. Deve ser diferente e maior que zero (inteiro).
  2. variavelbuffer: Variável que armazenará o buffer lido pela porta serial (string).
  3. bytes: Quantidade de bytes que será lido da porta serial (inteiro).
  4. timeout: Tempo em mili-segundos que a instrução irá esperar para receber alguma coisa da porta serial (inteiro).
  5. variavelretorno: Quantidade de bytes lidos da porta serial. Se retornar -1, significa que não foi lida nenhuma informação e o tempo especificado em timeout foi atingido (inteiro).

Exemplo

<variavelint valor="0" variavel="ret" />
<variavelint valor="0" variavel="readBytes" />
<variavelstr valor="" variavel="buf" />
<openserialport porta="COM1" velocidade="115200" configuração="A8N1" variavelretorno="$(ret)" />
<readserialport variavelhandle="$(ret)" variavelbuffer="$(buf)" bytes="10" timeout="2000" variavelretorno="$(readBytes)" />

smartcard.cartaoinseridoVoltar ao topo

Verifica se o cartão está inserido no leitor de smart card do terminal Pos.

Parâmetros

  1. slot: customer = 1, merchant1 = 2, merchant2 = 3 ou merchant3 = 4 (inteiro).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     1: cartão está inserido no leitor do terminal
    -1: slot inválido
    -2: cartão não está inserido

Exemplo

<variavelint valor="0" variavel="ret" />
<smartcard.cartaoinserido slot="1" variavelretorno="$(ret)" />

smartcard.fechaleitorVoltar ao topo

Finalizar o processo de comunicação com o cartão , e fecha o leitor de smart card do terminal Pos.

Parâmetros

  1. slot: customer = 1, merchant1 = 2, merchant2 = 3 ou merchant3 = 4 (inteiro).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     1: leitor fechado com sucesso
    -1: slot inválido

Exemplo

<variavelint valor="0" variavel="ret" />
<smartcard.fechaleitor slot="1" variavelretorno="$(ret)" />

smartcard.inicialeitorVoltar ao topo

Inicia o leitor de smart card do terminal e tenta iniciar o cartão no slot informado, verificando o ATR do cartão.

Parâmetros

  1. slot: customer = 1, merchant1 = 2, merchant2 = 3 ou merchant3 = 4 (inteiro).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     1: leitor iniciado e ATR do cartão lido com sucesso
    -1: slot inválido
    -2: erro ao iniciar leitor ou ler cartão

Exemplo

<variavelint valor="0" variavel="ret" />
<smartcard.inicialeitor slot="1" variavelretorno="$(ret)" />

smartcard.transmiteapduVoltar ao topo

Envia um comando APDU para o cartão no slot especificado. Atente-se que antes de usar este comando, a leitora precisa ter sido inicializada pelo comando smartcard.inicialeitor.

Todos os campos devem estar preenchidos com valores hexadecimais (consulte os comandos string.tohex e string.fromhex).

Os campos opcionais não utilizados devem ser preenchidos com "00".

Parâmetros

  1. slot: Main = 1 , sam1 = 2 , sam2 = 3, sam3 = 4 ou sam4 = 5 (inteiro).
  2. header: Comando hexadecimal composto por CLA + INS + P1 + P2. Ex: “B00C0000” (string).
  3. LC: Opcional – O tamanho do campo datafield em hexadecimal. Se o tamanho do datafield é de 10 bytes, é necessário colocar o tamanho “0A” (string).
  4. datafield: Opcional – O comando APDU em hexadecimal (string).
  5. LE: Opcional – O tamanho da resposta em hexadecimal. Se tivermos uma resposta maior que 2 bytes (SW1 e SW2), é necessário a inclusão do tamanho neste campo (string).
  6. variaveldatafieldresponse: Variável que receberá a resposta do comando em uma representação hexadecimal (string).
  7. variavelSW: Variável que irá armazenar os 2 bytes hexadecimais da resposta do comando APDU (string).
  8. variavelretorno: Resultado da operação, que pode ser (inteiro):
     1: Comando enviado com sucesso
    -1: Slot inválido
    -2: Erro ao enviar o comando para o cartão

Exemplo

<smartcard.transmitAPDU slot="1" header="00B40300" LC="00" datafield="00" LE="00" variaveldatafieldresponse="$(sDatafield)" variavelSW="$(sSW)" variavelretorno="$(iRet)" />

somastringVoltar ao topo

Concatena duas strings, especificadas em valor1 e valor2, e após juntar os dois valores coloca o resultado na variável especificada em variaveldestino.

Parâmetros

  1. valor1: Primeiro valor a ser concatenado (string).
  2. valor2: Segundo valor a ser concatenado (string).
  3. variaveldestino: Variável contendo o resultado da concatenação (string).

Exemplo

<variavelstr valor="AAA" variavel="var1" />
<variavelstr valor="BBB" variavel="var2" />
<variavelstr valor=" " variavel="var3" />
<somastring valor1="$(var1)" valor2="$(var2)" variaveldestino="$(var3)" />

string.charatVoltar ao topo

Extrai um caracter da string especificada.

Parâmetros

  1. string: String que será consultada (string).
  2. character_index: Index indicando uma posição na string (inteiro).
  3. variavelretorno: Caracter da posição especificada (string).

Exemplo

<string.charat string="$(str)" character_index="$(index)" variavelretorno="$(ret)"/>

string.elementatVoltar ao topo

Retorna um elemento em uma determinada posição (index) na string especificada, separada pelo caracter definido em delimiter.

Parâmetros

  1. string: String que será dividida (string).
  2. element_index: Index para determinada posição no array criado pela string separada por delimiter (inteiro).
  3. delimiter: Caracter que será utilizado para dividir a string em vários elementos, criando um array (string).
  4. variavelretorno: Elemento especificado (string).

Exemplo

<string.elementat string="$(str)" element_index="$(index)" delimiter="$(dlmt)" variavelretorno="$(ret)"/>

string.elementsVoltar ao topo

Retorna quantos elementos existem na string especificada, separadas pelo character delimiter. Mesmo quando o character especificado em delimiter não existe na string, teremos 1 elemento.

Parâmetros

  1. string: String que será dividida (string).
  2. delimiter: Caracter que será utilizado para dividir a string em vários elementos, criando um array (string).
  3. variavelretorno: Número de elementos divididos por delimiter encontrados na string especificada (inteiro).

Exemplo

<string.elements string="$(str)" delimiter="$(dlmt)" variavelretorno="$(ret)"/>

string.findVoltar ao topo

Procura por uma substring na string especificada. O resultado da operação é armazenado em variavelretorno, e pode ser:

  • -1: Substring não encontrada
  • X: Onde X é a posição na string da substring encontrada

Parâmetros

  1. string: String que será consultada (string).
  2. substring: Termo que será consultado na string informada (string).
  3. start: Posição (index) inicial da consulta (inteiro).
  4. variavelretorno: Resultado da operação (inteiro).

Exemplo

<string.find string="$(str)" substring="$(sub_str)" start="$(index)" variavelretorno="$(ret)"/>

string.fromhexVoltar ao topo

Converte uma string hexadecimal para ASCII.

Por exemplo:

A string “3132333435” em hexadecimal seria convertido para “12345” em ASCII.

Parâmetros

  1. string: Representação hexadecimal de uma string (string).
  2. variavelretorno: Representação em ASCII da string hexadecimal (string).

Exemplo

<string.fromhex string="3132333435" variavelretorno="$(str_ascii)" />

string.getvaluebykeyVoltar ao topo

O comando string.getvaluebykey procura em uma string por um valor baseado em key/value.

Exemplo

<string.getvaluebykey chave="valor" string="$(sStringDeLeitura)" variavelretorno="$(sStringDeResposta)" />

Parâmetros

  1. chave: Chave do valor que queremos ler da string (string).
  2. string: String em que vamos pesquisar (string).
  3. variavelretorno: Variável que armazenará o valor vindo da string (string).

string.insertatVoltar ao topo

Insere um elemento em uma determinada posição (index) na string especificada, separada pelo caracter definido em delimiter.

Parâmetros

  1. string: String que será dividida (string).
  2. string_to_be_inserted: String que será inserida em determinada posição da string especificada (string).
  3. element_index: Index para determinada posição no array criado pela string separada por delimiter (inteiro).
  4. delimiter: Caracter que será utilizado para dividir a string em vários elementos, criando um array (string).
  5. variavelretorno: String original com o novo elemento inserido (string).

Exemplo

<string.insertat string="$(str)" string_to_be_inserted="$(str_insert)" element_index="$(index)" delimiter="$(dlmt)" variavelretorno="$(ret)"/>

string.lengthVoltar ao topo

Retorna o tamanho da string especificada.

Parâmetros

  1. valor: String que será contada os caracters ate o fim (string).
  2. variavelretorno: Tamanho da string (inteiro).

Exemplo

<variavelint valor="0" variavel="tamanho" />
<string.length valor="Hello World" variavelretorno="$(tamanho)" />

string.removeatVoltar ao topo

Remove um elemento em uma determinada posição (index) na string especificada, separada pelo caracter definido em delimiter.

Parâmetros

  1. string: String que será dividida (string).
  2. element_index: Index para determinada posição no array criado pela string separada por delimiter (inteiro).
  3. delimiter: Caracter que será utilizado para dividir a string em vários elementos, criando um array (string).
  4. variavelretorno: String original com o elemento especificado removido (string).

Exemplo

<string.removeat string="$(str)" element_index="$(index)" delimiter="$(dlmt)" variavelretorno="$(ret)"/>

string.replaceVoltar ao topo

Substitui todas as ocorrências da substring especificada na string original.

Parâmetros

  1. original_string: String original (string).
  2. old_substring: Valor que será substituído na string original (string).
  3. new_substring: Valor que será colocado no lugar do valor antigo, na string especificada (string).
  4. variavelretorno: Variável na onde será armazenada a nova string com os valores especificados substituídos (string).

Exemplo

<string.replace original_string="$(str_orig)" old_substring="$(str_val)" new_substring="$(str_new)" variavelretorno="$(ret)"/>

string.replaceatVoltar ao topo

Substitui um elemento em uma determinada posição (index) na string especificada, separada pelo caracter definido em delimiter.

Parâmetros

  1. string: String que será dividida (string).
  2. new_element: String que será inserida em determinada posição da string especificada (string).
  3. element_index: Index para determinada posição no array criado pela string separada por delimiter (inteiro).
  4. delimiter: Caracter que será utilizado para dividir a string em vários elementos, criando um array (string).
  5. variavelretorno: String original com o elemento especificado substituído (string).

Exemplo

<string.replaceat string="$(str)" new_element="$(new_elemt)" element_index="$(index)" delimiter="$(dlmt)" variavelretorno="$(ret)"/>

string.substringVoltar ao topo

Permite copiar partes de uma string especificada.

Parâmetros

  1. string: String de origem (string).
  2. start: Index para a posição na string de onde desejamos iniciar a cópia da substring (inteiro).
  3. length: Quantidade de caracteres da substring (inteiro).
  4. variavelretorno: Substring copiada de string (string).

Exemplo

<string.substring string="$(str)" start="$(index)" length="$(tamanho)" variavelretorno="$(ret)"/>

string.tohexVoltar ao topo

Converte uma string ASCII para hexadecimal.

Por exemplo:

A string “12345” em ASCII seria convertido para “3132333435” em hexadecimal.

Parâmetros

  1. string Representação ASCII de uma string (string).
  2. variavelretorno: Representação em hexadecimal da string ASCII (string).

Exemplo

<string.tohex string="12345" variavelretorno="$(str_hex)" />

string.trimVoltar ao topo

Elimina os espaços em branco da esquerda e da direita da string especificada.

Parâmetros

  1. string: String que será consultada (string).
  2. variavelretorno: String sem espaços em branco na esquerda ou na direita (string).

Exemplo

<string.trim string="$(str)" variavelretorno="$(ret)"/>

stringtointVoltar ao topo

O comando stringtoint converte o conteúdo de variáveis do tipo string para o tipo inteiro. O conteúdo convertido é armazenado em uma variável do tipo inteiro.

Parâmetros

  1. variavelstr: Variável que será convertida (string).
  2. variavelint: Variável que irá armazenar o valor inteiro (inteiro).

Exemplo

<stringtoint variavelstr="$(ValorStr)" variavelint="$(ValorInteiro)" />

substringVoltar ao topo

O comando substring copia um trecho de uma variável do tipo string para outra variável do tipo string.

Parâmetros

  1. variavelorigem: Variável que será utilizada para montar a substring (string).
  2. posicao: Posição inicial da substring, onde a primeira posição disponível é 0 (inteiro).
  3. caracter: Caractere que delimita o final da substring (string).
  4. variaveldestino: Variável que irá armazenar o resultado da substring (string).
  5. variavelretorno: Posição do caracter, se este foi encontrado, ou -1, se não foi encontrado (inteiro).

Exemplo

<substring posicao="1" variavelorigem="$(ContemTudo)" variaveldestino="$(ContemParte)" caracter="," variavelretorno="$(ret)" />

system.beepVoltar ao topo

O comando system.beep executa um sinal sonoro curto.

Exemplo

<system.beep />

system.checkbatteryVoltar ao topo

O comando system.checkbattery checa o status da bateria do terminal, caso o mesmo possua bateria.

Parâmetros

  1. variavelstatus: Porcentagem do nível do sinal (inteiro).

Exemplo

<system.checkbattery variavelstatus="$(status)" />

system.infovoltar ao topo

O comando system.info busca informações no sistema, como MAC Address e SIM ID.

parâmetros

  1. tipo: Tipo da informação, simid ou macaddress (string).

  2. variavelretorno: Variavel que vai armazenar a informação(string).

Exemplo

<editaarquivo nomearquivo="config.dat" chave="uclmedia" valor="ETHERNET"/> 
<editaarquivo nomearquivo="config.dat" chave="uclprotocol" valor="TCP"/>
<editaarquivo nomearquivo="config.dat" chave="myip" valor="192.168.0.202"/>
<editaarquivo nomearquivo="config.dat" chave="mygateway" valor="192.168.0.1"/>
<editaarquivo nomearquivo="config.dat" chave="dnsprimario" valor="8.8.8.8"/>
<editaarquivo nomearquivo="config.dat" chave="iphost" valor="192.168.0.177"/>
<editaarquivo nomearquivo="config.dat" chave="portahost" valor="8000"/>
<editaarquivo nomearquivo="config.dat" chave="withssl" valor="0"/>
     
<variavelstr valor="" variavel="sRet"/>
<system.info tipo="macaddress" variavelretorno="$(sRet)"/>

<display coluna="0" linha="0" mensagem="$(sRet)"/> 
 

system.readcardVoltar ao topo

Espera que um cartão seja passado ou uma tecla seja pressionada, onde o tempo aguardado é especificado em timeout. Caso nenhuma ação seja tomada, os valores de retorno padrão são:

variaveltecla="KEY_CANCEL"
variavelcartao="0"

Parâmetros

  1. variaveltecla: Tecla pressionado pelo usuário. As teclas padrões que todos terminais possuem são: KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_CLEAR, KEY_CANCEL, KEY_ENTER. As teclas opcionais variam de terminal para terminal, e podem ir de KEY_EXTRA1 até KEY_EXTRA99 (string).
  2. variavelcartao: Variável onde ficará armazenado o valor do cartão (string).
  3. timeout: Tempo em mili-segundos que a instrução vai aguardar antes de continuar a execução (inteiro).
  4. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Botão digitado ou cartão passado com sucesso
    -1: Erro na leitura do cartão
    -2: Passou o tempo especificado na variável timeout e nenhuma ação ocorreu

Exemplo

<system.readcard variaveltecla="$(tecla)" variavelcartao="$(cartao)" timeout="5000" variavelretorno="$(ret)" />

system.reiniciaVoltar ao topo

Reinicia o terminal.

Exemplo

<system.reinicia/>

ultimapaginaVoltar ao topo

Permite recarregar e executar a última pagina de comandos recebido pelo terminal, enviados pelo host. Esta última página sempre fica armazenada na memória do terminal até que se desligue o mesmo.

Quando chamada, está instrução executa a última pagina, e em seguida a execução do walk termina. Muito útil, para escrevermos lógicas de reimpressão caso a ultima pagina seja um ticket enviado para o terminal.

Exemplo

<ultimapagina />

unzipfileVoltar ao topo

Extrai o conteúdo de um arquivo compactado no diretório em que o arquivo se encontra. Para isto, o arquivo deve estar dentro da pasta download, para que possa ser baixado pelo comando baixaarquivo e então ser descompactado.

Parâmetros

  1. nomearquivo: Nome do arquivo que será descompactado (string).
  2. variavelretorno: Resultado da operação, que pode ser (inteiro):
     0: Descompressão feita com sucesso
    -1: Erro na descompressão

Exemplo

<variavelint valor="0" variavel="ret"/>
<variavelstr valor="teste.zip" variavel="nomearq"/>
<baixaarquivo caminhoremoto="\teste.zip" excluiaposdownload="0" nomearquivo="$(nomearq)" variavelretorno="$(ret)"/>
<unzipfile nomearquivo="$(nomearq)" variavelretorno="$(ret)"/>

variavelintVoltar ao topo

O comando variavelint é um termo de atribuição e serve para armazenar um determinado valor numérico (inteiro) em uma variável especificada.

Parâmetros

  1. valor: Valor da variável (inteiro).
  2. variavel: Nome da variável (variável).

Exemplo

<variavelint valor="1" variavel="Parcelas" />

variavelintoperadorVoltar ao topo

Permite adicionar +1 ou decrementar -1 na variável do tipo inteiro especificado em variavelorigem. Muito útil em situações que desejamos utilizar laços ou fazer contadores.

Parâmetros

  1. operador: Operador de incremento ‘++’ ou decremento ‘--’ (string).
  2. variavelorigem: Variável que será incrementada ou decrementada (inteiro).

Exemplo

<variavelint valor="0" variável="$(counter)" />
<variavelintoperador operador="++" variavelorigem="$(counter)" />

variavelstrVoltar ao topo

O comando variavelstr é um termo de atribuição e serve para armazenar um determinado valor alfanumérico (letras e números) em uma variável especificada.

Parâmetros

  1. valor: Valor da variável (string).
  2. variavel: Nome da variável (variável).

Exemplo

<variavelstr valor="Plano Bê" variavel="Nome" />

verificapapelimpressoraVoltar ao topo

Permite verificar se o compartimento de papel ainda contém papel. Útil para avisar quando o papel acabou e não deixar o operador prosseguir com a operação, enquanto não trocar o bobina.

Se ainda houver papel no compartimento, o valor da variável variavelresultado será igual a 1, caso contrário, será 0.

Parâmetros

  1. variavelresultado: Variável contendo o resultado da verificação do papel (inteiro).

Exemplo

<variavelint valor="-1" variável="temPapel" />
<verificapapelimpressora variavelresultado="$(temPapel)" />

<if variavel="$(temPapel)" operador="igual" valor="0">
  <display linha="0" coluna="0" mensagem=" Sem papel " />
</if>

<if variavel="$(temPapel)" operador="igual" valor="1">
  <display linha="0" coluna="0" mensagem=" Possui papel " />
</if>

whileVoltar ao topo

A instrução while é um termo utilizado para especificar uma tomada de decisão ou comparação lógica dentro do programa POSXML. Outros comandos e instruções podem ser contidos dentro do argumento while e /while. Os comandos e instruções dentro do argumento são executados até que a expressão se torne falsa. A instrução processa a operação entre variavel e o valor especificado, e entra na execução da próxima instrução dentro de if, caso seja verdadeiro o resultado.

Todos os operadores (igual/diferente/maior/menor/maiorigual/menorigual) no caso de variável inteiro realizam as operações padrões de comparação de qualquer linguagem de programação. Já os operadores (maior/menor/maiorigual/menorigual) no caso de variável string, converterá a variável para ponto flutuante e realizarão a comparação. Os operadores (igual/diferente) seguem a mesma lógica de comparação de qualquer linguagem de programação.

Parâmetros

  1. variavel: Variável para comparação. (string ou inteiro).
  2. operador: Operador de comparação, que pode ser : menor, maior, igual, diferente, maiorigual ou menorigual (string).
  3. valor: Valor para comparação (string ou inteiro).

Exemplo

<variavelint valor="0" variavel="i" />
<while variavel="$(i)" operador="menor" valor="10">
  <display linha="0" coluna="0" mensagem=" Loop ..." />
  <variavelintoperador operador="++" variavelorigem="$(i) />
</while>

writeserialportVoltar ao topo

Escreve um buffer na porta serial, previamente aberta com a instrução openserialport.

Parâmetros

  1. variavelhandle: Variável retornada em openserialport. Deve ser diferente e maior que zero (inteiro).
  2. buffer: Buffer que será escrito na porta serial (string).

Exemplo

<variavelint valor="0" variavel="ret" />
<variavelint valor="0" variavel="readBytes" />
<variavelstr valor="" variavel="buf" />
<openserialport porta="COM1" velocidade="115200" configuração="A8N1" variavelretorno="$(ret)" />
<writeserialport variavelhandle="$(ret)" buffer="Hello World" />