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:
O servidor deverá ter sido compilado com as seguintes diretivas: DelphiXeUP e VSSCRIPTER;
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;
A chamada ao endpoint será feita com o método post, usando o seguinte endereço:
http://{url:porta}/viasoft/api/UtilsWebService/ExecuteScript
O corpo da requisição deverá ser no formato JSON. Segue um exemplo de uso:
{ "script": "TesteServidor.ssproj", "dados": [ {"RazaoSocial": "Empresa Ltda"}, {"Reduzido": "EL"} ] }
O nome do script é o mesmo que se encontra no Gerenciador de Projetos, aba Projetos personalizados:
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.GetCacheString('TesteServidor.ssproj', 'RazaoSocial'); if cRazadoSocial = 'Empresa Ltda' then begin ... end; end;
É 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.SetCacheString('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.