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 4 Next »

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
      cRazaoSocial := TStringCache('TesteServidor.ssproj', 'RazaoSocial');
      if cRazadoSocial = '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
      cRetorno : string;
    begin
      cRetorno := '{"retorno_texto":"teste", "retorno_inteiro":1}'; // ou cRetorno := 'valor simples'   
      TStringCache('TesteServidor.ssproj', 'Retorno', cRetorno);  
    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