cancel
Showing results for 
Search instead for 
Did you mean: 

BoundaryTimer with past startDate leads to 'duedate is null' exception

marcp
Champ in-the-making
Champ in-the-making
Hi,

we have a problem in activiti when a boundaryTimer is configured with a past startDate in "Time cycle" expression.
there is no problem if a past startDate is specified as "Time date" (the timer is executed immediatly)

the simple bpmn in attachment reproduce the problem.
Should i create a jira for this case ?

(Activiti 5.15)

the stackTrace :

2014-10-10 15:34:15,653 [main] ERROR o.a.engine.impl.test.PvmTestCase - EXCEPTION: org.activiti.engine.ActivitiIllegalArgumentException: duedate is null
org.activiti.engine.ActivitiIllegalArgumentException: duedate is null
   at org.activiti.engine.impl.persistence.entity.JobEntityManager.schedule(JobEntityManager.java:49) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.initialize(ExecutionEntity.java:318) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:43) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:66) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:116) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:44) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:402) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:105) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:54) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityBehavior.java:36) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:54) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotificationsCompleted(AtomicOperationProcessStartInitial.java:45) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsCompleted(AtomicOperationProcessStart.java:53) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:344) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:98) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35) ~[activiti-engine-5.15.jar:5.15]
   at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:70) ~[activiti-engine-5.15.jar:5.15]
   at partage.activiti.service.TimerActivitiTestPastDueDate.test(TimerActivitiTestPastDueDate.java:55) ~[test-classes/:na]
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
   at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51]
   at junit.framework.TestCase.runTest(TestCase.java:168) [junit-4.9.jar:na]
   at org.activiti.engine.impl.test.PvmTestCase.runTest(PvmTestCase.java:65) ~[activiti-engine-5.15.jar:5.15]
   at junit.framework.TestCase.runBare(TestCase.java:134) [junit-4.9.jar:na]
   at org.activiti.engine.impl.test.AbstractActivitiTestCase.runBare(AbstractActivitiTestCase.java:86) [test-classes/:5.15]
   at junit.framework.TestResult$1.protect(TestResult.java:110) [junit-4.9.jar:na]
   at junit.framework.TestResult.runProtected(TestResult.java:128) [junit-4.9.jar:na]
   at junit.framework.TestResult.run(TestResult.java:113) [junit-4.9.jar:na]
   at junit.framework.TestCase.run(TestCase.java:124) [junit-4.9.jar:na]
   at junit.framework.TestSuite.runTest(TestSuite.java:243) [junit-4.9.jar:na]
   at junit.framework.TestSuite.run(TestSuite.java:238) [junit-4.9.jar:na]
   at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) [junit-4.9.jar:na]
   at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) [.cp/:na]
   at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na]
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) [.cp/:na]
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) [.cp/:na]
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) [.cp/:na]
   at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) [.cp/:na]
2014-10-10 15:34:15,654 [main] ERROR o.a.engine.impl.test.PvmTestCase -                                                                                            



best regards
4 REPLIES 4

marcp
Champ in-the-making
Champ in-the-making
sorry stacktrace was lost during post…
<code>
2014-10-10 15:34:15,653 [main] ERROR o.a.engine.impl.test.PvmTestCase - EXCEPTION: org.activiti.engine.ActivitiIllegalArgumentException: duedate is null
org.activiti.engine.ActivitiIllegalArgumentException: duedate is null
at org.activiti.engine.impl.persistence.entity.JobEntityManager.schedule(JobEntityManager.java:49) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.initialize(ExecutionEntity.java:318) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:43) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:66) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:116) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:44) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:402) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:105) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:54) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityBehavior.java:36) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:54) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotificationsCompleted(AtomicOperationProcessStartInitial.java:45) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsCompleted(AtomicOperationProcessStart.java:53) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:89) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:566) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:561) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:344) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:98) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35) ~[activiti-engine-5.15.jar:5.15]
at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceByKey(RuntimeServiceImpl.java:70) ~[activiti-engine-5.15.jar:5.15]
at partage.activiti.service.TimerActivitiTestPastDueDate.test(TimerActivitiTestPastDueDate.java:55) ~[test-classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.7.0_51]
at junit.framework.TestCase.runTest(TestCase.java:168) [junit-4.9.jar:na]
at org.activiti.engine.impl.test.PvmTestCase.runTest(PvmTestCase.java:65) ~[activiti-engine-5.15.jar:5.15]
at junit.framework.TestCase.runBare(TestCase.java:134) [junit-4.9.jar:na]
at org.activiti.engine.impl.test.AbstractActivitiTestCase.runBare(AbstractActivitiTestCase.java:86) [test-classes/:5.15]
at junit.framework.TestResult$1.protect(TestResult.java:110) [junit-4.9.jar:na]
at junit.framework.TestResult.runProtected(TestResult.java:128) [junit-4.9.jar:na]
at junit.framework.TestResult.run(TestResult.java:113) [junit-4.9.jar:na]
at junit.framework.TestCase.run(TestCase.java:124) [junit-4.9.jar:na]
at junit.framework.TestSuite.runTest(TestSuite.java:243) [junit-4.9.jar:na]
at junit.framework.TestSuite.run(TestSuite.java:238) [junit-4.9.jar:na]
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) [junit-4.9.jar:na]
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) [.cp/:na]
2014-10-10 15:34:15,654 [main] ERROR o.a.engine.impl.test.PvmTestCase -                                                                                            

</code>

jbarrez
Star Contributor
Star Contributor
Hmm this smells like a bug indeed. Please create a jira and reference this forum post.

marcp
Champ in-the-making
Champ in-the-making

jbarrez
Star Contributor
Star Contributor
Thanks, will look into it
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.