Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Current »

Foi implementado nos servidores TMS da Viasoft um endpoint que possibilitara a chamada e execução de um script existente na base de dados.

\uD83D\uDCD8 Instruções:

  1. O servidor deverá ter sido compilado com as seguintes diretivas: DelphiXeUP e VSSCRIPTER;

  2. O script deverá ter sido previamente implementado e existir na base de dados. Este script, ainda, ao ser criado precisa ser definido como tipo 2;

  3. A chamada ao endpoint será feita com o método post, usando o seguinte endereço:

    http://{url:porta}/viasoft/api/UtilsWebService/ExecuteScript
  4. O corpo da requisição deverá ser no formato JSON. Segue um exemplo de uso:

    {
        "script": "TesteServidor.ssproj",
        "dados": [
            {"RazaoSocial": "Empresa Ltda"},
            {"Reduzido": "EL"}
        ]
    }

  5. O nome do script é o mesmo que se encontra no Gerenciador de Projetos, aba Projetos personalizados:

  6. Opcionalmente é possível passar uma lista de dados, os quais serão incluídos no TStringCache e poderão ser acessados durante a execução do script. Exemplo:

    Uses
      uStringCache;
    var
      cRazaoSocial : string;
    begin
      TStringCache.GetCacheString('TesteServidor.ssproj', 'RazaoSocial', cRazaoSocial);
      if cRazaoSocial = 'Empresa Ltda' then
        begin
       ...   
      end;
    end;

  7. É possível realizar o retorno da função, desde que seja no formato string. Para tanto basta adicionar uma entrada no TStringCache. Exemplo:

    uses
      uStringCache;
      
    var
      cRazaoSocial: String;  
      cRetorno: String;                             
    begin
      TStringCache.GetCacheString('TesteServidor.ssproj', 'RazaoSocial', cRazaoSocial);
      if cRazaoSocial = 'Empresa Ltda' then
        begin                                                         
        cRetorno := '{' + 
                      '"retorno_texto": "teste", ' + 
                      '"retorno_inteiro": 1, , ' + 
                      '"retorno_mensagem": "Teste concluído com sucesso!"' + 
                    '}';
        TStringCache.SetCacheString('TesteServidor.ssproj', 'Retorno', cRetorno);         
      end
      else                                                                                       
      begin              
        cRetorno := 'Empresa diferente';
        TStringCache.SetCacheString('TesteServidor.ssproj', 'Retorno', cRetorno);
      end;  
    end;

O valor de retorno deve ser compatível com o padrão json, podendo ser um valor primitivo simples (string, inteiro, etc) ou um objeto json.

  • No labels