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.
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.
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 SETSAFETYOFF SETSESSION CLOSEPRIMARY CLOSESECONDARY COMMENT ********************** ** Esta parte do script importa as tabelas Pcard_Holders e Pcards_Transactions necessárias para a revisão de Pcard. ********************** END SETFOLDER /Data/_1_Source_tables COMMENT*** Importe os dados de Pcard_Transactions IMPORTEXCELTO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE COMMENT*** Importe os dados de Pcard_Holders IMPORTEXCELTO 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 SETFOLDER /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 COMPUTEDSTRING(card_number, 16) OPEN s_Pcard_Transactions DEFINE FIELD c_card_number COMPUTEDSTRING(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 EXTRACTFIELDSALL IFBETWEEN(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 EXTRACTFIELDS 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 SETFOLDER /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 COMPUTEDZONED(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 SUMMARIZEON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPENPRESORT COMMENT*** Determine o limite mensal para cada cartão relacionando t_SumTransByCardMonth OPEN p_Pcard_Holders INDEXON 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 SETFILTERTO transaction_amount > p_Pcard_Holders.limit_monthly EXTRACTFIELDSALLTO "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 JOINPKEY 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" PRESORTSECSORT CLOSESECONDARY 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 JOINPKEY 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" PRESORTSECSORT CLOSESECONDARY 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 EXPORTFIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRCTO "XXXXXX@us" OVERWRITE COMMENT *** Exporte transações de cartão de 2018 para o Resultados OPEN p_Pcard_Transactions_2018 EXPORTFIELDS 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 ACLGRCTO "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.
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 SETSAFETYOFF SETSESSION CLOSEPRIMARY CLOSESECONDARY COMMENT ********************** ** Esta parte do script importa as tabelas Pcard_Holders e Pcards_Transactions necessárias para a revisão de Pcard. ********************** END SETFOLDER /Data/_1_Source_tables COMMENT*** Importe os dados de Pcard_Transactions IMPORTEXCELTO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE COMMENT*** Importe os dados de Pcard_Holders IMPORTEXCELTO 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 SETFOLDER /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 COMPUTEDSTRING(card_number, 16) OPEN s_Pcard_Transactions DEFINE FIELD c_card_number COMPUTEDSTRING(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 EXTRACTFIELDSALL IFBETWEEN(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 EXTRACTFIELDS 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 SETFOLDER /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 COMPUTEDZONED(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 SUMMARIZEON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPENPRESORT COMMENT*** Determine o limite mensal para cada cartão relacionando t_SumTransByCardMonth OPEN p_Pcard_Holders INDEXON 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 SETFILTERTO transaction_amount > p_Pcard_Holders.limit_monthly EXTRACTFIELDSALLTO "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 JOINPKEY 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" PRESORTSECSORT CLOSESECONDARY 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 JOINPKEY 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" PRESORTSECSORT CLOSESECONDARY 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 EXPORTFIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRCTO "XXXXXX@us" OVERWRITEPASSWORD 1 COMMENT *** Exporte transações de cartão de 2018 para o Resultados OPEN p_Pcard_Transactions_2018 EXPORTFIELDS 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 ACLGRCTO "XXXXXX@us" OVERWRITEPASSWORD 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.
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 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.