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.
Remarque
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.
Remarque
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.
Processus
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 :
- Collection Examen de la carte d'achat
- Analyse Audit 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.
Remarque
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 de l'examen de la carte d'achat
COMMENT
*************************************************
*** Nom du script: Pcard_Review
*** Description: Ce script effectue les actions suivantes :
*** 1 - Importe les informations de Pcard_Holders Pcard_Transactions
*** 2 - Prépare les tables ci-dessus pour l'analyse
*** 3 - Identifie les employés et les cartes qui ont dépassé leurs limites mensuelles
***
*** Rédigé par : Votre nom, Vandelay - Date du jour
*** Version: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** Cette partie du script importe les tables Pcard_Holders et Pcards_Transactions nécessaires pour l'examen de la carte d'achat.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Importe les données de Pcard_Transactions
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Importe les données de Pcard_Holders
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** Cette partie du script prépare les données pour l'analyse.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT*** Harmonise les champs card_number dans les tables s_Pcard_Holders et s_Pcard_Transactions afin que vous puissiez l'utiliser comme un champ clé dans un Join ultérieur
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*** Extrait les dates de 2018 dans la table s_Pcard_Transactions et les envoie à 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*** Extraire les champs requis dans s_Pcard_Holders et les envoyer à 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
**********************
** Cette partie du script analyse les données pour identifier si les cartes d'achat dépassent leurs limites mensuelles. Si les cartes dépassent les limites mensuelles, ce la signifie que les contrôles échouent et qu'un suivi et une remédiation sont nécessaires.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT*** Créer un champ calculé pour déterminer le mois au cours duquel chaque transaction se produit afin que vous puissiez identifier les cartes qui dépassent leur limite mensuelle.
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMMENT*** Regrouper les transactions par carte et mois afin de calculer le total mensuel pour chaque carte.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Déterminer la limite mensuelle pour chaque carte en associant 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*** Filtrer et extraire des problèmes où la limite mensuelle a été dépassée
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Joindre r_CardOverMonthlyLimit à la table p_Pcard_Holders afin d'identifier les employés qui ont dépassé leur limite mensuelle.
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*** Joindre r_CardOverMonthlyLimit à la table p_Pcard_Holders afin d'identifier les employés qui ont dépassé leur limite mensuelle.
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
**********************
** Cette partie du script exporte les données vers l'application Résultats.
**********************
END
COMMENT*** Exporter les enregistrements des employés qui dépassent leur limite mensuelle, vers Résultats
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*** Exporter les transactions Pcard de 2018 vers Résultats
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.
Processus
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 :
- FILE indique un fichier Excel qui propose une entrée pour un script d'analyse qui s'exécute dans Robots
- PASSWORD crée un paramètre d'entrée de mot de passe pour le script d'analyse
- RESULT LOG garantit la génération d'un journal à chaque exécution du script d'analyse
- RESULT TABLE garantit 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.
Remarque
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 jeton d'accès HighBond
,
,
,
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 Analyse Pcard_Review
Cette analyse identifie toutes les cartes et tous les employés qui ont dépassé leur limite Pcard mensuelle et elle permet d'exporter les exceptions et les transactions vers Résultats.
//FILE Pcard_Holders.xlsx
//FILE Pcard_Transactions.xlsx
//PASSWORD 1 jeton d'accès HighBond
//RESULT TABLE r_CardsOverMonthlyLimit
//RESULT LOG
END
COMMENT
*************************************************
*** Nom du script: Pcard_Review
*** Description: Ce script effectue les actions suivantes :
*** 1 - Importe les informations de Pcard_Holders Pcard_Transactions
*** 2 - Prépare les tables ci-dessus pour l'analyse
*** 3 - Identifie les employés et les cartes qui ont dépassé leurs limites mensuelles
***
*** Rédigé par : Votre nom, Vandelay - Date du jour
*** Version: 1.0
*************************************************
END
SET SAFETY OFF
SET SESSION
CLOSE PRIMARY
CLOSE SECONDARY
COMMENT
**********************
** Cette partie du script importe les tables Pcard_Holders et Pcards_Transactions nécessaires pour l'examen de la carte d'achat.
**********************
END
SET FOLDER /Data/_1_Source_tables
COMMENT*** Importe les données de Pcard_Transactions
IMPORT EXCEL TO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE
COMMENT*** Importe les données de Pcard_Holders
IMPORT EXCEL TO s_Pcard_Holders "s_Pcard_Holders.fil" FROM "Pcard_Holders.xlsx" TABLE "Pcard_Holders$" CHARMAX 150 KEEPTITLE
COMMENT
**********************
** Cette partie du script prépare les données pour l'analyse.
**********************
END
SET FOLDER /Data/_2_Prepared_tables
COMMENT*** Harmonise les champs card_number dans les tables s_Pcard_Holders et s_Pcard_Transactions afin que vous puissiez l'utiliser comme un champ clé dans un Join ultérieur
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*** Extrait les dates de 2018 dans la table s_Pcard_Transactions et les envoie à 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*** Extraire les champs requis dans s_Pcard_Holders et les envoyer à 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
**********************
** Cette partie du script analyse les données pour identifier si les cartes d'achat dépassent leurs limites mensuelles. Si les cartes dépassent les limites mensuelles, ce la signifie que les contrôles échouent et qu'un suivi et une remédiation sont nécessaires.
**********************
END
SET FOLDER /Data/_3_Results_tables
COMMENT*** Créer un champ calculé pour déterminer le mois au cours duquel chaque transaction se produit afin que vous puissiez identifier les cartes qui dépassent leur limite mensuelle.
OPEN p_Pcard_Transactions_2018
DEFINE FIELD c_month COMPUTED ZONED(MONTH(transaction_date),2)
COMMENT*** Regrouper les transactions par carte et mois afin de calculer le total mensuel pour chaque carte.
OPEN p_Pcard_Transactions_2018
SUMMARIZE ON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPEN PRESORT
COMMENT*** Déterminer la limite mensuelle pour chaque carte en associant 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*** Filtrer et extraire des problèmes où la limite mensuelle a été dépassée
OPEN t_SumTransByCardMonth
SET FILTER TO transaction_amount > p_Pcard_Holders.limit_monthly
EXTRACT FIELDS ALL TO "r_CardsOverMonthlyLimit.fil"
OPEN r_CardsOverMonthlyLimit
COMMENT*** Joindre r_CardOverMonthlyLimit à la table p_Pcard_Holders afin d'identifier les employés qui ont dépassé leur limite mensuelle.
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*** Joindre r_CardOverMonthlyLimit à la table p_Pcard_Holders afin d'identifier les employés qui ont dépassé leur limite mensuelle.
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
**********************
** Cette partie du script exporte les données vers l'application Résultats.
**********************
END
COMMENT*** Exporter les enregistrements des employés qui dépassent leur limite mensuelle, vers Résultats
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*** Exporter les transactions Pcard de 2018 vers Résultats
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.
Processus
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, voir 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 Académie.