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.
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.
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 SETSAFETYOFF SETSESSION CLOSEPRIMARY CLOSESECONDARY COMMENT ********************** ** Cette partie du script importe les tables Pcard_Holders et Pcards_Transactions nécessaires pour l'examen de la carte d'achat. ********************** END SETFOLDER /Data/_1_Source_tables COMMENT*** Importe les données de Pcard_Transactions IMPORTEXCELTO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE COMMENT*** Importe les données de Pcard_Holders IMPORTEXCELTO 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 SETFOLDER /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 COMPUTEDSTRING(card_number, 16) OPEN s_Pcard_Transactions DEFINE FIELD c_card_number COMPUTEDSTRING(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 EXTRACTFIELDSALL IFBETWEEN(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 EXTRACTFIELDS 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 SETFOLDER /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 COMPUTEDZONED(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 SUMMARIZEON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPENPRESORT COMMENT*** Déterminer la limite mensuelle pour chaque carte en associant 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 COMMENT*** Filtrer et extraire des problèmes où la limite mensuelle a été dépassée OPEN t_SumTransByCardMonth SETFILTERTO transaction_amount > p_Pcard_Holders.limit_monthly EXTRACTFIELDSALLTO "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 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*** 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 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 ********************** ** 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 EXPORTFIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRCTO "XXXXXX@us" OVERWRITE COMMENT*** Exporter les transactions Pcard de 2018 vers Résultats 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. 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.
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 :
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 Diligent One //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 SETSAFETYOFF SETSESSION CLOSEPRIMARY CLOSESECONDARY COMMENT ********************** ** Cette partie du script importe les tables Pcard_Holders et Pcards_Transactions nécessaires pour l'examen de la carte d'achat. ********************** END SETFOLDER /Data/_1_Source_tables COMMENT*** Importe les données de Pcard_Transactions IMPORTEXCELTO s_Pcard_Transactions "Pcard_Transactions.fil" FROM "Pcard_Transactions.xlsx" TABLE "Pcard_Transactions$" CHARMAX 150 KEEPTITLE COMMENT*** Importe les données de Pcard_Holders IMPORTEXCELTO 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 SETFOLDER /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 COMPUTEDSTRING(card_number, 16) OPEN s_Pcard_Transactions DEFINE FIELD c_card_number COMPUTEDSTRING(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 EXTRACTFIELDSALL IFBETWEEN(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 EXTRACTFIELDS 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 SETFOLDER /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 COMPUTEDZONED(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 SUMMARIZEON c_card_number c_month SUBTOTAL transaction_amount TO "t_SumTransByCardMonth.fil" OPENPRESORT COMMENT*** Déterminer la limite mensuelle pour chaque carte en associant 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 COMMENT*** Filtrer et extraire des problèmes où la limite mensuelle a été dépassée OPEN t_SumTransByCardMonth SETFILTERTO transaction_amount > p_Pcard_Holders.limit_monthly EXTRACTFIELDSALLTO "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 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*** 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 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 ********************** ** 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 EXPORTFIELDS c_month c_card_number COUNT email_address employee_name employee_number limit_monthly transaction_amount ACLGRCTO "XXXXXX@us" OVERWRITEPASSWORD 1 COMMENT*** Exporter les transactions Pcard de 2018 vers Résultats 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. 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.
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.
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.