Considerações importantes
Os três Robôs que rodam na máquina da Suely e do Mauro são do mesmo projeto, com uma variável (sync igual à Publications, Activities ou Lawsuit) alterada para executar funções diferentes.
Deve se evitar rodar mais de uma instância de qualquer robo para evitar duplicidade.
Podemos observar o código (ilspy) e descompilar e modificar (dnspy) o binário caso necessário, existe também uma versão mais nova dele (dnsapyex). Isto se faz necessário para analisar o código e fazer correções temporárias pois não temos certeza da validade do código fonte, qual é o mais recente e se foi feito modificações após a última compilação de cada robô.
Observações e modificações para atenuar problemas relacionados ao robô de Criar e Verificar
Erro no código da atividade
Este erro se refere a um novo número a ser associado ao código de atividade que deve ser sequencial, o robô entra com o número correto porém como mais de um robô ou talvez a própria Soares também manipula dados no DataJuri, logo esse código escolhido pelo robô é utilizado por outra entidade e assim temos que intervir ou esperar.
Solução 1: Esperar essa sessão do robô expirar para que ele possa depois retornar a esta atividade com um novo código. Não é necessário ação.
Solução 2: Entrar com o próximo número da sequencia e apertar salvar, continuar até que um número seja aceito, o robô então continuará o processo automaticamente.
Erro por falta de responsável e/ou pessoa
O Erik identificou o erro em dois casos distintos.
O primeiro caso um usuário havia sido bloqueado, ao desbloquear este usuário o processo continuou sem problema, essa ação foi tomada para evitar mudar o código do programa. Foi identificado no código a parte em que ele não traz a informação correta devido a forma como foi cadastrado a designação deste usuário e o fato dele ter sido bloqueado.
O segundo caso parece que um dos funcionários entrou de férias ocasionando os mesmos sintomas do caso anterior. O Erik mudou a API para que retorne um valor padrão que será utilizado quando a API não ter um valor para retornar.
A mudança foi esta, de:
if ($currentTeam->name == "Administrativo") { //listando os usuários do mesmo papel do time Revisor - Redirecionamento $usersTeam = UserTeamRole::selectBy( ['entity_id', 'team_id', 'team_role_id'], [$entity->id, 3, 5] ); } else { //listando os usuários do mesmo time $usersTeam = UserTeamRole::selectBy( ['entity_id', 'team_id'], [$entity->id, $currentTeam->id] ); }
Para:
if ($currentTeam) { if ($currentTeam->name == "Administrativo") { //listando os usuários do mesmo papel do time Revisor - Redirecionamento $usersTeam = UserTeamRole::selectBy( ['entity_id', 'team_id', 'team_role_id'], [$entity->id, 3, 5] ); } else { //listando os usuários do mesmo time $usersTeam = UserTeamRole::selectBy( ['entity_id', 'team_id'], [$entity->id, $currentTeam->id] ); } } else { // Implementação provisória [Rever] return json_encode(array( "userName" => 'Maria de Fátima', "userEmail" => '[email protected]' )); }
Comparação do código fonte da Suely e do Shang sobre o ZionRobot
Existem arquivos novos no código fonte encontrado no notebook da Suely que não existem no notebook do Shang, creio que a Suely que ficou mais tempo que o Shang na Onset chegou a continuar o desenvolvimento do ZionRobot.
Como os arquivos OnsetSoaresPiconOutlook.cs em Persistence, IntimacoesCollection.cs em Models\ADVISE e ZionOutlookManager.cs em ZionExchangeManagement.
Comparação do código descompilado dos três robôs que possuem o ZionRobot como origem
Notamos que o robô Redistribuir é o mais recente, sendo o último a ser compilado em 2023-02-16, seguido do robô Sincronizar Atividades compilado em 2022-06-01 e o mais antigo é o robô de Criar Verificar compilado em 2021-10-18.
Comparativo entre o robô Redistribuir e o Sincronizar Atividades:
Comparativo entre o robô Redistribuir e o Criar Verificar:
Mais informações sobre a comparação pode ser encontrado neste arquivo junto com os binários, descompilado e o código fonte junto com os relatórios detalhados do winmerge sobre a comparação do código descompilado do ZonRobot.
Os fluxos sobre cada robô e o documento original sobre a descrição do robô podem ser encontrados aqui:
Robô - Criar Verificar – Suely
O robô faz trabalho de obter intimações/publicações via API e criar atividades “Verificar” para advogado responsável.
No momento, rodando na OnSet.
Código Fonte
O código fonte fica no projeto “ZionRobot” da solução localizada em “.../#PROJECTS/ZionRobot.sln”.
OBS: Para o robô trabalhar na função de criar verificar, é necessário garantir que a propriedade “sync”, localizada no início do arquivo “.../#PROJECTS/Tasks/JobManager.cs”, tenha valor “Publications”.
Fluxo
O fluxo detalhado em diagrama está em “Fluxo - Criar Verificar a partir da Publicação”.
Segue um fluxo simplificado do robô:
1. Obter intimações/publicações via API da plataforma AASP e salvar na pasta “SearchResults”.
a. Obtém publicações de último 5 dias, inclusive da data atual
b. API é acessada via URL
c. Obtém publicações de quatro usuários
d. Segue informações:
i. Url: https://cadastroapi.aasp.org.br/api/Associado/intimacao/json?chave=ACF6121ECEE34259984E14321EBF537F&data=2023-04-27&diferencial=false
ii. Usuários e chaves:
• Tarcisio Rodolfo Soares - 390C565E68C54896974BF98E68498A52
• Cecilia - F2B46D5D631042568A088BE184B1C6A7
• Ana Bertazza - ACF6121ECEE34259984E14321EBF537F
• Tharcizio - 1F5234213ADE49A8B414B8915A979256
iii. Data: deve estar no formato “AAAA-MM-DD”
iv. Diferencial: sempre “false”, isso significa trazer todas as publicações, não importa se já foi lida ou não
2. Extrair informações das publicações, de acordo como configurado no arquivo de blueprint.
3. Varrer por todos os arquivos de publicações, identificando quais precisam ser integradas.
4. Integrar publicações, ou seja, juntar publicações que referem a um mesmo processo.
5. Criar as atividades “Verificar” a partir das publicações no Zflow e DataJuri.
Instalação
Para rodar o robô é preciso ter os arquivos do robô, de consulta e de configuração. A pasta do robô pode estar em qualquer lugar da máquina.
As pastas com arquivos de consulta devem ter seguinte estrutura:
C:/ ----Robot --------Done ------------Verificar ----------------... (pastas nomeadas com data) --------Logs ------------Verificar --------SearchResults ------------AASP ----------------... (pastas nomeadas com data)
A pasta de configuração deve ter seguinte estrutura:
C:/ ----ProgramData --------OnSet Tecnologia ------------Robot ----------------Blueprints --------------------AASP_API.bprt ----------------Configurations --------------------AASP – Ana Bertazza.xml --------------------AASP – Cecilia.xml --------------------AASP – Tarcisio Rodolfo Soares.xml --------------------AASP – Tharcizio.xml --------------------Verificar.xml ----------------Robot.wflow
Observações
Segue algumas observações ao usar o robô:
• Robô possui logs que registram publicações e integrações.
• Robô possui pasta que ficam arquivos OCR de publicações, chamada “SearchResults”.
⤷ Se essa pasta tiver muitos arquivos, o robô não conseguirá varrer por todos os arquivos em tempo limite então não irá prosseguir para integração.
⤷ Então deve-se mover publicações já integradas para outra pasta “Done/Verificar”, quando arquivos da pasta SearchResults chegar a uma certa quantidade.
⤷ Recomenda-se fazer essa movimentação em uma ou duas semanas.
⤷ Antes de mover, garantir que todas as publicações a mover já foram integradas, isto é, arquivo de extensão ztd com “<Document Status="INTEGRATED">”. Em outras palavras, não existir arquivos com status “INTEGRATION”.
• Quando há necessidade de passar robô para outra máquina rodar, deve passar junto a pasta “Done”, “Logs” e “SearchResults”.
Robô – Sincronização Atividades – Mauro
Este é o robo em que o Ricardo fez uma nova versão que está rodando em paralelo.
O robô é responsável por sincronizar atividade do ZFlow para DataJuri e Sharepoint.
No momento, rodando na OnSet.
Código Fonte
O código fonte fica no projeto “ZionRobot” da solução localizada em “.../#PROJECTS/ZionRobot.sln”.
OBS: Para o robô trabalhar na função de criar verificar, é necessário garantir que a propriedade “sync, localizada no início do arquivo “.../#PROJECTS/Tasks/JobManager.cs”, tenha valor “Activities”.
Fluxo
O fluxo detalhado em diagrama está em “Fluxo - Sincronização de Atividades (para DataJuri e Sharepoint).pdf”.
Segue um fluxo simplificado do robô:
• Obter atividades a sincronizar do ZFlow para DataJuri ou Sharepoint
• Executar ações necessárias de acordo com tipo de sincronização
Instalação
Para rodar o robô é preciso ter os arquivos do robô e de configuração.
A pasta do robô pode estar em qualquer lugar da máquina.
A pasta de configuração deve ter seguinte estrutura:
C:/ ----ProgramData --------OnSet Tecnologia ------------Robot ⤷ (Pasta descompactada de “Robot - config - 2023.05.zip”) ----------------Configurations --------------------- Sincronizar.xml ----------------- Robot.wflow
Robô - Email - Soares
O robô possui duas funções, uma é receber emails e criar atividades a partir deles e outra função é enviar emails para clientes.
No momento, rodando na Soares.
Código Fonte
O código fonte fica no projeto “ZionSMTP” da solução localizada em “.../#PROJECTS/RPA e EMAIL/Desktop/ZionSuite.sln”.
Fluxo
O fluxo detalhado em diagrama está em “Fluxo - Email e Comunicar Automático.pdf”.
Fluxo - Email
Segue o fluxo simplificado de email:
• Obter emails não lidos da conta [email protected], com Exchange Service e chaves Microsoft
• Montar esses emails no formato que o ZFlow aceita
• Enviar objetos email para ZFlow via POST com url http://zflow.zionbyonset.com.br/api/zionemails/3/pre
• ZFlow irá criar atividades ou ignorar de acordo com regras de negócio
Fluxo - Comunicar Cliente
Segue o fluxo simplificado de comunicar cliente:
• Obter atividades “Comunicar Cliente Automático” abertas no ZFlow, via GET com url http://zflow.zionbyonset.com.br/api/zionemails/3/toSend
• Enviar email caso atividade tiver conteúdo de email para enviar
• Responder a ZFlow se o email foi enviado ou não, via PUT com url http://zflow.zionbyonset.com.br/api/zionemails/3/sent/{id-atividade}/sent ou http://zflow.zionbyonset.com.br/api/zionemails/3/sent/{id-atividade}
Robô – RPA - Soares
O robô é responsável por automatizar os processos de “Revisão Administrativa” e “Conferir Protocolo”.
No momento, rodando na Soares.
Código Fonte
O código fonte fica no projeto “ZionActivitiesRPA” da solução localizada em “.../#PROJECTS/RPA e EMAIL/Desktop/ZionSuite.sln”.
Fluxo
O fluxo detalhado em diagrama está em “Fluxo - RPA.pdf”.
Segue o fluxo simplificado de RPA:
• Obter atividades RPA a tratar via GET com url http://zflow.zionbyonset.com.br/api/activityautomation/{cliente}/listActivityByType/{tipo-atividade}
• Tentar encontrar informações do processo da atividade via GET com url http://zflow.zionbyonset.com.br/api/activityautomation/{cliente}/lawsuitInformationByFolderNumber/{numero-da-pasta}
• Se for encontrado o processo, aplicar validação
• Compilar atividade e resultado da validação
• Responder a ZFlow o resultado da validação, via POST com url http://zflow.zionbyonset.com.br/api/activityautomation/{cliente}/updateActivity
• Registrar erros em “/errors.log” e sucessos em “/success.log”
Robô - Sincronização Processos (Redistribuição) – Suely?
Este robo roda apenas quando o Tarcisio solicita.
O robô é responsável por sincronizar os processos de ZFlow para DataJuri. Usado após fazer redistribuição de processos em ZFlow.
Roda na OnSet, quando houver necessidade de redistribuir processos.
Código Fonte
O código fonte fica no projeto “ZionRobot” da solução localizada em “.../#PROJECTS/ZionRobot.sln”.
OBS: Para o robô trabalhar na função de criar verificar, é necessário garantir que a propriedade “sync, localizada no início do arquivo “.../#PROJECTS/Tasks/JobManager.cs”, tenha valor “Lawsuit”.
Fluxo
Segue um fluxo simplificado do robô:
• Obter processos a sincronizar via GET com url http://zflow.zionbyonset.com.br/api/lawsuit/{entity_id}/LawsuitsToSync
• Executar ações necessárias de acordo com tipo de sincronização
Instalação
Para rodar o robô é preciso ter os arquivos do robô e de configuração.
A pasta de configuração deve ter seguinte estrutura:
C:/ ----ProgramData --------OnSet Tecnologia ------------Robot ----------------Configurations --------------------- Sincronizar.xml ----------------- Robot.wflow