Créer un script pour automatiser un processus opérationnel
Face à une mondialisation croissante, des marchés en constante évolution et une pression réglementaire pour optimiser les environnements de contrôle et de risque soumis à des conditions commerciales qui changent rapidement, il est essentiel que les entreprises développent des programmes de surveillance continue. Les programmes de surveillance continue exigent souvent des scripts pour automatiser les processus opérationnels. Cet article présente comment créer un script dans Analytics pour automatiser un processus opérationnel.
Il décrit comment automatiser l'examen des cartes d'achat (Pcard) à l'aide d'un script Analytics. Il est toutefois possible d'appliquer le même flux de travail à une variété d'autres cas d'utilisation liés à la finance, l'informatique, l'audit, la conformité et le risque.
Note
Ce guide solution n'exige pas que vous maîtrisiez l'écriture de script. Si vous voulez en savoir plus, consultez la rubrique Écriture de script dans Analytics.
Où puis-je créer des scripts ?
Vous pouvez créer des scripts dans Analytics.
Une image étendue
Un projet Analytics stocke les informations sur l'analyse des données, dont des tables et des scripts.
Un script importe, prépare, analyse et exporte des données dans Résultats.
Vous pouvez ensuite utiliser un script que vous exécutez ad hoc dans Analytics, le convertir en un script d'analyse de données (en ajoutant un en-tête d'analyse de données) et charger le script dans Robots pour exécuter des tâches de manière automatisée.

Étapes

