This reference is addressed to developers who want to create or edit Intershop 7 pipelines using Intershop Studio's Pipeline Editor.
This pipeline deals with the reserved pipeline nodes which serve as flow control nodes provided by the Pipeline Framework.
For more information about pipeline nodes which are not provided by the Pipeline FW see:
For mor information about pipelets see:
Concept - Pipeletsas well as the according chapter in the Application Programming Guide.
Pipelines are composed of pipelets, pipeline nodes and flow control nodes. While the pipelets perform the business logic, the flow control nodes are the decisive marking points in the pipeline flow. All available pipeline elements are displayed in the Pipeline Components palette of the Pipeline Editor. All pipeline nodes are linked by transitions, symbolized by arrows leading into and out of the nodes. The point at which a transition touches a node is symbolized by a small circle, called a connector.
A pipeline node's properties are displayed and edited in the Properties View. To view all properties:
Start nodes begin pipelines.
Start nodes have the following behavior and qualities:
strict
).AddToBasket-Start
calls the start node Start
of the pipeline AddToBasket
.Start nodes have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
An external identifier for the start name; must be unique within the pipeline.
Defines a session type for the pipeline.
Persistent sessions write session information to the database, and therefore have session fail over. If the server should stop during a session, the information is still available. Persistent sessions are used in pipeline activity occurring on the application server. User login, ordering, payment, etc., require a persistent session with information written to the database.
Note
If you set a pipeline to persistent session, do not use interaction continue nodes in the pipeline.
Transient sessions hold data in memory, but do not write it to the database. This means that pipelines in the transient mode do not have session fail over. A transient session would be used, for example, when an unrecognized user
browses a catalog. Transient sessions can be upgraded to persistent sessions; for example, once the user stops browsing anonymously and logs in.
Volatile sessions are equivalent to not using a session at all; they start and stop the session within the course of the pipeline.
Controls the way a pipeline may be accessed via this start node.
Public mode permits access from an external source using (for example) HTTP requests. Public start nodes are marked with a little globe.
Starting with Intershop 7.4 ( and the associated Intershop Studio 4.3.3) public start nodes have the option Secure. If this flag is set, the server only accepts secure HTTPS connections. Secure start nodes are decorated with a small key image in all Intershop views as well as in the Visual Pipeline Editor.
Private mode permits access from an internal source such as another pipeline, using call or jump nodes.
Include mode allows access via remote include calls (Web Adapter includes, <WAINCLUDE>
).
Strict pipelines will not pass the entire pipeline dictionary.
Strict start nodes define their required input parameteters. In this way, quasi an interface is created. Thus, the reuse is improved.
The visibility setting offers a possibility to restrict availability of the pipeline node. This setting is not supported yet.
Property |
Description |
---|---|
Cartridge |
The node is accessible only from the current cartridge. |
Private |
The node is accessible only from the current pipeline. |
Protected |
The node is accessible only from the current pipeline and overwriting pipelines, whose overwrite mode is set to inherit. |
Public |
There are no restrictions on access to the pipeline. |
Parameters tab allows to manage node's parameters. Via parameters tab, parameters can be created, added, removed and sorted.
This security setting determines what permissions a user must have to call this pipeline.
Note
The Permisions passed unlinked. A user needs all specified permissions. If the setting is not set, the pipeline cannot be called. Setting the context element to NONE
means that no permission necessary.
Error nodes are special start nodes with name Error
. Error nodes are used to define pipeline-specific error pipelines.
Error nodes have the following proprties:
A descriptive text that you can maintain for your own documentation purposes.
Required: Name has to be "Error".
Defines a session type for the pipeline.
Persistent sessions write session information to the database, and therefore have session fail over. If the server should stop during a session, the information is still available. Persistent sessions are used in pipeline activity occurring on the application server. User login, ordering, payment, etc., require a persistent session with information written to the database.
Note
If you set a pipeline to persistent session, do not use interaction continue nodes in the pipeline.
Transient sessions hold data in memory, but do not write it to the database. This means that pipelines in the transient mode do not have session fail over. A transient session would be used, for example, when an unrecognized user
browses a catalog. Transient sessions can be upgraded to persistent sessions; for example, once the user stops browsing anonymously and logs in.
Volatile sessions are equivalent to not using a session at all; they start and stop the session within the course of the pipeline.
Error nodes should be private to disallow external access.
Strict pipelines will not pass the entire pipeline dictionary.
Strict start nodes define their required input parameteters. In this way, quasi an interface is created. Thus, the reuse is improved.
The visibility setting offers a possibility to restrict availability of the pipeline node. This setting is not supported yet.
Property |
Description |
---|---|
Cartridge |
The node is accessible only from the current cartridge. |
Private |
The node is accessible only from the current pipeline. |
Protected |
The node is accessible only from the current pipeline and overwriting pipelines, whose overwrite mode is set to inherit. |
Public |
There are no restrictions on access to the pipeline. |
Parameters tab allows to manage node's parameters. Via parameters tab, parameters can be created, added, removed and sorted.
This security setting determines what permissions a user must have to call this pipeline.
Note
The Permisions passed unlinked. A user needs all specified permissions. If the setting is not set, the pipeline cannot be called. Setting the context element to NONE
means that no permission necessary.
End nodes are used to end pipelines and sub-pipelines without invoking a template.
End nodes do not clear the pipeline dictionary, and are thus often used to end subpipelines. Sub-pipelines usually end with end nodes; storefront pipelines always end with an interaction node or a jump node.
The end node name property gives each end node a unique identifier. It is used in the case of a sub-pipeline with branches that result in multiple end nodes (see Call Node). The end node name property is also used in conjunction with debugging pipelines.
End nodes have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
The name is an identifier that can be used multiple times within a pipeline.
Strict pipelines will not pass the entire pipeline dictionary.
Strict start nodes define their required input parameteters. In this way, quasi an interface is created. Thus, the reuse is improved.
For strict
end nodes: defines which return values are returned in the pipeline dictionary.
A stop node ends the execution of a pipeline.
It is used to handle error conditions in a sub-pipeline that require all calling pipelines to also be aborted. Transactions are rolled back when a stop node is encountered.
A stop node functions as an emergency break since it ends all pipelines. Conversely, end nodes only stop the execution of the sub-pipeline, and processing continues one level higher, in the calling pipeline. Without using a stop node, the same result can only be achieved by throwing an exception from within a pipelet.
A decision node compares two values in the pipeline dictionary or checks for a value in the pipeline dictionary. The result directs the flow of the pipeline into a yes branch or a no branch.
Decision nodes work with key-value pairs in the pipeline dictionary to direct the pipeline flow in two branches, based on whether the result is true
( yes branch) or false
( no branch).
For example, a decision node might check whether the payment status of an order is authorized. If the status is 1, authorized, the yes branch is used and the pipeline continues, e.g., the shipping status might be checked next. If the status is 0
, not authorized, the no branch is used (for example, a message may be called to alert the user that payment has not been authorized).
Decision nodes can check for the existence of any values, whether simple strings or complex objects. They can also compare values that are stored as simple strings or Java number objects.
A decision node is labeled automatically by choosing its operator.
A descriptive text that you can maintain for your own documentation purposes.
The dictionary key to compare.
Enter the name of a dictionary key in this field to compare its value with the condition key value in the pipeline dictionary. If the key does not exist in the pipeline dictionary, a PipelineExecutionExeption is thrown.
Enter a value in this field to be compared with the value associated with the key specified in the condition key field.
Note
Depending on the comparison operator, not all properties listed below may be visible.
Use one of the following operators:
Operator | Description |
---|---|
(String) Equals | For string comparisons. |
(String) Not Equals | For string comparisons. |
(String) Empty | For string comparisons. |
Equals | For numeric comparisons. |
Not Equals | For numeric comparisons. |
Lower Than or Equals <= | For numeric comparisons. |
Lower Than < | For numeric comparisons. |
Greater Than or Equals >= | For numeric comparisons. |
Greater Than > | For numeric comparisons. |
Defined | Checks existence of an item. |
Undefined | Checks existence of an item. |
Has Elements (loop) | Checks whether an iterable object has elements. |
Loop nodes are used to perform logic on all objects in an iterator. The iterator has already been stored in the pipeline dictionary.
A Loop node has the following properties:
A descriptive text that you can maintain for your own documentation purposes.
The name of the iterator that is stored in the pipeline dictionary.
The current element is written to this key during each iteration of the loop.
The interaction nodes (continue and end) are used to call a storefront template at a particular point in a pipeline. We recommend using interaction end nodes exclusively, as interaction continue nodes cannot be made session fail over-safe.
Interaction end nodes have the following qualities and behaviors:
Interaction end nodes have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
Referenced Name: required for non-dynamic template. To use this option, the template must have a constant name that is always used.
Object Path: required for dynamic templates. Use this option if the template to be used is based on variable data determined by the selected pipeline.
Choose from HTMLInteractionProcessor
or XMLInteractionProcessor
. By default, HTML processing is selected.
Choose false
if the template to be called is known; that is, the same template is always used and does not depend on variable information determined by the pipeline (see Template | Referenced Name above).
Choose true
if the template to be used is based on variable information determined somewhere else within the pipeline dictionary. For example, if a template is selected by the method SetDynamicTemplate
.
Defines the way the Web adapter delivers templates, either in buffered or streamed mode.
The default is buffered mode (true
).
In order to save system memory, enable streaming mode by setting this property to false
.
Also, for templates that rely on the output from XML pipelines for catalog data, or for templates with a lot of content, the streamed response delivered instantaneously improves storefront response time compared with the buffered
default option.
Note
None of the Web Adapter's caching/content-processing features is implemented for streamed responses.
Transaction in this context refers to a specified database transaction. Generally, transactions are specified either within pipelets or placed on connectors; they are very rarely used directly within templates.
Choose false
for most situations. This is also the default value.
Choose true
if a new database transaction is opened within the template itself. An example for this kind of behavior would be a template containing JavaScript code that requires writing data to the database. However, adding this kind of logic to templates is not encouraged in general.
Interaction continue nodes invoke templates just as interaction end nodes do. However, note the following important caveat:
Note
Interaction continue nodes cannot be made session fail over safe. Therefore, it is recommended that you always use interaction end nodes instead!
Interaction continue nodes have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
Referenced Name: required for non-dynamic template. To use this option, the template must have a constant name that is always used.
Object Path: required for dynamic templates. Use this option if the template to be used is based on variable data determined by the selected pipeline.
Choose from HTMLInteractionProcessor
or XMLInteractionProcessor
. By default, HTML processing is selected.
Choose false
if the template to be called is known; that is, the same template is always used and does not depend on variable information determined by the pipeline (see Template | Referenced Name above).
Choose true
if the template to be used is based on variable information determined somewhere else within the pipeline dictionary. For example, if a template is selected by the method SetDynamicTemplate
.
Defines the way the Web adapter delivers templates, either in buffered or streamed mode.
The default is buffered mode (true
).
In order to save system memory, enable streaming mode by setting this property to false
.
Also, for templates that rely on the output from XML pipelines for catalog data, or for templates with a lot of content, the streamed response delivered instantaneously improves storefront response time compared with the buffered
default option.
Note
None of the Web Adapter's caching/content-processing features is implemented for streamed responses.
Transaction in this context refers to a specified database transaction. Generally, transactions are specified either within pipelets or placed on connectors; they are very rarely used directly within templates.
Choose false
for most situations. This is also the default value.
Choose true
if a new database transaction is opened within the template itself. An example for this kind of behavior would be a template containing JavaScript code that requires writing data to the database. However, adding this kind of logic to templates is not encouraged in general.
Assign a unique name to the start portion of the interaction continue node. On the workspace, this name is joined with the name of the template. When template designers program a URL call to this node, they use the pipeline name
with the start name.
Defines a session type for the pipeline.
Persistent sessions write session information to the database, and therefore have session fail over. If the server should stop during a session, the information is still available. Persistent sessions are used in pipeline activity occurring on the application server. User login, ordering, payment, etc., require a persistent session with information written to the database.
Note
If you set a pipeline to persistent session, do not use interaction continue nodes in the pipeline.
Transient sessions hold data in memory, but do not write it to the database. This means that pipelines in the transient mode do not have session fail over. A transient session would be used, for example, when an unrecognized user
browses a catalog. Transient sessions can be upgraded to persistent sessions; for example, once the user stops browsing anonymously and logs in.
Volatile sessions are equivalent to not using a session at all; they start and stop the session within the course of the pipeline.
Call nodes allow a pipeline to use other pipelines and maintain a single pipeline dictionary. When a call node is used, the called pipeline is executed and completed, then processing returns to the call node in the original pipeline and continues.
Call nodes have the following qualities and behaviors:
The following image illustrates the data flow through Called Pipelines
Call nodes have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
Referenced Name: required for non-dynamic start node. To use this option, the start node must have a constant name that is always used.
Object Path: required for dynamic start node. Use this option if the start node to be used is selected based on variable data determined by the selected pipeline.
The values assigned to parameters.
The values assigned to return values.
An Extension Point Node allows to extend a pipeline with extension pipelines from other cartridges.
A extension point node belongs to the family of call nodes. A extension point node must be added to the pipeline you want to extend.
A descriptive text that you can maintain for your own documentation purposes.
The ID of the extension point (alphanumeric string).
The name should point out when an extension point is called.
To ensure that it is clear to the developer when a certain extension point is called it should meet following naming conventions:
Note
Make sure, that the extension point ID of the extension point node is unique within the pipeline.
You can make an extension point node strict
. A strict extension point node defines, which parameters are passed to the extension pipeline.
The values assigned to parameters.
The values assigned to return values.
Jump nodes are used to jump the business flow from one pipeline to another, without losing the pipeline dictionary. The difference between call and jump nodes is that jump nodes do not return the business flow to the original pipeline.
Jump node properties are defined very similar to call node properties. Jump nodes have the following qualities and behaviors:
Join nodes bring together two or three flows of a pipeline.
For example, an order pipeline may use a decision node in confirming the user registration. If the user is registered, the pipeline continues; if not, the pipeline can register the user and then continue placing the order. A join node can bring the no branch back to the order creation part of the pipeline.
Transitions are the arrow symbols connecting nodes and pipelets together in the workspace. Transitions can be used to set a database transaction explicitly at a particular point in a pipeline.
Transitions have the following properties:
A descriptive text that you can maintain for your own documentation purposes.
Transaction automatically get a qualified name composed by the pipeline name and the name of the preceding node or its connector.
Used to set explicit database transactions. The possible settings are summarized in the following table.
Value | Description |
---|---|
None | Default setting. If you do not need an explicit transaction, this value is set automatically and does not need to be changed. |
Begin | Ensures that a transaction is active. If a transaction is already active, the nested transaction counter is incremented. |
Commit | Decrements the nested transaction counter and commits the transaction to the database when the outermost nested transaction is reached. If no transaction is active, nothing happens. |
Flush Transaction (Store + Cache Clear) | Stores the current transaction to the database without committing it. Additionally the transactional ORM cache is cleared. |
Rollback Transaction | Used to undo any change done on processed data to the beginning of the outermost nested transaction. |
Store Transaction | Stores the current transaction to the database without committing it. |
Transaction Savepoint (Commit + Begin) | Used to write any data that has been changed within the current transaction. Any following rollback will only be effective to this point. |
Connectors are the points where transitions enter or exit a node or pipelet, and are symbolized by small circles or the node itself.
Every node except the start node has at least one entry point, represented by the node/pipelet itself; every node except the end node, jump node, and interaction end node has at least one exit point (next).
Disconnected connectors are shown as empty circles. Connected connectors are shown as a filled circle. Error connectors and "no"-next-successors of decision-nodes are shown in red. Loop entry's next connectors are shown in green. Pipelet default connectors are shown in blue.