Skip to content

BXMSDOC-3345-master: Fixed broken links in community docs. #1166

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 23, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

:context: decision-tables

include::decision-tables-con.adoc[]

include::decision-tables-use-case-con.adoc[leveloffset=+1]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[id='decision-tables-con']
[id='decision-tables-con_{context}']
= Decision tables

Decision tables are XLS or XLSX spreadsheets that you can use to define business rules in a tabular format and that you can upload to your project in {CENTRAL}. Each row in the spreadsheet is a rule, and each column is a condition, an action, or another rule attribute. After you create and upload your decision tables, the rules you defined are compiled into Drools Rule Language (DRL) rules as with all other rule assets.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ifdef::DM,PAM[]
{URL_UPLOADED_DECISION_TABLES}[{UPLOADED_DECISION_TABLES}].
endif::[]
ifdef::DROOLS,JBPM,OP[]
<<_decision_tables_in_spreadsheets>>.
xref:decision-tables-con_decision-tables[].
endif::[]

== Hit policies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ It contains the following properties:
* __Id__: The id of the node (which is unique within one node container).
* __Name__: The display name of the node.
* __Variables__: Additional variables can be defined to store data during the execution of this node.
See section "`<<_sec.data>>`" for details.

== Multi-instance sub-process

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Represents a timer that can trigger one or multiple times after a given period o
A Timer Event should have one incoming connection and one outgoing connection.
The timer delay specifies how long the timer should wait before triggering the first time.
When a Timer Event is reached in the process, it will start the associated timer.
The timer is canceled if the timer node is canceled (e.g., by completing or aborting the enclosing process instance). Consult the section "`<<_sec.timers>>`" for more information.
The timer is canceled if the timer node is canceled (e.g., by completing or aborting the enclosing process instance). Consult the section "`<<_timers>>`" for more information.
The Timer Event contains the following properties:

* __Id__: The id of the node (which is unique within one node container).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,9 @@ image::BPMN2/ProcessProperties.png[]

In addition to that following can be defined as well:

* __Variables__: Variables can be defined to store data during the execution of your process.
See section "`<<_sec.data>>`" for details.
* __Variables__: Variables can be defined to store data during the execution of your process. See section "`<<_variables>>`" for details.
* __Swimlanes__: Specify the swimlanes used in this process for assigning human tasks.
See chapter "`<<_ch.human_tasks>>`" for details.
See chapter "`<<_jbpmtaskservice>>`" for details.

.BPMN2 process variables
image::BPMN2/ProcessVariables.png[]
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,7 @@ <h3 id="_details_process_properties">Details: Process properties</h3>
<ul>
<li>
<p><em>Variables</em>: Variables can be defined to store data during the execution of your process.
See section &#8220;<a href="#_sec.data">[_sec.data]</a>&#8221; for details.</p>
See section &#8220;<a href="#_variables">[_variables]</a>&#8221; for details.</p>
</li>
<li>
<p><em>Swimlanes</em>: Specify the swimlanes used in this process for assigning human tasks.
Expand All @@ -641,4 +641,4 @@ <h3 id="_details_process_properties">Details: Process properties</h3>
</div>
</div>
</body>
</html>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ Before moving on to an example, this section explains what custom work items and

In short, we use the term _custom work item_ when we're describing a node in your process that represents a domain-specific task and as such, contains extra properties and is handled by a `WorkItemHandler` implementation.

Because it's a domain-specific __task__, that means that a _custom
Because it's a domain-specific __task__, that means that a _custom
work item_ is equivalent to a `<task>` or ``<task>``-type node in BPMN2.
However, a _``__WorkItem__``_ is also Java class instance that's used when a `WorkItemHandler` instance is called to complete the task or work item.

Depending on the BPMN2 editor you're using, you can create a custom work item definition in one of two ways:
Depending on the BPMN2 editor you're using, you can create a custom work item definition in one of two ways:

* If you're using __Designer__, then this means creating a MVEL based definition and adding the definition in Designer itself. A description of this can be found in the <<_sec.designer.workitems>> section in the <<_ch.designer>> chapter. Once this is done, a new service node will appear on the BPMN 2.0 palette.
* If you're using the _Eclipse BPMN 2.0 modeler plugin_ (which can be found http://eclipse.org/bpmn2-modeler/[here]), then you'll can modify the BPMN2 `<task>` or ``<task>``-type element to work with `WorkItemHandler` implementations. See the <<_sec.eclipse.task_nodes>> section in the <<_ch.eclipse_bpmn_plugin>> chapter.
* If you're using __Designer__, then this means creating a MVEL based definition and adding the definition in Designer itself. Once this is done, a new service node will appear on the BPMN 2.0 palette. For more information, see <<jBPMDesigner>>.
* If you're using the _Eclipse BPMN 2.0 modeler plugin_ (which can be found http://eclipse.org/bpmn2-modeler/[here]), then you'll can modify the BPMN2 `<task>` or ``<task>``-type element to work with `WorkItemHandler` implementations. For more information, see the <<jBPMEclipseModeler>> chapter.


