Script de exemplo que consulta a tabela Oportunidade
Este script de exemplo consulta a tabela de oportunidades usando as ações personalizadas Obter todas as oportunidades, Obter oportunidades para ID da contae Obter detalhes da oportunidade.
- A primeira parte seleciona a ação personalizada correta e prepara as entradas para ela.
- A segunda parte faz uma chamada para a ação.
- A terceira parte processa as saídas da ação.
Selecionar uma ação de spoke e preparar as entradas
- Obter todas as oportunidades
- Obter oportunidades para ID da conta
- Obter detalhes da oportunidade
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";
}
Observe que este script configura uma mensagem informativa se a conta do Salesforce estiver indefinida quando for necessária para a ação. O valor indefinido vem do relacionamento descrito em Como usar uma lista relacionada para criar a conexão entre a conta do cliente e as oportunidades do Salesforce.
Quando a conta do Salesforce está indefinida, não há nada para consultar neste caso e a função retorna sem chamar a ação spoke.
Chamando a ação do spoke
Nesta seção do script, chame a ação usando os nomes do spoke do Salesforce e a ação selecionada e armazene as saídas da chamada.
/***** Call action *****/
var outputs =
sn_fd.FlowAPI.executeAction("sn_salesforce_spok." + action, inputs);
Processando a saída da ação
Nesta seção do script, processe as saídas começando com a verificação de erros.
/***** Process action outputs *****/
if (outputs.status != "Success") {
throw new Error(outputs.error_message);
}
Se a consulta não retornar erros, o script precisará processar os registros retornados e adicioná-los como linhas na tabela remota. Mapeie os campos de oportunidade do Salesforce nas colunas da tabela remota.
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,
});
}
Observe que a ID do registro de oportunidade do Salesforce está atribuída à tabela remota sys_id. Isso garante que as listas e os formulários da tabela remota funcionem corretamente e que possamos extrair a ID do registro usando v_query.getSysId() na próxima vez que o script da tabela remota for invocado.
Em seguida, exiba a mensagem de informações se ela tiver sido passada pela consulta.
if (outputs.info_message) {
gs.addInfoMessage(outputs.info_message);
}
Reunindo as seções de script da tabela remota
As três seções do script estão incluídas no bloco de tentativa de captura para fornecer tratamento de erros.
(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);