Duda: Modificar campos cm:creator y cm:created

cancel
Showing results for 
Search instead for 
Did you mean: 
ricard
Member II

Duda: Modificar campos cm:creator y cm:created

Hola

Aunque parezca extraño estoy buscando una manera de modificar los campos de Alfresco correspondientes al usuario de creación y fecha de creación.
El motivo es que tengo que hacer una migración a partir de otro sistema pero me gustaría mantener los parámetros de creación originales.

Sé que puedo hacerme columnas custom para ello, pero me gustaría usar las del propio modelo de datos de Alfresco.

He intentado modificar el archivo contentModel.xml, en las líneas que aparecen comentadas referidas a "protected" y demás

  <property name="cm:creator">
               <title>Creator</title>
               <type>d:text</type>
               <!– 
               <protected>true</protected>
               <mandatory enforced="true">true</mandatory>
               –>
            </property>

Y entonces desde una custom-action:

Node myNode = new Node(actionedUponNodeRef);
// set the tags property
QName creator = QName.createQName("http://www.alfresco.org/model/content/1.0", "creator");
this.nodeService.setProperty(actionedUponNodeRef, creator, "nuevo_usuario");

Pero no se modifica

¿Alguien tiene alguna idea al respecto o ha intentado hacer algo parecido?
5 Replies
pjcaracuel_2349
Active Member II

Re: Duda: Modificar campos cm:creator y cm:created

Buenas,

A ver yo te recomendaria que crearas columnas especificas para guardar dicha informacion, sin utilizar el modelo de datos alfresco. Creo que es lo mas acertado, aun asi, echale un vistazo a este post por si te puede ayudar en algo.
http://forums.alfresco.com/en/viewtopic.php?f=7&t=7792

Saludos
ricard
Member II

Re: Duda: Modificar campos cm:creator y cm:created

Estoy de acuerdo en que es lo más acertado, pero eso me implica revisar por completo una aplicación que llevo meses desarrollando jejejeje

Ya había mirado este post que comentas y algunos otros relacionados y la verdad es que no entiendo muy bien como va.

De todas formas, he estado mirando en las tablas y en la alf_node_properties no aparecen los campos del aspect cm:auditable… ¿alguien sabe dónde se guardan esos datos?
pjcaracuel_2349
Active Member II

Re: Duda: Modificar campos cm:creator y cm:created

Buenas Ricard,

En este post hablan algo de ello

http://forums.alfresco.com/en/viewtopic.php?f=14&t=18855

Saludos
ricard
Member II

Re: Duda: Modificar campos cm:creator y cm:created

Pues de momento todo lo que he probado, en balde, parece que no habrá más remedio que usar propiedades custom.

Parece ser que en el código de Alfresco está explícito el no poder sobreescribir estas variables, supongo que eso también se podría modificar pero usando una versión Enterprise es probable que esto anule la garantía, así que… a usar propiedades custom.
txakin
Member II

Re: Duda: Modificar campos cm:creator y cm:created

Ricard, pégale un vistazo a este post que igual te puede servir.

http://jmuras.com/blog/2013/change-values-of-properties-included-in-cmauditable-aspect-cmcreator-cmm...

Yo he creado un webscript para actualizar las propiedades cm:creator y cm:modifier de unos nodos en mi repositorio y me ha funcionado

Aquí te dejo las líneas más importantes:


//Disable auditable aspect to allow change properties of cm:auditable aspect
policyBehaviourFilter.disableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);
      
nodeService.setProperty(nodeRef, ContentModel.PROP_CREATOR, "xxxxx");
nodeService.setProperty(nodeRef, ContentModel.PROP_MODIFIER, "xxxxx");
      
//Enable auditable aspect
policyBehaviourFilter.enableBehaviour(nodeRef, ContentModel.ASPECT_AUDITABLE);


The webscript is runAs="admin"

No te olvides de añadir en tu context.xml la propiedad policyBehaviourFilter


<bean id="xxxxxxxx"
      class="your class package"
  parent="webscript">
  <property name="nodeService" ref="NodeService" />
  ……..
      <property name="policyBehaviourFilter" ref="policyBehaviourFilter" />    
</bean>


Saludos