Carte avec scripts d’événements de transformation

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 8 minutes de lecture
  • Les événements de transformation se produisent pendant le processus de transformation d’une table de jeu d’importation en table.

    Ces événements modifient le comportement de transformation à partir de n’importe quel type de spécification de mappage. Les scripts d’événements de transformation modifient le traitement des événements à différentes étapes de la transformation.

    Par exemple, le traitement d’une opération de mappage définie à l’aide de l’utilitaire Mapping Assist peut être manipulé à l’aide des scripts d’événements. Il existe un certain nombre d’objets JavaScript de jeu d’importation qui sont accessibles pendant ces événements. Ces objets représentent des tables ou des parties de tables. Il est important de noter que ce à quoi ces objets font référence varie en fonction du contexte de l’événement dans lequel ils sont référencés.

    Voici une table de tous les événements de transformation et de leurs variables contextuelles.
    Remarque :
    Pour afficher les journaux d’importation, définissez la glide.importlog.log_to_table propriété sur vrai. Pour plus d'informations, consultez Propriétés des ensembles de données à importer.
    Tableau 1. Les événements de transformation et leurs variables contextuelles
    Nom d'événement Paramètres d'événement
    onStart

    Quand : le script d’événement onStart est traité au début d’une exécution d’importation, avant que les lignes de données ne soient lues.

    Tableau 2. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onStart
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onStart
    source GlideRecord La première ligne de la table source, il n’y a pas encore de données car la ligne n’a pas été lue.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    ignorer Booléen Lorsque la valeur est définie sur vrai, toute la transformation est arrêtée et aucun autre traitement ne se produit.
    erreur Booléen Lorsque la valeur est définie sur vrai, elle a le même effet que l’indicateur Ignorer qui arrête toute la transformation, avec un message d’erreur.

    Exemple :

    var info = "Starting Import Set Transformation Mapping operation using Data source, " 
    + map.table_source + " and Transform Map " + map.name + " on import set " + import_set.number;
    log.info( info ); 
    
    onComplete

    Quand : le script d’événement onComplete est traité à la fin d’une exécution d’importation, une fois que toutes les lignes de données ont été lues et transformées.

    Tableau 3. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onComplete
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onComplete
    source GlideRecord Dernière ligne de la table de jeux d’importation source.
    target GlideRecord Dernière ligne de la table cible.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    erreur Booléen Lorsque la valeur est définie sur vrai, l’état actuel de l’ensemble d’importation sera défini sur erreur une fois l’opération terminée.

    Exemple :

    // Create a myimport_completed event that can be reacted by an email notification or script action
    // (there is already an import.finished event that the system will create at the end of an import)
    var e = new GlideEvent("myimport_completed", import_set.sys_id, map.sys_id, "");
    e.insert();
    onBefore

    Quand : le script d’événement onBefore est traité au début d’une transformation de ligne, avant que la ligne source ne soit transformée en ligne cible.

    Tableau 4. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onBefore
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onBefore
    source GlideRecord Ligne de la table source qui est actuellement en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    action Chaîne L’action renvoie une valeur « insérer » ou « mettre à jour » indiquant si la ligne cible actuelle est sur le point d’être créée ou mise à jour.
    ignorer Booléen Lorsque la valeur est définie sur vrai, la transformation de ligne actuelle est ignorée et les lignes restantes sont traitées.

    Si vous avez défini un script onAfter, celui-ci s’exécute pour la ligne en cours, même si le marqueur Ignorer est défini sur true.

    status_message Chaîne Définit un message personnalisé à envoyer dans la réponse XML <status_message>.
    erreur Booléen Lorsque la valeur est définie sur vrai, la transformation complète est interrompue pour le jeu d’importation actuel, avec un message d’erreur.
    error_message Chaîne Définit un message personnalisé à envoyer dans la réponse XML <error_message>.

    Exemple :

    var name = source.u_name.toString();
    var info = "Before the row is transformed, " + name;
    log.info( info ); 
     
    // Make sure a company name has been provided
    var company = source.u_company.toString();
    if(company.length == 0 ){
    	ignore = true;
    	info ="No company name, row ignored! " + name;
    	log.info( info );
    }
    onAfter

    Quand : le script d’événement onAfter est traité à la fin d’une transformation de ligne, après que la ligne source a été transformée en ligne cible et enregistrée.

    Tableau 5. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onAfter
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onAfter
    source GlideRecord Ligne de la table source qui est actuellement en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    action Chaîne L’action renvoie une valeur « insérer » ou « mettre à jour » indiquant si la ligne cible actuelle a été créée ou mise à jour.
    status_message Chaîne Définit un message personnalisé à envoyer dans la réponse XML <status_message>.
    erreur Booléen Lorsque la valeur est définie sur vrai, la transformation complète est interrompue pour le jeu d’importation actuel, avec un message d’erreur.
    error_message Chaîne Définit un message personnalisé à envoyer dans la réponse XML <error_message>.

    Exemple :

    if(source.new=="true"){
      gs.include('Cart');var bundle =new GlideRecord('sc_cat_item');
      bundle.addQuery('name','CONTAINS','comp');
      bundle.query();
      if(bundle.next()){
         var new_comp_cart = new Cart();
         var cart = new Cart();
         var item = cart.addItem(bundle);
         var rc = cart.placeOrder();
         log.info(rc.number);}}
    onForeignInsert

    Quand : le script d’événements onForeignInsert est traité au début de la création d’un enregistrement référencé connexe, avant la création de l’enregistrement.

    Tableau 6. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onForeignInsert
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onForeignInsert
    source GlideRecord Ligne de la table source qui est actuellement en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    action Chaîne L’action renvoie une valeur « insérer » ou « mettre à jour » indiquant si la ligne cible actuelle est sur le point d’être créée ou mise à jour.
    nom Chaîne Évalue le nom de champ de l’enregistrement cible pour lequel un enregistrement étranger est sur le point d’être créé.
    valide Chaîne Évalue la valeur d’affichage à partir de l’enregistrement source pour lequel un enregistrement étranger est sur le point d’être créé.
    ignorer Booléen Quand la valeur est définie sur vrai, ignore la création d’un nouvel enregistrement étranger ou connexe.
    erreur Booléen Lorsque la valeur est définie sur vrai, rejette la ligne de transformation entière, aucune donnée n’est enregistrée pour cette ligne.

    Exemple :

    //Create an event.
    var e = new GlideEvent("myimport_ForeignInsert", action, name, "");
    e.insert();
    onChoiceCreate

    Quand : Le script d’événement onChoiceCreate est traité au début de la création d’une valeur de choix, avant la création de la nouvelle valeur de choix.

    Tableau 7. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onChoiceCreate
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onChoiceCreate
    source GlideRecord Ligne de la table source qui est actuellement en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    action Chaîne L’action renvoie une valeur « insérer » ou « mettre à jour » indiquant si la ligne cible actuelle est sur le point d’être créée ou mise à jour.
    nom Chaîne Évalue le nom de champ de l’enregistrement cible pour lequel une valeur de choix est sur le point d’être créée.
    valide Chaîne Évalue la valeur d’affichage à partir de l’enregistrement source pour lequel un choix est sur le point d’être créé.
    ignorer Booléen Lorsque la valeur est définie sur vrai, ignore la création d’une valeur de choix.
    erreur Booléen Lorsque la valeur est définie sur vrai, rejette la ligne de transformation entière, aucune donnée n’est enregistrée pour cette ligne.

    Exemple :

    //Create an event
    var e = new GlideEvent("myimport_ChoiceCreate", action, value, "");
    e.insert();
    onReject

    Lorsque : le script d’événement onReject est traité lors de la création d’un enregistrement ou d’un choix étranger et que l’enregistrement ou le choix étranger est rejeté, la ligne de transformation entière n’est pas enregistrée.

    Tableau 8. Ensemble de données à importer Objets JS pouvant être référencés et leur contexte dans l’événement onError
    Objet JS du jeu d’importation Type Contexte dans l’événement de jeu d’importation onError
    source GlideRecord Ligne de la table source qui est actuellement en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte GlideTransformMap Informations en lecture seule sur l’enregistrement actuel de la carte de transformation.
    action Chaîne L’action renvoie une valeur « insérer » ou « mettre à jour » indiquant si la ligne cible actuelle est sur le point d’être créée ou mise à jour.
    journal Fonction Objet de journal pour l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    Exemple :
    //Create an event
    var e = new GlideEvent("myimport_onReject", action, "", "");
    e.insert();