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.
Processar
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çãoRevisão de cartão de compras
- AnáliseAuditoria 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
*************************************************
*** Script name: Pcard_Review
*** Description: This script does the following:
*** 1 - Imports Pcard_Holders and Pcard_Transactions information
*** 2 - Prepares the above tables for analysis
*** 3 - Identifies employees and cards that exceeded their monthly limits
***
*** Written by: Your name, Vandelay - Today's date
*** Version: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** This portion of the script imports the Pcard_Holders table and Pcards_Transactions table required for the Pcard review.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Import the Pcard_Transactions data
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Import the Pcard_Holders data
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** This portion of the script prepares data for analysis.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT*** Harmonize the card_number fields in the s_Pcard_Holders and s_Pcard_Transactions tables so you can use it as a key field in a later Join
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*** Extract dates in 2018 in the s_Pcard_Transactions table and send them to 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*** Extract required fields in s_Pcard_Holders and send them to 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
**********************
** This portion of the script analyzes data to identify whether Procurement cards are exceeding their monthly limits. If cards are exceeding monthly limits it means controls are failing and follow-up and remediation is required.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT*** Create a computed field to determine the month each transaction occurred in so you can identify cards that exceed their monthly limit
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMMENT*** Group transactions by card and month to calculate the monthly total for each card.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Determine the monthly limit for each card by relating the 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
COMMENT*** Filter and extract issues where the monthly limit was exceeded
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Join r_CardOverMonthlyLimit with the p_Pcard_Holders table to identify the employees who exceeded their monthly limit.
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*** Join r_CardOverMonthlyLimit with the p_Pcard_Holders table to identify the employees who exceeded their monthly limit.
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
**********************
** This portion of the script exports data to the Results app.
**********************
END
COMMENT*** Export records of employees who are over their monthly limit to Results
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*** Export Pcard Transactions from 2018 to Results
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 o cabeçalho da 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.
Processar
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:
- ARQUIVOespecifica um arquivo do Excel que fornece entrada para um script de análise em execução no Robôs
- PASSWORDcria um parâmetro de entrada de senha para o script de análise
- RESULT LOGassegura que um log seja gerado toda vez que o script de análise for executado
- RESULT TABLEgarante 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 Diligent One Access Token
.
.
.
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
This analysis identifies all cards and employees that exceeded their monthly Pcard limit and exports exceptions and transactions to Results.
//FILE Pcard_Holders.xlsx
//FILE Pcard_Transactions.xlsx
//PASSWORD 1 Diligent One Access Token
//RESULT TABLE r_CardsOverMonthlyLimit
//RESULT LOG
END
COMMENT
*************************************************
*** Script name: Pcard_Review
*** Description: This script does the following:
*** 1 - Imports Pcard_Holders and Pcard_Transactions information
*** 2 - Prepares the above tables for analysis
*** 3 - Identifies employees and cards that exceeded their monthly limits
***
*** Written by: Your name, Vandelay - Today's date
*** Version: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** This portion of the script imports the Pcard_Holders table and Pcards_Transactions table required for the Pcard review.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Import the Pcard_Transactions data
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Import the Pcard_Holders data
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** This portion of the script prepares data for analysis.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT*** Harmonize the card_number fields in the s_Pcard_Holders and s_Pcard_Transactions tables so you can use it as a key field in a later Join
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*** Extract dates in 2018 in the s_Pcard_Transactions table and send them to 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*** Extract required fields in s_Pcard_Holders and send them to 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
**********************
** This portion of the script analyzes data to identify whether Procurement cards are exceeding their monthly limits. If cards are exceeding monthly limits it means controls are failing and follow-up and remediation is required.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT*** Create a computed field to determine the month each transaction occurred in so you can identify cards that exceed their monthly limit
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMMENT*** Group transactions by card and month to calculate the monthly total for each card.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Determine the monthly limit for each card by relating the 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
COMMENT*** Filter and extract issues where the monthly limit was exceeded
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Join r_CardOverMonthlyLimit with the p_Pcard_Holders table to identify the employees who exceeded their monthly limit.
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*** Join r_CardOverMonthlyLimit with the p_Pcard_Holders table to identify the employees who exceeded their monthly limit.
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
**********************
** This portion of the script exports data to the Results app.
**********************
END
COMMENT*** Export records of employees who are over their monthly limit to Results
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*** Export Pcard Transactions from 2018 to Results
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.
Processar
No menu principal do Analytics, selecione Arquivo > Confirmar e enviar 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ô.
Quais são as próximas etapas?
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 é uma central de recursos de treinamento on-line da Diligent. Os cursos da Academia são disponibilizados gratuitamente para qualquer usuário com uma assinatura da Diligent One. Para obter mais informações, consulte Academia.