Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save felipsmartins/f01ff19982042f73f8f722a085ca1899 to your computer and use it in GitHub Desktop.
Save felipsmartins/f01ff19982042f73f8f722a085ca1899 to your computer and use it in GitHub Desktop.
Exemplo de app em posxml
<aplicativoposxml xmlns="http://tempuri.org/posxml.xsd">
<pagina nome="principal">
<editaarquivo nomearquivo="config.dat" chave="iphost" valor="50.16.188.58" />
<editaarquivo nomearquivo="config.dat" chave="portahost" valor="8087" />
<editaarquivo nomearquivo="config.dat" chave="withssl" valor="0" />
<variavelint valor="0" variavel="iMenu"/>
<menu opcoes="1 - Download Param\2 - Download apps\3 - Menu de servicos\" variavel="$(iMenu)"/>
<if variavel="$(iMenu)" operador="igual" valor="1">
<chamafuncao nome="WalkServicesDownloadParamFile" />
</if>
<if variavel="$(iMenu)" operador="igual" valor="2">
<chamafuncao nome="WalkServicesDownloadAllApps" />
</if>
<if variavel="$(iMenu)" operador="igual" valor="3">
<chamafuncao nome="WalkServicesMenuServico" />
</if>
<editaarquivo nomearquivo="config.dat" chave="iphost" valor="192.168.0.142" />
<editaarquivo nomearquivo="config.dat" chave="portahost" valor="800" />
<editaarquivo nomearquivo="config.dat" chave="withssl" valor="1" />
<!-- funcoes comuns para baixar arquivos arquivos e gerar um menu de aplicacao vindo do Walk Server 3 -->
<variavelstr valor="" variavel="sWalkServiceFilename" />
<funcao nome="WalkServicesDownloadFiles">
<variavelint valor="0" variavel="iRet" />
<!--
codigo de resposta:
2 : arquivo tem o mesmo crc
1 : arquivo baixado com sucesso
-1 : arquivo nao encontrado
-8 : serial nao cadastrado
-2, -4: erro na transmissao dos pacotes
-5 : erro na conexao com o walkserver3
-->
<limpadisplay />
<display coluna="0" linha="0" mensagem="Downloading:" />
<display coluna="0" linha="1" mensagem="$(sWalkServiceFilename)" />
<!-- indica que vai baixar o arquivo do walkserver 3-->
<editaarquivo nomearquivo="config.dat" chave="iswalkserver3" valor="1" />
<baixaarquivo caminhoremoto="$(sWalkServiceFilename)" excluiaposdownload="0" nomearquivo="$(sWalkServiceFilename)" variavelretorno="$(iRet)" />
<!--
<variavelstr valor="" variavel="sBuf" />
<inttostring variavelint="$(iRet)" variavelstr="$(sBuf)" />
<display coluna="0" linha="2" mensagem="$(sBuf)" />
<esperatecla />
-->
<if variavel="$(iRet)" operador="igual" valor="-8">
<display coluna="0" linha="3" mensagem="Serial nao cadastrado !" />
<esperatecla />
<exit/>
</if>
<if variavel="$(iRet)" operador="igual" valor="-2">
<display coluna="0" linha="3" mensagem="Erro na transmissao !" />
<esperatecla />
<exit/>
</if>
<if variavel="$(iRet)" operador="igual" valor="-4">
<display coluna="0" linha="3" mensagem="Erro na transmissao !" />
<esperatecla />
<exit/>
</if>
<if variavel="$(iRet)" operador="igual" valor="-5">
<display coluna="0" linha="3" mensagem="Erro na comunicacao com o host !" />
<esperatecla />
<exit/>
</if>
<if variavel="$(iRet)" operador="igual" valor="-1">
<display coluna="0" linha="3" mensagem="Arquivo nao encontrado !" />
<esperatecla />
<exit/>
</if>
</funcao>
<!-- in -->
<variavelstr valor="" variavel="sAppFilename" />
<funcao nome="WalkServicesDownloadServico">
<variavelint valor="0" variavel="iSizeApp" />
<variavelint valor="0" variavel="iRet" />
<variavelstr valor="" variavel="sCompanyName" />
<learquivo nomearquivo="config.dat" chave="walkserver3companyname" variaveldestino="$(sCompanyName)" />
<somastring valor1="$(sCompanyName)" valor2="_" variaveldestino="$(sCompanyName)" />
<string.replace new_substring="" old_substring="$(sCompanyName)" original_string="$(sAppFilename)" variavelretorno="$(sAppFilename)" />
<filesystem.filesize nomearquivo="$(sAppFilename)" variavelretorno="$(iSizeApp)" />
<if variavel="$(iSizeApp)" operador="igual" valor="-1">
<limpadisplay />
<display coluna="0" linha="2" mensagem="O servico escolhido " />
<display coluna="0" linha="3" mensagem="ainda nao esta neste " />
<display coluna="0" linha="4" mensagem="terminal. Aperte uma " />
<display coluna="0" linha="5" mensagem="tecla para buscar! " />
<esperatecla />
<variavelstr valor="$(sAppFilename)" variavel="sWalkServiceFilename" />
<chamafuncao nome="WalkServicesDownloadFiles" />
</if>
<execute nomedoarquivo="$(sAppFilename)" />
</funcao>
<funcao nome="WalkServicesDownloadParamFile">
<variavelstr valor="" variavel="sTerminalId" />
<variavelstr valor="" variavel="sFileName" />
<!-- pega a lista de aplicativos -->
<learquivo nomearquivo="config.dat" chave="numerodestepos" variaveldestino="$(sTerminalId)" />
<somastring valor1="$(sTerminalId)" valor2="_params.dat" variaveldestino="$(sFileName)" />
<variavelstr valor="$(sFileName)" variavel="sWalkServiceFilename" />
<chamafuncao nome="WalkServicesDownloadFiles" />
</funcao>
<funcao nome="WalkServicesNoServiceInstalled">
<limpadisplay />
<display coluna="0" linha="2" mensagem="Nenhum servico " />
<display coluna="0" linha="3" mensagem="instalado neste " />
<display coluna="0" linha="4" mensagem="terminal! " />
<esperatecla />
<limpadisplay />
</funcao>
<funcao nome="WalkServicesDownloadAllApps">
<variavelstr valor="" variavel="sApps" />
<variavelstr valor="" variavel="sTerminalId" />
<variavelstr valor="" variavel="sFileName" />
<variavelint valor="0" variavel="iNumApps" />
<variavelint valor="0" variavel="iI" />
<variavelstr valor="" variavel="sTmp" />
<variavelstr valor="" variavel="sAppLabel" />
<variavelstr valor="" variavel="sAppFile" />
<variavelstr valor="" variavel="sCompanyName" />
<!-- pega a lista de aplicativos -->
<learquivo nomearquivo="config.dat" chave="numerodestepos" variaveldestino="$(sTerminalId)" />
<somastring valor1="$(sTerminalId)" valor2="_params.dat" variaveldestino="$(sFileName)" />
<learquivo nomearquivo="$(sFileName)" chave="apps_list" variaveldestino="$(sApps)" />
<string.elements delimiter=";" string="$(sApps)" variavelretorno="$(iNumApps)" />
<!-- mais que um aplicativo. Gera menu de aplicacoes -->
<while variavel="$(iI)" operador="menor" valor="$(iNumApps)">
<string.elementat delimiter=";" element_index="$(iI)" string="$(sApps)" variavelretorno="$(sTmp)" />
<string.elementat delimiter="," element_index="0" string="$(sTmp)" variavelretorno="$(sAppLabel)" />
<string.elementat delimiter="," element_index="1" string="$(sTmp)" variavelretorno="$(sAppFile)" />
<!-- baixa a aplicacao -->
<learquivo nomearquivo="config.dat" chave="walkserver3companyname" variaveldestino="$(sCompanyName)" />
<somastring valor1="$(sCompanyName)" valor2="_" variaveldestino="$(sCompanyName)" />
<string.replace new_substring="" old_substring="$(sCompanyName)" original_string="$(sAppFile)" variavelretorno="$(sAppFile)" />
<variavelstr valor="$(sAppFile)" variavel="sWalkServiceFilename" />
<chamafuncao nome="WalkServicesDownloadFiles" />
<variavelintoperador operador="++" variavelorigem="$(iI)" />
</while>
</funcao>
<funcao nome="WalkServicesMenuServico">
<variavelstr valor="" variavel="sApps" />
<variavelstr valor="" variavel="sTerminalId" />
<variavelstr valor="" variavel="sFileName" />
<!-- pega a lista de aplicativos -->
<learquivo nomearquivo="config.dat" chave="numerodestepos" variaveldestino="$(sTerminalId)" />
<somastring valor1="$(sTerminalId)" valor2="_params.dat" variaveldestino="$(sFileName)" />
<learquivo nomearquivo="$(sFileName)" chave="apps_list" variaveldestino="$(sApps)" />
<imprima mensagem="$(sApps)" />
<variavelstr valor="ESCOLHA O SERVICO:\\" variavel="sMenu" />
<variavelint valor="0" variavel="iRetMenu" />
<variavelint valor="0" variavel="iNumApps" />
<variavelint valor="0" variavel="iNumServicesOnMenu" />
<variavelint valor="0" variavel="iI" />
<variavelstr valor="" variavel="sAppsOnMenu" />
<variavelstr valor="" variavel="sAppLabel" />
<variavelstr valor="" variavel="sAppFile" />
<variavelstr valor="" variavel="sLastAppFile" />
<variavelstr valor="" variavel="sTmp" />
<variavelstr valor="" variavel="sApplicationType" />
<!-- verifica o numero de aplicativos e modulos posxml listados em walkservicesapps -->
<string.elements delimiter=";" string="$(sApps)" variavelretorno="$(iNumApps)" />
<!-- nao tem aplicativo na lista de servicos -->
<if variavel="$(sApps)" operador="igual" valor=" ">
<chamafuncao nome="WalkServicesNoServiceInstalled" />
<exit/>
</if>
<!-- somente um aplicativo. Executa sem menu -->
<if variavel="$(iNumApps)" operador="igual" valor="1">
<string.elementat delimiter=";" element_index="0" string="$(sApps)" variavelretorno="$(sTmp)" />
<string.elementat delimiter="," element_index="0" string="$(sTmp)" variavelretorno="$(sAppLabel)" />
<string.elementat delimiter="," element_index="1" string="$(sTmp)" variavelretorno="$(sAppFile)" />
<string.charat character_index="0" string="$(sAppLabel)" variavelretorno="$(sApplicationType)" />
<!-- nao pode executar app X, pq eh o loader inicial ou modulo de outro aplicativo -->
<if variavel="$(sApplicationType)" operador="igual" valor="X">
<chamafuncao nome="WalkServicesNoServiceInstalled" />
<exit/>
</if>
<!--
<display coluna="0" linha="0" mensagem="executing only one:" />
<display coluna="0" linha="1" mensagem="$(sAppFile)" />
<esperatecla />
-->
<!-- executa ou baixa aplicativo -->
<variavelstr valor="$(sAppFile)" variavel="sAppFilename" />
<chamafuncao nome="WalkServicesDownloadServico" />
</if>
<!-- mais que um aplicativo. Gera menu de aplicacoes -->
<while variavel="$(iI)" operador="menor" valor="$(iNumApps)">
<string.elementat delimiter=";" element_index="$(iI)" string="$(sApps)" variavelretorno="$(sTmp)" />
<string.elementat delimiter="," element_index="0" string="$(sTmp)" variavelretorno="$(sAppLabel)" />
<string.elementat delimiter="," element_index="1" string="$(sTmp)" variavelretorno="$(sAppFile)" />
<!-- verifica c existe algum app X na lista, pq nao entra no menu em conta no num de apps -->
<string.charat character_index="0" string="$(sAppLabel)" variavelretorno="$(sApplicationType)" />
<if variavel="$(sApplicationType)" operador="diferente" valor="X">
<variavelstr valor="$(sAppFile)" variavel="sLastAppFile" />
<somastring valor1="$(sMenu)" valor2="$(sAppLabel)" variaveldestino="$(sMenu)" />
<somastring valor1="$(sMenu)" valor2="\" variaveldestino="$(sMenu)" />
<somastring valor1="$(sAppsOnMenu)" valor2="$(sLastAppFile)" variaveldestino="$(sAppsOnMenu)"/>
<somastring valor1="$(sAppsOnMenu)" valor2=";" variaveldestino="$(sAppsOnMenu)" />
<variavelintoperador operador="++" variavelorigem="$(iNumServicesOnMenu)" />
</if>
<variavelintoperador operador="++" variavelorigem="$(iI)" />
</while>
<!-- apesar de ter varios aplicativos listados em walkserviceapps, nenhum eh executavel -->
<if variavel="$(iNumServicesOnMenu)" operador="igual" valor="0">
<chamafuncao nome="WalkServicesNoServiceInstalled" />
<exit/>
</if>
<!-- tem varios aplicativos listados, mas somente 1 eh executavel. Executa direto sem renderizar menu -->
<if variavel="$(iNumServicesOnMenu)" operador="igual" valor="1">
<!-- o nome do arquivo eh sLastAppFile, pq mesmo tendo varios apps na lista, somente 1 era executavel -->
<!--
<display coluna="0" linha="0" mensagem="executing only one:" />
<display coluna="0" linha="1" mensagem="$(sLastAppFile)" />
<esperatecla />
-->
<!-- executa ou baixa aplicativo -->
<variavelstr valor="$(sLastAppFile)" variavel="sAppFilename" />
<chamafuncao nome="WalkServicesDownloadServico" />
</if>
<!-- mostra menu e filtra opcoes digitadas dentro do range da lista de servicos -->
<menu opcoes="$(sMenu)" variavel="$(iRetMenu)" />
<if variavel="$(iRetMenu)" operador="menor" valor="1">
<chamafuncao nome="WalkServicesMenuServico" />
</if>
<if variavel="$(iRetMenu)" operador="maior" valor="$(iNumServicesOnMenu)">
<chamafuncao nome="WalkServicesMenuServico" />
</if>
<!-- busca o nome do app digitado e manda para execucao ou download se nao existir -->
<variavelintoperador operador="--" variavelorigem="$(iRetMenu)" />
<string.elementat delimiter=";" element_index="$(iRetMenu)" string="$(sAppsOnMenu)" variavelretorno="$(sAppFile)" />
<!--
<display coluna="0" linha="2" mensagem="executing multi:" />
<display coluna="0" linha="3" mensagem="$(sAppFile)" />
<esperatecla />
-->
<!-- executa ou baixa aplicativo -->
<variavelstr valor="$(sAppFile)" variavel="sAppFilename" />
<chamafuncao nome="WalkServicesDownloadServico" />
</funcao>
</pagina>
</aplicativoposxml>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment