Criando um script para automatizar um processo de negócios
Com a globalização crescente, a evolução dos mercados e a pressão regulatória para melhorar o risco e controlar os ambientes sob condições de negócios em rápida mudança, é essencial que as organizações desenvolvam programas de monitoramento contínuo. Esses programas de monitoramento contínuo geralmente exigem scripts para automatizar os processos de negócios. Neste artigo, discutiremos como criar um script no Analytics para automatizar um processo de negócios.
Este artigo ilustra como automatizar a revisão de cartões de compras (Pcards) usando um script do Analytics. No entanto, o mesmo fluxo de trabalho também pode ser aplicado a uma variedade de outros casos de uso em finanças, IT, auditoria, conformidade e risco.
Observação
Para os fins deste guia de solução, você não precisa entender a criação de scripts em detalhes. Se quiser saber mais, consulte Criação de scripts no Analytics.
Onde posso criar scripts?
Você pode criar scripts no Analytics.
O panorama mais amplo
Um projeto do Analytics armazena informações de análise de dados, incluindo tabelas e scripts.
Um script importa, prepara, analisa e exporta dados para o Resultados.
Você pode usar um script que executa ad hoc no Analytics, convertê-lo em um script de análise (adicionando um cabeçalho de análise) e fazer o upload do script no Robôs para executar tarefas de maneira automatizada.
Etapas
Pronto para uma demonstração?
Vamos dar uma olhada mais de perto nesses recursos no contexto.
Observação
Se quiser experimentar o fluxo de trabalho apresentado neste guia de solução, faça o download dos arquivos de dados do Excel (Pcard_Holders e Pcard_Transactions) e copie e cole o script de exemplo no Analytics. Como alternativa, você pode simplesmente revisar o script para ter uma ideia geral do que ele faz.
1. Criar um script
Um script pode ser algo tão simples quanto executar um comando em um único campo ou pode ser substancial o suficiente para executar a maior parte do trabalho para atingir os objetivos da análise.
Dica
Normalmente, a melhor prática é segregar tarefas em scripts separados. Para sua conveniência, apresentamos a importação, preparação, análise e exportação de dados em um único script.

Exemplo
Cenário
Você é auditor interno da Vandelay Industries, principal fabricante de látex do país. Para ajudar os funcionários da Vandelay a fazer pequenas compras de materiais de escritório e equipamentos de informática, a gerência implementou um programa de Pcard. O programa Pcard exige uma revisão anual de auditoria para garantir que as transações estejam de acordo com as políticas da Vandelay.
Você quer usar um script para automatizar as principais tarefas envolvidas na realização de uma análise. Você pretende exportar dados de exceção e de transações para o Resultados para fins de relatório.
Processo
Criação de scripts de importação, preparação e análise de dados
Primeiro, você cria um projeto do Analytics e adiciona os dois arquivos de dados do Excel ao mesmo local em que o projeto do Analytics está salvo. Depois, você cria um único script no Analytics chamado Pcard_Review, que:
- importa os arquivos de dados do Excel necessários para análise
- prepara os dados antes da análise
- analisa dados e identifica Pcards que excedem seus limites mensais
Por fim, você executa o script no Analytics, que produz uma série de tabelas de origem, preparadas e de resultados.
Criação de script da exportação de dados para o Resultados
Você vai para o Resultados e cria dois contêineres de dados:
- Coleção Revisão de cartão de compras
- Análise Auditoria de cartão de compras 2018
No Analytics, você exporta manualmente:
- r_EmployeesOverMonthlyLimit para uma nova tabela de Employees over monthly limit no Resultados
- p_Pcard_Transactions_2018 para uma nova tabela Procurement card transactions 2018 no Resultados
Por fim, copie a sintaxe EXPORT do log do Analytics para o script.
Observação
Você exporta manualmente primeiro para obter a sintaxe de script correta. Depois de criar o script, a exportação de dados é repetida de forma automatizada. A sintaxe EXPORT contém os IDs da tabela de resultados específicos que você precisa para executar a parte de exportação de dados do script. Você pode copiar o script inteiro abaixo e substituir as duas instâncias de "XXXXXX@us" pelos IDs exclusivos da Tabela do Resultados.
Resultado: script de revisão Pcard

COMMENT
*************************************************
*** Nome do script: Pcard_Review
*** Descrição: esse script faz o seguinte:
*** 1 - Importa informações de Pcard_Holders e Pcard_Transactions
*** 2 - Prepara as tabelas acima para análise
*** 3 - Identifica funcionários e cartões que excederam seus limites mensais
***
*** Escrito por: Seu nome, Vandelay - Data de hoje
*** Versão: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** Esta parte do script importa as tabelas Pcard_Holders e Pcards_Transactions necessárias para a revisão de Pcard.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Importe os dados de Pcard_Transactions
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Importe os dados de Pcard_Holders
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** Esta parte do script prepara dados para análise.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT *** Harmonize os campos card_number nas tabelas s_Pcard_Holders e s_Pcard_Transactions para poder usá-los como campos-chave em uma associação posterior
OPEN s_Pcard_Holders
DEFINE FIELD c_card_number COMPUTED STRING(card_number, 16)
OPEN s_Pcard_Transactions
DEFINE FIELD c_card_number COMPUTED STRING(card_number, 16)
COMMENT*** Extraia as datas em 2018 na tabela s_Pcard_Transactions e envie-as para p_Pcard_Transactions_2018
OPEN s_Pcard_Transactions
EXTRACT FIELDS ALL IF BETWEEN(transaction_date, `20180101` , `20181231 235959`) TO "p_Pcard_Transactions_2018"
OPEN p_Pcard_Transactions_2018
COMMENT*** Extraia os campos necessários em s_Pcard_Holders e envie-os para p_Pcard_Holders
OPEN s_Pcard_Holders
EXTRACT FIELDS employee_number employee_name email_address c_card_number limit_transaction limit_monthly TO "p_Pcard_Holders"
OPEN p_Pcard_Holders
COMMENT
**********************
** Esta parte do script analisa os dados para identificar se os cartões de compras estão excedendo os limites mensais. Se os cartões excederem os limites mensais, significa que os controles estão falhando e que o acompanhamento e a correção são necessários.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT *** Crie um campo calculado para determinar o mês em que cada transação ocorreu para identificar cartões que excedam seu limite mensal
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMENTÁRIO*** Agrupe transações por cartão e mês para calcular o total mensal de cada cartão.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Determine o limite mensal para cada cartão relacionando t_SumTransByCardMonth
OPEN p_Pcard_Holders
INDEX ON c_card_number TO "Pcard_Holders_on_card_number"
OPEN t_SumTransByCardMonth
DEFINE RELATION c_card_number WITH p_Pcard_Holders INDEX Pcard_Holders_on_card_number
COMENTÁRIO*** Filtre e extraia problemas quando o limite mensal for excedido
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Participe de r_CardOverMonthlyLimit com a tabela p_Pcard_Holders para identificar os funcionários que excederam o limite mensal.
OPEN r_CardsOverMonthlyLimit
OPEN p_Pcard_Holders SECONDARY
JOIN PKEY c_card_number FIELDS c_month c_card_number COUNT transaction_amount SKEY c_card_number WITH email_address employee_name employee_number limit_monthly TO "r_EmployeesOverMonthlyLimit" PRESORT SECSORT
CLOSE SECONDARY
OPEN "r_EmployeesOverMonthlyLimit"
COMMENT*** Participe de r_CardOverMonthlyLimit com a tabela p_Pcard_Holders para identificar os funcionários que excederam o limite mensal.
OPEN r_CardsOverMonthlyLimit
OPEN p_Pcard_Holders SECONDARY
JOIN PKEY c_card_number FIELDS c_month c_card_number COUNT transaction_amount SKEY c_card_number WITH email_address employee_name employee_number limit_monthly TO "r_EmployeesOverMonthlyLimit" PRESORT SECSORT
CLOSE SECONDARY
OPEN "r_EmployeesOverMonthlyLimit"
COMMENT
**********************
** Esta parte do script exporta dados para o aplicativo Resultados.
**********************
END
COMMENT *** Exporte registros de funcionários que estão acima do limite mensal para o Resultados
OPEN r_EmployeesOverMonthlyLimit
EXPORT FIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRC TO "XXXXXX@us" OVERWRITE
COMMENT *** Exporte transações de cartão de 2018 para o Resultados
OPEN p_Pcard_Transactions_2018
EXPORT FIELDS transaction_number transaction_date transaction_amount source_currency merchant_number merchant_name merchant_location MCC country_code c_month c_card_number billing_currency account_id ACLGRC TO "XXXXXX@us" OVERWRITE
2. Adicionar um cabeçalho de análise ao script
O cabeçalho de análise é uma série de tags analíticas incluídas em um bloco de comentários no início de um script do Analytics. Um cabeçalho de análise é necessário para qualquer script de análise que você pretende executar no Robôs.
Etiquetas são comandos declarativos dentro do cabeçalho da análise que definem entradas, saídas e instruções para um script de análise. As etiquetas permitem que o script de análise seja executado sem supervisão, imediatamente ou em um horário agendado.
Dica
Um cabeçalho de análise fornece instruções sobre como executar o script de análise no Robôs. Algumas etiquetas são usadas pelo Robôs para receber informações e outras especificam o que deve ser produzido pelo script de análise. Por exemplo, você pode precisar dizer ao Robôs de qual arquivo ele precisa para uma importação ou qual tabela de resultados deve disponibilizar para os usuários finais.

Exemplo
Cenário
Atualmente, você executa o script do Analytics como ad hoc. Você deseja programar o script para ser executado de forma automatizada. Isso liberará você da tarefa demorada de executar manualmente a análise.
Processo
Você converte o script regular em um script de análise adicionando um cabeçalho de análise a Pcard_Review que inclui as seguintes etiquetas:
- FILE especifica um arquivo do Excel que fornece entrada para um script de análise em execução no Robôs
- PASSWORD cria um parâmetro de entrada de senha para o script de análise
- RESULT LOG assegura que um log seja gerado toda vez que o script de análise for executado
- TABELA DE RESULTADOS garante que uma tabela de resultados esteja disponível para usuários finais quando o script de análise é executado com sucesso no Robôs
Como o cabeçalho da análise agora contém a etiqueta PASSWORD, você também adiciona a sintaxe PASSWORD à parte do script que exporta dados para o Resultados.
Observação
O parâmetro de entrada de senha e o parâmetro de senha no comando EXPORT são vinculados usando o mesmo identificador numérico:
//PASSWORD 1 Token de Acesso da Diligent One
,
,
,
EXPORT ... PASSWORD 1
,
,
,
EXPORT ... PASSWORD 1
Resultado: Script de revisão Pcard com cabeçalho de análise e sintaxe PASSWORD atualizada

COMMENT
//ANALYTIC TYPE Analysis Pcard_Review
Essa análise identifica todos os cartões e funcionários que excederam seu limite mensal de Pcard e exporta exceções e transações para o Resultados.
//FILE Pcard_Holders.xlsx
//FILE Pcard_Transactions.xlsx
//PASSWORD 1 Token de Acesso da Diligent One
//RESULT TABLE r_CardsOverMonthlyLimit
//RESULT LOG
END
COMMENT
*************************************************
*** Nome do script: Pcard_Review
*** Descrição: esse script faz o seguinte:
*** 1 - Importa informações de Pcard_Holders e Pcard_Transactions
*** 2 - Prepara as tabelas acima para análise
*** 3 - Identifica funcionários e cartões que excederam seus limites mensais
***
*** Escrito por: Seu nome, Vandelay - Data de hoje
*** Versão: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** Esta parte do script importa as tabelas Pcard_Holders e Pcards_Transactions necessárias para a revisão de Pcard.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Importe os dados de Pcard_Transactions
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Importe os dados de Pcard_Holders
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** Esta parte do script prepara dados para análise.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT *** Harmonize os campos card_number nas tabelas s_Pcard_Holders e s_Pcard_Transactions para poder usá-los como campos-chave em uma associação posterior
OPEN s_Pcard_Holders
DEFINE FIELD c_card_number COMPUTED STRING(card_number, 16)
OPEN s_Pcard_Transactions
DEFINE FIELD c_card_number COMPUTED STRING(card_number, 16)
COMMENT*** Extraia as datas em 2018 na tabela s_Pcard_Transactions e envie-as para p_Pcard_Transactions_2018
OPEN s_Pcard_Transactions
EXTRACT FIELDS ALL IF BETWEEN(transaction_date, `20180101` , `20181231 235959`) TO "p_Pcard_Transactions_2018"
OPEN p_Pcard_Transactions_2018
COMMENT*** Extraia os campos necessários em s_Pcard_Holders e envie-os para p_Pcard_Holders
OPEN s_Pcard_Holders
EXTRACT FIELDS employee_number employee_name email_address c_card_number limit_transaction limit_monthly TO "p_Pcard_Holders"
OPEN p_Pcard_Holders
COMMENT
**********************
** Esta parte do script analisa os dados para identificar se os cartões de compras estão excedendo os limites mensais. Se os cartões excederem os limites mensais, significa que os controles estão falhando e que o acompanhamento e a correção são necessários.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT *** Crie um campo calculado para determinar o mês em que cada transação ocorreu para identificar cartões que excedam seu limite mensal
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMENTÁRIO*** Agrupe transações por cartão e mês para calcular o total mensal de cada cartão.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Determine o limite mensal para cada cartão relacionando t_SumTransByCardMonth
OPEN p_Pcard_Holders
INDEX ON c_card_number TO "Pcard_Holders_on_card_number"
OPEN t_SumTransByCardMonth
DEFINE RELATION c_card_number WITH p_Pcard_Holders INDEX Pcard_Holders_on_card_number
COMENTÁRIO*** Filtre e extraia problemas quando o limite mensal for excedido
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Participe de r_CardOverMonthlyLimit com a tabela p_Pcard_Holders para identificar os funcionários que excederam o limite mensal.
OPEN r_CardsOverMonthlyLimit
OPEN p_Pcard_Holders SECONDARY
JOIN PKEY c_card_number FIELDS c_month c_card_number COUNT transaction_amount SKEY c_card_number WITH email_address employee_name employee_number limit_monthly TO "r_EmployeesOverMonthlyLimit" PRESORT SECSORT
CLOSE SECONDARY
OPEN "r_EmployeesOverMonthlyLimit"
COMMENT*** Participe de r_CardOverMonthlyLimit com a tabela p_Pcard_Holders para identificar os funcionários que excederam o limite mensal.
OPEN r_CardsOverMonthlyLimit
OPEN p_Pcard_Holders SECONDARY
JOIN PKEY c_card_number FIELDS c_month c_card_number COUNT transaction_amount SKEY c_card_number WITH email_address employee_name employee_number limit_monthly TO "r_EmployeesOverMonthlyLimit" PRESORT SECSORT
CLOSE SECONDARY
OPEN "r_EmployeesOverMonthlyLimit"
COMMENT
**********************
** Esta parte do script exporta dados para o aplicativo Resultados.
**********************
END
COMMENT *** Exporte registros de funcionários que estão acima do limite mensal para o Resultados
OPEN r_EmployeesOverMonthlyLimit
EXPORT FIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRC TO "XXXXXX@us" OVERWRITE PASSWORD 1
COMMENT *** Exporte transações de cartão de 2018 para o Resultados
OPEN p_Pcard_Transactions_2018
EXPORT FIELDS transaction_number transaction_date transaction_amount source_currency merchant_number merchant_name merchant_location MCC country_code c_month c_card_number billing_currency account_id ACLGRC TO "XXXXXX@us" OVERWRITE PASSWORD 1
3. Carregar o script no Robôs
Depois de criar um script de análise no Analytics, você pode enviá-lo para um robô no aplicativo Robôs para testar e configurar a automação de tarefas de que você precisa. A ação de carregamento de scripts do Analytics para o Robôs é chamada de confirmação de scripts.
Dica
Você pode usar ferramentas no Analytics para validar a sintaxe do cabeçalho de análise para garantir que esteja correta. Realize a validação antes de enviar os scripts para o Robôs, para que o script de análise não falhe quando for executado.

Exemplo
Cenário
Você deseja executar o script de análise de forma automatizada no aplicativo Robôs. Você precisa fazer o upload do script no aplicativo Robôs para começar.
Processo
No menu principal do Analytics, selecione Arquivo > Confirmar scripts. Você seleciona sua organização, especifica o nome Revisão de Pcard 2018 para o novo robô e clica em Criar.
Finalmente, você insere a seguinte mensagem de confirmação e clica em OK:
Este é o upload inicial de Pcard_Review, um script usado para automatizar a revisão de Pcards.
Resultado
Você carregou com êxito o script de análise em um robô.
O que fazer em seguida?
Saiba como executar o script de análise de forma automatizada
O aplicativo Robôs é usado para automatizar tarefas repetitivas usando scripts criados no Analytics e liberar tempo e recursos para você e sua equipe realizarem trabalhos de natureza mais estratégica.
Para saber mais, consulte Agendando uma análise.
Inscreva-se em um curso da Academia
Para continuar adquirindo conhecimento sobre os conceitos introduzidos neste artigo, faça o caminho de aprendizado ACL 270.
A Academia é a central de recursos de treinamento on-line da Diligent. Os cursos da Academia são disponibilizados gratuitamente para qualquer usuário com uma assinatura do Diligent One. Para obter mais informações, consulte Academia.