Creación de scripts para automatizar un proceso de negocio
Con la creciente globalización, la evolución de los mercados y la presión regulatoria para mejorar los entornos de riesgo y control en condiciones comerciales cambiantes es fundamental que las organizaciones desarrollen programas de monitoreo continuo. Estos programas de monitoreo continuo suelen requerir el uso de scripts para automatizar procesos. En este artículo, discutimos cómo crear un script en Analytics para automatizar un proceso de negocios.
Este artículo ilustra cómo automatizar la revisión de las tarjetas de compra (Pcards, en inglés) utilizando un script de Analytics. Sin embargo, el mismo flujo de trabajo también se puede aplicar a una variedad de otros casos de uso en finanzas, sistemas, auditoría, cumplimiento y riesgos.
Nota
Para los fines de esta guía de soluciones, no es necesario entender en detalle la creación de scripts. Si desea obtener más información, consulte Creación de scripts en Analytics.
¿Dónde puedo crear scripts?
Puede crear scripts en Analytics.
La visión general
Un proyecto de Analytics almacena información de análisis de datos, incluidas tablas y scripts.
Un script importa, prepara, analiza y exporta datos a Resultados.
Luego puede tomar un script que ejecute ad hoc en Analytics, convertirlo en un script de estudio analítico (agregando un encabezado de estudio analítico) y cargar el script a Robots para ejecutar tareas de forma automática.

Pasos

