---
sourceDocument: Gestion du service à la clientèle de Yokohama
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/yokohama/customer-service-management

 Release :

    - yokohama

ft:locale :

    - fr-FR

ft:publication_title :

    - Gestion du service à la clientèle de Yokohama

ft:clusterId :

    - csm

bundleId :

    - csm

workflow :

    - Customer and Industry


---

# Exemple de script qui interroge la table Opportunité

# Exemple de script qui interroge la table Opportunité {#csm-opportunity-table-script___Ref16694770}

* Rversion finale: Yokohama
* 
* Mis à jour 30 janv. 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes de lecture

Cet exemple de script interroge la table d'opportunités à l'aide des actions personnalisées Obtenir toutes les opportunités, Obtenir les opportunités pour l'ID de compte et Obtenir les détails de l'opportunité .  
L'exemple de script se compose de trois parties distinctes :

1. La première partie sélectionne l'action personnalisée correcte et prépare les entrées correspondantes.
2. La deuxième partie appelle l'action.
3. La troisième partie traite les sorties de l'action.
{#csm-opportunity-table-script__ol_u1s_tyj_v3b}

## Sélection d'une action de spoke et préparation des entrées {#csm-opportunity-table-script__section_select_spoke_actions}

Dans cette section du script, sélectionnez l'une des trois actions personnalisées pour lesquelles vous êtes prêt à obtenir des opportunités à partir de l'application Salesforce :

* Obtenir toutes les opportunités
* Obtenir des opportunités pour l'ID de compte
* Obtenir les détails de l'opportunité

{#csm-opportunity-table-script__ul_z1q_bzj_v3b} Vous pouvez décider de l'action à appeler en fonction des paramètres inclus dans l'argument de la fonction `v_query` .  

    /****** Choose action and prepare action inputs *****/
    var action = null;
    var inputs = {};

    // look up opportunity by salesforce record id
    if (v_query.isGet()) {

      action = "get_opportunity_details";
      inputs.salesforce_opportunity_record_id = v_query.getSysId();
          

    // look up opportunities by salesforce account id
    } else if (v_query.getParameter("u_sf_account_id")) {

        if (v_query.getParameter("u_sf_account_id") == "undefined") {
          gs.addInfoMessage("Opportunities cannot be retrieved because " +
                            "this "Account does not have associated "    +
                            "Salesforce Account. Please contact System " +
                             "Administrator.");
          return;

        } else {
          action = "get_opportunities_for_account_id";
          inputs.salesforce_account_id = v_query.getParameter("u_sf_account_id");
        }

    // look up all opportunities
    } else {
      action = "get_all_opportunities";
    }

Notez que ce script configure un message d'information si le compte Salesforce n'est pas défini lorsque cela est requis par l'action. La valeur non définie provient de la relation décrite dans [Utilisation d'une liste connexe pour créer la connexion entre le compte client et les opportunités Salesforce](https://servicenow-prod.fluidtopics.net/~41fcIoFaExQKpryKAwOdw "Utilisez une liste connexe pour lier la table Compte client à Salesforce l’ID de compte, et la table distante d’opportunité Salesforce au même ID de compte.").

Lorsque le compte Salesforce n'est pas défini, il n'y a rien à interroger dans ce cas et la fonction est renvoyée sans appeler l'action de spoke.

## Appel de l'action de spoke {#csm-opportunity-table-script__section_ed2_pzj_v3b}

Dans cette section du script, appelez l'action à l'aide des noms du spoke Salesforce et de l'action sélectionnée et stockez les sorties de l'appel.  

    /***** Call action *****/
    var outputs =
            sn_fd.FlowAPI.executeAction("sn_salesforce_spok." + action, inputs);

## Traitement de la sortie de l'action {#csm-opportunity-table-script__section_pqr_szj_v3b}

Dans cette section du script, traitez les sorties en commençant par la vérification des erreurs.  

    /***** Process action outputs *****/
    if (outputs.status != "Success") {
    throw new Error(outputs.error_message);
    }

Si la requête ne renvoie aucune erreur, le script doit traiter les enregistrements renvoyés et les ajouter en tant que lignes dans la table distante. Mappez les champs d'opportunité Salesforce dans les colonnes de la table distante.  

    var opportunities = outputs.opportunities.data;

     for (var i = 0; i < opportunities.length; i++) {
      var opportunity = opportunities[i];
      v_table.addRow({
        "u_sf_amount": opportunity.Amount,
        "u_sf_close_date": opportunity.CloseDate,
        "u_sf_name": opportunity.Name,
        "u_sf_probability": opportunity.Probability + "%",
        "u_sf_account_id": opportunity.AccountId,
        "u_sf_stage": opportunity.StageName,
        "u_sf_type": opportunity.Type,
        "sys_id": opportunity.Id,
      });
    }

Notez que l'ID d'enregistrement d'opportunité Salesforce est affecté à la table distante sys_id. Cela permet de vérifier que les listes et les formulaires de la table distante fonctionnent correctement et que nous sommes en mesure d'extraire l'ID de l'enregistrement à l'aide `de v_query.getSysId()` la prochaine fois que le script de table distante est invoqué.

Affichez ensuite le message d'information s'il a été transmis par la requête.  

    if (outputs.info_message) {
      gs.addInfoMessage(outputs.info_message);
    }

## Assemblage des sections de script de la table distante {#csm-opportunity-table-script__section_z11_k1k_v3b}

Les trois sections du script sont incluses dans le bloc try-catch pour permettre la gestion des erreurs.  

    (function executeQuery(v_table, v_query) {

      try {

        // place code here from: <Selecting a spoke action and preparing the inputs>

        // place code here from: <Calling the spoke action>

        // place code here from: <Processing the action output>  	
            
      } catch (error) {
        gs.addErrorMessage("Error retrieving  Salesforce Opportunities. " +
                           "Please contact System Administrator.");
        gs.addErrorMessage("System Error: " + error.message);
      }

    })(v_table, v_query);


