10-05-2007 05:26 AM
10-08-2007 03:37 AM
10-12-2007 02:53 AM
10-18-2007 12:12 PM
10-19-2007 03:00 AM
<bean id="archiveJob" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>UNTIL_FIRST_FAILURE</value>
</property>
<property name="compensatingActionMode">
<value>IGNORE</value>
</property>
<property name="searchService">
<ref bean="SearchService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
<property name="queryLanguage">
<value>lucene</value>
</property>
<property name="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<property name="queryTemplate">
<value>
+PATH:"/app:company_home"
</value>
</property>
<property name="jobName">
<value>archiveExpirationChecker</value>
</property>
<property name="jobGroup">
<value>archiveJobGroup</value>
</property>
<property name="triggerName">
<value>archiveTriggerEC</value>
</property>
<property name="triggerGroup">
<value>archiveTriggerGroup</value>
</property>
<property name="cronExpression">
<value>0 0 1 * * ? </value>
</property>
<property name="scheduler">
<ref bean="schedulerFactory"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="templateActionDefinition">
<ref bean="javaArchive"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>YYYY</value>
</property>
</bean>
<bean id="javaArchive" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
<property name="actionName">
<value>script</value>
</property>
<property name="parameterTemplates">
<map>
<entry>
<key><value>script-ref</value></key>
<value>${selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home/app:dictionary/app:scripts/cm:xxxx/cm:archive.js"' )}</value>
</entry>
</map>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="dictionaryService">
<ref bean="DictionaryService"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
</bean>
var topSpace = companyhome.childByNamePath("Extranet");
//template that returns the archiving period in months.
var archivetemplate = companyhome .childByNamePath("Data Dictionary/Presentation Templates/xxxx/archive.ftl");
//default archivingmonths
var archivingMonths = 12;
var dateHelp = new Date();
var now = new Date();
var archiveSpace = "" ;
setArchive(topSpace, archiveSpace);
function setArchive(curNode,arcSpace)
{
if (curNode.isDocument)
{
if (isNaN(curNode.name.substring(0,6)))
{
logger.log(curNode.name + " has no date prefix");
}
else
{
dateHelp.setFullYear(curNode.name.substring(0,4),curNode.name.substring(4,6) - 1 + archivingMonths);
if ( dateHelp < now && (!curNode.properties["imec:isArchived"] == true))
{
curNode.addAspect("xxxx:archive");
curNode.properties["xxxx:isArchived"] = true;
curNode.properties["xxxx:archivedDate"] = new Date();
logger.log(curNode.name + " ( " + curNode.nodeRef + " ) has been archived");
curNode.save();
arcSpace.properties["imec:hasArchivedDocs"] = true;
arcSpace.save();
}
}
}
else if (curNode.isContainer)
{ var help = trim(String(curNode.processTemplate(archivetemplate)))
logger.log(curNode.name);
if (curNode.hasAspect("imec:archive"))
{
archiveSpace = curNode;
}
if ( help != "childarchive" )
{
archivingMonths = Number(help);
}
var children = curNode.children;
for (var i=0; i<children.length; i++)
{
setArchive(children[i],archiveSpace);
}
}
}
function ltrim(str) {
for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
return str.substring(k, str.length);
}
function rtrim(str) {
for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j–) ;
return str.substring(0,j+1);
}
function trim(str) {
return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
var whitespaceChars = " \t\n\r\f";
return (whitespaceChars.indexOf(charToCheck) != -1);
}
10-23-2007 05:23 AM
10-23-2007 05:33 AM
11-05-2007 04:32 AM
11-12-2007 09:51 AM
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.