Exemple de script interrogeant la table Opportunité

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Cet exemple de script interroge la table Opportunité à l'aide des actions personnalisées Obtenir toutes les opportunités, Obtenir toutes les opportunités pour l'ID de compte et Obtenir les détails sur 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 lui prépare des entrées.
    2. La deuxième partie appelle l'action.
    3. La troisième partie traite les sorties de l'action.

    Sélectionner une action de spoke et préparer les entrées

    Dans cette section du script, sélectionnez une des trois actions personnalisées que vous avez préparées pour obtenir les opportunités de l'application Salesforce :
    • Obtenir toutes les opportunités
    • Obtenir les opportunités pour l'ID de compte
    • Obtenir les détails sur l'opportunité
    Vous pouvez décider quelle action appeler en fonction des paramètres inclus dans l'argument de 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 lorsqu'il est requis par l'action. La valeur non définie provient de la relation décrite dans Utiliser une liste connexe pour créer la connexion entre le compte client et les opportunités Salesforce.

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

    Appeler l'action de spoke

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

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

    Traiter la sortie de l'action

    Dans cette section du script, traitez les sorties en commençant par vérifier la présence d'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 sous forme de 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 de l'enregistrement d'opportunité Salesforce est affecté à la table distante sys_id. Cela garantit que les listes et les formulaires de la table distante fonctionnent correctement et qu'il sera possible d'extraire l'ID d'enregistrement en utilisant v_query.getSysId() la prochaine fois que le script de table distante sera invoqué.

    Ensuite, affichez le message d'information s'il a été transmis par la requête.

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

    Assembler les sections du script de table distante

    Les trois sections du script sont incluses dans le bloc « try-catch » pour assurer le traitement 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);