Créer une action personnalisée pour générer un tableau d’objets à partir d’une liste d’enregistrements
Générez un tableau d’objets à partir d’une liste d’enregistrements utilisateur. Découvrez comment utiliser une étape de script pour itérer dans une liste d’enregistrements.
Avant de commencer
Pourquoi et quand exécuter cette tâche
- Créez une entrée d’action pour un enregistrement de département.
- Recherchez un maximum de trois enregistrements d’utilisateurs pour l’entrée d’action du département.
- Configurez une étape de script pour traiter une liste d’enregistrements d’utilisateurs.
- Créez une variable d’entrée de script contenant la liste des enregistrements utilisateur.
- Écrivez un script qui crée un tableau de contacts vide.
- Écrivez un script qui parcourt la liste des enregistrements d’utilisateurs.
- Écrivez un script qui crée un objet de contact et mappe les valeurs de champ d’enregistrement utilisateur à l’objet de contact.
- Écrivez un script qui remplit le tableau contacts avec l’objet de contact actuel.
- Créez des variables de sortie de script pour le tableau contacts et l’objet de contact enfant.
- Enregistrez l’objet de contact en tant que modèle.
- Affichez le tableau d’objets contacts générés sous forme de pastille de données.
- Testez l’action avec un exemple de département.
Procédure
- Facultatif :
Créez une application pour stocker votre travail.
Vous pouvez l’utiliser App Engine Studio pour planifier, créer et déployer des applications. Pour plus d’informations sur la création d’une application personnalisée, reportez-vous à la section Building apps in App Engine Studio.Par exemple, créez une application appelée Mon application.
- Accédez à la Tout > Automatisation des processus > Studio de workflow.
- Sur la page d’accueil, sélectionnez Actions.
-
Sélectionner Nouvelle > Action
Le système affiche la boîte de dialogue Propriétés de l’action.
-
Entrez ces exemples de valeurs.
Champ Valeur Nom Créer des contacts Tableau d’objets Demande Global Accessible depuis Tous les périmètres de l'application Remarque :Si vous avez créé une application pour stocker et déployer votre action personnalisée, utilisez cette application au lieu de globale. -
Sélectionnez l’action de version.
Le système affiche l’interface Studio de workflow .
-
Dans le Plan d’action, sélectionnez Entrées > Créer une entrée
Le système affiche une nouvelle entrée d’action.
-
Configurez l’entrée d’action avec ces valeurs.
Champ Valeur Étiquette Département Type Référence.Département [Reference.cmn_department] Obligatoire Vrai -
Dans le Plan d’action, sélectionnez Ajouter une nouvelle étape.
Le système affiche une liste des étapes disponibles.
- Sélectionner Rechercher des enregistrements
-
Configurez l’étape avec ces valeurs.
Champ Valeur Table Utilisateur [sys_user] Conditions [Département][est][action->Département] Remarque :Sélectionnez la pastille de données Département dans Variables d’entrée.Trier par Nom Type de tri a à z Nombre maximal de résultats 3 Remarque :Cet exemple limite le paramètre Nombre maximal de résultats à trois enregistrements uniquement à des fins de démonstration. -
Dans le Plan d’action, sélectionnez Ajouter une nouvelle étape.
Le système affiche une liste des étapes disponibles.
- Sélectionnez Script.
- Dans la section Variables d’entrée, sélectionnez Créer une variable.
-
Configurez la variable d’entrée avec ces valeurs.
Champ Valeur Nom userRecords Valeur [step->Rechercher des enregistrements step->Enregistrements utilisateur] Remarque :Sélectionnez la pastille de données Enregistrements utilisateur à partir de l’étape Rechercher des enregistrements.Remarque :Vous pouvez sélectionner la pastille de données des enregistrements utilisateur dans le panneau de données ou à partir du bouton Sélecteur de pastilles de données. -
Pour Script, saisissez le texte suivant.
(function execute(inputs, outputs) { //Create an empty array var contactsArray = []; var i = 0; //Iterate through the list of User records while(inputs.userRecords.next()) { //Create an empty object for each iteration var contactObject = {}; //Query User records to assign object values contactObject.first_name = inputs.userRecords.getValue('first_name'); contactObject.last_name = inputs.userRecords.getValue('last_name'); contactObject.email_address = inputs.userRecords.getValue('email'); //Add current object to array contactsArray[i] = contactObject; i += 1; } outputs.contacts = contactsArray; })(inputs, outputs); - Dans Variables de sortie, sélectionnez Créer une variable.
-
Configurez la variable de sortie avec ces valeurs.
Étiquette Nom Type Obligatoire contacts contacts Array.Object Vrai - Développez le Array.Object de contacts et renommez l’objet enfant en contact.
-
Dans la ligne correspondant à l’objet de contact, sélectionnez l’icône
Ajouter un élément enfant .
-
Configurez l’élément enfant avec ces valeurs.
Étiquette Nom Type Obligatoire prénom first_name Chaîne Vrai -
Dans la ligne correspondant à l’objet de contact, sélectionnez l’icône
Ajouter un élément enfant .
-
Configurez l’élément enfant avec ces valeurs.
Étiquette Nom Type Obligatoire nom de famille last_name Chaîne Vrai -
Dans la ligne correspondant à l’objet de contact, sélectionnez l’icône
Ajouter un élément enfant .
-
Configurez l’élément enfant avec ces valeurs.
Étiquette Nom Type Obligatoire adresse courriel email_address Chaîne Vrai - Dans la ligne relative à l’objet de contact, sélectionnez Activer/désactiver les entrées avancées.
-
Dans les options avancées, sélectionnez Enregistrer comme modèle.
Le système affiche la boîte de dialogue Enregistrer comme modèle.
-
Pour Entrer un nom, saisissez contact.
- Cliquez sur Enregistrer.
- Dans le Plan d’action, sélectionnez Sorties > Créer une sortie.
-
Configurez la sortie de l’action avec ces valeurs.
Étiquette Nom Type Obligatoire contacts contacts Array.Object Vrai - Développez les contacts Array.Object.
- Dans la ligne relative à l’objet de contact, sélectionnez Activer/désactiver les entrées avancées.
-
Dans les options avancées, sélectionnez Structure > Commencer à partir d'un modèle.
Le système affiche le modèle.
-
Pour Modèle, sélectionnez le modèle que vous avez précédemment enregistré.
Par exemple, sélectionnez Global : contact.
-
Sélectionnez Quitter le mode d’édition.
Le système affiche les champs de sortie que vous avez créés.
-
Pour les contacts, sélectionnez [step->Script step->contacts].
Remarque :Vous pouvez sélectionner la pastille de données des contacts de l’étape Script à partir du panneau de données ou du bouton Sélecteur de pastilles de données.
- Cliquez sur Enregistrer.
-
Sélectionnez Test.
Le système affiche la boîte de dialogue Action de test.
-
Entrez la valeur de test suivante :
Entrée Valeur Département Développement -
Sélectionnez Exécuter le test.
Le système exécute l’action avec les valeurs de test fournies.
-
Sélectionnez L’exécution de votre test terminée. Affichez les détails d’exécution de l’action.
Le système affiche les détails d’exécution de l’action.
-
Examinez la valeur d’exécution de l’action Données de sortie.
Bien que les détails de l’exécution affichent les données de sortie sous forme de chaîne au format JSON, le type de données de sortie réel est un tableau d’objets. Si vous avez besoin d’une version chaîne de votre sortie, vous pouvez convertir l’objet en chaîne à l’aide de la classe JSON. Pour plus d’informations sur la conversion d’un objet JSON en chaîne, reportez-vous à la section Scoped JSON - stringify(Object jsonObject).Pour cet exemple, l’objet contacts contient un tableau d’objets de contact avec le prénom, le nom et les informations d’e-mail de trois utilisateurs du département de développement.{ "contacts": "contact": [ { "email_address": "allyson.gillispie@example.com", "first_name": "Allyson", "last_name": "Gillispie" }, { "email_address": "alva.pennigton@example.com", "first_name": "Alva", "last_name": "Pennigton" }, { "email_address": "andrew.och@example.com", "first_name": "Andrew", "last_name": "Och" } ] } }