mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V1.4 to HEAD
svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@3925 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@3965 . git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3966 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -285,6 +285,9 @@
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry"></ref>
|
||||
</property>
|
||||
<property name="headerEncoding">
|
||||
<value>${mail.header}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="set-property-value" class="org.alfresco.repo.action.executer.SetPropertyValueActionExecuter" parent="action-executer">
|
||||
|
@@ -2,24 +2,12 @@
|
||||
xmlns:cm="http://www.alfresco.org/model/content/1.0"
|
||||
xmlns:app="http://www.alfresco.org/model/application/1.0">
|
||||
|
||||
<!--
|
||||
<cm:folder>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.space.name}</cm:name>
|
||||
<cm:description>${tutorial.space.description}</cm:description>
|
||||
<app:icon>space-icon-doc</app:icon>
|
||||
<cm:contains>
|
||||
-->
|
||||
<cm:content>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.document.name}</cm:name>
|
||||
<cm:title>${tutorial.document.title}</cm:title>
|
||||
<cm:description>${tutorial.document.description}</cm:description>
|
||||
<cm:content>contentUrl=classpath:alfresco/bootstrap/${tutorial.document.name}|mimetype=application/pdf|size=|encoding=</cm:content>
|
||||
</cm:content>
|
||||
<!--
|
||||
</cm:contains>
|
||||
</cm:folder>
|
||||
-->
|
||||
<cm:content>
|
||||
<app:uifacets />
|
||||
<cm:name>${tutorial.document.name}</cm:name>
|
||||
<cm:title>${tutorial.document.title}</cm:title>
|
||||
<cm:description>${tutorial.document.description}</cm:description>
|
||||
<cm:content>contentUrl=classpath:alfresco/bootstrap/Alfresco-Tutorial.pdf|mimetype=application/pdf|size=|encoding=</cm:content>
|
||||
</cm:content>
|
||||
|
||||
</view:view>
|
||||
|
38
config/alfresco/extension/index-recovery-context.xml.sample
Normal file
38
config/alfresco/extension/index-recovery-context.xml.sample
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Forces the reindexing of nodes where content may have been missing before -->
|
||||
<!--
|
||||
This component can be triggered at intervals where asynchronous content sharing
|
||||
between clustered servers has been set up.
|
||||
-->
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- Give the server 5 minutes and then check for missing content -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>5</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -4,10 +4,10 @@
|
||||
<beans>
|
||||
|
||||
<bean id="indexRecoveryComponentBase" abstract="true" >
|
||||
<property name="sessionFactory">
|
||||
<ref bean="sessionFactory" />
|
||||
<property name="authenticationComponent">
|
||||
<ref bean="authenticationComponentImpl" />
|
||||
</property>
|
||||
<property name="transactionService">
|
||||
<property name="transactionComponent">
|
||||
<ref bean="transactionComponent" />
|
||||
</property>
|
||||
<property name="indexer">
|
||||
@@ -22,62 +22,33 @@
|
||||
<property name="nodeService">
|
||||
<ref bean="nodeService" />
|
||||
</property>
|
||||
<property name="nodeDaoService">
|
||||
<ref bean="nodeDaoService" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- full node index recovery -->
|
||||
<bean id="indexRecoveryComponent" class="org.alfresco.repo.node.index.FullIndexRecoveryComponent" parent="indexRecoveryComponentBase">
|
||||
<!-- Properties controlling full index rebuilding / tracking -->
|
||||
<property name="executeFullRecovery">
|
||||
<value>false</value> <!-- enable this to start the full index recovery -->
|
||||
</property>
|
||||
<property name="runContinuously">
|
||||
<value>false</value> <!-- ensure the index is up to date and then stop -->
|
||||
</property>
|
||||
<property name="waitTime">
|
||||
<value>1000</value> <!-- milliseconds to wait between checks for new transactions -->
|
||||
</property>
|
||||
<property name="l2CacheMode">
|
||||
<value>NORMAL</value> <!-- normal L2 cache usage (database is changed by this server only) -->
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- attempt to reindex content that was missing before -->
|
||||
<!-- index recovery and validation -->
|
||||
<!--
|
||||
<bean id="missingContentReindexComponent" class="org.alfresco.repo.node.index.MissingContentReindexComponent" parent="indexRecoveryComponentBase">
|
||||
<property name="runContinuously">
|
||||
<value>false</value>
|
||||
</property>
|
||||
<property name="waitTime">
|
||||
<value>300000</value>
|
||||
Recovery types are:
|
||||
NONE: Ignore
|
||||
VALIDATE: Checks that the last transaction for each store is represented in the indexes
|
||||
AUTO: Validates and auto-recovers if validation fails
|
||||
FULL: Full index rebuild, processing all transactions in order. The server is temporarily suspended.
|
||||
-->
|
||||
<bean
|
||||
id="indexRecoveryComponent"
|
||||
class="org.alfresco.repo.node.index.FullIndexRecoveryComponent"
|
||||
parent="indexRecoveryComponentBase">
|
||||
<property name="recoveryMode">
|
||||
<value>${index.recovery.mode}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="IndexRecoveryJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="missingContentReindexComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>60000</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
<!-- Bean that attempts to index content that was previously missing -->
|
||||
<bean
|
||||
id="missingContentReindexComponent"
|
||||
class="org.alfresco.repo.node.index.MissingContentReindexComponent"
|
||||
parent="indexRecoveryComponentBase">
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -10,14 +10,14 @@ bpm_businessprocessmodel.transition.description=Task Done
|
||||
# Base Task
|
||||
bpm_businessprocessmodel.type.bpm_task.title=Task
|
||||
bpm_businessprocessmodel.type.bpm_task.description=Task
|
||||
bpm_businessprocessmodel.property.bpm_taskId.title=Task Identifier
|
||||
bpm_businessprocessmodel.property.bpm_taskId.description=Task Identifier
|
||||
bpm_businessprocessmodel.property.bpm_startDate.title=Task Start Date
|
||||
bpm_businessprocessmodel.property.bpm_startDate.description=Task Start Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.title=Task Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.description=Task Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.title=Task Due Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.description=Task Due Date
|
||||
bpm_businessprocessmodel.property.bpm_taskId.title=Identifier
|
||||
bpm_businessprocessmodel.property.bpm_taskId.description=Identifier
|
||||
bpm_businessprocessmodel.property.bpm_startDate.title=Start Date
|
||||
bpm_businessprocessmodel.property.bpm_startDate.description=Start Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.title=Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_completionDate.description=Completion Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.title=Due Date
|
||||
bpm_businessprocessmodel.property.bpm_dueDate.description=Due Date
|
||||
bpm_businessprocessmodel.property.bpm_status.title=Status
|
||||
bpm_businessprocessmodel.property.bpm_status.description=Status
|
||||
bpm_businessprocessmodel.property.bpm_priority.title=Priority
|
||||
@@ -36,9 +36,9 @@ bpm_businessprocessmodel.property.bpm_workflowInstanceId.title=Workflow Instance
|
||||
bpm_businessprocessmodel.property.bpm_workflowInstanceId.description=Workflow Instance Id
|
||||
bpm_businessprocessmodel.property.bpm_context.title=Task Context
|
||||
bpm_businessprocessmodel.property.bpm_context.description=The context within which this task has been assigned
|
||||
bpm_businessprocessmodel.property.bpm_description.title=Task Description
|
||||
bpm_businessprocessmodel.property.bpm_description.title=Description
|
||||
bpm_businessprocessmodel.property.bpm_description.description=Description of what needs to be achieved
|
||||
bpm_businessprocessmodel.property.bpm_outcome.title=Task Outcome
|
||||
bpm_businessprocessmodel.property.bpm_outcome.title=Outcome
|
||||
bpm_businessprocessmodel.property.bpm_outcome.description=Decision made on completing Task
|
||||
bpm_businessprocessmodel.property.bpm_completedItems.title=Completed Items
|
||||
bpm_businessprocessmodel.property.bpm_completedItems.description=Package items marked as complete
|
||||
|
@@ -1,4 +1,10 @@
|
||||
# Content-related messages
|
||||
|
||||
content.content_missing=The node''s content is missing: \n node: {0} \n reader: {1} \n Please contact your system administrator.
|
||||
content.runtime_exec.property_moved=The property ''errorCodes'' has moved down onto the RuntimeExec class
|
||||
content.runtime_exec.property_moved=The property ''errorCodes'' has moved down onto the RuntimeExec class
|
||||
|
||||
index.recovery.store_not_up_to_date=The indexes for store ''{0}'' are not synchronized with the database.
|
||||
index.recovery.starting=Index recovery started: {0} transactions.
|
||||
index.recovery.complete=Index recovery completed.
|
||||
index.recovery.progress=\t{0} % complete.
|
||||
index.recovery.terminated=Index recovery terminated.
|
@@ -291,6 +291,11 @@
|
||||
<aspect name="bpm:workflowPackage">
|
||||
<properties>
|
||||
|
||||
<!-- Created by Workflow Service (true), or provided from outside (false) -->
|
||||
<property name="bpm:isSystemPackage">
|
||||
<type>d:boolean</type>
|
||||
</property>
|
||||
|
||||
<!-- -->
|
||||
<!-- Associated Workflow -->
|
||||
<!-- -->
|
||||
|
@@ -1018,7 +1018,7 @@
|
||||
<idref local="WorkflowService_transaction"/>
|
||||
<idref local="AuditMethodInterceptor"/>
|
||||
<idref local="exceptionTranslator"/>
|
||||
<idref bean="WorkflowService_security"/>
|
||||
<idref bean="WorkflowService_security"/>
|
||||
<idref local="WorkflowService_descriptor"/>
|
||||
</list>
|
||||
</property>
|
||||
|
@@ -8,13 +8,14 @@ dir.contentstore.deleted=${dir.root}/contentstore.deleted
|
||||
dir.auditcontentstore=${dir.root}/audit.contentstore
|
||||
|
||||
# The location for lucene index files
|
||||
|
||||
dir.indexes=${dir.root}/lucene-indexes
|
||||
|
||||
# The location for lucene index locks
|
||||
|
||||
dir.indexes.lock=${dir.indexes}/locks
|
||||
|
||||
# The index recovery mode (NONE, VALIDATE, AUTO, FULL)
|
||||
index.recovery.mode=VALIDATE
|
||||
|
||||
# #################### #
|
||||
# Lucene configuration #
|
||||
# #################### #
|
||||
@@ -74,6 +75,8 @@ mail.username=anonymous
|
||||
mail.password=
|
||||
# Set this value to UTF-8 or similar for encoding of email messages as required
|
||||
mail.encoding=UTF-8
|
||||
# Set this value to 7bit or similar for Asian encoding of email headers as required
|
||||
mail.header=
|
||||
|
||||
# System Configuration
|
||||
|
||||
|
@@ -2,9 +2,25 @@
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<!-- -->
|
||||
<!-- Scheduled jobs -->
|
||||
<!-- -->
|
||||
|
||||
<!-- Task scheduler -->
|
||||
<!-- Triggers should not appear here - the scheduler should be injected into the trigger definition -->
|
||||
<!-- This bean should not need to apear else where in extension configuration -->
|
||||
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
|
||||
<property name="waitForJobsToCompleteOnShutdown">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="configLocation">
|
||||
<value>classpath:alfresco/domain/quartz.properties</value>
|
||||
</property>
|
||||
<property name="schedulerName">
|
||||
<value>DefaultScheduler</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- -->
|
||||
<!-- Scheduled tasks -->
|
||||
<!-- -->
|
||||
|
||||
<bean id="ftsIndexerTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
@@ -21,16 +37,74 @@
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<!-- Try and do some indexing every minute after starting up -->
|
||||
<property name="startDelay">
|
||||
<value>60000</value>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>60000</value>
|
||||
<!-- Try and do some indexing every minute after starting up -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Forces the reindexing of nodes where content may have been missing before -->
|
||||
<!--
|
||||
This component can be triggered at intervals where asynchronous content sharing
|
||||
between clustered servers has been set up
|
||||
-->
|
||||
<bean id="missingContentReindexTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="missingContentReindexComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- Give the server 5 minutes and then check for missing content -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>5</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="indexRecoveryTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="indexRecoveryComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="startDelayMinutes">
|
||||
<value>1</value>
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="tempFileCleanerTrigger" class="org.alfresco.util.TriggerBean">
|
||||
@@ -48,15 +122,16 @@
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>1800000</value><!-- start after half an hour -->
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value><!-- repeat every hour -->
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<!-- start after half an hour and repeat hourly -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>30</value>
|
||||
</property>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fileContentStoreCleanerJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
@@ -84,33 +159,6 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="indexRecoveryTrigger" class="org.alfresco.util.TriggerBean">
|
||||
<property name="jobDetail">
|
||||
<bean id="IndexRecoveryJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.node.index.IndexRecoveryJob</value>
|
||||
</property>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="indexRecoveryComponent">
|
||||
<ref bean="indexRecoveryComponent" />
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="startDelay">
|
||||
<value>60000</value> <!-- start after 1 minute -->
|
||||
</property>
|
||||
<property name="repeatCount">
|
||||
<value>0</value> <!-- DO NOT REPEAT !!!!! -->
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="indexBackupJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.repo.search.impl.lucene.LuceneIndexerAndSearcherFactory2$LuceneIndexBackupJob</value>
|
||||
@@ -150,26 +198,12 @@
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
-->
|
||||
<property name="startDelay">
|
||||
<value>3600000</value><!-- start after an hour -->
|
||||
<!-- start after an hour and repeat hourly -->
|
||||
<property name="startDelayMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
<property name="repeatInterval">
|
||||
<value>3600000</value><!-- repeat every hour -->
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Scheduled tasks -->
|
||||
<!-- Triggers should not appear here - the scheduler should be injected into the trigger definition -->
|
||||
<!-- This bean should not need to apear else where in extension configuration -->
|
||||
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
|
||||
<property name="waitForJobsToCompleteOnShutdown">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="configLocation">
|
||||
<value>classpath:alfresco/domain/quartz.properties</value>
|
||||
</property>
|
||||
<property name="schedulerName">
|
||||
<value>DefaultScheduler</value>
|
||||
<property name="repeatIntervalMinutes">
|
||||
<value>60</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
@@ -5,17 +5,7 @@
|
||||
<swimlane name="initiator"/>
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitAdhocTask" swimlane="initiator">
|
||||
<controller>
|
||||
<variable name="bpm_assignee" access="write"/>
|
||||
<variable name="bpm_workflowDescription" access="write"/>
|
||||
<variable name="bpm_workflowDueDate" access="write"/>
|
||||
<variable name="bpm_workflowPriority" access="write"/>
|
||||
<variable name="bpm_package" access="write"/>
|
||||
<variable name="bpm_context" access="write"/>
|
||||
<variable name="wf_notifyMe" access="write"/>
|
||||
</controller>
|
||||
</task>
|
||||
<task name="wf:submitAdhocTask" swimlane="initiator"/>
|
||||
<transition name="" to="adhoc"/>
|
||||
</start-state>
|
||||
|
||||
|
@@ -2,55 +2,46 @@
|
||||
|
||||
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:review">
|
||||
|
||||
<swimlane name="initiator"/>
|
||||
<swimlane name="initiator" />
|
||||
|
||||
<start-state name="start">
|
||||
<task name="wf:submitReviewTask" swimlane="initiator">
|
||||
<controller>
|
||||
<variable name="bpm_assignee" access="write"/>
|
||||
<variable name="bpm_workflowDescription" access="write"/>
|
||||
<variable name="bpm_workflowDueDate" access="write"/>
|
||||
<variable name="bpm_workflowPriority" access="write"/>
|
||||
<variable name="bpm_package" access="write"/>
|
||||
<variable name="bpm_context" access="write"/>
|
||||
</controller>
|
||||
</task>
|
||||
<transition name="" to="review"/>
|
||||
</start-state>
|
||||
<start-state name="start">
|
||||
<task name="wf:submitReviewTask" swimlane="initiator" />
|
||||
<transition name="" to="review" />
|
||||
</start-state>
|
||||
|
||||
<swimlane name="reviewer">
|
||||
<assignment actor-id="#{bpm_assignee.properties['cm:userName']}" />
|
||||
</swimlane>
|
||||
|
||||
<task-node name="review">
|
||||
<task name="wf:reviewTask" swimlane="reviewer">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
<transition name="reject" to="rejected" />
|
||||
<transition name="approve" to="approved" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="rejected">
|
||||
<task name="wf:rejectedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
<task-node name="approved">
|
||||
<task name="wf:approvedTask" swimlane="initiator" />
|
||||
<transition name="" to="end" />
|
||||
</task-node>
|
||||
|
||||
<end-state name="end" />
|
||||
|
||||
<swimlane name="reviewer">
|
||||
<assignment actor-id="#{bpm_assignee.properties['cm:userName']}"/>
|
||||
</swimlane>
|
||||
|
||||
<task-node name="review">
|
||||
<task name="wf:reviewTask" swimlane="reviewer">
|
||||
<event type="task-create">
|
||||
<script>
|
||||
if (bpm_workflowDueDate != void)
|
||||
{
|
||||
taskInstance.dueDate = bpm_workflowDueDate;
|
||||
}
|
||||
if (bpm_workflowPriority != void)
|
||||
{
|
||||
taskInstance.priority = bpm_workflowPriority;
|
||||
}
|
||||
</script>
|
||||
</event>
|
||||
</task>
|
||||
<transition name="reject" to="rejected"/>
|
||||
<transition name="approve" to="approved"/>
|
||||
</task-node>
|
||||
|
||||
<task-node name="rejected">
|
||||
<task name="wf:rejectedTask" swimlane="initiator"/>
|
||||
<transition name="" to="end"/>
|
||||
</task-node>
|
||||
|
||||
<task-node name="approved">
|
||||
<task name="wf:approvedTask" swimlane="initiator"/>
|
||||
<transition name="" to="end"/>
|
||||
</task-node>
|
||||
|
||||
<end-state name="end"/>
|
||||
|
||||
</process-definition>
|
Reference in New Issue
Block a user