├── .gitignore ├── en ├── README.txt ├── ch01-Introduction.adoc ├── ch02-GettingStarted.adoc ├── ch03-Configuration.adoc ├── ch04-API.adoc ├── ch05-Spring.adoc ├── ch06-Deployment.adoc ├── ch07a-BPMN-Introduction.adoc ├── ch07b-BPMN-Constructs.adoc ├── ch08-Forms.adoc ├── ch09-JPA.adoc ├── ch10-History.adoc ├── ch11-Designer.adoc ├── ch12-Explorer.adoc ├── ch13-Modeler.adoc ├── ch14-REST.adoc ├── ch15-Cdi.adoc ├── ch16-Ldap.adoc ├── ch17-Advanced.adoc ├── ch18-Simulation.adoc ├── ch19-tooling.adoc ├── colony.css ├── generate-html.sh ├── images │ ├── FinancialReportProcess.bpmn20.xml │ ├── activiti-modeler.png │ ├── activiti.async.example.async.PNG │ ├── activiti.async.example.no.async.PNG │ ├── activiti.cycle.action.forms.png │ ├── activiti.cycle.png │ ├── activiti.cycle.repositories.png │ ├── activiti.explorer.processes.png │ ├── activiti.explorer.tasks.png │ ├── activiti.probe.database.png │ ├── activiti.probe.deployments.png │ ├── activiti.probe.jobs.exception.png │ ├── activiti.probe.jobs.selected.png │ ├── activiti.probe.processes.png │ ├── activiti.probe.status.png │ ├── api.services.png │ ├── api.test.debug.breakpoint.png │ ├── api.test.debug.h2.login.png │ ├── api.test.debug.h2.tables.png │ ├── api.test.debug.start.h2.server.2.png │ ├── api.test.debug.start.h2.server.png │ ├── api.test.debug.view.png │ ├── api.vacationRequest.png │ ├── blockquote-arrow.png │ ├── bpmn.boundary.cancel.event.png │ ├── bpmn.boundary.compensation.event.png │ ├── bpmn.boundary.error.event.png │ ├── bpmn.boundary.error.example.png │ ├── bpmn.boundary.message.event.png │ ├── bpmn.boundary.signal.event.png │ ├── bpmn.boundary.timer.event.png │ ├── bpmn.business.rule.task.png │ ├── bpmn.call.activity.sub.process.png │ ├── bpmn.call.activity.super.process.png │ ├── bpmn.cancel.end.event.png │ ├── bpmn.clock.start.event.png │ ├── bpmn.collapsed.call.activity.png │ ├── bpmn.collapsed.subprocess.png │ ├── bpmn.conditional.sequence.flow.png │ ├── bpmn.default.sequence.flow.example.png │ ├── bpmn.default.sequence.flow.png │ ├── bpmn.error.end.event.png │ ├── bpmn.event.based.gateway.example.png │ ├── bpmn.event.based.gateway.notation.png │ ├── bpmn.exclusive.gateway.notation.png │ ├── bpmn.exclusive.gateway.png │ ├── bpmn.expanded.subprocess.png │ ├── bpmn.financial.report.example.claim.task.png │ ├── bpmn.financial.report.example.process.ended.png │ ├── bpmn.financial.report.example.start.process.png │ ├── bpmn.financial.report.example.task.assigned.png │ ├── bpmn.gateway.png │ ├── bpmn.inclusive.gateway.png │ ├── bpmn.intermediate.compensation.throw.event.png │ ├── bpmn.intermediate.message.catch.event.png │ ├── bpmn.intermediate.none.event.png │ ├── bpmn.intermediate.signal.catch.event.png │ ├── bpmn.intermediate.signal.throw.event.png │ ├── bpmn.intermediate.timer.event.png │ ├── bpmn.java.service.task.png │ ├── bpmn.known.issue.boundary.event.png │ ├── bpmn.manual.task.png │ ├── bpmn.multi.instance.boundary.event.png │ ├── bpmn.multi.instance.png │ ├── bpmn.non.interrupting.boundary.timer.event.png │ ├── bpmn.none.end.event.png │ ├── bpmn.none.start.event.png │ ├── bpmn.parallel.gateway.png │ ├── bpmn.receive.task.png │ ├── bpmn.scripttask.png │ ├── bpmn.sequence.flow.png │ ├── bpmn.signal.event.catch.png │ ├── bpmn.signal.event.throw.png │ ├── bpmn.signal.event.warning.1.png │ ├── bpmn.start.error.event.png │ ├── bpmn.start.message.event.example.1.png │ ├── bpmn.start.message.event.png │ ├── bpmn.start.signal.event.png │ ├── bpmn.subprocess.eventSubprocess.example.1.png │ ├── bpmn.subprocess.eventSubprocess.example.2a.png │ ├── bpmn.subprocess.eventSubprocess.example.2b.png │ ├── bpmn.subprocess.eventSubprocess.png │ ├── bpmn.subprocess.with.boundary.timer.png │ ├── bpmn.terminate.end.event.png │ ├── bpmn.throw.compensation.example1.png │ ├── bpmn.transaction.subprocess.example.1.png │ ├── bpmn.transaction.subprocess.example.2.png │ ├── bpmn.transaction.subprocess.png │ ├── bpmn.uel-expression.on.seq.flow.png │ ├── bpmn.unbalanced.parallel.gateway.png │ ├── bpmn.user.task.png │ ├── bpmn.web.service.task.png │ ├── bpmn.why.exclusive.jobs.png │ ├── custom.identityLinkType.example.png │ ├── deployment.explorer.2.png │ ├── deployment.explorer.png │ ├── deployment.image.generation.png │ ├── designer.add.update.site.png │ ├── designer.bpmn.file.png │ ├── designer.create.activiti.project.png │ ├── designer.create.deployment.png │ ├── designer.deployment.dir.png │ ├── designer.embeddedprocess.canvas.png │ ├── designer.listener.configuration.png │ ├── designer.mailtask.property.png │ ├── designer.model.eventsubprocess.png │ ├── designer.model.labels.png │ ├── designer.model.poolandlanes.png │ ├── designer.model.process.png │ ├── designer.model.quick.change.png │ ├── designer.model.quick.new.png │ ├── designer.multipage.editor.png │ ├── designer.open.importedfile.png │ ├── designer.palette.add.money.help.png │ ├── designer.palette.add.money.png │ ├── designer.palette.add.money.properties.required.png │ ├── designer.palette.disable.all.png │ ├── designer.palette.disable.manual.and.script.png │ ├── designer.preferences.userlibraries.activiti.empty.png │ ├── designer.preferences.userlibraries.activiti.moneytasks.png │ ├── designer.preferences.userlibraries.png │ ├── designer.problem.view.png │ ├── designer.project.maven.png │ ├── designer.property.boolean.choice.png │ ├── designer.property.combobox.choice.invalid.png │ ├── designer.property.combobox.choice.png │ ├── designer.property.datagrid.png │ ├── designer.property.date.picker.png │ ├── designer.property.multiline.text.invalid.png │ ├── designer.property.multiline.text.png │ ├── designer.property.period.invalid.png │ ├── designer.property.period.png │ ├── designer.property.radio.choice.invalid.png │ ├── designer.property.radio.choice.png │ ├── designer.property.text.invalid.png │ ├── designer.property.text.png │ ├── designer.sequence.condition.png │ ├── designer.servicetask.property.png │ ├── designer.timerboundary.canvas.png │ ├── designer.unittest.generate.png │ ├── designer.userlibraries.project.png │ ├── designer.xml.contentassist.png │ ├── eclipse.setup.xml.catalog.png │ ├── eclipsesetup.import.existing.projects.png │ ├── eclipsesetup.import.png │ ├── eclipsesetup.select.directory.png │ ├── email.task.result.png │ ├── explorer.case.overview.png │ ├── explorer.database.png │ ├── explorer.deployments.png │ ├── explorer.jobs.png │ ├── explorer.my.instances.png │ ├── explorer.process.definition.image.png │ ├── explorer.process.definitions.png │ ├── explorer.report.example.png │ ├── explorer.reporting.explained.png │ ├── explorer.reporting.png │ ├── explorer.reporting.start.form.png │ ├── explorer.tabs.png │ ├── explorer.tasks.png │ ├── explorer.upload.deployment.png │ ├── explorer.users.png │ ├── financial.report.example.diagram.png │ ├── forms.explorer.png │ ├── h2.console.login.png │ ├── jmx.jconsole.png │ ├── jpa.spring.example.process.png │ ├── kickstart.bpmn20.xml.png │ ├── kickstart.capture.initiator.png │ ├── kickstart.create.process.png │ ├── kickstart.diagram.png │ ├── kickstart.enhance.png │ ├── kickstart.form.in.explorer.png │ ├── kickstart.form.png │ ├── kickstart.process.in.explorer.png │ ├── kickstart.reference.form.properties.png │ ├── li-chevron.png │ ├── migration.ant.convert.processes.png │ ├── migration.code.overview.png │ ├── migration.process.conversion.completed.png │ ├── migration.processes.location.png │ ├── migration.zip.contents.png │ ├── modeler.convert.png │ ├── modeler.deploy.png │ ├── modeler.editor.canvas.png │ ├── modeler.example.process.png │ ├── modeler.export.png │ ├── modeler.import.png │ ├── new.bpmn.procdef.png │ ├── org.activiti.designer.integration-0.6.0.jar │ ├── taskform.example.png │ ├── taskform.vacation.request.adjust.form.png │ ├── taskform.vacation.request.approve.form.png │ ├── taskform.vacation.request.management.group.png │ └── taskform.vacation.request.model.png └── index.adoc └── zh_CN ├── README.txt ├── ch01-Introduction.adoc ├── ch02-GettingStarted.adoc ├── ch03-Configuration.adoc ├── ch04-API.adoc ├── ch05-Spring.adoc ├── ch06-Deployment.adoc ├── ch07a-BPMN-Introduction.adoc ├── ch07b-BPMN-Constructs.adoc ├── ch08-Forms.adoc ├── ch09-JPA.adoc ├── ch10-History.adoc ├── ch11-Designer.adoc ├── ch12-Explorer.adoc ├── ch13-Modeler.adoc ├── ch14-REST.adoc ├── ch15-Cdi.adoc ├── ch16-Ldap.adoc ├── ch17-Advanced.adoc ├── ch18-Simulation.adoc ├── ch19-tooling.adoc ├── colony.css ├── generate-html.bat ├── generate-html.sh ├── images ├── FinancialReportProcess.bpmn20.xml ├── activiti-modeler.png ├── activiti.async.example.async.PNG ├── activiti.async.example.no.async.PNG ├── activiti.cycle.action.forms.png ├── activiti.cycle.png ├── activiti.cycle.repositories.png ├── activiti.explorer.processes.png ├── activiti.explorer.tasks.png ├── activiti.probe.database.png ├── activiti.probe.deployments.png ├── activiti.probe.jobs.exception.png ├── activiti.probe.jobs.selected.png ├── activiti.probe.processes.png ├── activiti.probe.status.png ├── api.services.png ├── api.test.debug.breakpoint.png ├── api.test.debug.h2.login.png ├── api.test.debug.h2.tables.png ├── api.test.debug.start.h2.server.2.png ├── api.test.debug.start.h2.server.png ├── api.test.debug.view.png ├── api.vacationRequest.png ├── blockquote-arrow.png ├── bpmn.boundary.cancel.event.png ├── bpmn.boundary.compensation.event.png ├── bpmn.boundary.error.event.png ├── bpmn.boundary.error.example.png ├── bpmn.boundary.message.event.png ├── bpmn.boundary.signal.event.png ├── bpmn.boundary.timer.event.png ├── bpmn.business.rule.task.png ├── bpmn.call.activity.sub.process.png ├── bpmn.call.activity.super.process.png ├── bpmn.cancel.end.event.png ├── bpmn.clock.start.event.png ├── bpmn.collapsed.call.activity.png ├── bpmn.collapsed.subprocess.png ├── bpmn.conditional.sequence.flow.png ├── bpmn.default.sequence.flow.example.png ├── bpmn.default.sequence.flow.png ├── bpmn.error.end.event.png ├── bpmn.event.based.gateway.example.png ├── bpmn.event.based.gateway.notation.png ├── bpmn.exclusive.gateway.notation.png ├── bpmn.exclusive.gateway.png ├── bpmn.expanded.subprocess.png ├── bpmn.financial.report.example.claim.task.png ├── bpmn.financial.report.example.process.ended.png ├── bpmn.financial.report.example.start.process.png ├── bpmn.financial.report.example.task.assigned.png ├── bpmn.gateway.png ├── bpmn.inclusive.gateway.png ├── bpmn.intermediate.compensation.throw.event.png ├── bpmn.intermediate.message.catch.event.png ├── bpmn.intermediate.none.event.png ├── bpmn.intermediate.signal.catch.event.png ├── bpmn.intermediate.signal.throw.event.png ├── bpmn.intermediate.timer.event.png ├── bpmn.java.service.task.png ├── bpmn.known.issue.boundary.event.png ├── bpmn.manual.task.png ├── bpmn.multi.instance.boundary.event.png ├── bpmn.multi.instance.png ├── bpmn.non.interrupting.boundary.timer.event.png ├── bpmn.none.end.event.png ├── bpmn.none.start.event.png ├── bpmn.parallel.gateway.png ├── bpmn.receive.task.png ├── bpmn.scripttask.png ├── bpmn.sequence.flow.png ├── bpmn.signal.event.catch.png ├── bpmn.signal.event.throw.png ├── bpmn.signal.event.warning.1.png ├── bpmn.start.error.event.png ├── bpmn.start.message.event.example.1.png ├── bpmn.start.message.event.png ├── bpmn.start.signal.event.png ├── bpmn.subprocess.eventSubprocess.example.1.png ├── bpmn.subprocess.eventSubprocess.example.2a.png ├── bpmn.subprocess.eventSubprocess.example.2b.png ├── bpmn.subprocess.eventSubprocess.png ├── bpmn.subprocess.with.boundary.timer.png ├── bpmn.terminate.end.event.png ├── bpmn.throw.compensation.example1.png ├── bpmn.transaction.subprocess.example.1.png ├── bpmn.transaction.subprocess.example.2.png ├── bpmn.transaction.subprocess.png ├── bpmn.uel-expression.on.seq.flow.png ├── bpmn.unbalanced.parallel.gateway.png ├── bpmn.user.task.png ├── bpmn.web.service.task.png ├── bpmn.why.exclusive.jobs.png ├── custom.identityLinkType.example.png ├── deployment.explorer.2.png ├── deployment.explorer.png ├── deployment.image.generation.png ├── designer.add.update.site.png ├── designer.bpmn.file.png ├── designer.create.activiti.project.png ├── designer.create.deployment.png ├── designer.deployment.dir.png ├── designer.embeddedprocess.canvas.png ├── designer.listener.configuration.png ├── designer.mailtask.property.png ├── designer.model.eventsubprocess.png ├── designer.model.labels.png ├── designer.model.poolandlanes.png ├── designer.model.process.png ├── designer.model.quick.change.png ├── designer.model.quick.new.png ├── designer.multipage.editor.png ├── designer.open.importedfile.png ├── designer.palette.add.money.help.png ├── designer.palette.add.money.png ├── designer.palette.add.money.properties.required.png ├── designer.palette.disable.all.png ├── designer.palette.disable.manual.and.script.png ├── designer.preferences.userlibraries.activiti.empty.png ├── designer.preferences.userlibraries.activiti.moneytasks.png ├── designer.preferences.userlibraries.png ├── designer.problem.view.png ├── designer.project.maven.png ├── designer.property.boolean.choice.png ├── designer.property.combobox.choice.invalid.png ├── designer.property.combobox.choice.png ├── designer.property.datagrid.png ├── designer.property.date.picker.png ├── designer.property.multiline.text.invalid.png ├── designer.property.multiline.text.png ├── designer.property.period.invalid.png ├── designer.property.period.png ├── designer.property.radio.choice.invalid.png ├── designer.property.radio.choice.png ├── designer.property.text.invalid.png ├── designer.property.text.png ├── designer.sequence.condition.png ├── designer.servicetask.property.png ├── designer.timerboundary.canvas.png ├── designer.unittest.generate.png ├── designer.userlibraries.project.png ├── designer.xml.contentassist.png ├── eclipse.setup.xml.catalog.png ├── eclipsesetup.import.existing.projects.png ├── eclipsesetup.import.png ├── eclipsesetup.select.directory.png ├── email.task.result.png ├── explorer.case.overview.png ├── explorer.database.png ├── explorer.deployments.png ├── explorer.jobs.png ├── explorer.my.instances.png ├── explorer.process.definition.image.png ├── explorer.process.definitions.png ├── explorer.report.example.png ├── explorer.reporting.explained.png ├── explorer.reporting.png ├── explorer.reporting.start.form.png ├── explorer.tabs.png ├── explorer.tasks.png ├── explorer.upload.deployment.png ├── explorer.users.png ├── financial.report.example.diagram.png ├── forms.explorer.png ├── h2.console.login.png ├── jmx.jconsole.png ├── jpa.spring.example.process.png ├── kickstart.bpmn20.xml.png ├── kickstart.capture.initiator.png ├── kickstart.create.process.png ├── kickstart.diagram.png ├── kickstart.enhance.png ├── kickstart.form.in.explorer.png ├── kickstart.form.png ├── kickstart.process.in.explorer.png ├── kickstart.reference.form.properties.png ├── li-chevron.png ├── migration.ant.convert.processes.png ├── migration.code.overview.png ├── migration.process.conversion.completed.png ├── migration.processes.location.png ├── migration.zip.contents.png ├── modeler.convert.png ├── modeler.deploy.png ├── modeler.editor.canvas.png ├── modeler.example.process.png ├── modeler.export.png ├── modeler.import.png ├── new.bpmn.procdef.png ├── org.activiti.designer.integration-0.6.0.jar ├── taskform.example.png ├── taskform.vacation.request.adjust.form.png ├── taskform.vacation.request.approve.form.png ├── taskform.vacation.request.management.group.png └── taskform.vacation.request.model.png └── index.adoc /.gitignore: -------------------------------------------------------------------------------- 1 | /zh_CN/index.html 2 | -------------------------------------------------------------------------------- /en/README.txt: -------------------------------------------------------------------------------- 1 | Tooling 2 | ------- 3 | 4 | 5 | Install Asciidoctor: http://asciidoctor.org/ 6 | 7 | We're using the 'pygments' library for syntax highlighting. This needs to be installed: gem install pygments.rb 8 | 9 | 10 | 11 | Generate HTML docs 12 | ------------------ 13 | 14 | ./generate-html.sh 15 | 16 | 17 | 18 | Advanced 19 | -------- 20 | 21 | Themes in asciidoc are managed by the 'stylesheet factory'. 22 | See themes in action: http://themes.asciidoctor.org/preview/ 23 | 24 | Clone https://github.com/asciidoctor/asciidoctor-stylesheet-factory and follow instructions there to build the themes. 25 | The resulting css and images are copied to the docs folder. -------------------------------------------------------------------------------- /en/ch01-Introduction.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Introduction 3 | 4 | [[license]] 5 | 6 | === License 7 | 8 | Activiti is distributed under link:$$http://www.apache.org/licenses/LICENSE-2.0.html$$[the Apache V2 license]. 9 | The Activiti Modeler uses a different license link:$$http://opensource.org/licenses/LGPL-2.1$$[the LGPL 2.1 license]. 10 | 11 | [[download]] 12 | 13 | === Download 14 | 15 | link:$$http://activiti.org/download.html$$[http://activiti.org/download.html] 16 | 17 | [[sources]] 18 | 19 | === Sources 20 | 21 | The distribution contains most of the sources as jar files. The source code of Activiti can be found on 22 | link:$$https://github.com/Activiti/Activiti$$[https://github.com/Activiti/Activiti] 23 | 24 | 25 | [[required.software]] 26 | 27 | === Required software 28 | 29 | ==== JDK 6+ 30 | 31 | Activiti runs on a JDK higher than or equal to version 6. Go to link:$$http://www.oracle.com/technetwork/java/javase/downloads/index.html$$[Oracle Java SE downloads] and click on button "Download JDK". There are installation instructions on that page as well. To verify that your installation was successful, run +java -version+ on the command line. That should print the installed version of your JDK. 32 | 33 | 34 | ==== Eclipse Indigo and Juno 35 | 36 | Download the eclipse distribution of your choice from link:$$http://www.eclipse.org/downloads/$$[the Eclipse download page]. Unzip the downloaded file and then you should be able to start it with the eclipse file in the directory +eclipse+. 37 | Further in this user guide, there is a section on <>. 38 | 39 | 40 | [[reporting.problems]] 41 | 42 | === Reporting problems 43 | 44 | Every self-respecting developer should have read link:$$http://www.catb.org/~esr/faqs/smart-questions.html$$[How to ask questions the smart way]. 45 | 46 | 47 | After you've done that you can post questions and comments on link:$$http://forums.activiti.org/en/viewforum.php?f=3$$[the Users forum] and create issues in link:$$https://activiti.atlassian.net$$[our JIRA issue tracker]. 48 | 49 | [NOTE] 50 | ==== 51 | 52 | Even though Activiti is hosted on GitHub, issues should not be reported using GitHub's issue system. If you wish to report an issue, do not create a GitHub issue, but use link:$$https://activiti.atlassian.net$$[our JIRA]. 53 | 54 | ==== 55 | 56 | [[experimental]] 57 | 58 | === Experimental features 59 | 60 | Sections marked with *[EXPERIMENTAL]* should 61 | not be considered stable. 62 | 63 | 64 | All classes that have +.impl.+ in the package name are internal implementation classes and cannot be considered stable. However, if the user guide mentions those classes as configuration values, they are supported and can be considered stable. 65 | 66 | 67 | [[internal]] 68 | 69 | === Internal implementation classes 70 | 71 | In the jar file, all classes in packages that have +.impl.+ (e.g. ++org.activiti.engine.impl.pvm.delegate++) in them are implementation classes and should be considered internal. No stability guarantees are given on classes or interfaces that are in implementation classes. 72 | -------------------------------------------------------------------------------- /en/ch02-GettingStarted.adoc: -------------------------------------------------------------------------------- 1 | 2 | == Getting Started 3 | 4 | [[demo.setup.one.minute.version]] 5 | 6 | === One minute version 7 | 8 | 9 | After downloading the Activiti Explorer WAR file from the link:$$http://www.activiti.org$$[Activiti website], follow these steps to get the demo setup running with default settings. You'll need a working link:$$http://java.sun.com/javase/downloads/index.jsp$$[Java runtime] and link:$$http://tomcat.apache.org/download-70.cgi$$[Apache Tomcat] installation (actually, any web container would work since we only rely on the servlet capability. But we test on Tomcat primarily). 10 | 11 | * Copy the downloaded activiti-explorer.war to the webapps directory of Tomcat. 12 | * Start Tomcat by running the startup.bat or startup.sh scripts in the bin folder of Tomcat 13 | * When Tomcat is started open your browser and go to link:$$http://localhost:8080/activiti-explorer$$[http://localhost:8080/activiti-explorer]. 14 | Login with kermit/kermit. 15 | 16 | 17 | 18 | That's it! The Activiti Explorer application uses an in-memory H2 database by default, if you want to use another database configuration please read <>. 19 | 20 | 21 | [[activiti.setup]] 22 | 23 | 24 | === Activiti setup 25 | 26 | To install Activiti you'll need a working link:$$http://java.sun.com/javase/downloads/index.jsp$$[Java runtime] and link:$$http://tomcat.apache.org/download-70.cgi$$[Apache Tomcat] installation. Also make sure that the _$$JAVA_HOME$$_ system variable is correctly set. The way to do this depends on your operating system. 27 | 28 | To get the Activiti Explorer and REST web applications running just copy the WARs downloaded from the Activiti download page to the +webapps+ folder in your Tomcat installation directory. By default the Explorer application runs with an in-memory database and with example processes, users and groups. 29 | 30 | 31 | These are the demo users: 32 | 33 | [options="header"] 34 | |=============== 35 | |UserId|Password|Security roles 36 | |kermit|kermit|admin 37 | |gonzo|gonzo|manager 38 | |fozzie|fozzie|user 39 | |=============== 40 | 41 | 42 | Now you can access following web application: 43 | 44 | [options="header"] 45 | |=============== 46 | |Webapp Name|URL|Description 47 | |Activiti Explorer|link:$$http://localhost:8080/activiti-explorer$$[http://localhost:8080/activiti-explorer]|The process engine user console. Use this tool to start new processes, assign tasks, view and claim tasks, etc. This tool also allows to administrate the Activiti engine. 48 | |=============== 49 | 50 | Note that the Activiti Explorer demo setup is a way of showing the capabilities and functionality of Activiti as easily and as fast as possible. This does however, *not* mean 51 | that it is the only way of using Activiti. As Activiti is 'just a jar', it can be embedded in any Java environment: with swing or on a Tomcat, JBoss, WebSphere, etc. Or you could very well choose to run Activiti as a typical, standalone BPM server. If it is possible in Java, it is possible with Activiti! 52 | 53 | 54 | [[activiti.setup.database]] 55 | 56 | 57 | === Activiti database setup 58 | 59 | As said in the one minute demo setup, the Activiti Explorer runs an in-memory H2 database by default. To run the Activiti Explorer with a standalone H2 or another database the db.properties in the WEB-INF/classes of the Activiti Explorer web application should be changed. 60 | 61 | 62 | In addition, be aware that the Activiti Explorer generates demo user and groups, process definitions and models by default. To disable this, the engine.properties file in the WEB-INF/classes folder should be changed. To disable the demo setup fully you can set all of these properties to false. But as you can see you can also enable and disable items individually. 63 | 64 | [source, properties, linenums] 65 | ---- 66 | # demo data properties 67 | create.demo.users=true 68 | create.demo.definitions=true 69 | create.demo.models=true 70 | create.demo.reports=true 71 | ---- 72 | 73 | [[getting.started.including.libs]] 74 | 75 | 76 | === Include the Activiti jar and its dependencies 77 | 78 | 79 | To include the Activiti jar and its dependent libraries, we advise using link:$$http://maven.apache.org/$$[Maven] (or link:$$http://ant.apache.org/ivy/$$[Ivy]), as it 80 | simplifies dependency management on both our and your side a lot. Follow the instructions at link:$$http://www.activiti.org/community.html#maven.repository$$[] to include the necessary jars in your environment. 81 | 82 | 83 | Alternatively, if you don't want to use Maven you can include the jars in your project yourself. The Activiti download zip contains a folder +libs+ which contain all the Activiti jars (and the source jars). The dependencies are not shipped this way. The required dependencies of the Activiti engine are (generated using ++mvn dependency:tree++): 84 | 85 | ---- 86 | org.activiti:activiti-engine:jar:5.17.0 87 | +- org.activiti:activiti-bpmn-converter:jar:5.17.0:compile 88 | | \- org.activiti:activiti-bpmn-model:jar:5.17.0:compile 89 | | +- com.fasterxml.jackson.core:jackson-core:jar:2.2.3:compile 90 | | \- com.fasterxml.jackson.core:jackson-databind:jar:2.2.3:compile 91 | | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.3:compile 92 | +- org.activiti:activiti-process-validation:jar:5.17.0:compile 93 | +- org.activiti:activiti-image-generator:jar:5.17.0:compile 94 | +- org.apache.commons:commons-email:jar:1.2:compile 95 | | +- javax.mail:mail:jar:1.4.1:compile 96 | | \- javax.activation:activation:jar:1.1:compile 97 | +- org.apache.commons:commons-lang3:jar:3.3.2:compile 98 | +- org.mybatis:mybatis:jar:3.2.5:compile 99 | +- org.springframework:spring-beans:jar:4.0.6.RELEASE:compile 100 | | \- org.springframework:spring-core:jar:4.0.6.RELEASE:compile 101 | +- joda-time:joda-time:jar:2.6:compile 102 | +- org.slf4j:slf4j-api:jar:1.7.6:compile 103 | +- org.slf4j:jcl-over-slf4j:jar:1.7.6:compile 104 | ---- 105 | 106 | Note: the mail jars are only needed if you are using the <>. 107 | 108 | All the dependencies can easily be downloaded using +mvn dependency:copy-dependencies+ on a module of the link:$$https://github.com/Activiti/Activiti$$[Activiti source code]. 109 | 110 | 111 | [[getting.started.next.steps]] 112 | 113 | === Next steps 114 | 115 | Playing around with the <> web application is a good way to get familiar with the Activiti concepts and functionality. However, the main purpose of Activiti is of course to enable powerful BPM and workflow capabilities in your own application. The following chapters will help you to get familiar with how to use Activiti programmatically in your environment: 116 | 117 | * <> will teach you how to set up Activiti and how to obtain an instance of the +ProcessEngine+ class which is your central access point to all the engine functionality of Activiti. 118 | *<> will guide you through the services which form Activiti's API. These services offer the Activiti engine functionality in a convenient yet powerful way and can be used in any Java environment. 119 | *Interested in getting insight on BPMN 2.0, the format in which processes for the Activiti engine are written? Then continue on to the <>. 120 | -------------------------------------------------------------------------------- /en/ch10-History.adoc: -------------------------------------------------------------------------------- 1 | [[history]] 2 | 3 | == History 4 | 5 | History is the component that captures what happened during process execution and stores it permanently. In contrast to the runtime data, the history data will remain present in the DB also after process instances have completed. 6 | 7 | There are 5 history entities: 8 | 9 | * ++HistoricProcessInstance++s containing information about current and past process instances. 10 | * ++HistoricVariableInstance++s containing the latest value of a process variable or task variable. 11 | * ++HistoricActivityInstance++s containing information about a single execution of an activity (node in the process). 12 | * ++HistoricTaskInstance++s containing information about current and past (completed and deleted) task instances. 13 | * ++HistoricDetail++s containing various kinds of information related to either a historic process instances, an activity instance or a task instance. 14 | 15 | Since the DB contains historic entities for past as well as ongoing instances, you might want to consider querying these tables in order to minimize access to the runtime process instance data and that way keeping the runtime execution performant. 16 | 17 | Later on, this information will be exposed in Activiti Explorer. Also, it will be the information from which the reports will be generated. 18 | 19 | 20 | [[historyQuery]] 21 | 22 | 23 | === Querying history 24 | 25 | In the API, it's possible to query all 5 of the History entities. The HistoryService exposes the methods +createHistoricProcessInstanceQuery()+, +createHistoricVariableInstanceQuery()+, +createHistoricActivityInstanceQuery()+, +createHistoricDetailQuery()+ and +createHistoricTaskInstanceQuery()+. 26 | 27 | Below are a couple of examples that show some of the possibilities of the query API for history. Full description of the possibilities can be found in the link:$$http://activiti.org/javadocs/index.html$$[javadocs], in the +org.activiti.engine.history+ package. 28 | 29 | [[historyQueryProcessInstance]] 30 | 31 | 32 | ==== HistoricProcessInstanceQuery 33 | 34 | Get 10 +HistoricProcessInstances+ that are finished and which took the most time to complete (the longest duration) of all finished processes with definition 'XXX'. 35 | 36 | [source,java,linenums] 37 | ---- 38 | historyService.createHistoricProcessInstanceQuery() 39 | .finished() 40 | .processDefinitionId("XXX") 41 | .orderByProcessInstanceDuration().desc() 42 | .listPage(0, 10); 43 | ---- 44 | 45 | 46 | [[historyQueryVariableInstance]] 47 | 48 | 49 | ==== HistoricVariableInstanceQuery 50 | 51 | Get all +HistoricVariableInstances+ from a finished process instance with id 'xxx' ordered by variable name. 52 | 53 | [source,java,linenums] 54 | ---- 55 | historyService.createHistoricVariableInstanceQuery() 56 | .processInstanceId("XXX") 57 | .orderByVariableName.desc() 58 | .list(); 59 | ---- 60 | 61 | [[historyQueryActivityInstance]] 62 | 63 | 64 | ==== HistoricActivityInstanceQuery 65 | 66 | Get the last +HistoricActivityInstance+ of type 'serviceTask' that has been finished in any process that uses the processDefinition with id XXX. 67 | 68 | [source,java,linenums] 69 | ---- 70 | historyService.createHistoricActivityInstanceQuery() 71 | .activityType("serviceTask") 72 | .processDefinitionId("XXX") 73 | .finished() 74 | .orderByHistoricActivityInstanceEndTime().desc() 75 | .listPage(0, 1); 76 | ---- 77 | 78 | [[historyQueryDetail]] 79 | 80 | 81 | ==== HistoricDetailQuery 82 | 83 | The next example, gets all variable-updates that have been done in process with id 123. Only ++HistoricVariableUpdate++s will be returned by this query. Note that it's possible that a certain variable name has multiple +HistoricVariableUpdate+ entries, for each time the variable was updated in the process. You can use +orderByTime+ (the time the variable update was done) or +orderByVariableRevision+ (revision of runtime variable at the time of updating) to find out in what order they occurred. 84 | 85 | [source,java,linenums] 86 | ---- 87 | historyService.createHistoricDetailQuery() 88 | .variableUpdates() 89 | .processInstanceId("123") 90 | .orderByVariableName().asc() 91 | .list() 92 | ---- 93 | 94 | This example gets all <> that were submitted in any task or when starting the process with id "123". Only ++HistoricFormProperties++s will be returned by this query. 95 | 96 | [source,java,linenums] 97 | ---- 98 | historyService.createHistoricDetailQuery() 99 | .formProperties() 100 | .processInstanceId("123") 101 | .orderByVariableName().asc() 102 | .list() 103 | ---- 104 | 105 | 106 | The last example gets all variable updates that were performed on the task with id "123". This returns all +HistoricVariableUpdates+ for variables that were set on the task (task local variables), and NOT on the process instance. 107 | 108 | [source,java,linenums] 109 | ---- 110 | historyService.createHistoricDetailQuery() 111 | .variableUpdates() 112 | .taskId("123") 113 | .orderByVariableName().asc() 114 | .list() 115 | ---- 116 | 117 | Task local variables can be set using the +TaskService+ or on a +DelegateTask+, inside ++TaskListener++: 118 | 119 | [source,java,linenums] 120 | ---- 121 | taskService.setVariableLocal("123", "myVariable", "Variable value"); 122 | ---- 123 | 124 | [source,java,linenums] 125 | ---- 126 | public void notify(DelegateTask delegateTask) { 127 | delegateTask.setVariableLocal("myVariable", "Variable value"); 128 | } 129 | ---- 130 | 131 | [[historyQueryTaskInstance]] 132 | 133 | 134 | ==== HistoricTaskInstanceQuery 135 | 136 | Get 10 ++HistoricTaskInstance++s that are finished and which took the most time to complete (the longest duration) of all tasks. 137 | 138 | [source,java,linenums] 139 | ---- 140 | historyService.createHistoricTaskInstanceQuery() 141 | .finished() 142 | .orderByHistoricTaskInstanceDuration().desc() 143 | .listPage(0, 10); 144 | ---- 145 | 146 | Get ++HistoricTaskInstance++s that are deleted with a delete reason that contains "invalid", which were last assigned to user 'kermit'. 147 | 148 | [source,java,linenums] 149 | ---- 150 | historyService.createHistoricTaskInstanceQuery() 151 | .finished() 152 | .taskDeleteReasonLike("%invalid%") 153 | .taskAssignee("kermit") 154 | .listPage(0, 10); 155 | ---- 156 | 157 | 158 | [[historyConfig]] 159 | 160 | === History configuration 161 | 162 | The history level can be configured programmatically, using the enum org.activiti.engine.impl.history.HistoryLevel (or _HISTORY_ constants defined on +ProcessEngineConfiguration+ for versions prior to 5.11): 163 | 164 | [source,java,linenums] 165 | ---- 166 | ProcessEngine processEngine = ProcessEngineConfiguration 167 | .createProcessEngineConfigurationFromResourceDefault() 168 | .setHistory(HistoryLevel.AUDIT.getKey()) 169 | .buildProcessEngine(); 170 | ---- 171 | 172 | The level can also be configured in activiti.cfg.xml or in a spring-context: 173 | 174 | [source,xml,linenums] 175 | ---- 176 | 177 | 178 | ... 179 | 180 | ---- 181 | 182 | Following history levels can be configured: 183 | 184 | * ++none++: skips all history archiving. This is the most performant for runtime process execution, but no historical information will be available. 185 | * ++activity++: archives all process instances and activity instances. At the end of the process instance, the latest values of the top level process instance variables will be copied to historic variable instances. No details will be archived. 186 | * ++audit++: This is the default. It archives all process instances, activity instances, keeps variable values continuously in sync and all form properties that are submitted so that all user interaction through forms is traceable and can be audited. 187 | * ++full++: This is the highest level of history archiving and hence the slowest. This level stores all information as in the +audit+ level plus all other possible details, mostly this are process variable updates. 188 | 189 | *Prior to Activiti 5.11, the history level was stored in the database (table +$$ACT_GE_PROPERTY$$+, property with name ++historyLevel++). Starting from 5.11, this value is not used anymore and is ignored/deleted from the database. The history can now be changed between 2 boots of the engine, without an exception being thrown in case the level changed from the previous engine-boot.* 190 | 191 | [[historyFormAuditPurposes]] 192 | 193 | 194 | === History for audit purposes 195 | 196 | When <> at least +audit+ level for configuration. Then all properties submitted through methods +FormService.submitStartFormData(String processDefinitionId, Map properties)+ and +FormService.submitTaskFormData(String taskId, Map properties)+ are recorded. 197 | 198 | Form properties can be retrieved with the query API like this: 199 | 200 | [source,java,linenums] 201 | ---- 202 | historyService 203 | .createHistoricDetailQuery() 204 | .formProperties() 205 | ... 206 | .list(); 207 | ---- 208 | 209 | In that case only historic details of type +HistoricFormProperty+ are returned. 210 | 211 | 212 | If you've set the authenticated user before calling the submit methods with +IdentityService.setAuthenticatedUserId(String)+ then that authenticated user who submitted the form will be accessible in the history as well with +HistoricProcessInstance.getStartUserId()+ for start forms and +HistoricActivityInstance.getAssignee()+ for task forms. 213 | -------------------------------------------------------------------------------- /en/ch13-Modeler.adoc: -------------------------------------------------------------------------------- 1 | [[activitiModeler]] 2 | 3 | == Activiti Modeler 4 | 5 | Activiti Modeler is a BPMN web modeler component that's available as part of the <> web application. 6 | The Modeler is a fork of the link:$$http://code.google.com/p/signavio-core-components/$$[Signavio Core Components] project. 7 | The Activiti Modeler is an Angular JS based application since version 5.17.0 (before it was an Ext-JS based application). The Angular JS part of the Activiti Modeler is released with a LGPL license. 8 | A main difference with the previous Activiti Modeler (Signavio Core Components) is that that the new modeler is maintained and developed as part of the Activiti project. 9 | The goal of the Activiti Modeler is to support all the BPMN elements and extension supported by the Activiti Engine. 10 | 11 | When you run the Activiti Explorer with the default configuration one demo process will be available in the model workspace. 12 | 13 | image::images/modeler.example.process.png[align="center"] 14 | 15 | 16 | === Model editing 17 | 18 | When you click on the edit button in the model workspace the model will be opened in the modeler. On the left side of the screen the available palette of BPMN elements and Activiti extensions is available. You can drag and drop new elements on the canvas when needed. On the bottom side of the screen the attributes of a selected element can be filled-in. In the example screenshot a user task is selected and you can fill-in user task attributes like assignment, form properties and due date. 19 | To return to the Activiti Explorer you can click the close button at the top right of the screen. 20 | 21 | image::images/modeler.editor.canvas.png[align="center"] 22 | 23 | 24 | === Importing existing models 25 | 26 | You can also import existing models into the model workspace to edit them in the Activiti Modeler. Click on the import button and select a .bpmn or .bpmn20.xml file. Note that the BPMN XML file should contain BPMN DI information. 27 | 28 | image::images/modeler.import.png[align="center"] 29 | 30 | 31 | 32 | === Convert deployed definitions to a editable model 33 | 34 | Deployed process definition can be converted into models that can be edited by the Activiti Modeler. Note that the process definition should contain BPMN DI information. 35 | 36 | image::images/modeler.convert.png[align="center"] 37 | 38 | 39 | === Export model to BPMN XML 40 | 41 | A model in the model workspace can be exported to a BPMN XML file. Select the export option in the model action select box. 42 | 43 | image::images/modeler.export.png[align="center"] 44 | 45 | 46 | === Deploy model to the Activiti Engine 47 | 48 | When a model contains all the attributes necessary to be executed, it can be deployed to the Activiti Engine. Select the deploy option in the model action select box. 49 | 50 | image::images/modeler.deploy.png[align="center"] 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /en/generate-html.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | asciidoctor -a stylesheet=colony.css index.adoc 4 | -------------------------------------------------------------------------------- /en/images/FinancialReportProcess.bpmn20.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Write monthly financial report for publication to shareholders. 19 | 20 | 21 | 22 | accountancy 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Verify monthly financial report composed by the accountancy department. 32 | This financial report is going to be sent to all the company shareholders. 33 | 34 | 35 | 36 | management 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /en/images/activiti-modeler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti-modeler.png -------------------------------------------------------------------------------- /en/images/activiti.async.example.async.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.async.example.async.PNG -------------------------------------------------------------------------------- /en/images/activiti.async.example.no.async.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.async.example.no.async.PNG -------------------------------------------------------------------------------- /en/images/activiti.cycle.action.forms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.cycle.action.forms.png -------------------------------------------------------------------------------- /en/images/activiti.cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.cycle.png -------------------------------------------------------------------------------- /en/images/activiti.cycle.repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.cycle.repositories.png -------------------------------------------------------------------------------- /en/images/activiti.explorer.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.explorer.processes.png -------------------------------------------------------------------------------- /en/images/activiti.explorer.tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.explorer.tasks.png -------------------------------------------------------------------------------- /en/images/activiti.probe.database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.database.png -------------------------------------------------------------------------------- /en/images/activiti.probe.deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.deployments.png -------------------------------------------------------------------------------- /en/images/activiti.probe.jobs.exception.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.jobs.exception.png -------------------------------------------------------------------------------- /en/images/activiti.probe.jobs.selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.jobs.selected.png -------------------------------------------------------------------------------- /en/images/activiti.probe.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.processes.png -------------------------------------------------------------------------------- /en/images/activiti.probe.status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/activiti.probe.status.png -------------------------------------------------------------------------------- /en/images/api.services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.services.png -------------------------------------------------------------------------------- /en/images/api.test.debug.breakpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.breakpoint.png -------------------------------------------------------------------------------- /en/images/api.test.debug.h2.login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.h2.login.png -------------------------------------------------------------------------------- /en/images/api.test.debug.h2.tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.h2.tables.png -------------------------------------------------------------------------------- /en/images/api.test.debug.start.h2.server.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.start.h2.server.2.png -------------------------------------------------------------------------------- /en/images/api.test.debug.start.h2.server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.start.h2.server.png -------------------------------------------------------------------------------- /en/images/api.test.debug.view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.test.debug.view.png -------------------------------------------------------------------------------- /en/images/api.vacationRequest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/api.vacationRequest.png -------------------------------------------------------------------------------- /en/images/blockquote-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/blockquote-arrow.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.cancel.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.cancel.event.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.compensation.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.compensation.event.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.error.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.error.event.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.error.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.error.example.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.message.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.message.event.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.signal.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.signal.event.png -------------------------------------------------------------------------------- /en/images/bpmn.boundary.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.boundary.timer.event.png -------------------------------------------------------------------------------- /en/images/bpmn.business.rule.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.business.rule.task.png -------------------------------------------------------------------------------- /en/images/bpmn.call.activity.sub.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.call.activity.sub.process.png -------------------------------------------------------------------------------- /en/images/bpmn.call.activity.super.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.call.activity.super.process.png -------------------------------------------------------------------------------- /en/images/bpmn.cancel.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.cancel.end.event.png -------------------------------------------------------------------------------- /en/images/bpmn.clock.start.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.clock.start.event.png -------------------------------------------------------------------------------- /en/images/bpmn.collapsed.call.activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.collapsed.call.activity.png -------------------------------------------------------------------------------- /en/images/bpmn.collapsed.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.collapsed.subprocess.png -------------------------------------------------------------------------------- /en/images/bpmn.conditional.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.conditional.sequence.flow.png -------------------------------------------------------------------------------- /en/images/bpmn.default.sequence.flow.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.default.sequence.flow.example.png -------------------------------------------------------------------------------- /en/images/bpmn.default.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.default.sequence.flow.png -------------------------------------------------------------------------------- /en/images/bpmn.error.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.error.end.event.png -------------------------------------------------------------------------------- /en/images/bpmn.event.based.gateway.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.event.based.gateway.example.png -------------------------------------------------------------------------------- /en/images/bpmn.event.based.gateway.notation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.event.based.gateway.notation.png -------------------------------------------------------------------------------- /en/images/bpmn.exclusive.gateway.notation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.exclusive.gateway.notation.png -------------------------------------------------------------------------------- /en/images/bpmn.exclusive.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.exclusive.gateway.png -------------------------------------------------------------------------------- /en/images/bpmn.expanded.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.expanded.subprocess.png -------------------------------------------------------------------------------- /en/images/bpmn.financial.report.example.claim.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.financial.report.example.claim.task.png -------------------------------------------------------------------------------- /en/images/bpmn.financial.report.example.process.ended.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.financial.report.example.process.ended.png -------------------------------------------------------------------------------- /en/images/bpmn.financial.report.example.start.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.financial.report.example.start.process.png -------------------------------------------------------------------------------- /en/images/bpmn.financial.report.example.task.assigned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.financial.report.example.task.assigned.png -------------------------------------------------------------------------------- /en/images/bpmn.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.gateway.png -------------------------------------------------------------------------------- /en/images/bpmn.inclusive.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.inclusive.gateway.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.compensation.throw.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.compensation.throw.event.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.message.catch.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.message.catch.event.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.none.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.none.event.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.signal.catch.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.signal.catch.event.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.signal.throw.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.signal.throw.event.png -------------------------------------------------------------------------------- /en/images/bpmn.intermediate.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.intermediate.timer.event.png -------------------------------------------------------------------------------- /en/images/bpmn.java.service.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.java.service.task.png -------------------------------------------------------------------------------- /en/images/bpmn.known.issue.boundary.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.known.issue.boundary.event.png -------------------------------------------------------------------------------- /en/images/bpmn.manual.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.manual.task.png -------------------------------------------------------------------------------- /en/images/bpmn.multi.instance.boundary.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.multi.instance.boundary.event.png -------------------------------------------------------------------------------- /en/images/bpmn.multi.instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.multi.instance.png -------------------------------------------------------------------------------- /en/images/bpmn.non.interrupting.boundary.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.non.interrupting.boundary.timer.event.png -------------------------------------------------------------------------------- /en/images/bpmn.none.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.none.end.event.png -------------------------------------------------------------------------------- /en/images/bpmn.none.start.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.none.start.event.png -------------------------------------------------------------------------------- /en/images/bpmn.parallel.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.parallel.gateway.png -------------------------------------------------------------------------------- /en/images/bpmn.receive.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.receive.task.png -------------------------------------------------------------------------------- /en/images/bpmn.scripttask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.scripttask.png -------------------------------------------------------------------------------- /en/images/bpmn.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.sequence.flow.png -------------------------------------------------------------------------------- /en/images/bpmn.signal.event.catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.signal.event.catch.png -------------------------------------------------------------------------------- /en/images/bpmn.signal.event.throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.signal.event.throw.png -------------------------------------------------------------------------------- /en/images/bpmn.signal.event.warning.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.signal.event.warning.1.png -------------------------------------------------------------------------------- /en/images/bpmn.start.error.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.start.error.event.png -------------------------------------------------------------------------------- /en/images/bpmn.start.message.event.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.start.message.event.example.1.png -------------------------------------------------------------------------------- /en/images/bpmn.start.message.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.start.message.event.png -------------------------------------------------------------------------------- /en/images/bpmn.start.signal.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.start.signal.event.png -------------------------------------------------------------------------------- /en/images/bpmn.subprocess.eventSubprocess.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.subprocess.eventSubprocess.example.1.png -------------------------------------------------------------------------------- /en/images/bpmn.subprocess.eventSubprocess.example.2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.subprocess.eventSubprocess.example.2a.png -------------------------------------------------------------------------------- /en/images/bpmn.subprocess.eventSubprocess.example.2b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.subprocess.eventSubprocess.example.2b.png -------------------------------------------------------------------------------- /en/images/bpmn.subprocess.eventSubprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.subprocess.eventSubprocess.png -------------------------------------------------------------------------------- /en/images/bpmn.subprocess.with.boundary.timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.subprocess.with.boundary.timer.png -------------------------------------------------------------------------------- /en/images/bpmn.terminate.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.terminate.end.event.png -------------------------------------------------------------------------------- /en/images/bpmn.throw.compensation.example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.throw.compensation.example1.png -------------------------------------------------------------------------------- /en/images/bpmn.transaction.subprocess.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.transaction.subprocess.example.1.png -------------------------------------------------------------------------------- /en/images/bpmn.transaction.subprocess.example.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.transaction.subprocess.example.2.png -------------------------------------------------------------------------------- /en/images/bpmn.transaction.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.transaction.subprocess.png -------------------------------------------------------------------------------- /en/images/bpmn.uel-expression.on.seq.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.uel-expression.on.seq.flow.png -------------------------------------------------------------------------------- /en/images/bpmn.unbalanced.parallel.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.unbalanced.parallel.gateway.png -------------------------------------------------------------------------------- /en/images/bpmn.user.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.user.task.png -------------------------------------------------------------------------------- /en/images/bpmn.web.service.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.web.service.task.png -------------------------------------------------------------------------------- /en/images/bpmn.why.exclusive.jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/bpmn.why.exclusive.jobs.png -------------------------------------------------------------------------------- /en/images/custom.identityLinkType.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/custom.identityLinkType.example.png -------------------------------------------------------------------------------- /en/images/deployment.explorer.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/deployment.explorer.2.png -------------------------------------------------------------------------------- /en/images/deployment.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/deployment.explorer.png -------------------------------------------------------------------------------- /en/images/deployment.image.generation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/deployment.image.generation.png -------------------------------------------------------------------------------- /en/images/designer.add.update.site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.add.update.site.png -------------------------------------------------------------------------------- /en/images/designer.bpmn.file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.bpmn.file.png -------------------------------------------------------------------------------- /en/images/designer.create.activiti.project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.create.activiti.project.png -------------------------------------------------------------------------------- /en/images/designer.create.deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.create.deployment.png -------------------------------------------------------------------------------- /en/images/designer.deployment.dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.deployment.dir.png -------------------------------------------------------------------------------- /en/images/designer.embeddedprocess.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.embeddedprocess.canvas.png -------------------------------------------------------------------------------- /en/images/designer.listener.configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.listener.configuration.png -------------------------------------------------------------------------------- /en/images/designer.mailtask.property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.mailtask.property.png -------------------------------------------------------------------------------- /en/images/designer.model.eventsubprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.eventsubprocess.png -------------------------------------------------------------------------------- /en/images/designer.model.labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.labels.png -------------------------------------------------------------------------------- /en/images/designer.model.poolandlanes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.poolandlanes.png -------------------------------------------------------------------------------- /en/images/designer.model.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.process.png -------------------------------------------------------------------------------- /en/images/designer.model.quick.change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.quick.change.png -------------------------------------------------------------------------------- /en/images/designer.model.quick.new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.model.quick.new.png -------------------------------------------------------------------------------- /en/images/designer.multipage.editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.multipage.editor.png -------------------------------------------------------------------------------- /en/images/designer.open.importedfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.open.importedfile.png -------------------------------------------------------------------------------- /en/images/designer.palette.add.money.help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.palette.add.money.help.png -------------------------------------------------------------------------------- /en/images/designer.palette.add.money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.palette.add.money.png -------------------------------------------------------------------------------- /en/images/designer.palette.add.money.properties.required.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.palette.add.money.properties.required.png -------------------------------------------------------------------------------- /en/images/designer.palette.disable.all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.palette.disable.all.png -------------------------------------------------------------------------------- /en/images/designer.palette.disable.manual.and.script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.palette.disable.manual.and.script.png -------------------------------------------------------------------------------- /en/images/designer.preferences.userlibraries.activiti.empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.preferences.userlibraries.activiti.empty.png -------------------------------------------------------------------------------- /en/images/designer.preferences.userlibraries.activiti.moneytasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.preferences.userlibraries.activiti.moneytasks.png -------------------------------------------------------------------------------- /en/images/designer.preferences.userlibraries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.preferences.userlibraries.png -------------------------------------------------------------------------------- /en/images/designer.problem.view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.problem.view.png -------------------------------------------------------------------------------- /en/images/designer.project.maven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.project.maven.png -------------------------------------------------------------------------------- /en/images/designer.property.boolean.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.boolean.choice.png -------------------------------------------------------------------------------- /en/images/designer.property.combobox.choice.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.combobox.choice.invalid.png -------------------------------------------------------------------------------- /en/images/designer.property.combobox.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.combobox.choice.png -------------------------------------------------------------------------------- /en/images/designer.property.datagrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.datagrid.png -------------------------------------------------------------------------------- /en/images/designer.property.date.picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.date.picker.png -------------------------------------------------------------------------------- /en/images/designer.property.multiline.text.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.multiline.text.invalid.png -------------------------------------------------------------------------------- /en/images/designer.property.multiline.text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.multiline.text.png -------------------------------------------------------------------------------- /en/images/designer.property.period.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.period.invalid.png -------------------------------------------------------------------------------- /en/images/designer.property.period.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.period.png -------------------------------------------------------------------------------- /en/images/designer.property.radio.choice.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.radio.choice.invalid.png -------------------------------------------------------------------------------- /en/images/designer.property.radio.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.radio.choice.png -------------------------------------------------------------------------------- /en/images/designer.property.text.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.text.invalid.png -------------------------------------------------------------------------------- /en/images/designer.property.text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.property.text.png -------------------------------------------------------------------------------- /en/images/designer.sequence.condition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.sequence.condition.png -------------------------------------------------------------------------------- /en/images/designer.servicetask.property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.servicetask.property.png -------------------------------------------------------------------------------- /en/images/designer.timerboundary.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.timerboundary.canvas.png -------------------------------------------------------------------------------- /en/images/designer.unittest.generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.unittest.generate.png -------------------------------------------------------------------------------- /en/images/designer.userlibraries.project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.userlibraries.project.png -------------------------------------------------------------------------------- /en/images/designer.xml.contentassist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/designer.xml.contentassist.png -------------------------------------------------------------------------------- /en/images/eclipse.setup.xml.catalog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/eclipse.setup.xml.catalog.png -------------------------------------------------------------------------------- /en/images/eclipsesetup.import.existing.projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/eclipsesetup.import.existing.projects.png -------------------------------------------------------------------------------- /en/images/eclipsesetup.import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/eclipsesetup.import.png -------------------------------------------------------------------------------- /en/images/eclipsesetup.select.directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/eclipsesetup.select.directory.png -------------------------------------------------------------------------------- /en/images/email.task.result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/email.task.result.png -------------------------------------------------------------------------------- /en/images/explorer.case.overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.case.overview.png -------------------------------------------------------------------------------- /en/images/explorer.database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.database.png -------------------------------------------------------------------------------- /en/images/explorer.deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.deployments.png -------------------------------------------------------------------------------- /en/images/explorer.jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.jobs.png -------------------------------------------------------------------------------- /en/images/explorer.my.instances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.my.instances.png -------------------------------------------------------------------------------- /en/images/explorer.process.definition.image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.process.definition.image.png -------------------------------------------------------------------------------- /en/images/explorer.process.definitions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.process.definitions.png -------------------------------------------------------------------------------- /en/images/explorer.report.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.report.example.png -------------------------------------------------------------------------------- /en/images/explorer.reporting.explained.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.reporting.explained.png -------------------------------------------------------------------------------- /en/images/explorer.reporting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.reporting.png -------------------------------------------------------------------------------- /en/images/explorer.reporting.start.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.reporting.start.form.png -------------------------------------------------------------------------------- /en/images/explorer.tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.tabs.png -------------------------------------------------------------------------------- /en/images/explorer.tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.tasks.png -------------------------------------------------------------------------------- /en/images/explorer.upload.deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.upload.deployment.png -------------------------------------------------------------------------------- /en/images/explorer.users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/explorer.users.png -------------------------------------------------------------------------------- /en/images/financial.report.example.diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/financial.report.example.diagram.png -------------------------------------------------------------------------------- /en/images/forms.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/forms.explorer.png -------------------------------------------------------------------------------- /en/images/h2.console.login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/h2.console.login.png -------------------------------------------------------------------------------- /en/images/jmx.jconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/jmx.jconsole.png -------------------------------------------------------------------------------- /en/images/jpa.spring.example.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/jpa.spring.example.process.png -------------------------------------------------------------------------------- /en/images/kickstart.bpmn20.xml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.bpmn20.xml.png -------------------------------------------------------------------------------- /en/images/kickstart.capture.initiator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.capture.initiator.png -------------------------------------------------------------------------------- /en/images/kickstart.create.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.create.process.png -------------------------------------------------------------------------------- /en/images/kickstart.diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.diagram.png -------------------------------------------------------------------------------- /en/images/kickstart.enhance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.enhance.png -------------------------------------------------------------------------------- /en/images/kickstart.form.in.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.form.in.explorer.png -------------------------------------------------------------------------------- /en/images/kickstart.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.form.png -------------------------------------------------------------------------------- /en/images/kickstart.process.in.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.process.in.explorer.png -------------------------------------------------------------------------------- /en/images/kickstart.reference.form.properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/kickstart.reference.form.properties.png -------------------------------------------------------------------------------- /en/images/li-chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/li-chevron.png -------------------------------------------------------------------------------- /en/images/migration.ant.convert.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/migration.ant.convert.processes.png -------------------------------------------------------------------------------- /en/images/migration.code.overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/migration.code.overview.png -------------------------------------------------------------------------------- /en/images/migration.process.conversion.completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/migration.process.conversion.completed.png -------------------------------------------------------------------------------- /en/images/migration.processes.location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/migration.processes.location.png -------------------------------------------------------------------------------- /en/images/migration.zip.contents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/migration.zip.contents.png -------------------------------------------------------------------------------- /en/images/modeler.convert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.convert.png -------------------------------------------------------------------------------- /en/images/modeler.deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.deploy.png -------------------------------------------------------------------------------- /en/images/modeler.editor.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.editor.canvas.png -------------------------------------------------------------------------------- /en/images/modeler.example.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.example.process.png -------------------------------------------------------------------------------- /en/images/modeler.export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.export.png -------------------------------------------------------------------------------- /en/images/modeler.import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/modeler.import.png -------------------------------------------------------------------------------- /en/images/new.bpmn.procdef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/new.bpmn.procdef.png -------------------------------------------------------------------------------- /en/images/org.activiti.designer.integration-0.6.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/org.activiti.designer.integration-0.6.0.jar -------------------------------------------------------------------------------- /en/images/taskform.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/taskform.example.png -------------------------------------------------------------------------------- /en/images/taskform.vacation.request.adjust.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/taskform.vacation.request.adjust.form.png -------------------------------------------------------------------------------- /en/images/taskform.vacation.request.approve.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/taskform.vacation.request.approve.form.png -------------------------------------------------------------------------------- /en/images/taskform.vacation.request.management.group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/taskform.vacation.request.management.group.png -------------------------------------------------------------------------------- /en/images/taskform.vacation.request.model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/en/images/taskform.vacation.request.model.png -------------------------------------------------------------------------------- /en/index.adoc: -------------------------------------------------------------------------------- 1 | = Activiti User Guide 2 | v 5.21.0 3 | :doctype: book 4 | :toc: left 5 | :toclevels: 5 6 | :icons: font 7 | :numbered: 8 | :source-highlighter: pygments 9 | :pygments-css: class 10 | :pygments-linenums-mode: table 11 | :compat-mode: 12 | 13 | 14 | include::ch01-Introduction.adoc[] 15 | 16 | include::ch02-GettingStarted.adoc[] 17 | 18 | include::ch03-Configuration.adoc[] 19 | 20 | include::ch04-API.adoc[] 21 | 22 | include::ch05-Spring.adoc[] 23 | 24 | include::ch06-Deployment.adoc[] 25 | 26 | include::ch07a-BPMN-Introduction.adoc[] 27 | 28 | include::ch07b-BPMN-Constructs.adoc[] 29 | 30 | include::ch08-Forms.adoc[] 31 | 32 | include::ch09-JPA.adoc[] 33 | 34 | include::ch10-History.adoc[] 35 | 36 | include::ch11-Designer.adoc[] 37 | 38 | include::ch12-Explorer.adoc[] 39 | 40 | include::ch13-Modeler.adoc[] 41 | 42 | include::ch14-REST.adoc[] 43 | 44 | include::ch15-Cdi.adoc[] 45 | 46 | include::ch16-Ldap.adoc[] 47 | 48 | include::ch17-Advanced.adoc[] 49 | 50 | include::ch18-Simulation.adoc[] 51 | 52 | include::ch19-tooling.adoc[] 53 | -------------------------------------------------------------------------------- /zh_CN/README.txt: -------------------------------------------------------------------------------- 1 | Tooling 2 | ------- 3 | 4 | 5 | Install Asciidoctor: http://asciidoctor.org/ 6 | 7 | We're using the 'pygments' library for syntax highlighting. This needs to be installed: gem install pygments.rb 8 | 9 | 10 | 11 | Generate HTML docs 12 | ------------------ 13 | 14 | ./generate-html.sh 15 | 16 | 17 | 18 | Advanced 19 | -------- 20 | 21 | Themes in asciidoc are managed by the 'stylesheet factory'. 22 | See themes in action: http://themes.asciidoctor.org/preview/ 23 | 24 | Clone https://github.com/asciidoctor/asciidoctor-stylesheet-factory and follow instructions there to build the themes. 25 | The resulting css and images are copied to the docs folder. -------------------------------------------------------------------------------- /zh_CN/ch01-Introduction.adoc: -------------------------------------------------------------------------------- 1 | 2 | == 简介 3 | 4 | [[license]] 5 | 6 | === 协议 7 | 8 | Activiti使用 link:$$http://www.apache.org/licenses/LICENSE-2.0.html$$[the Apache V2 license] 协议开源。 9 | Activiti Modeler(Web设计器)使用了另一个开源协议 link:$$http://opensource.org/licenses/LGPL-2.1$$[the LGPL 2.1 license] 。 10 | 11 | [[download]] 12 | 13 | === 下载 14 | 15 | link:$$http://activiti.org/download.html$$[http://activiti.org/download.html] 16 | 17 | [[sources]] 18 | 19 | === 源码 20 | 21 | Activiti的发布包里包含了大部分源码,这些源码是以jar压缩文件提供的。Activiti的源码可以通过以下链接获得: 22 | link:$$https://github.com/Activiti/Activiti$$[https://github.com/Activiti/Activiti] 23 | 24 | 25 | [[required.software]] 26 | 27 | === 必要的软件 28 | 29 | ==== JDK 6+ 30 | 31 | Activiti需要JDK 6或以上版本。访问 link:$$http://www.oracle.com/technetwork/java/javase/downloads/index.html$$[Oracle Java SE downloads] 点击“下载JDK”按钮。这个页面上有安装文档。安装完成后,执行 +java -version+ 校验安装是否成功。能看到JDK的版本信息就说明安装成功了。 32 | 33 | 34 | ==== Eclipse Indigo 和 Juno 35 | 36 | 到 link:$$http://www.eclipse.org/downloads/$$[the Eclipse 下载页面]选择对应的Eclipse版本下载。把下载的文件解压, 37 | 然后执行+eclipse+目录下的eclipse文件。手册后续有专门一章 <>。 38 | 39 | 40 | [[reporting.problems]] 41 | 42 | === 反馈问题 43 | 44 | 每一个自重的开发者都应该先看看这个 link:$$http://www.catb.org/~esr/faqs/smart-questions.html$$[提问的智慧] 。 45 | 46 | 47 | 看完提问的智慧,你可以在 link:$$http://forums.activiti.org/en/viewforum.php?f=3$$[用户论坛] 提问和评论,也可以在link:$$https://activiti.atlassian.net$$[我们的 JIRA 问题追踪系统]创建问题。 48 | 49 | [NOTE] 50 | ==== 51 | 52 | 虽然Activiti托管在GitHub上,但是不建议使用GitHub的问题追踪系统。如果你想报告问题,不要创建GitHub问题(issue),应该使用link:$$https://activiti.atlassian.net$$[我们的JIRA]。 53 | 54 | ==== 55 | 56 | [[experimental]] 57 | 58 | === 实验性功能 59 | 60 | 标记*[EXPERIMENTAL]*的章节介绍的功能 61 | 还不够稳定。 62 | 63 | 64 | +.impl.+包下的类都是内部实现类,后续可能发生各种变化。但是,如果是在用户手册中作为配置参数介绍的类,它们是被官方支持的,可以认为是稳定的。 65 | 66 | 67 | [[internal]] 68 | 69 | === 内部实现类 70 | 71 | 在jar文件中,所有包名中包含+.impl.+的类(比如,++org.activiti.engine.impl.pvm.delegate++)都是实现类,这些类都是内部类。这些类和接口都不会保证稳定。(不同版本之间可能会有变化。谨慎使用。) 72 | -------------------------------------------------------------------------------- /zh_CN/ch02-GettingStarted.adoc: -------------------------------------------------------------------------------- 1 | 2 | == 开始 3 | 4 | [[demo.setup.one.minute.version]] 5 | 6 | === 一分钟入门 7 | 8 | 9 | 从link:$$http://www.activiti.org$$[Activiti website]下载Activiti Explorer的WAR文件后,按照以下步骤使用默认设置运行demo。你需要已经安装link:$$http://java.sun.com/javase/downloads/index.jsp$$[Java runtime]与link:$$http://tomcat.apache.org/download-70.cgi$$[Apache Tomcat](事实上,鉴于我们只使用servlet功能,任何web容器都可以运行。但我们主要在Tomcat上进行测试)。 10 | 11 | * 将下载的activiti-explorer.war复制到Tomcat的webapps文件夹下。 12 | * 运行Tomcat的bin文件夹下的startup.bat或者startup.sh脚本启动Tomcat。 13 | * Tomcat启动后,打开浏览器访问link:$$http://localhost:8080/activiti-explorer$$[http://localhost:8080/activiti-explorer]。使用kermit/kermit登录。 14 | 15 | 16 | 17 | 就是这样!Activiti Explorer应用默认使用H2内存数据库。如果你想使用其他数据库配置,请阅读<>。 18 | 19 | 20 | [[activiti.setup]] 21 | 22 | 23 | === Activiti安装 24 | 25 | 要安装Activiti, 你需要已经安装link:$$http://java.sun.com/javase/downloads/index.jsp$$[Java runtime]与link:$$http://tomcat.apache.org/download-70.cgi$$[Apache Tomcat]。同时确认 _$$JAVA_HOME$$_ 环境变量已经设置正确。该环境变量的设置方法取决于你的操作系统。 26 | 27 | 要运行Activiti Explorer与REST web应用,将你从Activiti下载的WAR文件,复制到Tomcat安装目录下的 +webapps+ 文件夹中。Explorer 应用默认使用内存数据库,示例流程、用户与组。 28 | 29 | 30 | 下表列出demo用户: 31 | 32 | [options="header"] 33 | |=============== 34 | |用户账号|密码|安全角色 35 | |kermit|kermit|admin 36 | |gonzo|gonzo|manager 37 | |fozzie|fozzie|user 38 | |=============== 39 | 40 | 41 | 现在你可以访问如下web应用: 42 | 43 | [options="header"] 44 | |=============== 45 | |Webapp名称|URL|说明 46 | |Activiti Explorer|link:$$http://localhost:8080/activiti-explorer$$[http://localhost:8080/activiti-explorer]|流程引擎的用户操作台。使用这个工具来启动新流程、分配任务、查看与接收任务等。这个工具同时可以管理Activiti引擎。 47 | |=============== 48 | 49 | 请注意Activiti Explorer示例配置只是用尽可能简单快捷的方式展现Activiti的能力与功能。这*并不*意味着只有这一种使用Activiti的方式。Activiti只是一个jar,它可以被嵌入到任何Java环境中:swing、Tomcat、JBoss、 WebSphere,等等。你也可以将Activiti作为典型的、独立运行的的BPM服务器。任何在Java里可以做的事情,都可以在Activiti中做! 50 | 51 | 52 | [[activiti.setup.database]] 53 | 54 | 55 | === Activiti数据库配置 56 | 57 | 就像在一分钟示例配置中介绍的,Activiti Explorer默认运行在H2内存数据库上。要让Activiti Explorer使用独立运行的H2数据库或其他数据库,需要修改Activiti Explorer web应用下,WEB-INF/classes目录中的db.properties。 58 | 59 | 60 | 另外,请注意Activiti Explorer默认自动生成演示用户、组、流程定义与模型。要禁用这些设置,需要修改WEB-INF/classes目录下的engine.properties文件。要完全禁用示例设置,可以将所有设置项设为false。你也可以单独禁用或启用其中的某些设置。 61 | 62 | [source, properties, linenums] 63 | ---- 64 | # demo data properties 65 | create.demo.users=true 66 | create.demo.definitions=true 67 | create.demo.models=true 68 | create.demo.reports=true 69 | ---- 70 | 71 | [[getting.started.including.libs]] 72 | 73 | 74 | === 引入Activiti jar与依赖 75 | 76 | 77 | 我们建议使用link:$$http://maven.apache.org/$$[Maven](或者link:$$http://ant.apache.org/ivy/$$[Ivy])来引入Activiti的jar与依赖库,因为它简化了我们之间的依赖管理。参考link:$$http://www.activiti.org/community.html#maven.repository$$[]中的介绍来将必要的jar引入你的项目。 78 | 79 | 80 | 如果不想使用Maven,你也可以自行将jar引入你的项目。从Activiti下载的zip包中的 +libs+ 文件夹,包含所有Activiti的jar(包括源码jar)。依赖并没有通过这种方式发布。Activiti引擎的依赖列表如下(使用++mvn dependency:tree++生成): 81 | 82 | ---- 83 | org.activiti:activiti-engine:jar:5.17.0 84 | +- org.activiti:activiti-bpmn-converter:jar:5.17.0:compile 85 | | \- org.activiti:activiti-bpmn-model:jar:5.17.0:compile 86 | | +- com.fasterxml.jackson.core:jackson-core:jar:2.2.3:compile 87 | | \- com.fasterxml.jackson.core:jackson-databind:jar:2.2.3:compile 88 | | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.3:compile 89 | +- org.activiti:activiti-process-validation:jar:5.17.0:compile 90 | +- org.activiti:activiti-image-generator:jar:5.17.0:compile 91 | +- org.apache.commons:commons-email:jar:1.2:compile 92 | | +- javax.mail:mail:jar:1.4.1:compile 93 | | \- javax.activation:activation:jar:1.1:compile 94 | +- org.apache.commons:commons-lang3:jar:3.3.2:compile 95 | +- org.mybatis:mybatis:jar:3.2.5:compile 96 | +- org.springframework:spring-beans:jar:4.0.6.RELEASE:compile 97 | | \- org.springframework:spring-core:jar:4.0.6.RELEASE:compile 98 | +- joda-time:joda-time:jar:2.6:compile 99 | +- org.slf4j:slf4j-api:jar:1.7.6:compile 100 | +- org.slf4j:jcl-over-slf4j:jar:1.7.6:compile 101 | ---- 102 | 103 | 注意:只有使用了<>才必须引入邮件依赖jar。 104 | 105 | 所有依赖可以在link:$$https://github.com/Activiti/Activiti$$[Activiti source code]的模块中使用++mvn dependency:copy-dependencies++下载。 106 | 107 | 108 | [[getting.started.next.steps]] 109 | 110 | === 下一步 111 | 112 | 使用<> web应用是一个熟悉Activiti概念与功能的好办法。然而,Activiti的主要目的是用来为你自己的应用添加强大的BPM与工作流功能。下面的章节会帮助你熟悉如何在你的环境中编程使用Activiti: 113 | 114 | * <>会教你如何设置Activiti,如何获得++ProcessEngine++类的实例,他是所有Activiti引擎功能的中心入口。 115 | * <>会带你了解构成Activiti API的服务。这些服务用简便但强大的方式提供了Activiti引擎的功能,可以使用在任何Java环境下。 116 | * 对深入了解Activiti引擎中流程的编写格式,BPMN 2.0,感兴趣吗?请继续浏览<>。 117 | -------------------------------------------------------------------------------- /zh_CN/ch06-Deployment.adoc: -------------------------------------------------------------------------------- 1 | [[chDeployment]] 2 | 3 | == 部署 Deployment 4 | 5 | === 业务存档 Business archives 6 | 7 | 要部署流程,需要将它们包装在业务存档里。业务存档是Activiti引擎的部署单元,也就是一个zip文件。可以包含BPMN 2.0流程,任务表单,规则,与其他类型的文件。总的来说,业务存档包含一组已命名的资源。 8 | 9 | 10 | 当部署业务存档时,会扫描具有++.bpmn20.xml++或++.bpmn++扩展名的BPMN文件。每一个这种文件都会被解析,并可以包含多个流程定义。 11 | 12 | [NOTE] 13 | ==== 14 | 业务存档中的Java类**不会添加至classpath**。业务存档中,所有流程定义使用的自定义类(例如Java服务任务service tasks或者事件监听器实现event listener implementations),都应该放在用于运行流程的activiti引擎的classpath下。 15 | ==== 16 | 17 | ==== 编程方式部署 Deploying programmatically 18 | 19 | 从zip文件部署业务存档,可以这样做: 20 | 21 | [source,java,linenums] 22 | ---- 23 | String barFileName = "path/to/process-one.bar"; 24 | ZipInputStream inputStream = new ZipInputStream(new FileInputStream(barFileName)); 25 | 26 | repositoryService.createDeployment() 27 | .name("process-one.bar") 28 | .addZipInputStream(inputStream) 29 | .deploy(); 30 | 31 | ---- 32 | 33 | 也可以从不同资源构建部署。查看javadoc获取更多信息。 34 | 35 | [[deploymentWithExplorer]] 36 | 37 | 38 | ==== 使用Activiti Exploreer部署 (Deploying with Activiti Explorer) 39 | 40 | Activiti Explorer web应用,可以通过web应用用户界面,上传bar文件(或者单独的++bpmn20.xml++文件)。选择__Management__页签并点击__Deployment__: 41 | 42 | image::images/deployment.explorer.png[align="center"] 43 | 44 | 会弹出窗口,让你选择电脑中的文件,或者(如果你的浏览器支持)可以直接拖放文件到指定区域。 45 | 46 | image::images/deployment.explorer.2.png[align="center"] 47 | 48 | 49 | 50 | === 外部资源 External resources 51 | 52 | 流程定义保存在Activiti数据库中。这些流程定义,在使用服务任务、执行监听器或执行Activiti配置文件中定义的Spring bean时,可以引用委托类。这些类与Spring配置文件,需要对所有可能运行这个流程定义的流程引擎都可用。 53 | 54 | ==== Java类 Java classes 55 | 56 | 所有流程中用到的自定义类(例如服务任务、事件监听器、任务监听器等中,用到的JavaDelegate),在流程启动时,都需要存在于引擎的classpath中。 57 | 58 | 然而在业务存档部署时,classpath中不是必须要有这些类。这意味着使用Ant部署新业务存档时,你的代理类不必须放在classpath中。 59 | 60 | 当使用演示配置,且希望添加自定义类时,需要在activiti-explorer或activiti-rest web应用库中,添加包含有你的自定义类的jar。别忘了也要添加你的自定义类的依赖(若有)。或者,也可以将你的依赖添加到Tomcat的库文件夹,++${tomcat.home}/lib++中。 61 | 62 | 63 | ==== 在流程中使用Spring bean (Using Spring beans from a process) 64 | 65 | 当在表达式或脚本中使用Spring bean时,执行该流程定义的引擎需要可以使用这些bean。如果你自行构建web应用,并按照<>的介绍,在上下文中配置流程引擎,就可以直接使用。但也请牢记在心,如果使用Activiti rest web应用,就需要更新它的上下文配置。用包含你的Spring上下文配置的++activiti-context.xml++文件,替换++activiti-rest/lib/activiti-cfg.jar++ jar文件中的++activiti.cfg.xml++。 66 | 67 | ==== 创建单独应用 Creating a single app 68 | 69 | 如果不想费心保证所有流程引擎都在classpath中含有所有需要的代理类,以及保证它们都使用了正确的Spring配置,也可以考虑将Activiti rest web应用嵌入你自己的web应用,也就是说只有一个单独的++ProcessEngine++。 70 | 71 | 72 | [[versioningOfProcessDefinitions]] 73 | 74 | 75 | === 流程定义的版本 Versioning of process definitions 76 | 77 | BPMN并没有版本的概念。这其实很好,因为可执行的BPMN流程文件很可能已经作为你的开发项目的一部分,保存在版本管理系统仓库中了(例如Subversion,Git,或者Mercurial)。流程定义的版本在部署时创建。在部署时,Activiti会在保存至Activiti数据库前,为++ProcessDefinition++指定版本。 78 | 79 | 80 | 对于业务存档中的每个流程定义,下列步骤都会执行,以初始化++key++,++version++,++name++与++id++参数: 81 | 82 | * XML文件中的流程定义++id++属性作为流程定义的++key++参数。 83 | * XML文件中的流程定义++name++属性作为流程定义的++name++参数。如果未给定++name++属性,会使用id作为name。 84 | * 当每个key的流程第一次部署时,指定版本为1。对其后所有使用相同key的流程定义,部署时版本会在该key当前已部署的最高版本号基础上加1。key参数用于区分流程定义。 85 | * id参数设置为{processDefinitionKey}:{processDefinitionVersion}:{generated-id},其中++generated-id++是一个唯一数字,用以保证在集群环境下,流程定义缓存中,流程id的唯一性。 86 | 87 | 以下面的流程为例 88 | 89 | [source,xml,linenums] 90 | ---- 91 | 92 | 93 | ... 94 | ---- 95 | 96 | 当部署这个流程定义时,数据库中的流程定义会是这个样子: 97 | 98 | [options="header"] 99 | |=============== 100 | |id|key|name|version 101 | |myProcess:1:676|myProcess|My important process|1 102 | 103 | |=============== 104 | 105 | 106 | 如果我们现在部署同一个流程的更新版本(例如改变部分用户任务),且保持流程定义的++id++不变,那么流程定义表中会包含下面的记录: 107 | 108 | [options="header"] 109 | |=============== 110 | |id|key|name|version 111 | |myProcess:1:676|myProcess|My important process|1 112 | |myProcess:2:870|myProcess|My important process|2 113 | 114 | |=============== 115 | 116 | 当调用++runtimeService.startProcessInstanceByKey("myProcess")++时,会使用版本++2++的流程定义,因为这是这个流程定义的最新版本。 117 | 118 | 如果再创建第二个流程,如下定义并部署至Activiti,表中会增加第三行。 119 | 120 | [source,xml,linenums] 121 | ---- 122 | 123 | 124 | ... 125 | ---- 126 | 127 | 表将显示类似: 128 | 129 | [options="header"] 130 | |=============== 131 | |id|key|name|version 132 | |myProcess:1:676|myProcess|My important process|1 133 | |myProcess:2:870|myProcess|My important process|2 134 | |myNewProcess:1:1033|myNewProcess|My important process|1 135 | 136 | |=============== 137 | 138 | 请注意新流程的key与第一个流程的不同。即使name是相同的(我们可能本应该也改变它),Activiti也只用++id++属性来区分流程。因此新的流程部署时版本为1. 139 | 140 | 141 | [[providingProcessDiagram]] 142 | 143 | 144 | === 提供流程图 Providing a process diagram 145 | 146 | 部署可以添加流程图图片。这个图片将存储在Activiti数据库中,并可以使用API访问。这个图片可以用在Activiti Explorer中,使流程形象化。 147 | 148 | 如果在classpath中,有一个++org/activiti/expenseProcess.bpmn20.xml++流程,key为'expense'。则流程图图片会使用下列命名约定(按此顺序): 149 | 150 | * 如果部署中有图片资源,并且它的名字为BPMN 2.0 XML文件名,加上流程key以及图片后缀,则使用这个图片。在我们的例子中,就是++org/activiti/expenseProcess.expense.png++(或者.jpg/gif)。如果一个BPMN 2.0 XML文件中有多个流程定义,这个方式就很合理,因为每一个流程图的文件名中都有流程key。 151 | * 如果没有这种图片,就会寻找部署中匹配BPMN 2.0 XML文件名的图片资源。在我们的例子中,就是++org/activiti/expenseProcess.png++。请注意这就意味着同一个BPMN 2.0文件中的**每一个流程定义**,都会使用同一个流程图图片。很显然,如果每个BPMN 2.0 XML文件中只有一个流程定义,就没有问题。 152 | 153 | 154 | 用编程方式部署的例子: 155 | 156 | [source,java,linenums] 157 | ---- 158 | 159 | repositoryService.createDeployment() 160 | .name("expense-process.bar") 161 | .addClasspathResource("org/activiti/expenseProcess.bpmn20.xml") 162 | .addClasspathResource("org/activiti/expenseProcess.png") 163 | .deploy(); 164 | ---- 165 | 166 | 167 | 图片资源可用下面的API获取: 168 | 169 | [source,java,linenums] 170 | ---- 171 | ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() 172 | .processDefinitionKey("expense") 173 | .singleResult(); 174 | 175 | String diagramResourceName = processDefinition.getDiagramResourceName(); 176 | InputStream imageStream = repositoryService.getResourceAsStream( 177 | processDefinition.getDeploymentId(), diagramResourceName); 178 | ---- 179 | 180 | 181 | [[generatingProcessDiagram]] 182 | 183 | 184 | === 生成流程图 Generating a process diagram 185 | 186 | 如果部署时没有按<>介绍的提供图片,且流程定义中包含必要的“图形交换(diagram interchange)”信息,Activiti引擎会生成流程图。 187 | 188 | 可以用与部署时<>完全相同的方法获取图片资源。 189 | 190 | image::images/deployment.image.generation.png[align="center"] 191 | 192 | 如果由于某种原因,不需要或不希望在部署时生成流程图,可以在流程引擎配置中设置++isCreateDiagramOnDeploy++参数: 193 | 194 | [source,xml,linenums] 195 | ---- 196 | 197 | ---- 198 | 199 | 这样就不会生成流程图了。 200 | 201 | 202 | [[deploymentCategory]] 203 | 204 | 205 | === 类别 Category 206 | 207 | 部署与流程定义都可以定义类别。流程定义的类别使用BPMN文件中的++++设置。 208 | 209 | 210 | 部署的类别可用API如此设定: 211 | 212 | [source,java,linenums] 213 | ---- 214 | repositoryService 215 | .createDeployment() 216 | .category("yourCategory") 217 | ... 218 | .deploy(); 219 | ---- 220 | -------------------------------------------------------------------------------- /zh_CN/ch08-Forms.adoc: -------------------------------------------------------------------------------- 1 | [[forms]] 2 | 3 | == 表单 Forms 4 | 5 | Activiti提供了一个方便灵活的方法,为你的业务流程的人工步骤添加表单。我们支持两种使用表单的方式:表单参数的内置表单渲染,以及外部表单渲染。 6 | 7 | 8 | [[formProperties]] 9 | 10 | 11 | === 表单参数 Form properties 12 | 13 | 所有与业务流程相关的信息,要么包含在流程变量里,要么可以通过流程变量引用。Activiti支持将复杂的Java对象,以++Serializable++对象的方式存储为流程变量,而JPA实体或者整个XML文档将存储为++String++。 14 | 15 | 启动流程与完成用户任务是人参与流程的地方。与人交流需要使用某些用户界面技术渲染表单。为了简化多用户界面技术,流程定义可以包含转换逻辑,将流程变量中的复杂的Java对象转换为**'参数'**的++Map++。 16 | 17 | 然后任何用户界面技术,都可以使用暴露这些参数信息的Activiti API方法,在这些参数的基础上构建表单。这些参数可以提供对流程变量的专门(也更受限)视图。用于显示表单的参数是**FormData**的返回值。例如 18 | 19 | [source,java,linenums] 20 | ---- 21 | StartFormData FormService.getStartFormData(String processDefinitionId) 22 | ---- 23 | 24 | 或者 25 | 26 | [source,java,linenums] 27 | ---- 28 | TaskFormdata FormService.getTaskFormData(String taskId) 29 | ---- 30 | 31 | 默认情况下,内建表单引擎能够“看到”参数与流程变量。因此如果任务表单参数1对1匹配流程变量,则不需要专门声明。例如,对于下列声明: 32 | 33 | [source,xml,linenums] 34 | ---- 35 | 36 | ---- 37 | 38 | 当执行到达startEvent时,所有流程变量都可用。然而 39 | 40 | [source,java,linenums] 41 | ---- 42 | formService.getStartFormData(String processDefinitionId).getFormProperties() 43 | ---- 44 | 45 | 将为空,因为并未指定映射。 46 | 47 | 在上面的例子中,所有提交的参数将被存储为流程变量。这意味着简单地在表单中添加输入框,就可以存储新变量。 48 | 49 | 参数从流程变量衍生出来,但不是必须存储为流程变量。例如,流程变量可以是类地址的JPA实体。而用户界面技术使用的++StreetName++表单参数,可以通过++#{address.street}++表达式连接。 50 | 51 | 类似的,表单中用户需要提交的参数可以存储为流程变量,也可以作为某个流程变量的嵌套参数,使用UEL值表达式,如++#{address.street}++。 52 | 53 | 提交的参数的默认行为,是存储为流程变量,除非使用++formProperty++声明指定。 54 | 55 | 流程也可以在表单参数与流程变量之间进行转换。 56 | 57 | 例如: 58 | 59 | [source,xml,linenums] 60 | ---- 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | ---- 70 | 71 | * ++room++表单参数将作为String,映射为++room++流程变量 72 | * ++duration++表单参数将作为java.lang.Long,映射为++duration++流程变量 73 | * ++speaker++表单参数将被映射为++SpeakerName++流程变量。将只在TaskFormData对象中可用。若提交了speaker参数,将抛出ActivitiException。类似的,使用++readable="false"++属性,可以将参数从FormData中排除,但仍然可以在提交时处理。 74 | * ++street++表单参数将作为String,映射为++address++流程变量的Java bean参数++street++。如果在提交时没有提供这个字段,required="true"将抛出异常。 75 | 76 | 也可以提供类型元数据,作为++StartFormData FormService.getStartFormData(String processDefinitionId)++与++TaskFormdata FormService.getTaskFormData(String taskId)++方法返回的FormData的一部分 77 | 78 | 我们支持下列表单参数类型: 79 | 80 | * +string+ (org.activiti.engine.impl.form.StringFormType 81 | * +long+ (org.activiti.engine.impl.form.LongFormType) 82 | * +enum+ (org.activiti.engine.impl.form.EnumFormType) 83 | * +date+ (org.activiti.engine.impl.form.DateFormType) 84 | * +boolean+ (org.activiti.engine.impl.form.BooleanFormType) 85 | 86 | 对每个声明的表单参数,下列++FormProperty++信息都可以通过++List formService.getStartFormData(String processDefinitionId).getFormProperties()++与++List formService.getTaskFormData(String taskId).getFormProperties()++方法获取 87 | 88 | 89 | [source,java,linenums] 90 | ---- 91 | public interface FormProperty { 92 | /** 93 | * 在{@link FormService#submitStartFormData(String, java.util.Map)} 94 | * 或{@link FormService#submitTaskFormData(String, java.util.Map)} 95 | * 中提交参数时使用的key 96 | * 97 | * the key used to submit the property in {@link FormService#submitStartFormData(String, java.util.Map)} 98 | * or {@link FormService#submitTaskFormData(String, java.util.Map)} */ 99 | String getId(); 100 | 101 | /** 显示标签 the display label */ 102 | String getName(); 103 | 104 | /** 在本接口中定义的类型,例如{@link #TYPE_STRING} 105 | * one of the types defined in this interface like e.g. {@link #TYPE_STRING} */ 106 | FormType getType(); 107 | 108 | /** 这个参数需要显示的可选项 109 | * optional value that should be used to display in this property */ 110 | String getValue(); 111 | 112 | /** 这个参数是否需要读取用于在表单中显示,并可通过 113 | * {@link FormService#getStartFormData(String)} 114 | * 与{@link FormService#getTaskFormData(String)} 115 | * 方法访问。 116 | * 117 | * is this property read to be displayed in the form and made accessible with the methods 118 | * {@link FormService#getStartFormData(String)} and {@link FormService#getTaskFormData(String)}. */ 119 | boolean isReadable(); 120 | 121 | /** 用户提交表单时是否可以包含这个参数? is this property expected when a user submits the form? */ 122 | boolean isWritable(); 123 | 124 | /** 输入框中是否必填这个参数 is this property a required input field */ 125 | boolean isRequired(); 126 | } 127 | ---- 128 | 129 | 例如: 130 | 131 | [source,xml,linenums] 132 | ---- 133 | 134 | 135 | 139 | 140 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | ---- 154 | 155 | 所有这些信息都可以通过API获取。类型名可以通过++formProperty.getType().getName()++获取,日期格式可以通过++formProperty.getType().getInformation("datePattern")++获取,枚举值可以通过++formProperty.getType().getInformation("values")++获取。 156 | 157 | Activiti Explorer支持表单参数,并会按照表单定义渲染表单。下面的XML代码片段 158 | 159 | [source,xml,linenums] 160 | ---- 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | ---- 170 | 171 | 当使用Activiti Explorer时,将会渲染为流程启动表单 172 | 173 | image::images/forms.explorer.png[align="center"] 174 | 175 | 176 | 177 | [[externalFormRendering]] 178 | 179 | 180 | === 外部表单渲染 External form rendering 181 | 182 | API也支持使用在Activiti引擎之外渲染的,你自己的任务表单。下面的步骤解释了在自行渲染任务表单时,可以使用的钩子。 183 | 184 | 本质上,渲染表单所需的所有数据,都组装在这两个方法之一中:++StartFormData FormService.getStartFormData(String processDefinitionId)++与++TaskFormdata FormService.getTaskFormData(String taskId)++。 185 | 186 | 提交表单参数可以通过++ProcessInstance FormService.submitStartFormData(String processDefinitionId, Map properties)++与++void FormService.submitTaskFormData(String taskId, Map properties)++完成。 187 | 188 | 要了解表单参数如何映射为流程变量,查看<> 189 | 190 | 可以将任何表单模板资源,放在部署的业务存档中(如果希望将它们按版本与流程存储在一起)。作为部署中的资源,可以使用++String ProcessDefinition.getDeploymentId()++与++InputStream RepositoryService.getResourceAsStream(String deploymentId, String resourceName);+获取。这就是你的模板定义文件,可以用于在你的应用中渲染/显示表单。 191 | 192 | 除了任务表单,也可以为任何目的,使用访问部署资源的能力。 193 | 194 | ++ 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | ---- 48 | 49 | 下面的示例配置提供了我们自己定义的++EntityManagerFactory++(在这个例子里,是一个open-jpa实体管理器)。请注意这段代码只包含了与本例相关的bean,省略了其他的。带有open-jpa实体管理器的完整的可用示例,可以在activiti-spring-examples (++/activiti-spring/src/test/java/org/activiti/spring/test/jpa/JPASpringTest.java++)中找到。 50 | 51 | [source,xml,linenums] 52 | ---- 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | ---- 72 | 73 | 也可以在编程构建引擎时,使用相同的配置,例如: 74 | 75 | [source,java,linenums] 76 | ---- 77 | ProcessEngine processEngine = ProcessEngineConfiguration 78 | .createProcessEngineConfigurationFromResourceDefault() 79 | .setJpaPersistenceUnitName("activiti-pu") 80 | .buildProcessEngine(); 81 | ---- 82 | 83 | 配置参数: 84 | 85 | * ++jpaPersistenceUnitName++:要使用的持久化单元的名字。(要确保该持久化单元在classpath中可用。根据规范,默认位置为++/META-INF/persistence.xml++)。++jpaEntityManagerFactory++与++jpaPersistenceUnitName++二选一。 86 | * ++jpaEntityManagerFactory++:对实现了++javax.persistence.EntityManagerFactory++的bean的引用,将用于载入实体,并刷入更新。__jpaEntityManagerFactory__与__jpaPersistenceUnitName__二选一。 87 | * ++jpaHandleTransaction++:标示引擎是否需要启动事务,并在使用__EntityManager__实例后提交/回滚。当使用__Java Transaction API (JTA)__时,设置为false。 88 | * ++jpaCloseEntityManager++:标示引擎是否需要关闭其从++EntityManagerFactory++获取的++EntityManager++实例。当__EntityManager__由容器管理时(例如,使用扩展持久化上下文 Extended Persistence Context时,不支持将范围限制为单一事务)设置为false。 89 | 90 | === 使用 Usage 91 | 92 | ==== 简单示例 Simple Example 93 | 94 | 可以在Activiti源代码的JPAVariableTest中找到使用JPA变量的例子。我们会一步一步解释++JPAVariableTest.testUpdateJPAEntityValues++。 95 | 96 | 首先,基于++META-INF/persistence.xml++,为我们的持久化单元创建一个__EntityManagerFactory__。它包含了需要包含在持久化单元内的类,以及一些厂商特定配置。 97 | 98 | 在这个测试里我们使用简单实体,它有一个id以及一个++String++值参数,用于持久化。在运行测试前,先创建一个实体并保存。 99 | 100 | [source,java,linenums] 101 | ---- 102 | @Entity(name = "JPA_ENTITY_FIELD") 103 | public class FieldAccessJPAEntity { 104 | 105 | @Id 106 | @Column(name = "ID_") 107 | private Long id; 108 | 109 | private String value; 110 | 111 | public FieldAccessJPAEntity() { 112 | // JPA需要的空构造方法 Empty constructor needed for JPA 113 | } 114 | 115 | public Long getId() { 116 | return id; 117 | } 118 | 119 | public void setId(Long id) { 120 | this.id = id; 121 | } 122 | 123 | public String getValue() { 124 | return value; 125 | } 126 | 127 | public void setValue(String value) { 128 | this.value = value; 129 | } 130 | } 131 | ---- 132 | 133 | 启动一个新的流程实例,将这个实体加入变量。与其他变量一样,它们都会在引擎中持久化存储。当下一次请求这个变量时,将会根据存储的类与Id,从++EntityManager++载入。 134 | 135 | [source,java,linenums] 136 | ---- 137 | Map variables = new HashMap(); 138 | variables.put("entityToUpdate", entityToUpdate); 139 | 140 | ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("UpdateJPAValuesProcess", variables); 141 | ---- 142 | 143 | 我们流程定义的第一个节点,是一个++服务任务++,将调用++entityToUpdate++上的++setValue++方法。它将解析为我们之前启动流程实例时设置的JPA变量,并使用当前引擎的上下文关联的++EntityManager+载入。 144 | 145 | [source,xml,linenums] 146 | ---- 147 | 149 | ---- 150 | 151 | 当服务任务完成时,流程实例在流程定义中定义的用户任务处等待,让我们可以查看流程实例。在这时,++EntityManager++已经刷入,对实体的修改也已经存入数据库。当我们使用++entityToUpdate++变量的值时,将重新载入,我们会得到++value++参数设置为++updatedValue++的实体。 152 | 153 | [source,java,linenums] 154 | ---- 155 | // 流程'UpdateJPAValuesProcess'中的服务任务应已设置了entityToUpdate的value。 156 | // Servicetask in process 'UpdateJPAValuesProcess' should have set value on entityToUpdate. 157 | Object updatedEntity = runtimeService.getVariable(processInstance.getId(), "entityToUpdate"); 158 | assertTrue(updatedEntity instanceof FieldAccessJPAEntity); 159 | assertEquals("updatedValue", ((FieldAccessJPAEntity)updatedEntity).getValue()); 160 | ---- 161 | 162 | ==== 查询JPA流程变量 Query JPA process variables 163 | 164 | 可以查询以特定JPA实体作为变量值的++流程实例++与++执行++。**请注意对于++ProcessInstanceQuery++与++ExecutionQuery++的JPA实体查询,只支持++variableValueEquals(name, entity)++**。而++variableValueNotEquals++、++variableValueGreaterThan++、++variableValueGreaterThanOrEqual++、++variableValueLessThan++与++variableValueLessThanOrEqual++方法都不支持,并会在值传递为JPA实体时,抛出++ActivitiException++。 165 | 166 | [source,java,linenums] 167 | ---- 168 | ProcessInstance result = runtimeService.createProcessInstanceQuery() 169 | .variableValueEquals("entityToQuery", entityToQuery).singleResult(); 170 | ---- 171 | 172 | ==== 使用Spring bean与JPA的高级示例 Advanced example using Spring beans and JPA 173 | 174 | 可以在++activiti-spring-examples++中找到更高级的例子,++JPASpringTest++。它描述了下属简单用例: 175 | 176 | * 一个已有的Spring bean,使用已有的JPA实体,用于存储贷款申请。 177 | * 使用Activiti,可以通过该bean获取该实体,并将其用作流程中的变量。流程定义如下步骤: 178 | ** 创建新的LoanRequest(贷款申请)的服务任务,使用已有的++LoanRequestBean++,并使用启动流程时接收的变量(例如,从启动表单)。创建的实体作为变量存储,使用++activiti:resultVariable++将表达式结果存储为变量。 179 | ** 让经理可以审核申请并批准/驳回的用户任务,该选择将会存储为boolean变量++approvedByManager++。 180 | ** 更新贷款申请实体的服务任务,以便其可以与流程同步。 181 | ** 依据++approved++实体参数的值,使用一个排他网关,选择下一步采用哪条路径:若申请被批准,结束流程;否则,产生一个额外任务(Send rejection letter 发送拒信),以便客户可以收到拒信得到通知。 182 | 183 | 请注意这个流程不包含任何表单,因为它只用于单元测试。 184 | 185 | image::images/jpa.spring.example.process.png[align="center"] 186 | 187 | [source,xml,linenums] 188 | ---- 189 | 190 | 195 | 196 | 197 | 198 | 199 | 200 | 203 | 204 | 205 | 206 | 207 | 208 | 210 | 211 | 212 | 213 | 214 | ${loanRequest.approved} 215 | 216 | 217 | ${!loanRequest.approved} 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | ---- 229 | 230 | 尽管上面的例子很简单,但也展示了组合使用JPA与Spring以及带参数方法表达式的威力。这个流程完全不需要自定义Java代码(当然除了Spring bean),大幅加速了开发。 231 | -------------------------------------------------------------------------------- /zh_CN/ch10-History.adoc: -------------------------------------------------------------------------------- 1 | [[history]] 2 | 3 | == 历史 History 4 | 5 | 历史是捕获流程执行过程中发生的事情,并将其永久存储的组件。与运行时数据相反,历史数据在流程实例完成以后,仍会保持在数据库中。 6 | 7 | 有5个历史实体: 8 | 9 | * ++HistoricProcessInstance++保存当前与已结束流程实例的信息。 10 | * ++HistoricVariableInstance++保存流程变量或任务变量的最新值。 11 | * ++HistoricActivityInstance++保存活动(流程中的节点)的单一执行信息。 12 | * ++HistoricTaskInstance++保存当前与过去(完成并删除的)任务实例的信息。 13 | * ++HistoricDetail++保存与历史流程实例,活动实例或任务实例有关的多种信息。 14 | 15 | 因为数据库为过去与当前进行中的实例都保存历史实体,因此你可能希望查询这些表,以减少访问运行时流程实例数据,并提高运行时执行性能。 16 | 17 | 之后,这些信息将在Activiti Explorer中暴露。并且,也将用于生成报告。 18 | 19 | 20 | [[historyQuery]] 21 | 22 | 23 | === 查询历史 Querying history 24 | 25 | 可以使用API查询全部5种历史实体,HistoryService暴露的++createHistoricProcessInstanceQuery()++、++createHistoricVariableInstanceQuery()++、++createHistoricActivityInstanceQuery()++、++createHistoricDetailQuery()++与++createHistoricTaskInstanceQuery()++方法。 26 | 27 | 下面是一些例子,展示了历史查询API的一些用法。关于各用法的全部描述可以在link:$$http://activiti.org/javadocs/index.html$$[javadoc]中找到,在++org.activiti.engine.history++包中。 28 | 29 | [[historyQueryProcessInstance]] 30 | 31 | 32 | ==== 历史流程实例查询 HistoricProcessInstanceQuery 33 | 34 | 取得所有流程中,前10个花费最多时间完成(最长持续时间)的,定义为'XXX',已完成的++HistoricProcessInstances++。 35 | 36 | [source,java,linenums] 37 | ---- 38 | historyService.createHistoricProcessInstanceQuery() 39 | .finished() 40 | .processDefinitionId("XXX") 41 | .orderByProcessInstanceDuration().desc() 42 | .listPage(0, 10); 43 | ---- 44 | 45 | 46 | [[historyQueryVariableInstance]] 47 | 48 | 49 | ==== 历史变量实例查询 HistoricVariableInstanceQuery 50 | 51 | 在已完成的,id为'XXX'的流程实例中,取得所有++HistoricVariableInstances++,以变量名排序。 52 | 53 | [source,java,linenums] 54 | ---- 55 | historyService.createHistoricVariableInstanceQuery() 56 | .processInstanceId("XXX") 57 | .orderByVariableName.desc() 58 | .list(); 59 | ---- 60 | 61 | [[historyQueryActivityInstance]] 62 | 63 | 64 | ==== 历史活动实例查询 HistoricActivityInstanceQuery 65 | 66 | 取得最新的,服务任务类型的,已完成的,流程定义的id为XXX的,++HistoricActivityInstance++。 67 | 68 | [source,java,linenums] 69 | ---- 70 | historyService.createHistoricActivityInstanceQuery() 71 | .activityType("serviceTask") 72 | .processDefinitionId("XXX") 73 | .finished() 74 | .orderByHistoricActivityInstanceEndTime().desc() 75 | .listPage(0, 1); 76 | ---- 77 | 78 | [[historyQueryDetail]] 79 | 80 | 81 | ==== 历史详情查询 HistoricDetailQuery 82 | 83 | 下一个例子,取得id为123的流程中,所有变量的更新记录。这个查询只会返回++HistoricVariableUpdate++。请注意有可能某个变量名有多个++HistoricVariableUpdate++实体,代表流程中的每一次变量更新。可以使用++orderByTime++(变量更新的时间)或++orderByVariableRevision++(运行时变量更新时的版本号),按其发生顺序排序。 84 | 85 | [source,java,linenums] 86 | ---- 87 | historyService.createHistoricDetailQuery() 88 | .variableUpdates() 89 | .processInstanceId("123") 90 | .orderByVariableName().asc() 91 | .list() 92 | ---- 93 | 94 | 这个例子,取得流程id为"123"的,任何任务中或启动时提交的,所有<>。这个查询只返回++HistoricFormProperties++。 95 | 96 | [source,java,linenums] 97 | ---- 98 | historyService.createHistoricDetailQuery() 99 | .formProperties() 100 | .processInstanceId("123") 101 | .orderByVariableName().asc() 102 | .list() 103 | ---- 104 | 105 | 最后一个例子,取得id为"123"的任务进行的所有变量更新操作。将返回该任务设置的所有变量(任务局部变量)的++HistoricVariableUpdates++,而**不会**返回流程实例中设置的。 106 | 107 | [source,java,linenums] 108 | ---- 109 | historyService.createHistoricDetailQuery() 110 | .variableUpdates() 111 | .taskId("123") 112 | .orderByVariableName().asc() 113 | .list() 114 | ---- 115 | 116 | 可以在++TaskListener++中使用++TaskService++或++DelegateTask++设置任务局部变量: 117 | 118 | [source,java,linenums] 119 | ---- 120 | taskService.setVariableLocal("123", "myVariable", "Variable value"); 121 | ---- 122 | 123 | [source,java,linenums] 124 | ---- 125 | public void notify(DelegateTask delegateTask) { 126 | delegateTask.setVariableLocal("myVariable", "Variable value"); 127 | } 128 | ---- 129 | 130 | [[historyQueryTaskInstance]] 131 | 132 | 133 | ==== 历史任务示例查询 HistoricTaskInstanceQuery 134 | 135 | 取得所有任务中,前10个花费最多时间完成(最长持续时间)的,已完成的++HistoricTaskInstance++。 136 | 137 | [source,java,linenums] 138 | ---- 139 | historyService.createHistoricTaskInstanceQuery() 140 | .finished() 141 | .orderByHistoricTaskInstanceDuration().desc() 142 | .listPage(0, 10); 143 | ---- 144 | 145 | 取得删除原因包含"invalid",最后一次指派给'kermit'用户的++HistoricTaskInstance++。 146 | 147 | [source,java,linenums] 148 | ---- 149 | historyService.createHistoricTaskInstanceQuery() 150 | .finished() 151 | .taskDeleteReasonLike("%invalid%") 152 | .taskAssignee("kermit") 153 | .listPage(0, 10); 154 | ---- 155 | 156 | 157 | [[historyConfig]] 158 | 159 | === 历史配置 History configuration 160 | 161 | 可以使用org.activiti.engine.impl.history.HistoryLevel枚举(或在5.11版本前,++ProcessEngineConfiguration++中定义的__HISTORY__常量),以编程方式配置历史级别: 162 | 163 | [source,java,linenums] 164 | ---- 165 | ProcessEngine processEngine = ProcessEngineConfiguration 166 | .createProcessEngineConfigurationFromResourceDefault() 167 | .setHistory(HistoryLevel.AUDIT.getKey()) 168 | .buildProcessEngine(); 169 | ---- 170 | 171 | 也可以在activiti.cfg.xml或Spring上下文中配置级别: 172 | 173 | [source,xml,linenums] 174 | ---- 175 | 176 | 177 | ... 178 | 179 | ---- 180 | 181 | 可以配置下列历史级别: 182 | 183 | * ++none(无)++:跳过所有历史存档。对于运行时流程执行来说,是性能最高的配置,但是不会保存任何历史信息。 184 | * ++activity(活动)++:存档所有流程实例与活动实例。在流程实例结束时,顶级流程实例变量的最新值,将被复制为历史流程实例。不会存档细节。 185 | * ++audit(审计)++:默认级别。将存档所有流程实例,活动实例,并保持变量值以及所有提交的表单参数持续同步,以保证表单的所有用户操作都可追踪、可审计。 186 | * ++full(完全)++:历史存档的最高级别,因此也最慢。这个级别存储所有++audit++级别存储的信息,加上所有其他可用细节,主要是流程变量的更新。 187 | 188 | **在Activiti 5.11版本以前,历史级别保存在数据库中(+$$ACT_GE_PROPERTY$$+ 表,参数名为++historyLevel++)。从5.11开始,这个值不再使用,并从数据库中忽略/删除。现在历史可以在2个引擎的启动间切换,而不会由于前一个引擎启动修改了级别,而抛出异常。** 189 | 190 | [[historyFormAuditPurposes]] 191 | 192 | 193 | === 审计目的历史 History for audit purposes 194 | 195 | 如果至少<>为++audit++级别,则通过++FormService.submitStartFormData(String processDefinitionId, Map properties)++与++FormService.submitTaskFormData(String taskId, Map properties)++方法提交的所有参数都将被记录。 196 | 197 | 表单参数可以通过查询API,像这样读取: 198 | 199 | [source,java,linenums] 200 | ---- 201 | historyService 202 | .createHistoricDetailQuery() 203 | .formProperties() 204 | ... 205 | .list(); 206 | ---- 207 | 208 | 在这个情况下,只会返回++HistoricFormProperty++类型的历史详情。 209 | 210 | 如果在调用提交方法前,使用++IdentityService.setAuthenticatedUserId(String)++设置了认证用户,则该提交了表单的认证用户可以在历史中访问。对于启动表单使用++HistoricProcessInstance.getStartUserId()++,对于任务表单使用++HistoricActivityInstance.getAssignee()++。 211 | -------------------------------------------------------------------------------- /zh_CN/ch13-Modeler.adoc: -------------------------------------------------------------------------------- 1 | [[activitiModeler]] 2 | 3 | == Activiti Modeler 4 | 5 | Activiti Modeler是一个BPMN web建模器组件,内置在<> web应用中。Modeler是 link:$$http://code.google.com/p/signavio-core-components/$$[Signavio核心组件]的分支项目。Activiti Modeler从5.17.0版本起基于Angular JS(之前是基于Ext-JS的应用)。Activiti Modeler的Angular JS部分基于LGPL协议发布。与之前版本的Activiti Modeler(Signavio核心组件)的主要区别,是新的Modeler作为Activiti项目的一部分维护与开发。Activiti Modeler的目标,是支持所有BPMN元素与Activiti支持的扩展。 6 | 7 | 使用默认配置运行Activiti Explorer时,在模型工作空间内将有一个示例流程。 8 | 9 | image::images/modeler.example.process.png[align="center"] 10 | 11 | 12 | === 编辑模型 Model editing 13 | 14 | 在模型工作空间点击edit按钮时,会在建模器中打开模型。屏幕的左侧是BPMN元素与Activiti扩展的画板。在需要时可以将新元素拖放至画布上。在屏幕底部可以填写选中元素的属性。在示例截图中选中了一个用户任务,可以填写用户任务属性,例如办理人,表单参数与到期日期。要返回Activiti Explorer,可以点击屏幕右上角的关闭按钮。 15 | 16 | image::images/modeler.editor.canvas.png[align="center"] 17 | 18 | 19 | === 导入现有模型 Importing existing models 20 | 21 | 也可以将现有模型导入模型工作空间,以在Activiti Modeler中编辑它们。点击import按钮,选择一个.bpmn或者.bpmn20.xml文件。请注意这个BPMN XML文件需要包含BPMN DI信息。 22 | 23 | image::images/modeler.import.png[align="center"] 24 | 25 | 26 | 27 | === 将已部署定义转换为可编辑模型 Convert deployed definitions to a editable model 28 | 29 | 已部署的流程定义可以转换为能够使用Activiti Modeler编辑的模型。请注意该流程定义需要包含BPMN DI信息。 30 | 31 | image::images/modeler.convert.png[align="center"] 32 | 33 | 34 | === 将模型导出为BPMN XML (Export model to BPMN XML) 35 | 36 | 模型工作空间中的模型可以导出为BPMN XML文件。在模型动作选项框中选择导出选项。 37 | 38 | image::images/modeler.export.png[align="center"] 39 | 40 | 41 | === 将模型部署至Activiti引擎 Deploy model to the Activiti Engine 42 | 43 | 当模型包含了运行所需的所有参数,就可以部署至Activiti引擎。在模型动作选项框中选择部署选项。 44 | 45 | image::images/modeler.deploy.png[align="center"] 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /zh_CN/ch16-Ldap.adoc: -------------------------------------------------------------------------------- 1 | [[chapter_ldap]] 2 | 3 | == 集成LDAP (LDAP integration) 4 | 5 | 公司通常已经有了LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)系统形式的用户与组存储。从5.14版本开始,Activiti提供了一个立即可用的解决方案,可以简单配置Activiti与LDAP系统连接的方式。 6 | 7 | 在Activiti 5.14版本以前,也可以为Activiti集成LDAP。然而,在5.14中大幅简化了配置。但配置LDAP的“老”方法仍然可用。实际上,简化配置只是在“老”基础上进行的包装。 8 | 9 | 10 | [[ldap_usage]] 11 | 12 | 13 | === 使用 Usage 14 | 15 | 要在你的项目中添加LDAP集成代码,简单地在pom.xml中添加下列依赖: 16 | 17 | [source,xml,linenums] 18 | ---- 19 | 20 | org.activiti 21 | activiti-ldap 22 | latest.version 23 | 24 | ---- 25 | 26 | 27 | [[ldap_usecases]] 28 | 29 | 30 | === 用例 Use cases 31 | 32 | 目前LDAP集成有两大使用场景: 33 | 34 | * 通过IdentityService进行认证。例如在使用Activiti Explorer,并需要通过LDAP登录时很有用。 35 | * 获取一个组中的用户。例如在查询一个特定用户可见的任务(也就是说,特定候选组的任务)时很重要。 36 | 37 | 38 | [[ldap_configuration]] 39 | 40 | 41 | === 配置 Configuration 42 | 43 | 在Activiti中集成LDAP系统通过在流程引擎配置的++configurators++小节注入++org.activiti.ldap.LDAPConfigurator++完成。这个类高度可扩展:如果默认实现不能满足使用场景,可以轻松地覆盖方法,许多依赖的bean也是可插拔的。 44 | 45 | 这是一个示例配置(请注意:当然,在编程式创建引擎时完全类似)。现在不需要太关注这些参数,我们会在下一章节详细介绍。 46 | 47 | [source,xml,linenums] 48 | ---- 49 | 50 | ... 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | ---- 82 | 83 | [[ldap_properties]] 84 | 85 | 86 | === 参数 Properties 87 | 88 | 可以为++org.activiti.ldap.LDAPConfigurator++设置下列参数: 89 | 90 | .LDAP配置参数 91 | [options="header"] 92 | |=============== 93 | |参数名|描述|类型|默认值 94 | |server|LDAP系统的服务器。例如'ldap://localhost:33389'|String| 95 | |port|LDAP系统运行的端口|int| 96 | |user|连接LDAP系统的用户id|String| 97 | |password|连接LDAP系统的密码|String| 98 | |initialContextFactory|连接LDAP的InitialContextFactory的名字|String|com.sun.jndi.ldap.LdapCtxFactory 99 | |securityAuthentication|连接LDAP系统时使用的'java.naming.security.authentication'参数|String|simple 100 | |customConnectionParameters|用于设置没有专门setter的所有LDAP连接参数。例如 http://docs.oracle.com/javase/tutorial/jndi/ldap/jndi.html 中的自定义参数。这些参数用于配制连接池,指定安全选项,等等。当创建到LDAP系统的连接时,会提供所有设置的参数。|Map| 101 | 102 | |baseDn|开始搜索用户与组的基础“区分名”(distinguished name,DN)|String| 103 | |userBaseDn|开始搜索用户的基础“区分名”(distinguished name,DN)。如果未提供,则使用baseDn(见上)|String| 104 | |groupBaseDn|开始搜索组的基础“区分名”(distinguished name,DN)。如果未提供,则使用baseDn(见上)|String| 105 | |searchTimeLimit|在LDAP中搜索时的超时时间,以毫秒计|long|一个小时 106 | |queryUserByUserId|使用userId搜索用户时执行的查询。例如:(&(objectClass=inetOrgPerson)(uid={0})) 。将返回LDAP中所有class为'inetOrgPerson',并匹配'uid'属性的值的对象。在例子中,用户id使用{0}注入。如果对于特定的LDAP配置,只使用该查询不满足要求,则可以使用不同的LDAPQueryBuilder插件,提供比查询更高的自由度。|string| 107 | 108 | |queryUserByFullNameLike|使用全名搜索用户时执行的查询。例如:(& (objectClass=inetOrgPerson) (\|({0}=*{1}*)({2}=*{3}*)) ) 。将返回LDAP中所有class为'inetOrgPerson',并匹配first name与last name的值的对象。请注意{0}注入为firstNameAttribute(在上面定义),{1}与{3}为搜索文本,{2}为lastNameAttribute。如果对于特定的LDAP配置,只使用该查询不满足要求,则可以使用不同的LDAPQueryBuilder插件,提供比查询更高的自由度。|string| 109 | 110 | |queryGroupsForUser|查找特定用户的组时执行的查询。例如:(&(objectClass=groupOfUniqueNames)(uniqueMember={0})) 。将返回class为'groupOfUniqueNames',且提供的DN(匹配用户的DN)为'uniqueMember'的对象。在例子中,用户id使用{0}注入。如果对于特定的LDAP配置,只使用该查询不满足要求,则可以使用不同的LDAPQueryBuilder插件,提供比查询更高的自由度。|string| 111 | 112 | |userIdAttribute|匹配用户id的属性的名字。这个属性用于查找用户对象,并完成LDAP对象与Activiti用户对象间的映射。|string| 113 | |userFirstNameAttribute|匹配用户first name的属性的名字。这个属性用于查找用户对象,并完成LDAP对象与Activiti用户对象间的映射。|string| 114 | |userLastNameAttribute|匹配用户last name的属性的名字。这个属性用于查找用户对象,并完成LDAP对象与Activiti用户对象间的映射。|string| 115 | |groupIdAttribute|匹配组id的属性的名字。这个属性用于查找组对象,并完成LDAP对象与Activiti用户对象间的映射。|string| 116 | |groupNameAttribute|匹配组name的属性的名字。这个属性用于查找组对象,并完成LDAP对象与Activiti用户对象间的映射。|String| 117 | |groupTypeAttribute|匹配组type的属性的名字。这个属性用于查找组对象,并完成LDAP对象与Activiti用户对象间的映射。|String| 118 | 119 | |=============== 120 | 121 | 下面的参数用于自定义默认行为或引入组缓存: 122 | 123 | .高级参数 124 | [options="header"] 125 | |=============== 126 | |参数名|描述|类型|默认值 127 | |ldapUserManagerFactory|如果默认实现不符合要求,设置一个自定义的LDAPUserManagerFactory实现。|LDAPUserManagerFactory的实例| 128 | |ldapGroupManagerFactory|如果默认实现不符合要求,设置一个自定义的LDAPGroupManagerFactory实现。|LDAPGroupManagerFactory的实例| 129 | |ldapMemberShipManagerFactory|如果默认实现不符合要求,设置一个自定义的LDAPMembershipManagerFactory实现。请注意很少出现这种情况,因为一般使用LDAP系统管理成员信息。|LDAPMembershipManagerFactory的实例| 130 | 131 | |ldapQueryBuilder|如果默认实现不符合要求,设置一个自定义的查询构建器。当在LDAP系统中使用LDAPUserManager或LDAPGroupManage进行实际查询时,会使用LDAPQueryBuilder的实例。默认实现使用在本实例中设置的参数,例如queryGroupsForUser与queryUserById|org.activiti.ldap.LDAPQueryBuilder的实例| 132 | 133 | |groupCacheSize|用于设置组缓存的大小。这是一个为用户缓存组的LRU缓存,可以避免每次需要查询用户所在组的时候都访问LDAP系统。 134 | 135 | 如果值小于0则不会使用缓存。默认值为-1,因此不会进行缓存。|int|-1 136 | 137 | |groupCacheExpirationTime|设置组缓存的过期时间,以毫秒计。当获取了一个特定用户的组,且存在组缓存时,会将组存储在缓存中,持续本参数设置的时间。也就是说,如果在00:00获取了一个组,过期时间为30分钟,则00:30之后进行的获取该用户组操作都不会使用该缓存,而是会从LDAP系统中重新获取。同样的,在00:00 - 00:30间会从该缓存中获取。|long|一个小时 138 | 139 | |=============== 140 | 141 | 142 | 使用活动目录(Active Directory)时请注意:Activiti论坛的用户报告,在使用活动目录时,需要将'InitialDirContext'设置为Context.REFERRAL。可以通过customConnectionParameters map按上面介绍的方法传递。 143 | 144 | 145 | [[lda-explorer]] 146 | 147 | 148 | === 在Explorer中集成LDAP (Integrate LDAP in Explorer) 149 | 150 | 151 | * 在++activiti-standalone-context.xml++中添加上面介绍的LDAP配置 152 | * 在WEB-INF/lib中添加activiti-ldap jar 153 | * 移除++demoDataGenerator++ bean,因为它会尝试添加用户(在集成LDAP时不允许) 154 | * 为++activiti-ui.context++中的++explorerApp++ bean添加下列配置: 155 | 156 | [source,xml,linenums] 157 | ---- 158 | 159 | 160 | admin 161 | 162 | 163 | 164 | 165 | user 166 | 167 | 168 | ---- 169 | 170 | 直接使用你自己的值替换即可。需要使用的值是组的id(通过++groupIdAttribute++配置)。上面的配置将使'admin'组中的所有成员都成为Activiti Explorer的管理员用户,对于user组也类似。任何不匹配这些值的组都将成为'assignment'组,也就是说可以将任务指派给他们。 171 | -------------------------------------------------------------------------------- /zh_CN/ch18-Simulation.adoc: -------------------------------------------------------------------------------- 1 | 2 | == 使用Activiti-Crystalball仿真(试验性) Simulation with Activiti-Crystalball (Experimental) 3 | 4 | [[crb-introduction]] 5 | 6 | 7 | === 介绍 Introduction 8 | 9 | [[crb-overview]] 10 | 11 | ==== 简介 Short overview 12 | 13 | activiti-crystalball(CrystalBall)是一个用于Activiti业务流程管理平台的仿真引擎。CrystalBall仿真可以用于: 14 | 15 | * 支持决策——对于生产工作流(例如,我们是否要在系统中增加更多资源,以满足截止日期?)。 16 | * 优化与理解——测试变更并理解其影响。 17 | * 培训——仿真可以在员工铺开使用前进行培训。 18 | * ... 19 | 20 | 21 | [[crb-unique]] 22 | 23 | 24 | ==== CrystalBall是独特的 CrystalBall is unique 25 | 26 | 不需要: 27 | 28 | * 创建单独的仿真模型与引擎。 29 | * 为仿真创建不同的报告。 30 | * 为仿真引擎提供大量数据。 31 | 32 | CrystalBall仿真器基于Activiti。这就是为什么可以很轻易地复制数据并启动仿真,也可以从历史中重放工作流行为。 33 | 34 | 35 | [[crb-inside]] 36 | 37 | 38 | === 深入CrystalBall (CrystalBall inside) 39 | 40 | CrystalBall是一个link:$$http://en.wikipedia.org/wiki/Discrete_event_simulation$$[离散事件仿真器]。最简单的实现是org.activiti.crystalball.simulator.SimpleSimulationRun。 41 | 42 | [source,java,linenums] 43 | ---- 44 | init(); 45 | 46 | SimulationEvent event = removeSimulationEvent(); 47 | 48 | while (!simulationEnd(event)) { 49 | executeEvent(event); 50 | event = removeSimulationEvent(); 51 | } 52 | 53 | close(); 54 | ---- 55 | 56 | SimulationRun也可以执行不同来源生成的仿真事件(参见link:$$#crb-playback$$[回放])。 57 | 58 | 59 | [[crb-history-analysis]] 60 | 61 | 62 | === 历史分析 History analysis 63 | 64 | 仿真的一个使用场景是用于分析历史。生产环境不能用于重现并查找bug。也几乎不可能将流程引擎调整到生产环境发生bug时一样的状态,问题不在硬件而是: 65 | 66 | * 时间——流程实例可能需要好几个月。 67 | * 并发——流程实例运行时可能与其它的实例相互影响,只有在它们都并行执行的时候才会发现问题。 68 | * 用户——大量用户可以参与流程实例执行。将流程实例调整到错误发生时的状态会花费大量精力。 69 | 70 | 仿真可以容易地定位上面提到的问题。仿真的时间是虚拟的,不依赖于真实时间。Activiti流程引擎本身就是虚拟的,因此不需要创建用于仿真试验的虚拟流程引擎。在这种场景下并发也可以自然地被定位。用户的行为可以记录并回放,回放可以按照记录,或者预测并按需生成。 71 | 72 | 最好的分析历史的方式是将其重现。重现在真实生活正很难实现,但可以通过仿真实现。 73 | 74 | 75 | [[crb-collectEvents]] 76 | 77 | 78 | ==== 历史中的事件 Events from the history. 79 | 80 | 重现历史的最重要的事情,是收集所有影响过系统状态的事件。假设我们的流程通过用户事件驱动(例如申领,完成任务……)。在这个场景下,我们可以使用两种事件源: 81 | 82 | * 流程历史——当前只支持原始link:$$http://gro-mar.github.io/activiti-crystalball/$$[activiti-crystalball]项目。 83 | * 记录的活动事件。我们可以将ActivitiEventListener加入想要记录事件的引擎。记录的事件会被存储用于之后的分析。基础的实现是org.activiti.crystalball.simulator.delegate.event.impl.InMemoryRecordActivitiEventListener: 84 | 85 | [source,java,linenums] 86 | ---- 87 | @Override 88 | public void onEvent(ActivitiEvent event) { 89 | Collection simulationEvents = transform(event); 90 | store(simulationEvents); 91 | } 92 | ---- 93 | 94 | 事件将被存储。我们可以继续再次重现历史。 95 | 96 | [[crb-playback]] 97 | 98 | 99 | ==== 回放 PlayBack 100 | 101 | 回放的优点是可以一遍又一遍的播放,直到我们完全理解发生了什么。Crystalball仿真基于真实数据与真实用户行为,这是Crystalball的优势。 102 | 103 | 理解回放工作方式的最好的方法,是基于JUnit测试org.activiti.crystalball.simulator.delegate.event.PlaybackRunTest逐步骤地解释。测试仿真的流程是最简单的: 104 | 105 | [source,xml,linenums] 106 | ---- 107 | 108 | This is a process for testing purposes 109 | 110 | 111 | 112 | 113 | 114 | 115 | ---- 116 | 117 | 流程已被部署,并将实际使用以及仿真运行。 118 | 119 | * 记录事件 120 | 121 | [source,java,linenums] 122 | ---- 123 | // 获取带有记录监听器的流程引擎来记录事件 get process engine with record listener to log events 124 | ProcessEngine processEngine = (new RecordableProcessEngineFactory(THE_SIMPLEST_PROCESS, listener)).getObject(); 125 | 126 | // 使用变量启动流程实例 start process instance with variables 127 | Map variables = new HashMap(); 128 | variables.put(TEST_VARIABLE, TEST_VALUE); 129 | processEngine.getRuntimeService().startProcessInstanceByKey(SIMPLEST_PROCESS, BUSINESS_KEY,variables); 130 | 131 | // 检查流程引擎状态——历史中应该有一个流程实例 132 | // check process engine status - there should be one process instance in the history 133 | checkStatus(processEngine); 134 | 135 | // 关闭并销毁流程引擎 close and destroy process engine 136 | EventRecorderTestUtils.closeProcessEngine(processEngine, listener); 137 | ProcessEngines.destroy(); 138 | ---- 139 | 140 | 上面的代码片段将在startProcessInstanceByKey方法调用后记录ActivitiEventType.ENTITY_CREATED。 141 | 142 | * 启动仿真运行 start simulation run 143 | 144 | [source,java,linenums] 145 | ---- 146 | final SimpleSimulationRun.Builder builder = new SimpleSimulationRun.Builder(); 147 | // 初始化仿真运行 init simulation run 148 | // 获取流程引擎工厂——与RecordableProcessEngineFactory的唯一区别是没有添加记录监听器 149 | // get process engine factory - the only difference from RecordableProcessEngineFactory that log listener is not added 150 | DefaultSimulationProcessEngineFactory simulationProcessEngineFactory = new DefaultSimulationProcessEngineFactory(THE_SIMPLEST_PROCESS); 151 | // 配置仿真运行 configure simulation run 152 | builder.processEngine(simulationProcessEngineFactory) 153 | // 从记录的事件设置回放事件日历 set playback event calendar from recorded events 154 | .eventCalendar(new PlaybackEventCalendarFactory(new SimulationEventComparator(), listener.getSimulationEvents())) 155 | // 为仿真事件设置处理器 set handlers for simulation events 156 | .customEventHandlerMap(EventRecorderTestUtils.getHandlers()); 157 | SimpleSimulationRun simRun = builder.build(); 158 | 159 | simRun.execute(new NoExecutionVariableScope()); 160 | 161 | // 检查状态——在记录事件方法中使用的相同方法 check the status - the same method which was used in record events method 162 | checkStatus(simulationProcessEngineFactory.getObject()); 163 | 164 | // 关闭并销毁流程引擎 close and destroy process engine 165 | simRun.getProcessEngine().close(); 166 | ProcessEngines.destroy(); 167 | ---- 168 | 169 | 更高级的回放例子在org.activiti.crystalball.simulator.delegate.event.PlaybackProcessStartTest中 170 | 171 | 172 | [[crb-debug]] 173 | 174 | 175 | ==== 流程引擎调试 Process engine debugger 176 | 177 | 回放限制了只能一下子执行所有仿真事件(例如启动流程,完成任务)。调试可以将执行分割为小步骤,并在步骤之间观察流程引擎的状态。 178 | 179 | SimpleSimulationRun实现了SimulationDebugger接口。SimulationDebugger可以一步一步地执行仿真事件,将仿真运行到特定时间。 180 | 181 | [source,java,linenums] 182 | ---- 183 | /** 184 | * 可以在调试模式运行仿真 Allows to run simulation in debug mode 185 | */ 186 | public interface SimulationDebugger { 187 | /** 188 | * 初始化仿真运行 initialize simulation run 189 | * @param execution - 传递变量与运行仿真的变量范围 variable scope to transfer variables from and to simulation run 190 | */ 191 | void init(VariableScope execution); 192 | 193 | /** 194 | * 前进一步仿真事件 step one simulation event forward 195 | */ 196 | void step(); 197 | 198 | /** 199 | * 继续仿真运行 continue in the simulation run 200 | */ 201 | void runContinue(); 202 | 203 | /** 204 | * 执行仿真运行直到simulationTime(仿真时间) execute simulation run till simulationTime 205 | */ 206 | void runTo(long simulationTime); 207 | 208 | /** 209 | * 执行仿真运行直到特定类型的仿真事件 execute simulation run till simulation event of the specific type 210 | */ 211 | void runTo(String simulationEventType); 212 | 213 | /** 214 | * 关闭仿真运行 close simulation run 215 | */ 216 | void close(); 217 | } 218 | ---- 219 | 220 | 要实际查看流程引擎调试器,运行SimpleSimulationRunTest 221 | 222 | [[crb-replay]] 223 | 224 | 225 | ==== 重放 Replay 226 | 227 | 重放需要创建另一个流程引擎实例。回放并不影响“真实”环境,而是需要仿真试验配置。重放则运行在“真实”流程引擎上。重放在运行中的流程引擎上执行仿真事件。因此重放使用真实时间。真实时间意味着仿真事件被预定将会立即执行。 228 | 229 | 下面的例子展示了如何重放一个流程实例。同样的技术可以用在回放中,以播放一个流程实例。(ReplayRunTest)测试的第一部分初始化流程引擎,启动一个流程实例,并完成流程实例的任务。 230 | 231 | [source,java,linenums] 232 | ---- 233 | ProcessEngine processEngine = initProcessEngine(); 234 | 235 | TaskService taskService = processEngine.getTaskService(); 236 | RuntimeService runtimeService = processEngine.getRuntimeService(); 237 | 238 | Map variables = new HashMap(); 239 | variables.put(TEST_VARIABLE, TEST_VALUE); 240 | ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(USERTASK_PROCESS, BUSINESS_KEY, 241 | variables); 242 | 243 | Task task = taskService.createTaskQuery().taskDefinitionKey("userTask").singleResult(); 244 | TimeUnit.MILLISECONDS.sleep(50); 245 | taskService.complete(task.getId()); 246 | ---- 247 | 248 | 使用的流程引擎是基础的InMemoryStandaloneProcessEngine以及 249 | 250 | * InMemoryRecordActivitiEventListener(已经在回放中使用过)用于记录Activiti事件,并将其转换为仿真事件。 251 | * UserTaskExecutionListener——当创建了新的用户任务,且新的任务是表单重放流程引擎时,将任务完成事件预定至事件日历。 252 | 253 | 测试的下一部分在原流程的相同流程引擎上启动了仿真调试器。重放事件处理器使用StartReplayProcessEventHandler取代了StartProcessEventHandler。StartReplayProcessEventHandler取得流程实例Id,将其用于重放以及在初始化阶段预定流程实例启动。在处理阶段StartProcessEventHandler使用一个预留的变量启动新的流程实例。变量名字为"_replay.processInstanceId"。这个变量用于存储需要重放的流程的id。与SimpleSimulationRun相比,ReplaySimulationRun并不: 254 | 255 | * 创建与关闭流程引擎实例。 256 | * 修改仿真时间。(真实时间不能修改) 257 | [source,java,linenums] 258 | 259 | ---- 260 | final SimulationDebugger simRun = new ReplaySimulationRun(processEngine, 261 | getReplayHandlers(processInstance.getId())); 262 | ---- 263 | 264 | 现在重放流程实例可以启动了。在一开始流程实例还没有运行。在历史中已经有一个已完成的流程实例。在初始化之后,在事件日历中有一个仿真事件——用于启动一个流程实例,以重放已经完成的流程实例。 265 | 266 | [source,java,linenums] 267 | ---- 268 | simRun.init(); 269 | 270 | // 原始流程已经完成——不应该有任何运行中的流程实例/任务 271 | // original process is finished - there should not be any running process instance/task 272 | assertEquals(0, runtimeService.createProcessInstanceQuery().processDefinitionKey(USERTASK_PROCESS).count()); 273 | assertEquals(0, taskService.createTaskQuery().taskDefinitionKey("userTask").count()); 274 | 275 | simRun.step(); 276 | 277 | // 重放流程已启动 replay process was started 278 | assertEquals(1, runtimeService.createProcessInstanceQuery().processDefinitionKey(USERTASK_PROCESS).count()); 279 | // 应该有一个任务 there should be one task 280 | assertEquals(1, taskService.createTaskQuery().taskDefinitionKey("userTask").count()); 281 | ---- 282 | 283 | 当创建任务时,UserTaskExecutionListener创建了新的仿真事件,以完成用户任务。 284 | 285 | [source,java,linenums] 286 | ---- 287 | simRun.step(); 288 | 289 | // 用户任务已完成——重放流程已经完成 userTask was completed - replay process was finished 290 | assertEquals(0, runtimeService.createProcessInstanceQuery().processDefinitionKey(USERTASK_PROCESS).count()); 291 | assertEquals(0, taskService.createTaskQuery().taskDefinitionKey("userTask").count()); 292 | ---- 293 | 294 | 仿真结束,我们可以继续另一个流程实例启动,或任何其他事件。这次我们关闭simRun与流程引擎。 295 | 296 | [source,java,linenums] 297 | ---- 298 | simRun.close(); 299 | processEngine.close(); 300 | ProcessEngines.destroy(); 301 | ---- 302 | 303 | 304 | 305 | 306 | -------------------------------------------------------------------------------- /zh_CN/ch19-tooling.adoc: -------------------------------------------------------------------------------- 1 | [[Tooling]] 2 | == 工具 Tooling 3 | 4 | [[JMX]] 5 | 6 | 7 | === JMX 8 | 9 | [[jmxIntroduction]] 10 | 11 | ==== 介绍 Introduction 12 | 13 | 可以使用标准Java管理扩展(JMX)技术连接Activiti引擎,以获取信息或改变其行为。可以使用任何标准的JMX客户端。启用与禁用作业执行器、部署新的流程定义文件或删除它们等等操作,都可以通过JMX完成,而不需要写一行代码。 14 | 15 | 16 | [[jmxQuickStart]] 17 | 18 | 19 | ==== 快速开始 Quick Start 20 | 21 | 默认情况下没有启用JMX。要使用默认配置启动它,只要使用Maven或其他方法,将activiti-jmx jar文件加入classpath即可。如果使用Maven,可以在pom.xml中添加下列行以添加合适的依赖: 22 | 23 | [source,xml,linenums] 24 | ---- 25 | 26 | org.activiti 27 | activiti-jmx 28 | latest.version 29 | 30 | ---- 31 | 32 | 在添加依赖并构建流程引擎后,就可以使用JMX连接了。可以使用在标准JDK发行版中提供的jconsole。在本地线程列表中,可以看到包含Activit的JVM。如果由于任何原因没有在“本地进程”中列出合适的JVM,可以尝试使用这个URL从“远程进程”中连接: 33 | ---- 34 | service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/activiti 35 | ---- 36 | 37 | 可以在日志文件中找到正确的本地URL。连接之后,可以看到标准JVM状态与MBeans。可以选择MBeans页签,并在右侧面板选择"org.activiti.jmx.Mbeans",以浏览Activiti专用的MBean。选择任何MBean,都可以查询信息或修改配置。这个截图展示了jconsole的样子: 38 | 39 | (原图缺失) 40 | 41 | 不只是jconsole,任何JMX客户端都可以访问MBeans。大多数数据中心监控工具都有可以连接至JMX MBeans的连接器。 42 | 43 | 44 | ==== 属性与操作 Attributes and operations 45 | 46 | 这里有一个目前可用的属性与操作的列表。这个列表可能根据需要在未来版本中扩展。 47 | 48 | [options="header"] 49 | |=============== 50 | |MBean|类型|名字|描述 51 | |ProcessDefinitionsMBean|属性|processDefinitions|已部署流程定义的++Id++, +Name+, +Version+, ++IsSuspended++参数,是一个字符串的list 52 | ||属性|deployments|当前部署的++Id++, +Name+, ++TenantId++参数 53 | ||方法|getProcessDefinitionById(String id)|给定id流程定义的+Id+, +Name+, ++Version++与++IsSuspended++参数 54 | ||方法|deleteDeployment(String id)|使用给定++Id++删除部署 55 | ||方法|suspendProcessDefinitionById(String id)|使用给定++Id++暂停流程定义 56 | ||方法|activatedProcessDefinitionById(String id)|使用给定++Id++激活流程定义 57 | ||方法|suspendProcessDefinitionByKey(String id)|使用给定++key++暂停流程定义 58 | ||方法|activatedProcessDefinitionByKey(String id)|使用给定++key++激活流程定义 59 | ||方法|deployProcessDefinition(String resourceName, String processDefinitionFile)|部署流程定义文件 60 | |JobExecutorMBean|属性|isJobExecutorActivated|作业执行器是否启用 61 | ||方法|setJobExecutorActivate(Boolean active)|按照给定boolean值启用或禁用作业执行器 62 | 63 | |=============== 64 | 65 | 66 | ==== 配置 Configuration 67 | 68 | JMX使用最常使用的配置作为默认配置来简化部署。然而也可以很容易的修改默认配置,可以通过编程方式,或通过配置文件。下列代码展示了如何在配置文件中配置: 69 | 70 | [source,xml,linenums] 71 | ---- 72 | 73 | ... 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | ... 82 | 83 | 84 | 85 | 86 | ---- 87 | 88 | 下表展示了可配置的参数与其默认值: 89 | 90 | [options="header"] 91 | |=============== 92 | |名字|默认值|描述 93 | |disabled|false|若值为true,即使已添加依赖也不会启动JMX 94 | |domain|org.activiti.jmx.Mbeans|MBean的域 95 | |createConnector|true|若值为true,则为已启动的MbeanServer创建一个连接器 96 | |MBeanDomain|DefaultDomain|MBean服务器的域 97 | |registryPort|1099|出现在服务URL中作为注册端口 98 | |serviceUrlPath|/jmxrmi/activiti|出现在服务URL中 99 | |connectorPort|-1|如果大于0,则出现在服务URL中作为连接端口 100 | 101 | |=============== 102 | 103 | 104 | 105 | ==== JMX服务URL (JMX Service URL) 106 | 107 | JMX服务URL为下列格式: 108 | 109 | ---- 110 | service:jmx:rmi://:/jndi/rmi://:/ 111 | ---- 112 | 113 | ++hostName++会自动设置为机器的网络名。可以配置++connectorPort++、++registryPort++与++serviceUrlPath++。 114 | 115 | 如果++connectionPort++小于0,则服务URL中没有对应的部分,简化为: 116 | 117 | ---- 118 | service:jmx:rmi:///jndi/rmi://::/ 119 | ---- 120 | 121 | 122 | [[mavenArchetypes]] 123 | === Maven原型 Maven archetypes 124 | 125 | 126 | ==== 创建测试用例 Create Test Case 127 | 128 | 在开发过程中,有时在应用中实际实现前,创建一个小测试用例来测试想法或功能很有用,因为这样可以用测试来隔离主题。JUnit测试用例也是交流bug报告与功能需求的推荐工具。在一份bug报告或功能需求jira单中附加一个测试用例,可以有效减少修复时间。 129 | 130 | 为了便于创建测试用例,可以使用maven原型。通过使用这个原型,可以快速创建标准测试用例。原型应该在标准仓库中已经有了。如果没有,可以简单的安装在你的本地maven仓库目录中:在**tooling/archtypes**目录下键入**mvn install**。 131 | 132 | 下列命令创建单元测试项目: 133 | [source] 134 | 135 | mvn archetype:generate \ 136 | -DarchetypeGroupId=org.activiti \ 137 | -DarchetypeArtifactId=activiti-archetype-unittest \ 138 | -DarchetypeVersion=5.21.0 \ 139 | -DgroupId=org.myGroup \ 140 | -DartifactId=myArtifact 141 | 142 | 每个参数的效果在下表解释: 143 | 144 | .单元测试生成原型参数 145 | [options="header" cols="1,12,30"] 146 | |=== 147 | |行|参数|解释 148 | |1|archetypeGroupId|原型的Group id。需要为**org.activiti** 149 | |2|archetypeArtifactId|原型的Artifact id。需要为**activiti-archetype-unittest** 150 | |3|archetypeVersion|生成的测试项目中使用的Activiti版本 151 | |4|groupId|生成的测试项目的Group id 152 | |5|artifactId|生成的测试项目的Artifact id 153 | |=== 154 | 155 | 生成的项目的目录结构像是这样: 156 | 157 | ---- 158 | . 159 | ├── pom.xml 160 | └── src 161 | └── test 162 | ├── java 163 | │   └── org 164 | │   └── myGroup 165 | │   └── MyUnitTest.java 166 | └── resources 167 | ├── activiti.cfg.xml 168 | ├── log4j.properties 169 | └── org 170 | └── myGroup 171 | └── my-process.bpmn20.xml 172 | ---- 173 | 174 | 可以修改java单元测试用例与其对应的流程模型,或者添加新的单元测试用例与流程模型。如果使用该项目来表述一个bug或功能,测试用例应该在初始时失败,然后在修复了预期的bug或实现了预期的功能以后成功。请确保在发送之前键入**mvn clean**清理项目。 175 | 176 | [[docker]] 177 | 178 | === Docker镜像 Docker images 179 | [[dockerIntroduction]] 180 | 181 | ==== 介绍 Introduction 182 | 183 | https://www.docker.com/[Docker]是一个神奇的虚拟化工具。可以将一个应用与其所有依赖打包为一个标准的软件开发单元。人们可以创建持久化的镜像,并将其发布至共享服务器。其他人可以获取该镜像,并轻松启动与运行该软件。 184 | 185 | Activiti docker镜像的目的是快速运行activiti explorer与rest-api,而不需要为设置开发环境而处理复杂的细节。对于希望尽快运行、测试与使用Activiti的人来说十分有益。对展示演示也很有价值。 186 | 187 | [[dockerSingleImage]] 188 | ==== 使用 Usage 189 | 190 | 第一步是安装docker,如果还没有安装的话。link:$$https://docs.docker.com/engine/installation/$$[安装]十分简单明了。几乎所有主流OS都有可用的二进制安装文件。在安装Docker之后,可以使用这个命令,将activiti镜像与其依赖取回本地机器: 191 | 192 | [source] 193 | docker pull activiti/activiti-single-image:latest explorer 194 | 195 | 取决于Internet连接速度,可能需要一段时间下载镜像。只有第一次或共享服务器版本更新之后,才需要下载。 196 | 197 | 下一步是运行镜像与创建容器: 198 | 199 | [source] 200 | docker run -p 8080:8080 -t -i activiti/activiti-single-image:latest explorer 201 | 202 | 就是这样,镜像已经启动并运行了explorer web应用。可以使用这个URL访问: 203 | 204 | [source] 205 | localhost:8080/activiti-explorer 206 | 207 | 本地机器的端口号可以通过修改第二部分8080:8080参数修改。 208 | 209 | 最后的参数决定了运行的应用。有两个可选项: 210 | 211 | * explorer 212 | * rest 213 | 214 | 选择“rest”则会运行rest-api。例如这个URL会获取部署的列表: 215 | 216 | [source] 217 | http://kermit:kermit@localhost:8080/activiti-rest/service/repository/deployments 218 | 219 | 如果没有提供参数,默认为“explorer”。 220 | 221 | 222 | [[dockerBuild]] 223 | ==== 构建docker镜像 Build docker image 224 | 225 | Docker使用tooling/dockerImage/singleImage文件夹下的Dockerfile构建。一个名为"buildImage.sh"的工具集合文件包含了构建镜像所需的命令行。如果构建的镜像需要由其他用户使用,需要使用这个命令将其发布至docker共享服务器: 226 | 227 | [source] 228 | docker push activiti/activiti-single-image:latest 229 | -------------------------------------------------------------------------------- /zh_CN/generate-html.bat: -------------------------------------------------------------------------------- 1 | 2 | asciidoctor -a stylesheet=colony.css index.adoc 3 | -------------------------------------------------------------------------------- /zh_CN/generate-html.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | asciidoctor -a stylesheet=colony.css index.adoc 4 | -------------------------------------------------------------------------------- /zh_CN/images/FinancialReportProcess.bpmn20.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | Write monthly financial report for publication to shareholders. 19 | 20 | 21 | 22 | accountancy 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Verify monthly financial report composed by the accountancy department. 32 | This financial report is going to be sent to all the company shareholders. 33 | 34 | 35 | 36 | management 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /zh_CN/images/activiti-modeler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti-modeler.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.async.example.async.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.async.example.async.PNG -------------------------------------------------------------------------------- /zh_CN/images/activiti.async.example.no.async.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.async.example.no.async.PNG -------------------------------------------------------------------------------- /zh_CN/images/activiti.cycle.action.forms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.cycle.action.forms.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.cycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.cycle.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.cycle.repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.cycle.repositories.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.explorer.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.explorer.processes.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.explorer.tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.explorer.tasks.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.database.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.deployments.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.jobs.exception.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.jobs.exception.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.jobs.selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.jobs.selected.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.processes.png -------------------------------------------------------------------------------- /zh_CN/images/activiti.probe.status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/activiti.probe.status.png -------------------------------------------------------------------------------- /zh_CN/images/api.services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.services.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.breakpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.breakpoint.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.h2.login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.h2.login.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.h2.tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.h2.tables.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.start.h2.server.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.start.h2.server.2.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.start.h2.server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.start.h2.server.png -------------------------------------------------------------------------------- /zh_CN/images/api.test.debug.view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.test.debug.view.png -------------------------------------------------------------------------------- /zh_CN/images/api.vacationRequest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/api.vacationRequest.png -------------------------------------------------------------------------------- /zh_CN/images/blockquote-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/blockquote-arrow.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.cancel.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.cancel.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.compensation.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.compensation.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.error.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.error.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.error.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.error.example.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.message.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.message.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.signal.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.signal.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.boundary.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.boundary.timer.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.business.rule.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.business.rule.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.call.activity.sub.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.call.activity.sub.process.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.call.activity.super.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.call.activity.super.process.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.cancel.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.cancel.end.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.clock.start.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.clock.start.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.collapsed.call.activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.collapsed.call.activity.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.collapsed.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.collapsed.subprocess.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.conditional.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.conditional.sequence.flow.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.default.sequence.flow.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.default.sequence.flow.example.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.default.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.default.sequence.flow.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.error.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.error.end.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.event.based.gateway.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.event.based.gateway.example.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.event.based.gateway.notation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.event.based.gateway.notation.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.exclusive.gateway.notation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.exclusive.gateway.notation.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.exclusive.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.exclusive.gateway.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.expanded.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.expanded.subprocess.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.financial.report.example.claim.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.financial.report.example.claim.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.financial.report.example.process.ended.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.financial.report.example.process.ended.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.financial.report.example.start.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.financial.report.example.start.process.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.financial.report.example.task.assigned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.financial.report.example.task.assigned.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.gateway.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.inclusive.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.inclusive.gateway.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.compensation.throw.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.compensation.throw.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.message.catch.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.message.catch.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.none.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.none.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.signal.catch.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.signal.catch.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.signal.throw.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.signal.throw.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.intermediate.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.intermediate.timer.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.java.service.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.java.service.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.known.issue.boundary.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.known.issue.boundary.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.manual.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.manual.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.multi.instance.boundary.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.multi.instance.boundary.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.multi.instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.multi.instance.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.non.interrupting.boundary.timer.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.non.interrupting.boundary.timer.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.none.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.none.end.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.none.start.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.none.start.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.parallel.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.parallel.gateway.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.receive.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.receive.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.scripttask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.scripttask.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.sequence.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.sequence.flow.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.signal.event.catch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.signal.event.catch.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.signal.event.throw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.signal.event.throw.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.signal.event.warning.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.signal.event.warning.1.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.start.error.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.start.error.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.start.message.event.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.start.message.event.example.1.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.start.message.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.start.message.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.start.signal.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.start.signal.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.subprocess.eventSubprocess.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.subprocess.eventSubprocess.example.1.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.subprocess.eventSubprocess.example.2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.subprocess.eventSubprocess.example.2a.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.subprocess.eventSubprocess.example.2b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.subprocess.eventSubprocess.example.2b.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.subprocess.eventSubprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.subprocess.eventSubprocess.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.subprocess.with.boundary.timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.subprocess.with.boundary.timer.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.terminate.end.event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.terminate.end.event.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.throw.compensation.example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.throw.compensation.example1.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.transaction.subprocess.example.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.transaction.subprocess.example.1.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.transaction.subprocess.example.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.transaction.subprocess.example.2.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.transaction.subprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.transaction.subprocess.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.uel-expression.on.seq.flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.uel-expression.on.seq.flow.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.unbalanced.parallel.gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.unbalanced.parallel.gateway.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.user.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.user.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.web.service.task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.web.service.task.png -------------------------------------------------------------------------------- /zh_CN/images/bpmn.why.exclusive.jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/bpmn.why.exclusive.jobs.png -------------------------------------------------------------------------------- /zh_CN/images/custom.identityLinkType.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/custom.identityLinkType.example.png -------------------------------------------------------------------------------- /zh_CN/images/deployment.explorer.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/deployment.explorer.2.png -------------------------------------------------------------------------------- /zh_CN/images/deployment.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/deployment.explorer.png -------------------------------------------------------------------------------- /zh_CN/images/deployment.image.generation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/deployment.image.generation.png -------------------------------------------------------------------------------- /zh_CN/images/designer.add.update.site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.add.update.site.png -------------------------------------------------------------------------------- /zh_CN/images/designer.bpmn.file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.bpmn.file.png -------------------------------------------------------------------------------- /zh_CN/images/designer.create.activiti.project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.create.activiti.project.png -------------------------------------------------------------------------------- /zh_CN/images/designer.create.deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.create.deployment.png -------------------------------------------------------------------------------- /zh_CN/images/designer.deployment.dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.deployment.dir.png -------------------------------------------------------------------------------- /zh_CN/images/designer.embeddedprocess.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.embeddedprocess.canvas.png -------------------------------------------------------------------------------- /zh_CN/images/designer.listener.configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.listener.configuration.png -------------------------------------------------------------------------------- /zh_CN/images/designer.mailtask.property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.mailtask.property.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.eventsubprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.eventsubprocess.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.labels.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.poolandlanes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.poolandlanes.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.process.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.quick.change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.quick.change.png -------------------------------------------------------------------------------- /zh_CN/images/designer.model.quick.new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.model.quick.new.png -------------------------------------------------------------------------------- /zh_CN/images/designer.multipage.editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.multipage.editor.png -------------------------------------------------------------------------------- /zh_CN/images/designer.open.importedfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.open.importedfile.png -------------------------------------------------------------------------------- /zh_CN/images/designer.palette.add.money.help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.palette.add.money.help.png -------------------------------------------------------------------------------- /zh_CN/images/designer.palette.add.money.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.palette.add.money.png -------------------------------------------------------------------------------- /zh_CN/images/designer.palette.add.money.properties.required.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.palette.add.money.properties.required.png -------------------------------------------------------------------------------- /zh_CN/images/designer.palette.disable.all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.palette.disable.all.png -------------------------------------------------------------------------------- /zh_CN/images/designer.palette.disable.manual.and.script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.palette.disable.manual.and.script.png -------------------------------------------------------------------------------- /zh_CN/images/designer.preferences.userlibraries.activiti.empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.preferences.userlibraries.activiti.empty.png -------------------------------------------------------------------------------- /zh_CN/images/designer.preferences.userlibraries.activiti.moneytasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.preferences.userlibraries.activiti.moneytasks.png -------------------------------------------------------------------------------- /zh_CN/images/designer.preferences.userlibraries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.preferences.userlibraries.png -------------------------------------------------------------------------------- /zh_CN/images/designer.problem.view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.problem.view.png -------------------------------------------------------------------------------- /zh_CN/images/designer.project.maven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.project.maven.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.boolean.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.boolean.choice.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.combobox.choice.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.combobox.choice.invalid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.combobox.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.combobox.choice.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.datagrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.datagrid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.date.picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.date.picker.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.multiline.text.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.multiline.text.invalid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.multiline.text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.multiline.text.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.period.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.period.invalid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.period.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.period.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.radio.choice.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.radio.choice.invalid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.radio.choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.radio.choice.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.text.invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.text.invalid.png -------------------------------------------------------------------------------- /zh_CN/images/designer.property.text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.property.text.png -------------------------------------------------------------------------------- /zh_CN/images/designer.sequence.condition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.sequence.condition.png -------------------------------------------------------------------------------- /zh_CN/images/designer.servicetask.property.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.servicetask.property.png -------------------------------------------------------------------------------- /zh_CN/images/designer.timerboundary.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.timerboundary.canvas.png -------------------------------------------------------------------------------- /zh_CN/images/designer.unittest.generate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.unittest.generate.png -------------------------------------------------------------------------------- /zh_CN/images/designer.userlibraries.project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.userlibraries.project.png -------------------------------------------------------------------------------- /zh_CN/images/designer.xml.contentassist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/designer.xml.contentassist.png -------------------------------------------------------------------------------- /zh_CN/images/eclipse.setup.xml.catalog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/eclipse.setup.xml.catalog.png -------------------------------------------------------------------------------- /zh_CN/images/eclipsesetup.import.existing.projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/eclipsesetup.import.existing.projects.png -------------------------------------------------------------------------------- /zh_CN/images/eclipsesetup.import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/eclipsesetup.import.png -------------------------------------------------------------------------------- /zh_CN/images/eclipsesetup.select.directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/eclipsesetup.select.directory.png -------------------------------------------------------------------------------- /zh_CN/images/email.task.result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/email.task.result.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.case.overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.case.overview.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.database.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.deployments.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.jobs.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.my.instances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.my.instances.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.process.definition.image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.process.definition.image.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.process.definitions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.process.definitions.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.report.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.report.example.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.reporting.explained.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.reporting.explained.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.reporting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.reporting.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.reporting.start.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.reporting.start.form.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.tabs.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.tasks.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.upload.deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.upload.deployment.png -------------------------------------------------------------------------------- /zh_CN/images/explorer.users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/explorer.users.png -------------------------------------------------------------------------------- /zh_CN/images/financial.report.example.diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/financial.report.example.diagram.png -------------------------------------------------------------------------------- /zh_CN/images/forms.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/forms.explorer.png -------------------------------------------------------------------------------- /zh_CN/images/h2.console.login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/h2.console.login.png -------------------------------------------------------------------------------- /zh_CN/images/jmx.jconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/jmx.jconsole.png -------------------------------------------------------------------------------- /zh_CN/images/jpa.spring.example.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/jpa.spring.example.process.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.bpmn20.xml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.bpmn20.xml.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.capture.initiator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.capture.initiator.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.create.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.create.process.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.diagram.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.enhance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.enhance.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.form.in.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.form.in.explorer.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.form.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.process.in.explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.process.in.explorer.png -------------------------------------------------------------------------------- /zh_CN/images/kickstart.reference.form.properties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/kickstart.reference.form.properties.png -------------------------------------------------------------------------------- /zh_CN/images/li-chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/li-chevron.png -------------------------------------------------------------------------------- /zh_CN/images/migration.ant.convert.processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/migration.ant.convert.processes.png -------------------------------------------------------------------------------- /zh_CN/images/migration.code.overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/migration.code.overview.png -------------------------------------------------------------------------------- /zh_CN/images/migration.process.conversion.completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/migration.process.conversion.completed.png -------------------------------------------------------------------------------- /zh_CN/images/migration.processes.location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/migration.processes.location.png -------------------------------------------------------------------------------- /zh_CN/images/migration.zip.contents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/migration.zip.contents.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.convert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.convert.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.deploy.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.editor.canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.editor.canvas.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.example.process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.example.process.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.export.png -------------------------------------------------------------------------------- /zh_CN/images/modeler.import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/modeler.import.png -------------------------------------------------------------------------------- /zh_CN/images/new.bpmn.procdef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/new.bpmn.procdef.png -------------------------------------------------------------------------------- /zh_CN/images/org.activiti.designer.integration-0.6.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/org.activiti.designer.integration-0.6.0.jar -------------------------------------------------------------------------------- /zh_CN/images/taskform.example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/taskform.example.png -------------------------------------------------------------------------------- /zh_CN/images/taskform.vacation.request.adjust.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/taskform.vacation.request.adjust.form.png -------------------------------------------------------------------------------- /zh_CN/images/taskform.vacation.request.approve.form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/taskform.vacation.request.approve.form.png -------------------------------------------------------------------------------- /zh_CN/images/taskform.vacation.request.management.group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/taskform.vacation.request.management.group.png -------------------------------------------------------------------------------- /zh_CN/images/taskform.vacation.request.model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xuhuisheng/activiti-userguide/4351d015ba41cf4d650ba99ee7b4b756583061de/zh_CN/images/taskform.vacation.request.model.png -------------------------------------------------------------------------------- /zh_CN/index.adoc: -------------------------------------------------------------------------------- 1 | = Activiti 用户手册 2 | v 5.21.0 3 | :doctype: book 4 | :toc: left 5 | :toclevels: 5 6 | :icons: font 7 | :numbered: 8 | :source-highlighter: pygments 9 | :pygments-css: class 10 | :pygments-linenums-mode: table 11 | :compat-mode: 12 | 13 | 14 | include::ch01-Introduction.adoc[] 15 | 16 | include::ch02-GettingStarted.adoc[] 17 | 18 | include::ch03-Configuration.adoc[] 19 | 20 | include::ch04-API.adoc[] 21 | 22 | include::ch05-Spring.adoc[] 23 | 24 | include::ch06-Deployment.adoc[] 25 | 26 | include::ch07a-BPMN-Introduction.adoc[] 27 | 28 | include::ch07b-BPMN-Constructs.adoc[] 29 | 30 | include::ch08-Forms.adoc[] 31 | 32 | include::ch09-JPA.adoc[] 33 | 34 | include::ch10-History.adoc[] 35 | 36 | include::ch11-Designer.adoc[] 37 | 38 | include::ch12-Explorer.adoc[] 39 | 40 | include::ch13-Modeler.adoc[] 41 | 42 | include::ch14-REST.adoc[] 43 | 44 | include::ch15-Cdi.adoc[] 45 | 46 | include::ch16-Ldap.adoc[] 47 | 48 | include::ch17-Advanced.adoc[] 49 | 50 | include::ch18-Simulation.adoc[] 51 | 52 | include::ch19-tooling.adoc[] 53 | --------------------------------------------------------------------------------