cancel
Showing results for 
Search instead for 
Did you mean: 

Duda: Modificar campos cm:creator y cm:created

ricard
Champ in-the-making
Champ in-the-making
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 5

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
Buenas Ricard,

En este post hablan algo de ello

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

Saludos

ricard
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.