[[_sec.workitemhandler.overview]]
Expand All @@ -25,7 +25,7 @@ A _work item handler_ is a Java class used to execute (or abort) work items.
That also means that the class implements the `org.kie.runtime.instance.WorkItemHandler` interface.
While jBPM provides some custom `WorkItemHandler` instances (listed below), a Java developer with a minimal knowledge of jBPM can easily create a new work item handler class with its own custom business logic.

Among others, jBPM offers the following `WorkItemHandler` implementations:
Among others, jBPM offers the following `WorkItemHandler` implementations:

* In the [path]_jbpm-bpmn2_ module, `org.jbpm.bpmn2.handler` package:
+
Expand All @@ -38,11 +38,11 @@ Among others, jBPM offers the following `WorkItemHandler` implementations:
There are a many more `WorkItemHandler` implementations present in the [path]_jbpm-workitems_ module.
If you're looking for specific integration logic with Twitter, for example, we recommend you take a look at the classes made available there.

In general, a ``WorkItemHandler``'s `$$.$$executeWorkItem(...)` and ``$$.$$abortWorkItem(...)`` methods will do the following:
In general, a ``WorkItemHandler``'s `$$.$$executeWorkItem(...)` and ``$$.$$abortWorkItem(...)`` methods will do the following:

. Extract information about the task being executed (or aborted) from the `WorkItem` instance
. Execute the necessary business logic. This might be mean interacting with a web service, database, or other technical component.
. Inform the {ENGINE} that the work item has been completed (or aborted) by calling one of the following two methods on the `WorkItemManager` instance passed to the method:
. Inform the {ENGINE} that the work item has been completed (or aborted) by calling one of the following two methods on the `WorkItemManager` instance passed to the method:


[source,java]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ A kmodule can contain multiple (1..n) kbase elements.
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -133,7 +133,7 @@ A kmodule can contain multiple (1..n) kbase elements.


When defining a KieBase or a KieSession, you have the option of declaring a scope for that bean.
For example, To force Spring to produce a new bean instance each time one is needed, you should declare the bean's scope attribute to be 'prototype'. Similar way if you want Spring to return the same bean instance each time one is needed, you should declare the bean's scope attribute to be 'singleton'.
For example, To force Spring to produce a new bean instance each time one is needed, you should declare the bean's scope attribute to be 'prototype'. Similar way if you want Spring to return the same bean instance each time one is needed, you should declare the bean's scope attribute to be 'singleton'.

=== IMPORTANT NOTE

Expand All @@ -144,7 +144,7 @@ For proper initialization of the kmodule objects (kbase/ksession), it is mandato
====
[source,xml]
----
<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -222,7 +222,7 @@ The same tag is used to define both Stateful (__org.kie.api.runtime.KieSession__
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -231,7 +231,7 @@ The same tag is used to define both Stateful (__org.kie.api.runtime.KieSession__


When defining a KieBase or a KieSession, you have the option of declaring a scope for that bean.
For example, To force Spring to produce a new bean instance each time one is needed, you should declare the bean's scope attribute to be 'prototype'. Similar way if you want Spring to return the same bean instance each time one is needed, you should declare the bean's scope attribute to be 'singleton'.
For example, To force Spring to produce a new bean instance each time one is needed, you should declare the bean's scope attribute to be 'prototype'. Similar way if you want Spring to return the same bean instance each time one is needed, you should declare the bean's scope attribute to be 'singleton'.

=== Kie:ReleaseId

Expand Down Expand Up @@ -599,7 +599,7 @@ kie-spring provides features to define the listeners as standalone (individual)
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -625,7 +625,7 @@ kie-spring provides features to define the listeners as standalone (individual)
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -648,14 +648,14 @@ The debug listeners print the corresponding Event toString message to _System.er
<kie:kmodule id="listeners_module">
<kie:kbase name="drl_kiesample" packages="drl_kiesample">
<kie:ksession name="ksession2">
<kie:agendaEventListener />
<kie:agendaEventListener />
<kie:processEventListener />
<kie:ruleRuntimeEventListener />
</kie:ksession>
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -689,7 +689,7 @@ The below sample provides more clarity.
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -716,7 +716,7 @@ It is also valid to define multiple beans of the same event listener types for a
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -769,7 +769,7 @@ Only one declaration of each type is allowed in a group.

<kie:kmodule id="listeners_module">
<kie:kbase name="drl_kiesample" packages="drl_kiesample">
<kie:ksession name="statelessWithGroupedListeners" type="stateless"
<kie:ksession name="statelessWithGroupedListeners" type="stateless"
listeners-ref="debugListeners"/>
</kie:kbase>
</kie:kmodule>
Expand All @@ -780,7 +780,7 @@ Only one declaration of each type is allowed in a group.
<kie:ruleRuntimeEventListener ref="mock-rr-listener"/>
</kie:eventListeners>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -811,7 +811,7 @@ This tag has no attributes and must be present directly under a <kie:ksession...
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -856,13 +856,13 @@ This tag has the following attributes and must be present directly under a <kie:
<kie:kbase name="drl_kiesample" packages="drl_kiesample">
<kie:ksession name="ConsoleLogger-statefulSession" type="stateful">
<kie:fileLogger id="fl_logger" file="#{ systemProperties['java.io.tmpdir'] }/log1"/>
<kie:fileLogger id="tfl_logger" file="#{ systemProperties['java.io.tmpdir'] }/log2"
<kie:fileLogger id="tfl_logger" file="#{ systemProperties['java.io.tmpdir'] }/log2"
threaded="true" interval="5"/>
</kie:ksession>
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand Down Expand Up @@ -922,7 +922,7 @@ The commands supported are
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -943,10 +943,10 @@ The commands supported are
----
<kie:kstore id="kstore" /> <!-- provides KnowledgeStoreService implementation -->

<bean id="myEmf"
<bean id="myEmf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="ds" />
<property name="persistenceUnitName"
<property name="persistenceUnitName"
value="org.drools.persistence.jpa.local" />
</bean>

Expand All @@ -967,7 +967,7 @@ The commands supported are
</kie:kbase>
</kie:kmodule>

<bean id="kiePostProcessor"
<bean id="kiePostProcessor"
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----
====
Expand All @@ -977,7 +977,7 @@ The commands supported are

This section provides details on leveraging other standard spring features when integrating with Drools Expert.

==== Using Spring Expressions (Spel)
==== Using Spring Expressions (Spel)



Expand Down Expand Up @@ -1015,14 +1015,14 @@ This section provides details on leveraging other standard spring features when
class="org.kie.spring.KModuleBeanFactoryPostProcessor"/>
----

==== Using Spring Profiles
==== Using Spring Profiles


Spring 3.1 introduces a new profile attribute to the beans element of the spring-beans schema.
This attribute acts as a switch when enabling and disabling profiles in different environments.
One potential use of this attribute can be to have the same kbase defined with debug loggers in 'dev' environment and without loggers in 'prod' environment.

The below code snippet illustrates the concept of 'profiles'.
The below code snippet illustrates the concept of 'profiles'.

[source,xml]
----
Expand Down Expand Up @@ -1056,9 +1056,9 @@ http://drools.org/schema/kie-spring http://drools.org/schema/kie-spring.xsd">


As shown above, the Spring XML contains the definition of the profiles.
While loading the _ApplicationContext_ you have to tell Spring which profile you`'re loading.
While loading the _ApplicationContext_ you have to tell Spring which profile you`'re loading.

There are several ways of selecting your profile and the most useful is by using the "spring.profiles.active" system property.
There are several ways of selecting your profile and the most useful is by using the "spring.profiles.active" system property.

[source]
----
Expand All @@ -1067,15 +1067,15 @@ ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
----


Obviously, it is not a good practice to hard code things as shown above and the recommended practice is to keep the system properties definitions independent of the application.
Obviously, it is not a good practice to hard code things as shown above and the recommended practice is to keep the system properties definitions independent of the application.

[source]
----
-Dspring.profiles.active="development"
----


The profiles can also be loaded and enabled programmtically
The profiles can also be loaded and enabled programmtically

[source]
----
Expand All @@ -1095,11 +1095,7 @@ This chapter describes the infrastructure used when configuring a human task ser
=== How to configure Spring with jBPM Human task


The jBPM human task server can be configured to use Spring persistence. <<_kie_spring_human_task_example>>
is an example of this which uses local transactions and Spring's thread-safe EntityManager proxy.

The following diagram shows the dependency graph used in <<_kie_spring_human_task_example>>
.
The jBPM human task server can be configured to use Spring persistence. The following is a dependency graph for a configuration that uses local transactions and Spring's thread-safe EntityManager proxy:

.Spring Human Task integration injection dependencies
image::Spring/ht-spring-deps.png[align="center"]
Expand Down