2012-06-20 10 views
8

En este momento estoy teniendo un problema con el flujo de trabajo de Sitecore. El problema es el siguiente:Problema molesto con los flujos de trabajo de Sitecore y la herencia de valores estándar

mi valor estándar de plantilla ha establecido los campos Flujo de trabajo y Flujo de trabajo predeterminado establecidos. El estado del flujo de trabajo está configurado en borrador. Sin embargo, cada vez que creo un elemento de esta plantilla no hereda los campos de la sección de flujo de trabajo, todos están vacíos

si establezco manualmente el flujo de trabajo y el estado del flujo de trabajo para los elementos, funciona como se esperaba hasta el estado final. Sin embargo, si un autor de contenido edita el elemento, se crea una nueva versión, pero solo se conserva el valor del campo de flujo de trabajo, mientras que el estado del flujo de trabajo vuelve a estar vacío.

¿Qué estoy haciendo mal? ¿Por qué está pasando esto? Estoy usando Sitecore 6.5.0

Respuesta

20

El __Standard Values de su plantilla solo debe tener el campo Default workflow establecido; no configure el campo Workflow en el elemento __Standard Values ya que insinúa que el elemento __Standard Values está en el flujo de trabajo. Del mismo modo, no configure el campo State en el elemento __Standard Values, ya que eso significa que el elemento __Standard Values está en ese estado.

Su elemento Flujo de trabajo tiene un campo Initial State que define el estado inicial en el que se encuentra un elemento (suponiendo que el elemento utiliza ese flujo de trabajo).

cuando se crea un elemento, y que el tema tiene un __Standard Value con un flujo de trabajo en el campo Default Workflow, a continuación, que el tema tendrá su campo Workflow establecer el mismo que el campo de su __Standard ValuesDefault Workflow. El estado en el que se encuentra el artículo será el Initial State según se define en dicho flujo de trabajo.

+1

Estamos haciendo exactamente esto, y ver algo que no podemos imaginar: la creación de un elemento de la interfaz de usuario, esto funciona como usted la describe, pero crearlo desde el código (item.Add especificando la plantilla que tiene su __Standard Value Default Set of work, donde item es una carpeta de contenido), no establece el elemento creado en el flujo de trabajo (el campo Workflow permanece vacío). Estamos perplejos sobre qué podría causar eso, ¿alguna idea? – Legolas

2

Cuando se crea el elemento a través de la API que parecen tener para establecer específicamente el flujo de trabajo y el estado de forma explícita:

Item myItem = parentItem.Add("New item", myTemplate); 
myItem.Editing.BeginEdit(); 
// set any other fields you want here 
... 
// Now explicitly set the workflow and state here on your new item 
// (make sure you get the correct GUIDs by viewing raw values on your workflow and workflow state items)... 
myItem[FieldIDs.Workflow] = "{212BCCCB-8197-45C0-81CC-621E0553C25F}"; 
myItem[FieldIDs.WorkflowState] = "{E8228D86-D780-4F34-B372-6A4D29B67AF9}"; 
myItem.Editing.EndEdit(); 

Asumo que cuando lo haces a través de la interfaz de usuario hay algunas tuberías adicionales que se procesa y hace esto por usted cuando usa el Editor de contenido, etc., que omite al usar la API.

De hecho, aquí es un puesto relevante en la SDN: http://sdn.sitecore.net/Forum/ShowPost.aspx?PostID=45991

+0

No lo use de esta forma con las guías codificadas, revise esta página y mire la respuesta de jRobbins sobre cómo configurarla correctamente. http://stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically –

+1

@Martin Te perdiste el punto. El código no estaba destinado a estar listo para la producción, era puramente con fines de demostración. De acuerdo, por supuesto, no codificar ID's, etc. en el código prod! Sigue siendo cierto que cuando lo haces a través de la interfaz de usuario hay algunos canales adicionales que se procesan que hacen esto por ti cuando utilizas el Editor de contenido, etc. Casi no creo que valga la pena el – geedubb

+0

con respecto a la forma "correcta" de establecer un flujo de trabajo en http: //stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically: no creo que el código excesivamente complicado propuesto con 4 (!) declaraciones anidadas si sea la forma "correcta" de hacer algo. además, no parece responder a la pregunta: cómo asignar un flujo de trabajo y un estado de flujo de trabajo aleatorio a un elemento.En cambio, básicamente mueve el elemento al siguiente estado de flujo de trabajo si el siguiente estado pasa a ser el estado deseado – eloycm

Cuestiones relacionadas