Tarefa de script
A tarefa de script representa um código de programação que é executado pelo sistema.
A tarefa de script executa um código de programação pré-configurado de modo a obter um resultado pré-definido, geralmente usando como base dados da solicitação.
Esse recurso está disponível somente em planos de cloud privado do Zeev, e seu uso para novas automações é desestimulado.
Ela permite executar os seguintes tipos de script:
Comandos SQL;
Comandos Powershell;
Classe .NET C#.
Casos de uso
As tarefas de script geralmente são usadas para:
Realizar algum tipo de cálculo matemático envolvendo um ou mais valores de campos do formulário. Por exemplo, multiplicar os valores dos campos
quantidade
evalorUnitario
e salvar o resultado no campovalorTotal;
Realizar algum tipo de cálculo de datas envolvendo um ou mais valores de campos do formulário. Por exemplo subtrair 30 dias do campo
dataLimite
e salvar o valor no campodataAlerta
;Realizar algum tipo de manipulação de textos envolvendo um ou mais valores de campos do formulário. Por exemplo concatenar os valores dos campos
primeiroNome
esobrenome
e salvar o valor no camponomeCompleto
;
A integração entre o código de programação e as variáveis da solicitação são feitas com o uso de tokens. Veja, por exemplo, o exemplo de código fictício abaixo que irá concatenar os campos primeiroNome
e sobrenome
string primeiroNome = "{Form.primeiroNome}";
string sobrenome = "{Form.sobrenome}";
string nomeCompleto = primeiroNome + " " + sobrenome;
Alternativa para as tarefas de script
A tarefa de script, como comentado acima, é bloqueada e limitada somente a ambientes de cloud privado e alguns ambientes antigos, de versões anteriores do Zeev, para fins de compatibilidade. Seu uso para novas automações é desestimulado.
Esses são alguns dos motivos:
Eventuais códigos não-otimizados podem causar problemas de performance latentes da aplicação, impactando os usuários finais;
A liberação de permissões para a execução de códigos dinâmicos é concessão de impacto a segurança da plataforma desnecessária;
A dependência de comandos SQL (quando utilizado esse recurso) que acessem diretamente os objetos do banco de dados do Zeev impede a evolução da estrutura de dados do produto;
A dependência de comandos SQL (quando utilizado esse recurso) para fins de comunicação, consulta e integração com outros bancos de dados não é uma boa prática, na medida em que integrações de banco de dados ponta-a-ponta são consideradas universalmente como má-práticas de desenvolvimento de softwares e integrações;
A maior parte das operações realizadas com a tarefa de script podem ser realizadas com o uso de tokens e tarefas de serviços.
Tarefa de serviçoExecutar comandos SQL
Essa configuração permite a execução de comandos SELECT
, INSERT
, UPDATE
, blocos de código e chamadas a stored procedures, seja no banco de dados do Zeev, seja em outro banco de dados.
Caso se deseje executar um comando em outro banco de dados ou servidor, crie uma conexão e configure a atividade para usar essa conexão. Certifique-se de que seu servidor SQL é acessível e visível via rede pelo servidor onde está instalado o Zeev.
Jamais configure uma tarefa de script para utilizar uma conexão que aponte para o próprio banco de dados do Zeev. Caso deseje utilizar o banco de dados do Zeev, deixe a conexão em branco.
O tempo máximo para a duração da execução de um comando na base de dados é de 30 segundos. Passando desse tempo o sistema apresentará erro de "timeout".
Por questões de segurança e integridade não são permitidos o uso de comandos de DELETE
ou DROP
neste elemento. Ao tentar configurar esse tipo de comando será gerada mensagem de erro "O campo COMANDO possui um comando de exclusão inválido".
Para tarefas configuradas sem definição de conexão
O comando será executado dentro de uma transação que o Zeev abre a cada execução de tarefa. Por isso, não é necessário incluir os comandos de iniciar ou fechar transação. Ao ocorrer um erro, a transação sofrerá rollback.
Para tarefas configuradas com conexão dos provedores SQL Server e Oracle
O comando será executado sem uso de transação. Nesse caso é possível explicitar no campo "Comando" da tarefa a utilização de transação, commit
, rollback
, etc. Essa operação será feita diretamente na conexão a base de dados destino. Ao ocorrer um erro, a transação sofrerá rollback.
Caso esteja executando comandos em um banco de dados ORACLE, poderá receber o seguinte erro:
ORA-00911: invalid character
Esse erro ocorre geralmente devido a uso do caracter ponto-e-vírgula (";") para delimitar comandos diferentes. Infelizmente o conector Oracle utilizado pela ferramenta não suporta esse delimitador. Você deverá encapsular o seu código em uma Stored Procedure ou utilizar mais de uma tarefa de banco de dados.
Para tarefas configuradas com conexão do provedor ODBC
O comando será executado dentro de uma transação no banco de dados destino, portanto não é necessário incluir os comandos de iniciar ou fechar transação. Ao ocorrer um erro, a transação sofrerá rollback.
Por questões de segurança e integridade não são permitidos o uso de comandos de DELETE ou DROP neste elemento. Ao tentar configurar esse tipo de comando será gerada mensagem de erro "O campo COMANDO possui um comando de exclusão inválido".
Executar comandos Powershell
Permite a execução de comandos Powershell a serem executados no servidor de aplicação.
Executar comandos em .NET C#
Permite declarar classes em linguagem C# para executar operações de processamento de dados. O resultado de uma chamada a um método em C# poderá ser direcionado para ser salvo em um campo do formulário eletrônico de um aplicativo de processo.
É possível chamar classes das seguintes bibliotecas do .Net Framework:
System.dll
System.Configuration.dll
System.Data.dll
System.Linq.dll
System.Web.dll
System.Web.Services.dll
System.Xml.dll
System.Xml.Linq.dll
Demonstração prática
Confira no vídeo a seguir o passo-a-passo de como utilizar a tarefa de script.
Atualizado