Prêt pour un tour ?
Étudions plus précisément ces fonctions dans le contexte.
Note
Si vous voulez tester le flux de travail présenté dans ce guide solution, vous pouvez télécharger les fichiers de données Excel (Pcard_Holders et Pcard_Transactions), puis copier et coller l'exemple de script dans Analytics. Vous pouvez également simplement examiner le script pour avoir une idée de son action.
1. Créer un script
Un script peut être une opération aussi simple que l'exécution d'une commande sur un seul champ ou bien il peut s'agir d'une opération assez complexe pour effectuer la majeure partie du travail vous permettant d'atteindre vos objectifs d'analyse.
Astuce
En règle générale, la meilleure pratique consiste à séparer les tâches dans des scripts distincts. Pour faciliter la compréhension, nous vous présentons l'import, la préparation, l'analyse et l'export des données dans un script individuel.
Exemple
Scénario
Vous êtes auditeur interne chez Vandelay Industries, le premier fabricant de latex du pays. Pour aider les employés de Vandelay a effectuer de petits achats de fournitures de bureau et d'équipement informatique, la direction a mis en place un programme de carte d'achat. Le programme de carte d'achat demande un examen d'audit annuel afin de vérifier que les transactions sont conformes aux politiques de Vandelay.
Vous voulez utiliser un script pour automatiser les tâches essentielles impliquées dans l'exécution d'une analyse. Vous prévoyez d'exporter les données transactionnelles et d'exception dans Résultats à des fins de reporting.
Traiter
Import, préparation et analyse des données de script
Commencez par créer un projet Analytics et ajoutez les deux fichiers de données Excel dans le même emplacement que celui de sauvegarde du projet d'Analytics. Ensuite, vous créez un script individuel dans Analytics, Pcard_Review, qui :
- importe les fichiers de données Excel requis pour l'analyse ;
- prépare les données avant l'analyse ;
- analyse les données et identifie les cartes d'achat qui dépassent les limites mensuelles.
Pour finir, vous exécutez le script dans Analytics, qui produit un ensemble de tables source, préparées et de résultats.
Script pour l'export des données vers Résultats
Vous accédez à Résultats et créez deux conteneurs de données :
- CollectionExamen de la carte d’achat
- AnalyseAudit 2018 de carte d’achat
Depuis Analytics, vous exportez manuellement :
- r_EmployeesOverMonthlyLimit vers une nouvelle table Employés au-dessus de la limite mensuelle dans Résultats
- p_Pcard_Transactions_2018 vers une nouvelle table Transactions de carte d'achat 2018 dans Résultats
Pour finir, vous copiez la syntaxe EXPORT du journal Analytics dans le script.
Note
Vous lancez d'abord export manuellement pour obtenir la syntaxe correcte du script. Lorsque le script est créé, l'export des données est répété sur une base automatisée. La syntaxe EXPORT contient les ID spécifiques de la table Résultats nécessaires pour exécuter la part de l'exportation des données du script. Vous pouvez copier tout le script ci-dessous et remplacer les deux instances de "XXXXXX@us" par les ID uniques de la table Résultats.
Résultat : script d’examen 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. Ajouter un en-tête d’outil d’analyse au script
Un en-tête d'outil d'analyse est une série de balises insérée dans un bloc de commentaire au début d'un script Analytics. Un en-tête d'outil d'analyse est requis pour tout script d'analyse de données que vous prévoyez d'exécuter dans Robots.
Les étiquettes sont des commande déclaratives à l'intérieur de l'en-tête d'outil d'analyse qui définit les entrées, les sorties et les instructions relatives à un script d'analyse. Les étiquettes permettent d’exécuter le script d'analyse de manière autonome, immédiatement ou à une heure planifiée.
Astuce
Un en-tête d'outil d'analyse fournit des instructions sur le mode d'exécution du script d'analyse dans Robots. Robots utilise certaines étiquettes pour recevoir des informations et d'autres indiquent ce que le script d'analyse doit produire. Par exemple, vous pouvez indiquer à Robots quel fichier est nécessaire pour un import ou quelle table de résultats il convient de mettre à disposition des utilisateurs finaux.
Exemple
Scénario
Actuellement, vous exécutez le script Analytics sur une base ad hoc. Vous voulez programmer le script à exécuter sur une base automatisée. Cette programmation vous permet de gagner du temps au niveau de la tâche chronophage d'exécution manuelle de l'analyse.
Traiter
Vous convertissez le script normal en un script d'analyse en ajoutant un en-tête d'outil d'analyse à Pcard_Review qui comprend les étiquettes suivantes :
- FICHIERindique un fichier Excel qui propose une entrée pour un script d’analyse qui s’exécute dans Robots
- PASSWORDcrée un paramètre d’entrée de mot de passe pour le script d’analyse
- RESULT LOGgarantit la génération d’un journal à chaque exécution du script d’analyse
- RESULT TABLEgarantit la disponibilité d’une table de résultats aux utilisateurs finaux lorsque le script d’analyse s’exécute correctement dans Robots
Comme l'en-tête d'outil d'analyse contient désormais l'étiquette PASSWORD, vous pouvez également ajouter la syntaxe PASSWORD à la partie du script qui exporte les données vers Résultats.
Note
Le paramètre d'entrée du mot de passe et le paramètre du mot de passe dans la commande EXPORT sont liés par l'utilisation du même identificateur numérique :
//PASSWORD 1 Diligent One Access Token
.
.
.
EXPORT ... PASSWORD 1
.
.
.
EXPORT ... PASSWORD 1
Résultat : script d’examen Pcard avec en-tête d’outil d’analyse et syntaxe PASSWORD mise à jour
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. Charger le script dans Robots
Lorsque vous créez un script d'outil d'analyse dans Analytics, vous pouvez le charger dans un robot de l'application Robots pour tester et configurer l'automatisation des tâches nécessaires. L'action de chargement des scripts d'Analytics vers Robots se nomme transmission de scripts.
Astuce
Vous pouvez utiliser des outils dans Analytics pour valider la syntaxe d'en-tête d'outil d'analyse afin de vous assurer qu'elle est correcte. Effectuez la validation avant de transmettre des scripts à Robots pour éviter tout échec du script d'analyse lors de leur exécution.
Exemple
Scénario
Vous voulez exécuter le script d'analyse selon une base automatisée dans l'application Robots. Vous devez charger le script dans l'application Robots pour démarrer.
Traiter
Dans le menu principal d'Analytics, sélectionnez Fichier > Transmettre les scripts. Vous sélectionnez votre organisation, indiquez le nom Examen Pcard 2018 pour le nouveau robot puis cliquez sur Créer.
Pour finir, vous saisissez le message de transmission suivant et cliquez sur OK :
Il s'agit du chargement initial de Pcard_Review, un script utilisé pour automatiser l'examen des Pcards.
Résultat
Vous avez correctement chargé le script d'analyse dans un robot.
Quelles sont les prochaines étapes ?
Découvrez comment exécuter le script d'analyse de manière automatisée.
L'application Robots vous permet d'automatiser les tâches répétitives grâce à des scripts créés dans Analytics et de libérer du temps et des ressources pour votre équipe et vous-même afin d'effectuer un travail plus stratégique.
Pour en savoir plus, consultez la section Planifier une analyse.
Inscrivez-vous à une formation de l'Académie
Poursuivez votre apprentissage des concepts présentés dans cet article en suivant le parcours d’apprentissage ACL 270.
L'Académie est le centre des ressources de formation en ligne de Diligent. Les sessions de l'Académie sont incluses sans coût supplémentaire pour tout utilisateur disposant d'un abonnement Diligent One. Pour plus d'informations, consultez l'Académie.