none
Workflow must be in Published state in CRM 2011 RRS feed

  • Pregunta

  • Hola a todos, Quisiera que me colaboren con un problema que tengo.  Necesito ejecutar un workflow request con un workflowid creado en crm 2011. 

    ExecuteWorkflowRequest rq = new ExecuteWorkflowRequest();

    rq.WorkflowId = new Guid(idprocesoventa);

    rq.EntityId = new Guid(idoportunidad);

    ExecuteWorkflowResponse response = (ExecuteWorkflowResponse)servicio.Execute(rq);

    Cuando ejecuto este extracto de mi código me sale el siguiente mensaje de Error Workflow must be in Published state Entonces me puse a revisar los campos de la entidad workflow para el workflowid específico y encontre type = 2 (Draft), StatusCode =  NULL, StateCode = 1.  En el internet encontré que el campo type de ser seteado a 1(Publicado) previo a usar el método ExecuteWorkflowRequest Sin embargo, al intentar actualizar el valor de type me salió otro error "Cannot update a workflow activation" A continuación pongo lo que puse para actualizar el valor de type a 1(Publicado)

    Entity workflow = new Entity("workflow");

    workflow["workflowid"] = new Guid("398552EA-560A-44F7-9B85-CCEAAE5DEA71");

    workflow["type"] = new OptionSetValue(1);

    servicio.Update(workflow);

    El workflowid "398552EA-560A-44F7-9B85-CCEAAE5DEA71" es un ejemplo para probar el update al workflow.  Hay algo por corregir en mi código? De antemano gracias por cualquier ayuda.

    jueves, 22 de diciembre de 2011 16:05

Respuestas

  • Analizando el workflowid que llegaba como parámetro me di cuenta que el campo ParentWorkflow tenía seteado un valor que era el que determinaba que esté o no publicado.  Esto lo controla con los campos statecode = 1 y statuscode = 2 por lo que haciendo unas validaciones obtuve el id cuyo valor ParentWorkflow sea null y listo. Funcionó a la perfección.  También debo recalcar, que un Workflow solo tiene la acción de Activar ó Desactivar en CRM 2011.  Sin embargo, al customizar una solución si brinda la opción de Publicar todas las personalizaciones pero esto es indiferente de los estados de un workflow.  Dejo comentado y solucionado si alguien en lo futuro pasa por el mismo problema que yo. Thks.

    viernes, 6 de enero de 2012 15:14

Todas las respuestas

  • Saludos Christian,

    Te pregunto, no es una opción Publicar el Workflow desde el interfaz gráfico?


    Frank Hernández | http://www.elblogcrm.com/http://www.twitter.com/ElBlogCRM | http://www.facebook.com/ElBlogCRM

    If you consider this post as helpful please Vote as Helpful and/or Mark as Answer. Thanks you!

    Si usted considera esta respuesta como útil por favor márquela como Útil y/o márquela como Respuesta. Gracias!


    jueves, 22 de diciembre de 2011 16:20
  • Hola Frank, gracias por responder. Pues si es una opción de Publicar pero a pesar de haber hecho Publicar todas las personalizaciones, al ejecutar ExecuteWorkflowRequest me sigue saliendo el mensaje Workflow must be in Published state. Y reviso en la tabla workflow el campo type = 2 (Draft) y no lo cambia a (1) Publicado, Statecode = 1, StatusCode = 2 Algo más que quisiera que me colaboren es en saber los estados de StateCode y StatusCode ya que en el sdk del CRM 2011 no lo encuentro.  Normalmente suele estar cuando busco: entity_name + Attribute metadata pero en este caso no encuentro nada.  Gracias por la ayuda. 

    jueves, 22 de diciembre de 2011 18:46
  • Hola Christian,

    De acuerdo al entendimiento que tengo, me parece que le estas dando a publicar todas las personalizaciones, mas no a publicar el workflow con el que quieres trabajar.

    Te recomendaría que te dirigas a la sección de Procesos, hagas clic en Flujos de trabajo, selecciones el workflow y finalmente le des clic en Publicar Workflow.

    Por favor coméntanos los resultados.


    [MVP]-Microsoft Dynamics CRM | My blog: http://jimmylarrauri.blogspot.com | My twitter: http://twitter.com/jimlarrauri
    viernes, 23 de diciembre de 2011 19:17
    Moderador
  • Hola Jimmy, en CRM2011 al crear workflows no aparece la parte de Publish, sólo aparece Activar que difiere del otro botón.  Cuando se usa Activar este cambia los valores de los status stateCode = 1 y statusCode =2 mientras que al publicar cambia el valor de type de 2(Draft) a 1(Published).  Seguí tu ruta de cómo llegar a la opción Publish pero no hay.  Lo único que necesito es ejecutar vía código esta función del sdk, pero no me deja por no estar publicada.  Creo que el problema es que los workflows que están en CRM2011 vienen de una migración directa del CRM 3.0 que a mi parecer no están bien porque cuando intento activar ó desactivar los mismos workflows me lanza la pantalla de Error de CRM que dice "Este proceso tiene errores y no se puede activar.  Abra el proceso, corrija los errores e intentelo de nuevo." 

    ExecuteWorkflowRequest rq = new ExecuteWorkflowRequest();

    rq.WorkflowId = new Guid(idprocesoventa);

    rq.EntityId = new Guid(idoportunidad);

    ExecuteWorkflowResponse response = (ExecuteWorkflowResponse)servicio.Execute(rq);

    Alguna idea?

    viernes, 23 de diciembre de 2011 20:26
  • Analizando el workflowid que llegaba como parámetro me di cuenta que el campo ParentWorkflow tenía seteado un valor que era el que determinaba que esté o no publicado.  Esto lo controla con los campos statecode = 1 y statuscode = 2 por lo que haciendo unas validaciones obtuve el id cuyo valor ParentWorkflow sea null y listo. Funcionó a la perfección.  También debo recalcar, que un Workflow solo tiene la acción de Activar ó Desactivar en CRM 2011.  Sin embargo, al customizar una solución si brinda la opción de Publicar todas las personalizaciones pero esto es indiferente de los estados de un workflow.  Dejo comentado y solucionado si alguien en lo futuro pasa por el mismo problema que yo. Thks.

    viernes, 6 de enero de 2012 15:14