Exemplo: Xrm.Page.data.process.getActivePath
Publicado: novembro de 2016
Aplicável a: Dynamics CRM 2015
Este exemplo mostra os dados retornados ao usar o método Xrm.Page.data.process.getActivePath.
Requisitos
A função Sdk.formOnLoad na biblioteca do JavaScript de amostra precisa ser definida como o manipulador de eventos do OnLoad para um formulário.
Demonstra
O método Xrm.Page.data.process.getActivePath retorna uma coleção de estágios que representam quaisquer etapas anteriores, o estágio atual ativo e os estágios futuros esperados que levam em consideração as condições de ramificação e os dados atuais do formulário. Cada estágio tem um método getSteps que pode ser usado para recuperar informações sobre cada etapa no estágio.
Esta amostra ilustra o uso de alguns métodos no Xrm.Page.data.processAPI. Não represente usando este API para atender um requisito corporativo; somente pretende-se demonstrar como os valores de propriedade principais podem ser acessados no código.
Exemplo
A função Sdk.formOnLoad usa o método Xrm.Page.data.process.getActivePath para recuperar uma coleção de estágios. Em seguida, o código de exemplo usa o método forEach da coleção para oferecer loop em cada estágio. O código grava as principais propriedades do estágio para o console usando a função Sdk.writeToConsole definida nessa biblioteca. O código acessa um conjunto de etapas para cada estágio usando o método getSteps. Por fim, o exemplo usa o método forEach do conjunto de etapas para acessar cada etapa e escrever as principais propriedades da etapa para o console.
var Sdk = window.Sdk || { __namespace: true };
(function () {
// A function to log messages while debugging only
this.writeToConsole = function (message) {
if (typeof console != 'undefined')
{ console.log(message); }
};
//Code to run in the OnLoad event
this.formOnLoad = function () {
//Enumerate the stages and steps in the active path
var activePathCollection = Xrm.Page.data.process.getActivePath();
activePathCollection.forEach(function (stage, n) {
Sdk.writeToConsole("Stage Index: " + n);
Sdk.writeToConsole("Entity: " + stage.getEntityName());
Sdk.writeToConsole("StageId: " + stage.getId());
Sdk.writeToConsole("Status: " + stage.getStatus());
var stageSteps = stage.getSteps();
stageSteps.forEach(function (step, i) {
Sdk.writeToConsole(" Step Name: " + step.getName());
Sdk.writeToConsole(" Step Attribute: " + step.getAttribute());
Sdk.writeToConsole(" Step Required: " + step.isRequired());
Sdk.writeToConsole(" ---------------------------------------")
})
Sdk.writeToConsole("---------------------------------------")
});
};
}).call(Sdk);
Ao executar o exemplo no navegador, é possível usar as ferramentas do desenvolvedor de navegador para exibir o texto escrito no console. Por exemplo, quando esse exemplo é executado no formulário da entidade Cliente potencial com o Cliente potencial para Processo de Vendas de Oportunidade, o seguinte é escrito no console:
Stage Index: 0
Entity: lead
StageId: f99b4d48-7aad-456e-864a-8e7d543f7495
Status: active
Step Name: Existing Contact?
Step Attribute: null
Step Required: false
---------------------------------------
Step Name: Existing Account?
Step Attribute: null
Step Required: false
---------------------------------------
Step Name: Purchase Timeframe
Step Attribute: purchasetimeframe
Step Required: false
---------------------------------------
Step Name: Estimated Budget
Step Attribute: budgetamount
Step Required: false
---------------------------------------
Step Name: Purchase Process
Step Attribute: purchaseprocess
Step Required: false
---------------------------------------
Step Name: Identify Decision Maker
Step Attribute: decisionmaker
Step Required: false
---------------------------------------
Step Name: Capture Summary
Step Attribute: description
Step Required: false
---------------------------------------
---------------------------------------
Stage Index: 1
Entity: opportunity
StageId: bfc9108c-8389-406b-9166-2c3298a2e41f
Status: inactive
Step Name: Customer Need
Step Attribute: customerneed
Step Required: false
---------------------------------------
Step Name: Proposed Solution
Step Attribute: proposedsolution
Step Required: false
---------------------------------------
Step Name: Identify Stakeholders
Step Attribute: identifycustomercontacts
Step Required: false
---------------------------------------
Step Name: Identify Competitors
Step Attribute: identifycompetitors
Step Required: false
---------------------------------------
---------------------------------------
Stage Index: 2
Entity: opportunity
StageId: 3a275c22-fc45-4e89-97fc-41e5ec578743
Status: inactive
Step Name: Identify Sales Team
Step Attribute: identifypursuitteam
Step Required: false
---------------------------------------
Step Name: Develop Proposal
Step Attribute: developproposal
Step Required: false
---------------------------------------
Step Name: Complete Internal Review
Step Attribute: completeinternalreview
Step Required: false
---------------------------------------
Step Name: Present Proposal
Step Attribute: presentproposal
Step Required: false
---------------------------------------
---------------------------------------
Stage Index: 3
Entity: opportunity
StageId: 7f5247fe-cfc3-42bc-aa77-b1d836d9b7c0
Status: inactive
Step Name: Complete Final Proposal
Step Attribute: completefinalproposal
Step Required: false
---------------------------------------
Step Name: Present Final Proposal
Step Attribute: presentfinalproposal
Step Required: false
---------------------------------------
Step Name: Confirm Decision Date
Step Attribute: finaldecisiondate
Step Required: false
---------------------------------------
Step Name: Send Thank You
Step Attribute: sendthankyounote
Step Required: false
---------------------------------------
Step Name: File De-brief
Step Attribute: filedebrief
Step Required: false
---------------------------------------
---------------------------------------
Confira Também
Criar scripts para fluxos de processos de negócios
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais