...
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:
Code Block http://{url:porta}/viasoft/api/UtilsWebService/ExecuteScript
O corpo da requisição deverá ser no formato JSON. Segue um exemplo de uso:
Code Block { "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:
Code Block language pas Uses uStringCache; var cRazaoSocial : string; cReduzido : string; begin TStringCache.GetCacheString('TesteServidor.ssproj', 'RazaoSocial', cRazaoSocial); := TStringCache.GetCacheString('TesteServidor.ssproj', 'RazaoSocialReduzido', cReduzido); if cRazadoSocialcRazaoSocial = '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:
Code Block language pas 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;
...