¿Listo para una visita guiada?
Echemos un vistazo más de cerca a estas características en el contexto.
Nota
Si desea probar el flujo de trabajo presentado en esta guía de soluciones, puede descargar archivos de datos de Excel (Pcard_Holders (titulares de tarjetas de compra) y Pcard_Transactions (transacciones con tarjetas de compra)) y copiar y pegar el script de ejemplo en Analytics. Alternativamente, simplemente puede revisar el script para tener una idea general de lo que hace.
1. Crear un script
Los scripts pueden ser tan simples como para ejecutar un comando en un solo campo o tan complejos como para realizar todo el trabajo necesario para alcanzar los objetivos del análisis.
Consejo
Normalmente, la mejor práctica es segregar tareas en scripts separados. Para su comodidad, hemos presentado la importación, preparación, análisis y exportación de datos en un solo script.
Ejemplo
Escenario
Usted es un auditor interno en Vandelay Industries, el principal fabricante de látex del país. Para ayudar a los empleados de Vandelay a realizar pequeñas compras de suministros de oficina y equipo de computadora, la gerencia ha implementado un programa Pcard. El programa Pcard requiere una revisión de auditoría anual para asegurase que las transacciones cumplan con las políticas de Vandelay.
Desea utilizar un script para automatizar las tareas claves involucradas en la realización de un análisis. Tiene la intención de exportar datos de excepción y transacciones a Resultados para fines de reportes.
Proceso
Importación, preparación y análisis de datos de los scripts.
Primero, crea un proyecto de Analytics y agrega los dos archivos de datos de Excel a la misma ubicación donde se guarda el proyecto de Analytics. Luego, crea un solo script en Analytics llamado Pcard_Review (Revisión de tarjetas de compra) que:
- importa los archivos de datos de Excel requeridos para el análisis
- prepara los datos antes del análisis
- analiza datos e identifica Pcards que exceden sus límites mensuales
Finalmente, ejecuta el script en Analytics, que produce una serie de tablas de origen, preparadas y de resultados.
Generar scripts para la exportación de datos a Resultados
Vaya a Resultados y cree dos contenedores de datos:
- ColecciónRevisión de la tarjeta de compra
- AnálisisAuditoría de tarjetas de compra de 2018
Desde Analytics, usted exporta manualmente:
- r_EmployeesOverMonthlyLimit a una nueva tabla Empleados por encima del límite mensual en Resultados
- p_Pcard_Transactions_2018 a una nueva tabla Transacciones con tarjetas de compra 2018 en Resultados
Finalmente, copie la sintaxis EXPORT del log de Analytics en el script.
Nota
Primero exporta manualmente para obtener la sintaxis correcta del script. Una vez programado, la exportación de datos se puede repetir de forma automatizada. La sintaxis de EXPORT contiene los identificadores específicos de la tabla de Resultados que necesita para ejecutar la porción de exportación de datos del script. Puede copiar el script completo a continuación y reemplazar las dos instancias de "XXXXXX@us" con los identificadores únicos de la tabla de Resultados.
Resultado: Script de revisión de 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. Agregue un encabezado de estudio analítico al script
Un encabezado de estudio analítico es una serie de etiquetas encerradas en un bloque de comentario al principio de un script de Analytics. El encabezado de estudio analítico es obligatorio para todos los scripts de estudios analíticos que desee ejecutar en Robots.
Las etiquetas son comandos declarativos dentro del encabezado de estudio analítico que definen entradas, salidas e instrucciones para un script de estudio analítico. Las etiquetas permiten que el script de estudio analítico se ejecute sin intervención del usuario, ya sea de forma inmediata o programada.
Consejo
Un encabezado de estudio analítico proporciona instrucciones sobre cómo ejecutar el script de estudio analítico en Robots. Robots utiliza algunas etiquetas para recibir información y otras especifican qué debe producir el script de estudio analítico. Por ejemplo, es posible que deba indicar a Robots qué archivo necesita para una importación o qué tabla de resultados debe poner a disposición de los usuarios finales.
Ejemplo
Escenario
Actualmente, usted ejecuta el script de Analytics de manera ad hoc. Desea programar el script para que se ejecute de forma automatizada. Esto lo liberará de la ardua tarea de ejecutar manualmente el análisis.
Proceso
Usted convierte el script normal en un script de estudio analítico agregando un encabezado de estudio analítico a Pcard_Review que incluye las siguientes etiquetas:
- ARCHIVOEspecifica un archivo de Excel que proporciona entrada para un script de estudio analítico que se ejecuta en Robots
- PASSWORDCrea un parámetro de entrada de contraseña para un script de estudio analítico
- RESULT LOGAsegura que se genere un log cada vez que se ejecuta el script de estudio analítico
- RESULT TABLEAsegura que haya una tabla de resultados disponible para los usuarios finales cuando el script de estudio analítico se ejecute correctamente en Robots
Dado que el encabezado del estudio analítico ahora contiene la etiqueta PASSWORD, usted también agrega la sintaxis de PASSWORD a la parte del script que exporta los datos a Resultados.
Nota
El parámetro de entrada de la contraseña y el parámetro de contraseña del comando EXPORT se enlazan usando el mismo identificador numérico:
//PASSWORD 1 Diligent One Access Token
.
.
.
EXPORT ... PASSWORD 1
.
.
.
EXPORT ... PASSWORD 1
Resultado: Script de revisión de Pcard con encabezado de estudio analítico y sintaxis de PASSWORD actualizada
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. Cargue el script en Robots
Una vez que haya creado un script de estudio analítico en Analytics, puede cargarlo en un robot en la aplicación Robots para probar y configurar la automatización de tareas que necesita. La acción de cargar scripts desde Analytics a Robots recibe el nombre de confirmación y envío de scripts.
Consejo
Puede utilizar herramientas en Analytics para validar la sintaxis del encabezado del estudio analítico para asegurarse de que sea correcta. Realice la validación antes de confirmar y enviar los scripts a Robots para que el script analítico no falle cuando se ejecuta.
Ejemplo
Escenario
Desea ejecutar el script de estudio analítico de forma automatizada en la aplicación Robots. Necesita cargar el script en la aplicación Robots para comenzar.
Proceso
Desde el menú principal de Analytics, seleccione Archivo > Confirmar y enviar scripts. Seleccione su organización, especifique el nombre de Pcard Review 2018 para el nuevo robot y haga clic en Crear.
Finalmente, ingrese el siguiente mensaje de confirmación y haga clic en Aceptar:
Esta es la carga inicial de Pcard_Review, un script que se utiliza para automatizar la revisión de Pcards.
Resultado
Ha cargado correctamente el script del estudio analítico en un robot.
¿Qué sigue?
Aprenda cómo ejecutar el script del estudio analítico de forma automatizada
La aplicación Robots se utiliza para automatizar tareas repetitivas utilizando scripts incorporados en Analytics y liberar tiempo y recursos para que usted y su equipo realicen trabajos de naturaleza más estratégica.
Para obtener más información, consulte Programación de un análisis.
Inscríbase en un curso de Academia
Continúe desarrollando su conocimiento sobre los conceptos presentados en este artículo en ACL 270.
Academia es el centro de recursos de capacitación en línea de Diligent. Los usuarios con una suscripción de Diligent One tienen acceso a los cursos de la Academia sin ningún costo. Para obtener más información, consulte Academia.