Mapper avec des scripts d’événements de transformation

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 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énement. Il existe un certain nombre d’objets JavaScript de jeu d’importation qui sont accessibles au cours de 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.

    Le tableau suivant répertorie tous les événements de transformation et leurs variables contextuelles.
    Remarque :
    Pour afficher les journaux d’importation, définissez la glide.importlog.log_to_table propriété sur true. Pour plus d'informations, consultez Propriétés des jeux d’importation.
    Tableau 1. é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. Objets JS du jeu d’importation disponibles pour être référencés et leur contexte dans l’événement onStart
    Jeu d’importation Objet JS Type Contexte dans l’événement de jeu d’importation onStart
    source GlideRecord Il n’y a pas encore de données sur la première ligne de la table source, car la ligne n’a pas encore été lue.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de l’exécution d’importation actuelle. Par exemple, log.info(...), log.warn(...), log.error(...).
    ignorer Booléen Lorsqu’elle est définie sur vrai, la transformation entière est arrêtée et aucun autre traitement n’a lieu.
    erreur Booléen Lorsqu’elle est définie sur vrai, elle a le même effet que l’indicateur ignorer, à savoir arrêter 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. Objets JS du jeu d’importation disponibles pour être référencés et leur contexte dans l’événement onComplete
    Jeu d’importation Objet JS 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 La dernière ligne de la table cible.
    import_set GlideRecord Jeu d’importation en cours de transformation.
    carte Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de 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 de l’ensemble d’importation actuel sera marqué comme erreur une fois terminé.

    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 de l’é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. Objets JS du jeu d’importation disponibles pour être référencés et leur contexte dans l’événement onBefore
    Jeu d’importation Objet JS Type Contexte dans l’événement de jeu d’importation onBefore
    source GlideRecord Ligne de la table source 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 Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de 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, le script onAfter s’exécute pour la ligne actuelle, même si le marqueur ignorer est défini sur vrai.

    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, elle arrête toute la transformation 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, une fois que la ligne source a été transformée en ligne cible et enregistrée.

    Tableau 5. Objets JS du jeu d’importation disponibles pour être référencés et leur contexte dans l’événement onAfter
    Jeu d’importation Objet JS Type Contexte dans l’événement de jeu d’importation onAfter
    source GlideRecord Ligne de la table source 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 Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de 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, elle arrête toute la transformation 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énement 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. Objets JS de jeux d’importation disponibles pour être référencés et leur contexte dans l’événement onForeignInsert
    Jeu d’importation Objet JS Type Contexte de l’événement de jeu d’importation onForeignInsert
    source GlideRecord Ligne de la table source en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de 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 Lorsque la valeur est définie sur vrai, elle ignore la création d’un nouvel enregistrement étranger ou connexe.
    erreur Booléen Quand la valeur est définie sur vrai, rejette toute la ligne de transformation, 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 que la nouvelle valeur de choix ne soit créée.

    Tableau 7. Jeu d’importation Objets JS disponibles pour être référencés et leur contexte dans l’événement onChoiceCreate
    Jeu d’importation Objet JS Type Contexte dans l’événement de jeu d’importation onChoiceCreate
    source GlideRecord Ligne de la table source en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    journal Fonction L’objet de journal de 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 Équivaut au nom de champ de l’enregistrement cible pour lequel une valeur de choix est sur le point d’être créée.
    valide Chaîne Équivaut à la valeur d’affichage de l’enregistrement source pour lequel un choix est sur le point d’être créé.
    ignorer Booléen Lorsqu’elle est définie sur vrai, elle ignore la création d’une valeur de choix.
    erreur Booléen Quand la valeur est définie sur vrai, rejette toute la ligne de transformation, 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. Objets JS du jeu d’importation disponibles pour être référencés et leur contexte dans l’événement onError
    Jeu d’importation Objet JS Type Contexte dans l’événement de jeu d’importation onError
    source GlideRecord Ligne de la table source en cours de traitement.
    target GlideRecord Ligne de la table cible en cours de traitement.
    carte Carte de transformation Glide Informations en lecture seule sur l’enregistrement de carte de transformation actuel.
    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 L’objet de journal de 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();