API IBQConfigBase : dans le champ d’application

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 18 minutes de lecture
  • Include de script qui doit être étendu pour Gestion des ventes et des commandes que le suivi des demandes assure le suivi des demandes. Cet include de script fournit des méthodes remplaçables qui définissent le mode d’exécution des demandes.

    Le module d’extension Core de l’API de ventes et de services (com.sn_tmt_core) doit être activé pour que l’include de script IBQConfigBase soit disponible dans une instance. Cet include de script appartient à l’espace de noms sn_tmt_core et nécessite le rôle administrateur.

    Extension de l’API IBQConfigBase

    Définissez un include de script avec les méthodes remplaçables de l’API IBQConfigBase.

    1. Créez un script include. Le nom doit commencer par IBQConfig, par exemple, IBQConfigQuoteToOrderFlowSNC.
    2. Étendez l’API IBQConfigBase .
      Par exemple :
      IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, { 
      ...
      });
    3. Remplacez toutes les méthodes nécessaires fournies par l’API IBQConfigBase .
      Par exemple :
      getRunMode: function(inboundQueueParams) {
          return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
      },
      
      generateParentRecord: function(inboundQueueParams, additionalParams, context) {
          var result = "";
          var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
          var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
          var sourceHeaderId = inboundQueueParams.source_record_ids;
          if (gs.nil(inboundQueueParams.requested_flow))
              throw "sourceToTargetConfigID cannot be null";
          if (gs.nil(inboundQueueParams.source_record_ids))
              throw "source record id cannot be null";
          var util = new sn_l2c_core.PrimitiveUtil();
          if (gs.nil(additionalParams))
              additionalParams = {};
          additionalParams[this.SKIP_LINES_KEY] = "true";
      },
      
      processInboundQueueRequest: function(inboundQueueGR) {
          gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
          var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
          return result;
      }
    4. Créez une nouvelle entrée de métadonnées dans la table Configuration des demandes entrantes [sn_tmt_core_inbound_queue_config] pour définir la manière dont une demande doit être traitée.
    5. Liez l’include de script créé au champ configuration_api de l’enregistrement de métadonnées pour utiliser la logique personnalisée définie lors du traitement de la demande. L’include de script est référencé dans le champ configuration_api lors de la création des métadonnées de configuration des demandes entrantes.

    Cas d’utilisation : IBQConfigQuoteToOrderFlow

    Vous pouvez utiliser l’API IBQConfigBase pour créer une commande à partir d’un devis à l’aide des métadonnées de configuration des demandes entrantes. IBQConfigQuoteToOrderFlow est un include de script personnalisé qui peut être créé en étendant l’API IBQConfigBase . La logique des méthodes remplaçables doit être ajoutée dans l’include de script IBQConfigQuoteToOrderFlow.
    Remarque :
    Cet include de script étend l’API IBQConfigBase et est utilisé dans les exemples de méthodes. Pour plus d’informations sur l’utilisation de l’API PrimitiveUtil, reportez-vous à .LeadtoCashCore : Inclus dans le périmètre
    var IBQConfigQuoteToOrderFlowSNC = Class.create();
    IBQConfigQuoteToOrderFlowSNC.prototype = Object.extendsObject(sn_tmt_core.IBQConfigBase, {
    
        initialize: function() {
    		this.quoteUtil = new sn_quote_mgmt.OrderIntegration();
            this.SKIP_LINES_KEY = "skipLines";
    		this.threshold = 15;
        },
    
        getRunMode: function(inboundQueueParams) {
            return this.quoteUtil.getQuoteSize(inboundQueueParams.source_record_ids, this.threshold);
        },
    
    
        generateParentRecord: function(inboundQueueParams, additionalParams, context) {
            var result = "";
            var entityMappingGr = this.getMapingConfigIdFromSysId(inboundQueueParams.requested_flow);
            var sourceToTargetConfigID = entityMappingGr.getValue("mapping_config_id");
            var sourceHeaderId = inboundQueueParams.source_record_ids;
            if (gs.nil(inboundQueueParams.requested_flow))
                throw "sourceToTargetConfigID cannot be null";
            if (gs.nil(inboundQueueParams.source_record_ids))
                throw "source record id cannot be null";
            var util = new sn_l2c_core.PrimitiveUtil();
            if (gs.nil(additionalParams))
                additionalParams = {};
            additionalParams[this.SKIP_LINES_KEY] = "true";
    
            // additional parameters are retrieved using the PrimitiveUtil() utility methods provided by the Lead to Cash Core application
            var service = util.getPrimitivesEPService(sourceToTargetConfigID, context);
            var isEmpty = false;
            if (service) {
                var createInstanceOutput = service.createInstance(sourceHeaderId, null, false, additionalParams);
                if (gs.nil(sourceHeaderId))
                    isEmpty = this.__isEmpty(createInstanceOutput.lineItems);
                else
                    isEmpty = this.__isEmpty(createInstanceOutput);
                if (!isEmpty) {
                    var effectOutput = service.effect(createInstanceOutput, null, additionalParams);
                    if (!this.__isEmpty(effectOutput)) {
                        var commitOutput = service.commitInstance(effectOutput, additionalParams);
                        return commitOutput;
                    }
                }
            }
            return result;
        },
    
        processInboundQueueRequest: function(inboundQueueGR) {
            gs.info("processRequest inboundQueueGR " + JSON.stringify(inboundQueueGR));
            var result = this.quoteUtil.createOrderFromQuoteUsingMetadata(inboundQueueGR.getValue('source_record_ids'), 'sn_l2c_quote_to_order', null, null, inboundQueueGR.getValue('record_id'));
            return result;
        },
    
        __isEmpty: function(sourceObj) {
            if (gs.nil(sourceObj))
                return true;
            return Object.keys(sourceObj).length === 0;
        },
        getMapingConfigIdFromSysId(requestedFlow) {
            var gr = new GlideRecord("sn_l2c_core_entity_mapping");
            gr.addQuery("sys_id", requestedFlow);
            gr.query();
            if (gr.next()) {
                gs.info("mapping id received to corresponding requestedFlow");
                return gr;
            }
        },
    
        type: 'IBQConfigQuoteToOrderFlowSNC'
    });

    IBQConfigBase – generateParentRecord(Objet ibqParams)

    Crée un enregistrement parent qui est ajouté au record_id de l’enregistrement de demande entrante [sn_tmt_core_inbound_queue_list] avant de traiter la demande.

    La création d’un enregistrement parent avant le traitement est idéale pour un traitement asynchrone et vous permet d’ajouter à votre include de script des activités qui peuvent être exécutées pendant le traitement. Par exemple, afficher un message à l’écran.

    Tableau 1. Paramètres
    Nom Type Description
    ibqParams Objet Objet JSON contenant les détails de l’enregistrement de demande entrante à créer.
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    compte Chaîne Facultatif. Informations sur le compte associé à l’enregistrement.

    Table : Compte [customer_account]

    consommateur Chaîne Facultatif. Informations sur le consommateur associé à l’enregistrement.

    Table : Consommateur [csm_consumer]

    contact Chaîne Facultatif. Informations sur le contact associé à l’enregistrement.

    Table : Contact [customer_contact]

    charge utile Objet Facultatif. Objet JSON nécessaire pour traiter la demande à l’aide de l’API PrimitiveUtil(). Pour plus d’informations sur l’utilisation, consultez LeadToCashCore.
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    payload.additionalParams Objet Facultatif. Paramètres supplémentaires à utiliser.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    payload.additionalParams.action Chaîne Facultatif. Spécifie le type d’action déclarative en cours d’exécution. Pour plus d'informations, consultez Customer Life Cycle Management Workflows.
    Valeurs possibles :
    • déconnecter
    • modify
    • reprendre
    • suspendre
    payload.additionalParams.actionReason Chaîne Facultatif. Propriété utilisée dans les flux utilisant des actions déclaratives. Motif de l’action.
    payload.additionalParams.endDate Chaîne Facultatif. Date de fin requise pour exécuter des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    payload.additionalParams.skipLines Booléen Facultatif. Marqueur indiquant s’il faut extraire des éléments de ligne pour l’entité spécifiée.
    Valeurs valides :
    • vrai : ignorer le renvoi des informations sur les éléments de ligne pour l’entité.
    • faux : renvoyer les informations sur les éléments de ligne pour l’entité.
    Valeur par défaut : false
    payload.additionalParams.startDate Chaîne Facultatif. Date de début d’exécution des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    chargeutile.contexte Objet Facultatif. Options de paramètres supplémentaires pour afficher les valeurs d’attribut et pour invoquer plus d’une instance à la fois.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    chargeutile.contexte.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : permet de transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : un seul élément d’entrée peut être transmis dans le script.
    Valeur par défaut : false
    payload.context.sourceToTargetConfigID Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    payload.inputParams Objet Facultatif. Cet objet est un espace réservé pour tous les paramètres d’entrée requis pour invoquer l’utilisation d’un flux spécifique.
    "inputParams": {}
    chargeutile.source Tableau Facultatif. Objet JSON contenant les détails de l’entité source à partir de laquelle récupérer les données.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.source.headerId Chaîne Facultatif. En-tête sys_id de l’entité source à partir de laquelle récupérer les données.
    • Requis si vous ne fournissez pas le lineIds paramètre.
    • Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.source.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne sources d’une entité à partir desquels récupérer les données de l’entité.

    Requis si vous ne fournissez pas l’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.

    charge utile.cible Tableau Facultatif. Objet JSON contenant les détails de l’entité cible.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.target.headerId Chaîne Facultatif. En-tête sys_id de l’entité cible à partir de laquelle récupérer les données. Requis si vous ne fournissez pas le lineIds paramètre. Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.target.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne cibles d’une entité à partir desquels récupérer les données de l’entité. Requis si vous ne fournissez pas d’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.
    record_id Chaîne Facultatif. Sys_id de l’enregistrement cible s’il existe déjà.
    requested_flow Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible. Cette propriété est requise pour les flux utilisant Entity configuration and mapping.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    source_record_ids Tableau Tableau contenant les sys_ids des enregistrements sources.
    source_table Chaîne Nom de la table qui contient l’enregistrement source du flux.
    Table Chaîne Nom de la table qui contient l’enregistrement cible du flux.
    Tableau 2. Renvoie
    Type Description
    Objet JSON Objet JSON contenant l’ID d’en-tête de l’enregistrement cible créé.
    {
     "headerID": "String",
     // additional parameters, if any, per flow see payload.inputParams
    }
    ID d’en-tête Sys_id de l’en-tête de l’enregistrement cible créé. Cette valeur permet de remplir record_id champ lors de la création de l’enregistrement de la demande entrante.
    L’exemple suivant montre comment appeler la méthode generateParentRecord( ).
    Remarque :
    IBQConfigQuoteToOrderFlow est un include de script personnalisé qui peut être créé en étendant l’API IBQConfigBase . La logique des méthodes remplaçables doit être ajoutée dans l’include de script IBQConfigQuoteToOrderFlow.
    var ibqParams = {
      "source_record_ids": "f83e29574df02210f877142d1adc9531",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    }; 
    
    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow(); 
    var parentRecord = service.generateParentRecord(ibqParams); 
    
    gs.info("Parent record = "+JSON.stringify(parentRecord));
    Sortie :
    Parent record = {"headerID":"d11bd507dc6c6a10f877720033b5d0b9", ...} 

    IBQConfigBase – getRunMode(Objet ibqParams)

    Détermine si un flux doit s’exécuter en mode synchrone ou asynchrone.

    Tableau 3. Paramètres
    Nom Type Description
    ibqParams Objet Objet JSON contenant les détails de l’enregistrement de demande entrante à créer.
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    compte Chaîne Facultatif. Informations sur le compte associé à l’enregistrement.

    Table : Compte [customer_account]

    consommateur Chaîne Facultatif. Informations sur le consommateur associé à l’enregistrement.

    Table : Consommateur [csm_consumer]

    contact Chaîne Facultatif. Informations sur le contact associé à l’enregistrement.

    Table : Contact [customer_contact]

    charge utile Objet Facultatif. Objet JSON nécessaire pour traiter la demande à l’aide de l’API PrimitiveUtil(). Pour plus d’informations sur l’utilisation, consultez LeadToCashCore.
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    payload.additionalParams Objet Facultatif. Paramètres supplémentaires à utiliser.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    payload.additionalParams.action Chaîne Facultatif. Spécifie le type d’action déclarative en cours d’exécution. Pour plus d'informations, consultez Customer Life Cycle Management Workflows.
    Valeurs possibles :
    • déconnecter
    • modify
    • reprendre
    • suspendre
    payload.additionalParams.actionReason Chaîne Facultatif. Propriété utilisée dans les flux utilisant des actions déclaratives. Motif de l’action.
    payload.additionalParams.endDate Chaîne Facultatif. Date de fin requise pour exécuter des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    payload.additionalParams.skipLines Booléen Facultatif. Marqueur indiquant s’il faut extraire des éléments de ligne pour l’entité spécifiée.
    Valeurs valides :
    • vrai : ignorer le renvoi des informations sur les éléments de ligne pour l’entité.
    • faux : renvoyer les informations sur les éléments de ligne pour l’entité.
    Valeur par défaut : false
    payload.additionalParams.startDate Chaîne Facultatif. Date de début d’exécution des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    chargeutile.contexte Objet Facultatif. Options de paramètres supplémentaires pour afficher les valeurs d’attribut et pour invoquer plus d’une instance à la fois.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    chargeutile.contexte.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : permet de transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : un seul élément d’entrée peut être transmis dans le script.
    Valeur par défaut : false
    payload.context.sourceToTargetConfigID Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    payload.inputParams Objet Facultatif. Cet objet est un espace réservé pour tous les paramètres d’entrée requis pour invoquer l’utilisation d’un flux spécifique.
    "inputParams": {}
    chargeutile.source Tableau Facultatif. Objet JSON contenant les détails de l’entité source à partir de laquelle récupérer les données.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.source.headerId Chaîne Facultatif. En-tête sys_id de l’entité source à partir de laquelle récupérer les données.
    • Requis si vous ne fournissez pas le lineIds paramètre.
    • Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.source.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne sources d’une entité à partir desquels récupérer les données de l’entité.

    Requis si vous ne fournissez pas l’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.

    charge utile.cible Tableau Facultatif. Objet JSON contenant les détails de l’entité cible.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.target.headerId Chaîne Facultatif. En-tête sys_id de l’entité cible à partir de laquelle récupérer les données. Requis si vous ne fournissez pas le lineIds paramètre. Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.target.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne cibles d’une entité à partir desquels récupérer les données de l’entité. Requis si vous ne fournissez pas d’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.
    record_id Chaîne Facultatif. Sys_id de l’enregistrement cible s’il existe déjà.
    requested_flow Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible. Cette propriété est requise pour les flux utilisant Entity configuration and mapping.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    source_record_ids Tableau Tableau contenant les sys_ids des enregistrements sources.
    source_table Chaîne Nom de la table qui contient l’enregistrement source du flux.
    Table Chaîne Nom de la table qui contient l’enregistrement cible du flux.
    Tableau 4. Renvoie
    Type Description
    Chaîne Informations sur le mode d’exécution à utiliser pour exécuter la demande.
    Valeurs possibles :
    • async
    • sync
    L’exemple suivant montre comment appeler la méthode getRunMode() à l’aide du sys_id source fourni par la propriété source_record_ids. Si le nombre d’éléments de ligne est supérieur à 10, alors runMode est asynchrone.
    Remarque :
    IBQConfigQuoteToOrderFlow est un include de script personnalisé qui peut être créé en étendant l’API IBQConfigBase . La logique des méthodes remplaçables doit être ajoutée dans l’include de script IBQConfigQuoteToOrderFlow.
    var ibqParams = {
      "source_record_ids": "04ba9004f11f3110f8777d7194f166f6",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };
    
    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();
    
    var runMode = service.getRunMode(ibqParams);
    
    gs.info("RunMode = "+JSON.stringify(runMode));
    Sortie :
    RunMode = "async"
    L’exemple suivant montre comment appeler la méthode getRunMode( ). Il utilise le sys_id source fourni dans source_record_ids. Ici, le nombre d’éléments de ligne est inférieur à 10, donc la runMode synchronisation est effectuée.
    Remarque :
    IBQConfigQuoteToOrderFlow est un include de script personnalisé qui peut être créé en étendant l’API IBQConfigBase . La logique des méthodes remplaçables doit être ajoutée dans l’include de script IBQConfigQuoteToOrderFlow.
    var ibqParams = {
      "source_record_ids": "0b0f5cc8f11f3110f8777d7194f16610",
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc",
      "initiated_by": "admin",
      "source_table": "sn_quote_mgmt_core_quote",
      "table": "sn_ind_tmt_orm_order",
      "payload": {}
    };
    
    var service = new sn_quote_mgmt.IBQConfigQouteToOrderFlow();
    
    var runMode = service.getRunMode(ibqParams);
    
    gs.info("RunMode = "+JSON.stringify(runMode));
    Sortie :
    RunMode = "sync"

    IBQConfigBase – processInboundQueueRequest(GlideRecord ibqGr)

    Définit la logique de traitement d’un enregistrement de demande entrante.

    Tableau 5. Paramètres
    Nom Type Description
    ibqGr GlideRecord Référence GlideRecord à l’enregistrement de demande entrante qui a déclenché le flux.

    Table : Demande entrante [sn_tmt_core_inbound_queue]

    Tableau 6. Renvoie
    Type Description
    Objet Objet JSON contenant les détails de traitement de l’enregistrement de demande entrante.
    {
      "error": "String",
      "response": {Object},
      "status": "String",
      "target": "String"
    }
    erreur Valeur indiquant l’erreur rencontrée lors du traitement de la demande.

    Type de données : chaîne

    réponse Objet JSON contenant la réponse de traitement de l’enregistrement de demande entrante. Pour les flux créés par l’API Lead to Cash Core PrimitiveUtil , cette sortie peut être fournie à l’aide de la méthode commitInstance( ).

    Type de données : objet

    état Valeur indiquant l’état du traitement de la demande.
    Valeurs possibles :
    • échec : l’opération a échoué.
    • partial_success : il y a eu quelques échecs lors du traitement de l’objet JSON. Reportez-vous aux journaux de traitement dans la table Journal [syslog] pour résoudre des erreurs spécifiques.
    • réussite : l’opération a réussi.

    Type de données : chaîne

    target Facultatif. Sys_id de l’enregistrement cible à utiliser pour un traitement ultérieur, tel que la confirmation de l’interface utilisateur. La cible peut être créée pendant le flux ou transmise comme entrée à la ibqParams méthode generateParentRecord() en fonction des besoins.

    Type de données : chaîne

    L’exemple suivant montre comment appeler la méthode processInboundQueueRequest().
    Remarque :
    Cette méthode est appelée pendant le flux à l’aide de Flow Designer. Dans l’exemple suivant, la méthode Lead to Cash Core PrimitiveUtil commitInstance() est utilisée pour fournir la sortie.
    var gr = new GlideRecord('sn_tmt_core_inbound_queue');
    gr.get('c48ea9974df02210f877142d1adc951a');
    
    var service = new sn_quote_mgmt.IBQConfigQuoteToOrderFlow();
    var processRequest = service.processInboundQueueRequest(gr);
    
    gs.info("processRequest = "+JSON.stringify(processRequest));
    Sortie :
    processRequest = {
      "response": {
        "status": "success",
        "error": "",
        "message": "Commit operation successfully processed.",
        "displayMessage": "Commit operation successfully processed.",
        "dataObject": {
          "sys_id": "a6f4568bdce0aa10f877720033b5d069",
          "table": "sn_ind_tmt_orm_order",
          "attributes": {
            "account": {
              "value": "9e2fd2ee11b43110f877366201dea674"
            },
            "quote": {
              "value": "c8841a4bdce0aa10f877720033b5d0f8"
            }
          },
          "_glide_action": "UPDATE",
          "_source_object": {
            "sys_id": "c8841a4bdce0aa10f877720033b5d0f8",
            "table": "sn_quote_mgmt_core_quote"
          },
          "lineItems": [
            {
              "sys_id": "-1",
              "table": "sn_ind_tmt_orm_order_line_item",
              "attributes": {
                "short_description": {
                  "value": "Home Automation Bundle"
                },
                "account": {
                  "value": "9e2fd2ee11b43110f877366201dea674"
                }
              },
              "_glide_action": "INSERT",
              "_source_object": {
                "sys_id": "afc4528bdce0aa10f877720033b5d0d0",
                "table": "sn_quote_mgmt_core_quote_line_item"
              },
              "characteristics": [],
              "lineItems": [
                {
                  "sys_id": "-1",
                  "table": "sn_ind_tmt_orm_order_line_item",
                  "attributes": {
                    "short_description": {
                      "value": "Door Sensor"
                    },
                    "account": {
                      "value": "9e2fd2ee11b43110f877366201dea674"
                    }
                  },
                  "_glide_action": "INSERT",
                  "_source_object": {
                    "sys_id": "77c4528bdce0aa10f877720033b5d0d5",
                    "table": "sn_quote_mgmt_core_quote_line_item"
                  },
                  "characteristics": [],
                  "lineItems": [],
                  "pricingAdjustments": [
                    {
                      "sys_id": "-1",
                      "table": "sn_ind_tmt_orm_pricing_adjustment",
                      "attributes": {
                        "name": {
                          "value": "door sensor bundle discount"
                        }
                      },
                      "_glide_action": "INSERT",
                      "_source_object": {
                        "sys_id": "f3c4928bdce0aa10f877720033b5d02f",
                        "table": "sn_quote_mgmt_core_pricing_adjustment"
                      },
                      "_commitObjectInfo": {
                        "sys_id": "e6955acbdce0aa10f877720033b5d082",
                        "status": "success"
                      }
                    }
                  ],
                  "coveredProducts": [],
                  "attributeAdjustment": [],
                  "_commitObjectInfo": {
                    "sys_id": "26955acbdce0aa10f877720033b5d07d",
                    "status": "success"
                  }
                }
              ],
              "pricingAdjustments": [],
              "coveredProducts": [],
              "attributeAdjustment": [],
              "_commitObjectInfo": {
                "sys_id": "22955acbdce0aa10f877720033b5d078",
                "status": "success"
              }
            }
          ],
          "_commitObjectInfo": {
            "status": "success"
          }
        },
        "headerID": "a6f4568bdce0aa10f877720033b5d069",
        "rootLineIDs": [
          "22955acbdce0aa10f877720033b5d078"
        ]
      },
      "status": "success",
      "error": "",
      "target": "a6f4568bdce0aa10f877720033b5d069"
    }

    IBQConfigBase – setExecuteAfterRequest(Objet ibqParams)

    Définit la valeur execute_after et met à jour l’état sur En attente sur l’enregistrement de demande entrante actuel pour configurer l’ordre dans lequel les enregistrements sont traités dans la table Demande entrante.

    La méthode setExecuteAfterRequest() peut être remplacée pour dériver la execute_after valeur d’autres paramètres. Par défaut, cette méthode interroge la table des demandes entrantes [sn_tmt_core_inbound_queue] pour trouver le dernier enregistrement avec les valeurs correspondantes source_record_ids, record_idet resource . Cette méthode met ensuite à jour le champ de execute_after de l’enregistrement actuel avec le sys_id de l’enregistrement interrogé, marquant ainsi l’enregistrement actuel à traiter après l’enregistrement interrogé. Par conséquent, setExecuteAfterRequest() établit l’ordre dans lequel les enregistrements sont traités.

    Tableau 7. Paramètres
    Nom Type Description
    ibqParams Objet Objet JSON contenant les détails des enregistrements de demandes entrantes à définir. Ces paramètres comprennent le sys_id d’enregistrement à traiter avant l’enregistrement actuel et le nom du workflow par lequel filtrer dans la table des demandes entrantes [sn_tmt_core_inbound_queue].
    {
      "account": "String",
      "consumer": "String",
      "contact": "String",
      "execute_after": "String",
      "payload": {Object},
      "record_id": "String",
      "requested_flow": "String",
      "resource": "String",
      "source_record_ids": [Array],
      "source_table": "String",
      "table": "String"
    }
    compte Chaîne Facultatif. Informations sur le compte associé à l’enregistrement.

    Table : Compte [customer_account]

    consommateur Chaîne Facultatif. Informations sur le consommateur associé à l’enregistrement.

    Table : Consommateur [csm_consumer]

    contact Chaîne Facultatif. Informations sur le contact associé à l’enregistrement.

    Table : Contact [customer_contact]

    ibqParams.execute_after Chaîne Facultatif. Sys_id de la demande entrante à traiter avant la demande actuelle.

    Table : Demande entrante [sn_tmt_core_inbound_queue]

    charge utile Objet Facultatif. Objet JSON nécessaire pour traiter la demande à l’aide de l’API PrimitiveUtil(). Pour plus d’informations sur l’utilisation, consultez LeadToCashCore.
    "payload": {
      "additionalParams": {Object},
      "context": {Object},
      "inputParams": {Object}
      "source": [Array of Objects],
      "target": [Array of Objects]
    }
    payload.additionalParams Objet Facultatif. Paramètres supplémentaires à utiliser.
    "additionalParams": {
      "action": "String",
      "actionReason": "String"
      "endDate": "Date",
      "skipLines": "Boolean",
      "startDate": "Date"
    }
    payload.additionalParams.action Chaîne Facultatif. Spécifie le type d’action déclarative en cours d’exécution. Pour plus d'informations, consultez Customer Life Cycle Management Workflows.
    Valeurs possibles :
    • déconnecter
    • modify
    • reprendre
    • suspendre
    payload.additionalParams.actionReason Chaîne Facultatif. Propriété utilisée dans les flux utilisant des actions déclaratives. Motif de l’action.
    payload.additionalParams.endDate Chaîne Facultatif. Date de fin requise pour exécuter des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    payload.additionalParams.skipLines Booléen Facultatif. Marqueur indiquant s’il faut extraire des éléments de ligne pour l’entité spécifiée.
    Valeurs valides :
    • vrai : ignorer le renvoi des informations sur les éléments de ligne pour l’entité.
    • faux : renvoyer les informations sur les éléments de ligne pour l’entité.
    Valeur par défaut : false
    payload.additionalParams.startDate Chaîne Facultatif. Date de début d’exécution des flux à l’aide d’actions déclaratives.

    Format : aaaa-MM-jj HH :mm :ss

    chargeutile.contexte Objet Facultatif. Options de paramètres supplémentaires pour afficher les valeurs d’attribut et pour invoquer plus d’une instance à la fois.
    "context": {
      "isMultiSelect": "Boolean",
      "sourceToTargetConfigID": "String"
    }
    chargeutile.contexte.isMultiSelect Booléen Facultatif. Marqueur indiquant s’il faut transmettre plusieurs entités comme entrée pour créer l’instance.
    Valeurs valides :
    • true : permet de transmettre plusieurs éléments de ligne dans une liste séparée par des virgules.
    • false : un seul élément d’entrée peut être transmis dans le script.
    Valeur par défaut : false
    payload.context.sourceToTargetConfigID Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    payload.inputParams Objet Facultatif. Cet objet est un espace réservé pour tous les paramètres d’entrée requis pour invoquer l’utilisation d’un flux spécifique.
    "inputParams": {}
    chargeutile.source Tableau Facultatif. Objet JSON contenant les détails de l’entité source à partir de laquelle récupérer les données.
    "source": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.source.headerId Chaîne Facultatif. En-tête sys_id de l’entité source à partir de laquelle récupérer les données.
    • Requis si vous ne fournissez pas le lineIds paramètre.
    • Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.source.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne sources d’une entité à partir desquels récupérer les données de l’entité.

    Requis si vous ne fournissez pas l’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.

    charge utile.cible Tableau Facultatif. Objet JSON contenant les détails de l’entité cible.
    "target": [
      {
        "headerId": "String",
        "lineIds": []
      }
    ]
    loadload.target.headerId Chaîne Facultatif. En-tête sys_id de l’entité cible à partir de laquelle récupérer les données. Requis si vous ne fournissez pas le lineIds paramètre. Transmettez la valeur null si vous ne transmettez aucun sys_ids d’en-tête.
    load.target.lineIds Tableau Facultatif. Tableau contenant le ou les sys_id d’éléments de ligne cibles d’une entité à partir desquels récupérer les données de l’entité. Requis si vous ne fournissez pas d’ID d’en-tête et si la structure de l’entité commence par des éléments de ligne tels que le produit vendu.
    record_id Chaîne Facultatif. Sys_id de l’enregistrement cible s’il existe déjà.
    requested_flow Chaîne Facultatif. ID de configuration du mappage pour le mappage de la source à la cible. Cette propriété est requise pour les flux utilisant Entity configuration and mapping.

    Table : Mappage d’entité prospect-espèces [sn_l2c_core_entity_mapping]

    ibqParams.resource Chaîne Nom du flux qui crée l’enregistrement dans la table Demande entrante (par exemple, un devis ou une commande). Cette valeur est utilisée pour rechercher des enregistrements dépendants du même type afin de déterminer l’ordre de traitement des enregistrements.
    source_record_ids Tableau Tableau contenant les sys_ids des enregistrements sources.
    source_table Chaîne Nom de la table qui contient l’enregistrement source du flux.
    Table Chaîne Nom de la table qui contient l’enregistrement cible du flux.
    Tableau 8. Renvoie
    Type Description
    Aucun

    Dans l’exemple suivant, le script interroge la table des demandes entrantes [sn_tmt_core_inbound_queue] pour trouver le dernier enregistrement avec les valeurs de source_record_ids, de record_id et de ressource correspondantes. Le script appelle ensuite la méthode setExecuteAfterRequest() pour mettre à jour la valeur de execute_after de l’enregistrement actuel avec la sys_id de l’enregistrement récupéré et définit son état sur attente. Par conséquent, l’enregistrement actuel s’exécutera après l’enregistrement spécifié dans le champ execute_after.

    var ibqParams = { 
      "source_record_ids": "e32e29fd28d26a14f8775b8f954723b8",
      "record_id":"b9be293128166a14f8775b8f9547239f", 
      "requested_flow": "0feb6d9da36271105c24939ef31e61dc", 
      "initiated_by": "admin", 
      "source_table": "sn_quote_mgmt_core_quote", 
      "table": "sn_ind_tmt_orm_order", 
      "payload": {
      "context": {}}, 
      "resource": "quote_to_order" 
     }; 
    
    new sn_tmt_core.IBQConfigBase().setExecuteAfterRequest(ibqParams);

    Cette méthode ne renvoie aucune sortie.