none
CRM 2011 - Erro ao chamar um workflow através de um botão customizado na ribbon RRS feed

  • Pergunta

  • Pessoal, tudo bem?

    Criei um botão na Ribbon através da ferramenta chamada Visual Ribbon Editor, e quero chamar um workflow sob demanda da entidade Item de Fila (queueitem).

    Adicionei os parâmetros no Visual Ribbon Editor, e o javascript como web resource.

    Selecionei 1 item da fila e cliquei no botão. O javascript startou normalmente, no entanto ao chamar o workflow, apareceu um erro: "Erro ao processar sua solicitação. Aguarde e tente novamente mais tarde." E não foi efetuada nenhuma ação no item de fila. 

    Já tentei fazer um trace através do CRMDiagTool mas não peguei nada. Podem me ajudar a identificar porque não executa corretamente?

    Seguem imagens para ilustrar o problema:

    • Botão customizado:

    • Código Javascript:
    function callWorkflow(confirmMessage, workflowId, recordIds, reload, objectTypeCode, gridControl) {
    
    // Check variables
    if (objectTypeCode == "") {return;}
    if (recordIds == "") {return;}
    
    // Show confirmation to user
    if (confirmMessage != "") {
    if (!confirm(confirmMessage)) {return;}
    }
    
    var $v_0=gridControl,$v_1=$v_0.getRecordsFromInnerGrid(true),$v_2=$v_1[0],$v_3=$v_2[3],$v_4=$v_3.queueitemid;
    
    var queueitemId = $v_4.toString();
    
    alert("queitemId = " + queueitemId);
    
    // Open dialog
    var url = prependOrgName("/_grid/cmds/dlg_runworkflow.aspx")
    + "?iObjType=" + CrmEncodeDecode.CrmUrlEncode(objectTypeCode)
    + "&iTotal=1"	 
    + "&sIds=" + CrmEncodeDecode.CrmUrlEncode(queueitemId)
    + "&wfId=" + CrmEncodeDecode.CrmUrlEncode("{" + workflowId + "}");
    		
    alert("url = " + url);
    
    var oresult = openStdDlg(url, queueitemId, 500, 200);
    
    alert("o result = " + oresult);
    
    if (reload) {window.location.reload(true);}
    }
    
    • Erro ao executar o workflow sob demanda:

    • Artigos de apoio:

    http://petecrm2011.wordpress.com/2012/05/24/firing-workflows-against-multiple-records-from-a-ribbon-button/

    http://nishantrana.wordpress.com/2011/04/26/calling-on-demand-workflow-through-a-button-in-ribbon-launchondemandworkflow-in-crm-2011/#comments

    Desde já, muito obrigada!

    Flávia

    sexta-feira, 22 de março de 2013 15:06

Todas as Respostas

  • Flávia,

    Se executar o fluxo pelo procedimento default da ferramenta o que acontece?

    Este workflow necessita de parâmetros para funcionar?

    O WF foi setado para funcionar em que escopo? Pois se for usuário, só funcionará quando o proprietário do WF clicar no botão do ribbon.

    Att,


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    sexta-feira, 22 de março de 2013 18:23
    Moderador
  • Oi Tiago,

    Este é um workflow sob demanda simples que altera o status do item de fila para "inativo".

    Não necessita de parâmetros e o escopo é "organização".

    Obrigada,

    Flávia

    sexta-feira, 22 de março de 2013 19:42
  • Boas Flavia,

    Até onde ele chega a executar, ou seja, quais os alertas que ele mostra? Ele chega ao openStdDlg? Podes fazer debug do teu Javascript passo a passo pelo browser assim consegues ver melhor os valores das variáveis em vez dos alerts, se colocares a palavra debugger no teu código Javascript e depois no browser carregas em F12 (IE debug tools), na tab script carrega em começar debugger e o teu código vai parar onde colocaste a palavra debugger.

    Espero ter ajudado.


    Pedro Azevedo Crm Specialist 4.0\2011

    sábado, 23 de março de 2013 07:22