Step Workflow

Prerequisites

The StepWorkflow is designed for the queue communication. Therefor Product 360 must also be configured for Queue communications. Please reach out to the Installation and Operation guide for the following areas:

  • Configuration of queues in the Product 360 server

  • Installation of ActiveVOS with ActiveMQ support and configuration of queues in ActiveVOS (Note: ActiveVOS version 9.2.4.6 is a prerequisite for queue based interactions between Product 360 and ActiveVOS)

  • Message headers and message formats for the various interactions between Product 360 and ActiveVOS

Installation

Before you can design your workflows based on the StepWorkflow you have to deploy these 4 resources:

  1. InfaResources.bpr

  2. StepWorkflow.bpr

  3. InfaNextSteps.bpr

  4. StepWorkflowExamples.bpr (optional)

with the BPM (AVOS) console.

Also it is possible that you deploy the workflows with your BPM designer. The resources of the projects are in the zip files:

  1. InfaResources.zip

  2. StepWorkflow.zip

  3. InfaNextSteps.zip

  4. StepWorkflowExamples.zip

Configuration

The base configuration of the StepWorkflow is defined in the BPM URN mappings. Therefore you have to define the following mappings in the BPM console.

URN

URL

Description

urn:p360.api.username

RestServiceUser

Name of the Product 360 user in which context the requests are fired

urn:p360.api.password

********

Password of the user above

urn:p360.api.manager

ActiveMQ

Name of the configured messaging service of the BPM server

urn:p360.api.queue

JNDI_P360_SERVICE_API

JNDI name of the queue for the service calls

urn:p360.rest.url

http://p360server:1512

Url of the Product 360 rest services

urn:dq.timeout

PT4H

Timeout for DQ calls

urn:p360.api.data.quality.queue

JNDI_P360_DATA_QUALITY

JNDI name of the queue for the Data Quality calls

urn:p360.api.data.quality.response.queue

bpm_response

Identifier if the response queue for DQ calls (default: bpm)

urn:list.get.timeout

PT4H

Timeout for list calls

urn:merge.delay

PT30S

Delay before starting the merge process

urn:error.task.group

Superuser

Identifier of the usergroup for which a classic task will be created if an error happens within the StepWorkflow. (i.e. Step Id is not defined)

urn:workflow.resource.project

StepWorkflowExamples

Name of the project (AVOS catalog) where the Mapfile is stored

StepWorkflow XML files

The StepWorkflow itself contains sever xml files in the catalog resources.

Name

Description

StepWorkflowMap.xml

This xml file defines the mapping between a Product 360 trigger configuration, Product 360 workflow identifier and a stepworflow.xml file.

StepWorkflow.xml

Such a file defines the steps for a specific business workflow. The name of the file should be adapted to your use case. A valid example can be ItemCreation.xml.

ManufacturerTeams.xml

This xml file defines the mapping between Product 360 usergroups and Product 360 suppliers (manufacturers). This is a showcase how to create tasks to different groups based on the manufacturer.

The StepWorkflowMap.xml file

Tag

Description

files

Within the files tag are the different file mappings that need to be defined

file

Each business workflow definition needs to be defined in this tag.

path

Path and name of the workflow. (Case-sensitive!)

triggerConfiguration

Name of the Product 360 trigger configuration.

workflowIdentifier

Identifier of the Product 360 workflow.

StepWorkflowMap
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<files>
<file>
<workflowIdentifier>Default_Workflow_Article</workflowIdentifier>
<path>project:/StepWorkflow/workflow/DefaultArticle.xml</path>
</file>
<file>
<workflowIdentifier>Default_Workflow_Product2G</workflowIdentifier>
<path>project:/StepWorkflow/workflow/DefaultProduct2G.xml</path>
</file>
<file>
<workflowIdentifier>Default_Workflow_Variant</workflowIdentifier>
<path>project:/StepWorkflow/workflow/DefaultVariant.xml</path>
</file>
<file>
<triggerConfiguration>Example01</triggerConfiguration>
<workflowIdentifier>Workflow_01</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_01.xml</path>
</file>
<file>
<triggerConfiguration>Example02</triggerConfiguration>
<workflowIdentifier>Workflow_02</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_02.xml</path>
</file>
<file>
<triggerConfiguration>Example03</triggerConfiguration>
<workflowIdentifier>Workflow_03</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_03.xml</path>
</file>
<file>
<triggerConfiguration>Example04</triggerConfiguration>
<workflowIdentifier>Workflow_04</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_04.xml</path>
</file>
<file>
<triggerConfiguration>Example05</triggerConfiguration>
<workflowIdentifier>Workflow_05</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_05.xml</path>
</file>
<file>
<triggerConfiguration>Example06</triggerConfiguration>
<workflowIdentifier>Workflow_06</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_06.xml</path>
</file>
<file>
<triggerConfiguration>Example07</triggerConfiguration>
<workflowIdentifier>Workflow_07</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_07.xml</path>
</file>
<file>
<triggerConfiguration>Example08</triggerConfiguration>
<workflowIdentifier>Workflow_08</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_08.xml</path>
</file>
<file>
<triggerConfiguration>Example09</triggerConfiguration>
<workflowIdentifier>Workflow_09</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_09.xml</path>
</file>
<file>
<triggerConfiguration>Example10</triggerConfiguration>
<workflowIdentifier>Workflow_10</workflowIdentifier>
<path>project:/StepWorkflow/workflow/Workflow_10.xml</path>
</file>
</files>
</imp:payload>

images/download/attachments/485279294/image2020-10-13_16-57-58.png

The StepWorkflow.xml file

The separate StepWorkflow.xml files define the different business workflows. In this chapter we will describe, and provide examples for different workflows. If you want to create new xml files within your workflow you have to open the StepWorkflow project in BPM designer and add a new xml file in the workflow folder with the tag imp:payload to ensure that this file will be deployed with your workflow. After that, you have to register this new xml file in the StepWorkflowMap.xml file.

Description of the StepWorkflow.xml file
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<!-- This is a description and sample values of the fields in the Workflow Detail files and should not be used directly
You should not use xml files with a lot of comments for live processing. Please remove all comments in your
Workflow Detail files -->
<workflow>
<label>My Stepworkflow</label>
<!-- Name of the workflow that is visible in the UI -->
<identifier>My_Stepworkflow_V1</identifier>
<!--Name of the workflow not visible in the UI must be unique thru all workflows -->
<version>1.0</version>
<!--version number of the workflow needs to be incremented by one if a Status, Usergroup, description, decision or
UiTemplate has been changed -->
<step>
<!-- These are the steps to the workflow. They do not have to include entering into a task -->
<id>1.1</id>
<!-- This is the identifier of each step. They must be unique within a workflow.
While generally numeric in nature, can be any string value. -->
<entity>Article</entity>
<!-- This is the entity container that the items will be placed in
within the workflow in Product 360. Valid values are:
Article
Variant
Product2G -->
<workflowStatus>StartCE01</workflowStatus>
<!-- This will be the status name within the Product 360 workflow. It will be the second part of the name of the task name in Product 360:
Product 360 task name = [Workflow] - [Status] - [Catalog] -->
<description>Desc 1.1</description>
<!-- Description of the status. It will be displayed in the task in the Product 360 UI -->
<enterStatus>Never</enterStatus>
<!-- The circumstances when an item should enter a status (task):
OnDqResults=Item(s) will enter the task/status on DQ failures or move to the next step on successfuls.
Never=This is for steps that do not include a task
Always=Item(s) will always enter a task/status the first time the step is run. Subsequent times are based on the dq results. -->
<batchSize>500</batchSize>
<!-- This is the batch size to use with trigger batching. If the tirggers coming from Product 360 have a large number of entities,
this can break them down. Batch sizes can make Product 360 requests more efficient -->
<userType>userGroup</userType> <!-- Type of the default assignee valid values:
user
userGroup
supplier ==> mandatory field: <getField>Article.MainSupplier->Party.Name</getField> has to be set!-->
<userName>Standardusers</userName>
<!--Default assignee of the task. Should be either a Product 360 user or userGroup -->
<uiTemplate>Item approve UI</uiTemplate>
<!-- default UI of the task -->
<singleChoice>true</singleChoice> <!-- This is for Rejects only and determines if you can have more than one choice. Should be true or nothing as it defaults to 'false' -->
<rejectDecision>
<id>p360.bpm.reject.TRIGGER:4.1</id> <!-- Always starts with 'p360.bpm.reject.' Can continue with:
STEP : Which step is rejected ex. p360.bpm.reject.STEP:5.1
TRIGGER : Which parallel task is rejected ex. p360.bpm.reject.TRIGGER:4.1
SERVICE : Which process is generated with the reject ex. p360.bpm.reject.TaskByManufacturer-Workflow -->
<label>Maintain texts</label> <!-- The label of the task being rejected. -->
</rejectDecision>
<executeDq>Always</executeDq>
<!-- The circumstances when a DQ should be run:
Always=DQ will be executed whenever this step is run regardless of whether it was run as a next step or from a trigger.
OnTrigger=DQ will run only when the process was started from a trigger in Product 360 and not from a previous step.
Never=DQ is not used for this step. -->
<dqService>ExecuteDqBatch-Process</dqService>
<!-- The service name of the process that will be handle the processing of the dq or any custom built business rules. -->
<dqRule>Item image check</dqRule>
<!-- List any Product 360 DQ rules you want to have run with a step. You can have multiple entries. -->
<dqRuleGroup>Item descriptions</dqRuleGroup>
<!-- List any Product 360 DQ ruleGroups you want to have run with a step. You can have multiple entries. -->
<dqChannel>01 Classify</dqChannel>
<!-- List any Product 360 DQ channels you want to have run with a step. You can have multiple entries. -->
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<!-- This field allows the step to update a field in Product 360. The field must be fully qualified. -->
<updateFieldValue>600</updateFieldValue>
<!-- This is the value for the update. -->
<getField>Article.CurrentStatus</getField>
<!-- List of any fields directly on the entity that will be required. These entries must be fully qualified. -->
<nextStep>STEP:3.1</nextStep>
<!-- This is the step that the item(s) will move to if dq is successful or there is no dq.
It must start with STEP: to move to a step. Otherwise it will be interpreted as a BPEL service that you can use for custom code.
In both cases a the item(s) are sent in list using the ItemMap schema. -->
<dqFailStep>TaskByManufacturer-Workflow</dqFailStep>
<!-- This is the step that the item(s) move to if dq fails It must start with STEP: to move to a step.
Otherwise it will be interpreted as a BPEL service that you can use for custom code.
In both cases a the item(s) are sent in list using the ItemMap schema. -->
<nextStep>StepWorkflow_ParallelTasks-Workflow</nextStep>
<!-- StepWorkflow_ParallelTasks-Workflow should be used for steps that run in parallel -->
<dqFailStep>StepWorkflow_ParallelTasks-Workflow</dqFailStep>
<!-- StepWorkflow_ParallelTasks-Workflow should be used for steps that run in parallel -->
<parallelStep>4.1</parallelStep>
<!-- This is where you list parallel steps if a step should go to multiple steps at the same time -->
<parallelNextStep>5.1</parallelNextStep>
<!-- If all the parallel steps finish, then the item will move to this step -->
<dqFailTrigger>StepWorkflow_ParallelTasks-Finish-3</dqFailTrigger>
<!-- Used to route to the Parallel steps after logic in StepWorkflow process is finished. -->
<nextTrigger>StepWorkflow_ParallelTasks-Finish-3</nextTrigger>
<!-- Used to route to the Parallel steps after logic in StepWorkflow process is finished. -->
</step>
</workflow>
</imp:payload>

Examples

Steps to run the examples

  • Check the table "Prerequisites for Product 360" and prepare your system accordingly.

Option 1

  • Open the BPM console in your web browser and navigate to Admin/URN Mappings and create the mapping "urn:workflow.resource.project" and set the value to "StepWorkflowExamples".

  • images/download/attachments/485279294/image2022-1-17_19-18-57.png
  • Define the trigger in the perspective "Business process management" in your MDM-Product 360 Desktop client. (refer to the StepWorkflowMap file in the examples project)

Option 2

  • Open the BPM console in your web browser and navigate to Catalog/Contributions/project:/StepWorkflowExamples and click on it.

    images/download/attachments/485279294/image2020-10-27_15-25-0.png
  • Select one of the png files and click on it to see the flow of the workflow.

    images/download/attachments/485279294/image2020-10-27_15-27-3.png
  • Select one of the xml files, i.e. Example_01.xml click on it and copy the content into your clipboard.

  • Now navigate to Catalog/Contributions/project:/StepWorkflow and click on it.

  • Select one of the xml files, i.e. Workflow_01.xml and click on it to enable the editing mode.

  • Copy the content of your clipboard and paste it into the browser window.

  • Click on update.

  • Make the necessary adjustments in the file: StepWorkflowMap.xml. (It is recommended to use Workflow_01.xml for the Example_01.xml and so on.)

  • Define the trigger in the perspective "Business process management" in your MDM-Product 360 Desktop client.

  • Finished!

Example 1 (1 Task)

The first workflow only puts items into a workflow task called “My first task” For this workflow task we need 2 steps. The first step checks whether the affected item is already in this workflow, if not it will be put into the task. The first step is mandatory and will be very useful in subsequent examples. With this approach you can ensure that the item is not in the same workflow more than one time. This is very important for typical approval workflows.

Diagram for example 1

images/download/attachments/400048885/SW_Example1.png

Explanation of the steps example 1

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "My first task".

Product 360 prerequisites for example 1

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Info

Standarduser is the Identifier of the Usergroup!

StepWorkflow.xml file for example 1

Example 1
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 1</label>
<identifier>Workflow_01</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My first task</workflowStatus>
<description>My first workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0

This steps checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq fails.

Step 1

This steps checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My first task

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My first workflow task

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

Example 2 (2 Tasks)

The next example extends the first example with a further task after the first task.

Diagram for example 2

images/download/attachments/400049138/SW_Example_02.png

Product 360 prerequisites for example 2

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Explanation of the steps example 2

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "My task 1".

2

Put the item into the task "My task 2".

StepWorkflow.xml file for example 2

Example 2
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 2</label>
<identifier>Workflow_02</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Only the differences to the previous example will be explained.

Step 0

Step 0 is an exact copy of the step 0 of the example 1.

Step 1

Step 1 is nearly the same as the step 1 of the example above. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in example 1.

workflowStatus

My task 1

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 1

Description of the status.

nextStep

STEP:2

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 2

Step 2 is mostly a copy of step 1.

Key

Value

Description

...

...

Same keys and values than step 1.

id

2

Identifier of the step.

workflowStatus

My task 2

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 2

Description of the status.

nextStep

This step contains no next step, because the workflow have to end at this point.

Example 3 (2 Tasks with DQ checks)

The next example extends the previous example so that the tasks will only be created when the DQ check fails.

Diagram for example 3

images/download/attachments/400049166/SW_Example03.png

Product 360 prerequisites for example 3

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

DQ Channel

Channel 1

DQ Channel

Channel 2

Explanation of the steps example 3

Step

Description

0

Check whether item is already in this workflow.

1

Run DQ check "Channel 1" if fail ==>put the item into the task "My task 1"

2

Run DQ check "Channel 2" if fail ==>put the item into the task "My task 2"

StepWorkflow.xml file for example 3

Example 3
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 3</label>
<identifier>Workflow_03</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 1</dqChannel>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 2</dqChannel>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Only the differences to the previous example will be explained.

Step 0

Step 0 is an exact copy of the step 0 of the example 2.

Step 1

Step 1 is nearly the same as the step 1 of example 2. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in example 2.

enterStatus

OnDqResults

The circumstances when an item should enter a status (task). In this case only when DQ check will fail!

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqBatch-Process

The service name of the process that will be handle the processing of the dq.

dqChannel

Channel 1

Name of the DQ channel which will be executed.

Step 2

Step 2 is nearly the same as the step 1 of the example above.

Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in example 2.

enterStatus

OnDqResults

The circumstances when an item should enter a status (task). In this case only when DQ check will fail!

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqBatch-Process

The service name of the process that will be handle the processing of the DQ.

dqChannel

Channel 2

Name of the DQ channel which will be executed.

Example 4 (5 Tasks with DQ checks, parallel and sequential)

Example 4 starts with 2 sequential tasks, after that there are 2 tasks which are running in parallel and after finishing those 2 parallel tasks the last task will start.

Diagram for example 4

images/download/attachments/400049199/SW_Example04.png

Product 360 prerequisites for example 4

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

DQ Channel

Channel 1

DQ Channel

Channel 2

DQ Channel

Channel 3.1

DQ Channel

Channel 3.2

DQ Channel

Channel 4

Explanation of the steps example 4

Step

Description

0

Check whether item is already in this workflow.

1

Run DQ check "Channel 1" if fail ==>put the item into the task "My task 1"

2

Run DQ check "Channel 2" if fail ==>put the item into the task "My task 2"

3.1

Run DQ check "Channel 3.1" if fail ==>put the item into the task "My task 3.1"

3.2

Run DQ check "Channel 3.2" if fail ==>put the item into the task "My task 3.2"

4

Run DQ check "Channel 4" if fail ==>put the item into the task "My task 4"

StepWorkflow.xml file for example 4

Example 4
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 4</label>
<identifier>Workflow_04</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 1</dqChannel>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 2</dqChannel>
<nextStep>StepWorkflow_ParallelTasks-Workflow</nextStep>
<parallelStep>3.1</parallelStep>
<parallelStep>3.2</parallelStep>
<parallelNextStep>4</parallelNextStep>
</step>
<step>
<id>3.1</id>
<entity>Article</entity>
<workflowStatus>My task 3.1</workflowStatus>
<description>My task 3.1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 3.1</dqChannel>
<dqFailTrigger>StepWorkflow_ParallelTasks-Finish-1</dqFailTrigger>
<nextTrigger>StepWorkflow_ParallelTasks-Finish-1</nextTrigger>
</step>
<step>
<id>3.2</id>
<entity>Article</entity>
<workflowStatus>My task 3.2</workflowStatus>
<description>My task 3.2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 3.2</dqChannel>
<dqFailTrigger>StepWorkflow_ParallelTasks-Finish-2</dqFailTrigger>
<nextTrigger>StepWorkflow_ParallelTasks-Finish-2</nextTrigger>
</step>
<step>
<id>4</id>
<entity>Article</entity>
<workflowStatus>My task 4</workflowStatus>
<description>My task 4</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 4</dqChannel>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Only the differences to the previous example will be explained.

Step 0

Step 0 is an exact copy of the step 0 of example 3.

Step 1

Step 1 is an exact copy of the step 1 of example above 3.

Step 2

Step 2 is nearly the same as the step 2 of the example above. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in example 3.

nextStep

StepWorkflow_ParallelTasks-Workflow

StepWorkflow_ParallelTasks-Workflow defines that the next steps run in parallel

parallelStep

3.1

Identifier of the first parallel step, the item will be moved to this parallel step. The maximum number of parallel steps is 6.

parallelStep

3.2

Identifier of the second parallel step, the item will be moved also to this parallel step.

parallelNextStep

4

The item will be moved to this step when all parallel steps are finished.

Step 3.1

Key

Value

Description

id

3.1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My task 3.1

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 3.1

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

OnDqResults

The circumstances when an item should enter a status (task). In this case only when DQ check will fail!

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqBatch-Process

The service name of the process that will be handle the processing of the DQ.

dqChannel

Channel 3.1

Name of the DQ channel which will be executed.

dqFailTrigger

StepWorkflow_ParallelTasks-Finish-1

This is the service name of the partner link of the parallel tasks. It will be called if DQ fails to ensure that the item will remain in the status (task).

nextTrigger

StepWorkflow_ParallelTasks-Finish-1

This is another service name of the partner link of the parallel tasks. It will be called if the item will leave this step.

Step 3.2

Step 3.2 is nearly the same as the step 3.1. Only the differences are shown in the next table.

Key

Value

Description

id

3.1

Identifier of the step.

workflowStatus

My task 3.2

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 3.2

Description of the status.

dqChannel

Channel 3.2

Name of the DQ channel which will be executed.

dqFailTrigger

StepWorkflow_ParallelTasks-Finish-2

This is the service name of the partner link of the parallel tasks. It will be called if DQ fails to ensure that the item will remain in the status (task).

nextTrigger

StepWorkflow_ParallelTasks-Finish-2

This is another service name of the partner link of the parallel tasks. It will be called if the item will leave this step.

Step 4

Key

Value

Description

id

4

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My task 4

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 4

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

OnDqResults

The circumstances when an item should enter a status (task). In this case only when DQ check will fail!

batchSize

500

Batch size to use with trigger batching.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqBatch-Process

The service name of the process that will be handle the processing of the DQ.

dqChannel

Channel 4

Name of the DQ channel which will be executed.

Example 5 (extending example 4 with an approval step)

The next example extends the previous example with an approval step at the end of the workflow, so the approver can reject the item to all of the previous steps.

Diagram for example 5

images/download/attachments/400049212/SW_Example05.png

Product 360 prerequisites for example 5

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

DQ Channel

Channel 1

DQ Channel

Channel 2

DQ Channel

Channel 3.1

DQ Channel

Channel 3.2

DQ Channel

Channel 4

Explanation of the steps example 5

Step

Description

0

Check whether item is already in this workflow

1

Run DQ check "Channel 1" if fail ==>put the item into the task "My task 1"

2

Run DQ check "Channel 2" if fail ==>put the item into the task "My task 2"

3.1

Run DQ check "Channel 3.1" if fail ==>put the item into the task "My task 3.1"

3.2

Run DQ check "Channel 3.2" if fail ==>put the item into the task "My task 3.2"

4

Run DQ check "Channel 4" if fail ==>put the item into the task "My task 4"

5.0

Check whether item is already in this workflow.

5

Approve task with rejection options to all previous tasks

StepWorkflow.xml file for example 5

Example 5
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 5</label>
<identifier>Workflow_05</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 1</dqChannel>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 2</dqChannel>
<nextStep>StepWorkflow_ParallelTasks-Workflow</nextStep>
<parallelStep>3.1</parallelStep>
<parallelStep>3.2</parallelStep>
<parallelNextStep>4</parallelNextStep>
</step>
<step>
<id>3.1</id>
<entity>Article</entity>
<workflowStatus>My task 3.1</workflowStatus>
<description>My task 3.1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 3.1</dqChannel>
<dqFailTrigger>StepWorkflow_ParallelTasks-Finish-1</dqFailTrigger>
<nextTrigger>StepWorkflow_ParallelTasks-Finish-1</nextTrigger>
</step>
<step>
<id>3.2</id>
<entity>Article</entity>
<workflowStatus>My task 3.2</workflowStatus>
<description>My task 3.2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 3.2</dqChannel>
<dqFailTrigger>StepWorkflow_ParallelTasks-Finish-2</dqFailTrigger>
<nextTrigger>StepWorkflow_ParallelTasks-Finish-2</nextTrigger>
</step>
<step>
<id>4</id>
<entity>Article</entity>
<workflowStatus>My task 4</workflowStatus>
<description>My task 4</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>ExecuteDqBatch-Process</dqService>
<dqChannel>Channel 4</dqChannel>
<nextStep>STEP:5.0</nextStep>
</step>
<step>
<id>5.0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:5</dqFailStep>
</step>
<step>
<id>5</id>
<entity>Article</entity>
<workflowStatus>Approve</workflowStatus>
<description>Approval</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<rejectTrigger>StepWorkflow_ParallelTasks-Reject</rejectTrigger>
<singleChoice>false</singleChoice>
<rejectDecision>
<id>p360.bpm.reject.STEP:1</id>
<label>Reject to task 1</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.STEP:2</id>
<label>Reject to task 2</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.TRIGGER:3.1</id>
<label>Reject to task 3.1</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.TRIGGER:3.2</id>
<label>Reject to task 3.2</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.STEP:4</id>
<label>Reject to task 4</label>
</rejectDecision>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Only the differences to the previous example will be explained.

Step 0

Step 0 is an exact copy of the step 0 of the example 4.

Step 1

Step 1 is an exact copy of the step 1 of the example 4.

Step 2

Step 2 is an exact copy of the step 2 of the example 4.

Step 3.1

Step 3.1 is an exact copy of the step 3.1 of the example 4.

Step 3.2

Step 3.2 is an exact copy of the step 3.2 of the example 4.

Step 4

Step 4 is nearly the same as the step 4 of the example 4. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in the example 4.

nextStep

STEP:5.0

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 5.0

This steps checks only whether the item is already in this workflow. If not the executed next step is 5. If yes the workflow will end to avoid that the item will go to the step 5 (Approve) until it is somewhere else in the workflow.

Key

Value

Description

id

5.0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:5

The item will be moved to the step with the identifier 5 if the above DQ fails.

Step 5

This steps checks only whether the item is already in this workflow. If not the executed next step is 5. If yes the workflow will end to avoid that the item will go to the step 5 (Approve) until it is somewhere else in the workflow.

Key

Value

Description

id

5

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Approve

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

Approval

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

batchSize

500

Batch size to use with trigger batching.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

rejectTrigger

StepWorkflow_ParallelTasks-Reject

Endpoint for the reject trigger of parallel states (tasks).

singleChoice

false

This is for Rejects only and determines if you can have more than one choice. ==> The workflow can be rejected to all steps in one decision.

<rejectDecision>id

p360.bpm.reject.STEP:1

Identifier of the 1st reject step.

<rejectDecision>label

Reject to task 1

Label of the 1st rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.STEP:2

Identifier of the 2nd reject step.

<rejectDecision>label

Reject to task 2

Label of the 2nd rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.TRIGGER:3.1

Identifier of the 3rd reject step. (In this case you have to reject to a trigger!)

<rejectDecision>label

Reject to task 3.1

Label of the 3rd rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.TRIGGER:3.2

Identifier of the 4th reject step. (In this case you have to reject to a trigger!)

<rejectDecision>label

Reject to task 3.2

Label of the 4th rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.STEP:4

Identifier of the 5th reject step.

<rejectDecision>label

Reject to task 4

Label of the 5th rejection. This label will show up in the UI.

Example 6 (2 tasks (incl. 1 supplier task) + modifying of fields)

The next example extends the example 2 workflow with modifying of fields within the workflow after finishing the tasks,

Info

Please consider to define your trigger in Product 360 carefully, because if the initiator "Service API" is not excluded for this workflow will run in a loop!

images/download/attachments/400049235/image2020-10-23_10-7-17.png

Diagram for example 6

images/download/attachments/400049235/SW_example06.png

Product 360 prerequisites for example 6

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Explanation of the steps example 6

Step

Description

0

Check whether item is already in this workflow

1

Put the item into the supplier task "My task 1"

2

Modify the field Article.CurrentStatus to the value 200

3

Put the item into the task "My task 2"

4

Modify the field Article.CurrentStatus to the value 300

StepWorkflow.xml file for example 6

Example 6
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 6</label>
<identifier>Workflow_06</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
<getField>Article.MainSupplier->Party.Name</getField>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>supplier</userType>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<getField>Article.CurrentStatus</getField>
<nextStep>STEP:2</nextStep>
<nextStep>STEP:3</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>200</updateFieldValue>
</step>
<step>
<id>3</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<nextStep>STEP:4</nextStep>
</step>
<step>
<id>4</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>300</updateFieldValue>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0

Step 0 is an exact copy of the step 0 of the example 5 (incl. getField for supplier tasks).

Step 0

This steps checks only whether the item is already in this workflow. The difference to the previous step 0 steps is, that in this case the mandatory field "Article.MainSupplier->Party.Name " for supplier tasks is called. When you work with supplier tasks it is necessary that this getField command is part of the very first step of the StepWorkflow.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq fails.

getField

Article.MainSupplier-&gt;Party.Name

List of any fields directly on the entity that will be required. These entries must be fully qualified.

Step 1

This step puts the item into a workflow task and when leaving this task the steps 2 and 3 are executed.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My task 1

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 1

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

batchSize

500

Batch size to use with trigger batching.

userType

supplier

Type of the default assignee of this task. In this case it will be assigned to the supplier of the cataslog.

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

getField

Article.CurrentStatus

List of any fields directly on the entity that will be required. These entries must be fully qualified.

nextStep

STEP:2

Identifier of the next step, The item will be moved to the next step, when this step is finished.

nextStep

STEP:3

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 2

Step 2 will manipulate data within the workflow. In this example we will change the field CurrentStatus of the entity Article.

Key

Value

Description

id

2

Same keys and values than in the example above.

entity

Article

Entity container for this workflow.

updateFieldDescriptor

Article.CurrentStatus

This field allows the step to update a field in Product 360. The field must be fully qualified.

updateFieldValue

200

This is the value for the update.

The next table shows you how to qualify field.

Key

Value

FieldDescriptor

Article.CurrentStatus

FieldDescriptor

Article.MainSupplier-&gt;Party.Name

FieldDescriptor

Article.ManufacturerName

FieldDescriptor

ArticleLang.DescriptionShort(9,"Default Channel")

Step 3

This step puts the item again into a workflow task and when leaving this task the steps 4 is exectuted.

Key

Value

Description

id

3

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My task 2

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My task 2

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

batchSize

500

Batch size to use with trigger batching.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

nextStep

STEP:4

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 4

Step 4 is similar to step 2, but it will set another value to the field.

Key

Value

Description

id

4

Same keys and values than in the example above.

entity

Article

Entity container for this workflow.

updateFieldDescriptor

Article.CurrentStatus

This field allows the step to update a field in Product 360. The field must be fully qualified.

updateFieldValue

300

This is the value for the update.

Example 7 (2 Tasks + modifying of fields + approval step)

The next example extends the example 6 workflow with modifying of fields within the workflow after finishing the tasks followed by an approval task which also sets data if the task(s) are rejected.

Diagram for example 7

images/download/attachments/400049245/SW_Example07.png

Product 360 prerequisites for example 7

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Explanation of the steps example 7

Step

Description

0

Check whether item is already in this workflow

1

Put the item into the supplier task "My task 1"

2

Modify the field Article.CurrentStatus to the value 200

3

Put the item into the task "My task 3"

4

Modify the field Article.CurrentStatus to the value 300

5.0

Check whether item is already in this workflow

5

Approve task with rejection options to all previous tasks. If rejected modify the field Article.CurrentStatus to the value 300

6

Modify the field Article.CurrentStatus to the value 400

StepWorkflow.xml file for example 7

Example 7
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 7</label>
<identifier>Workflow_07</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
<getField>Article.MainSupplier->Party.Name</getField>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>supplier</userType>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<getField>Article.CurrentStatus</getField>
<nextStep>STEP:2</nextStep>
<nextStep>STEP:3</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>200</updateFieldValue>
</step>
<step>
<id>3</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<nextStep>STEP:4</nextStep>
<nextStep>STEP:5.0</nextStep>
</step>
<step>
<id>4</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>300</updateFieldValue>
</step>
<step>
<id>5.0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:5</dqFailStep>
</step>
<step>
<id>5</id>
<entity>Article</entity>
<workflowStatus>Approve</workflowStatus>
<description>Approval</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<rejectTrigger>StepWorkflow_ParallelTasks-Reject</rejectTrigger>
<singleChoice>true</singleChoice>
<rejectDecision>
<id>p360.bpm.reject.STEP:1</id>
<label>Reject to task 1</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.STEP:3</id>
<label>Reject to task 2</label>
</rejectDecision>
<rejectFieldDescriptor>Article.CurrentStatus</rejectFieldDescriptor>
<rejectFieldValue>100</rejectFieldValue>
<nextStep>STEP:6</nextStep>
</step>
<step>
<id>6</id>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>400</updateFieldValue>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0 - Step 3

These steps are exact copy of the example 6.

Step 4

Step 4 is nearly the same as the step 4 of the example above. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in the example 6.

nextStep

STEP:5.0

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 5.0

This steps checks only whether the item is already in this workflow. If not the executed next step is 5. If yes the workflow will end to avoid that the item will go to the step 5 (Approve) until it is somewhere else in the workflow.

Key

Value

Description

id

5.0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:5

The item will be moved to the step with the identifier 5 if the above DQ fails.

Step 5

This is the approval step with modifying a field while rejecting.

Key

Value

Description

id

5

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Approve

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

Approval

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

batchSize

500

Batch size to use with trigger batching.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

rejectTrigger

StepWorkflow_ParallelTasks-Reject

Endpoint for the reject trigger of parallel states (tasks).

singleChoice

true

This is for Rejects only and determines if you can have more than one choice. ==> The workflow can be rejected to only one step,

<rejectDecision>id

p360.bpm.reject.STEP:1

Identifier of the 1st reject step.

<rejectDecision>label

Reject to task 1

Label of the 1st rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.STEP:3

Identifier of the 2nd reject step.

<rejectDecision>label

Reject to task 2

Label of the 2nd rejection. This label will show up in the UI.

rejectFieldDescriptor

Article.CurrentStatus

This is the field the will be modifed if the task will be rected. The field must be fully qualified.

rejectFieldValue

100

This is the value for the update.

nextStep

STEP:6

Identifier of the next step, The item will be moved to the next step, when this step is approved.

Step 6

Step 2 will manipulate data within the workflow. In this example we will change the field CurrentStatus of the entity Article.

Key

Value

Description

id

6

Same keys and values than in the example 6.

entity

Article

Entity container for this workflow.

updateFieldDescriptor

Article.CurrentStatus

This field allows the step to update a field in Product 360. The field must be fully qualified.

updateFieldValue

400

This is the value for the update.

Example 8 (2 Tasks modifying of fields approval step merge)

The next example extends the example 7 workflow with merging the item(s) after the approval.

Diagram for example 8

images/download/attachments/400049256/SW_Expample08.png

Product 360 prerequisites for example 8

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Explanation of the steps example 8

Step

Description

0

Check whether item is already in this workflow

1

Put the item into the supplier task "My task 1"

2

Modify the field Article.CurrentStatus to the value 200

3

Put the item into the task "My task 3"

4

Modify the field Article.CurrentStatus to the value 300

5.0

Check whether item is already in this workflow

5

Approve task with rejection options to all previous tasks. If rejected modify the field Article.CurrentStatus to the value 300

6

Modify the field Article.CurrentStatus to the value 400

7

Merge the item

StepWorkflow.xml file for example 8

Example 8
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 8</label>
<identifier>Workflow_08</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
<getField>Article.MainSupplier->Party.Name</getField>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My task 1</workflowStatus>
<description>My task 1</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>supplier</userType>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<getField>Article.CurrentStatus</getField>
<nextStep>STEP:2</nextStep>
<nextStep>STEP:3</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>200</updateFieldValue>
</step>
<step>
<id>3</id>
<entity>Article</entity>
<workflowStatus>My task 2</workflowStatus>
<description>My task 2</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<nextStep>STEP:4</nextStep>
<nextStep>STEP:5.0</nextStep>
</step>
<step>
<id>4</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>300</updateFieldValue>
</step>
<step>
<id>5.0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:5</dqFailStep>
</step>
<step>
<id>5</id>
<entity>Article</entity>
<workflowStatus>Approve</workflowStatus>
<description>Approval</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<rejectTrigger>StepWorkflow_ParallelTasks-Reject</rejectTrigger>
<singleChoice>true</singleChoice>
<rejectDecision>
<id>p360.bpm.reject.STEP:1</id>
<label>Reject to task 1</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.STEP:3</id>
<label>Reject to task 2</label>
</rejectDecision>
<rejectFieldDescriptor>Article.CurrentStatus</rejectFieldDescriptor>
<rejectFieldValue>100</rejectFieldValue>
<nextStep>STEP:6</nextStep>
</step>
<step>
<id>6</id>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>400</updateFieldValue>
<nextStep>STEP:7</nextStep>
</step>
<step>
<id>7</id>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<entity>Article</entity>
<mergeProfile>profile_no_images</mergeProfile>
<nextStep>MergeItems-Process</nextStep>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0 - Step 5

These steps are exact copy of the example 7.

Step 6

Step 6 is nearly the same as the step 5 of the example above. Only the differences are shown in the next table.

Key

Value

Description

...

...

Same keys and values than in the example above.

nextStep

STEP:7

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 7

Step 7 will execute the merge.

Key

Value

Description

id

7

workflowServiceEndpoint

StepWorkflow-Trigger

entity

Article

mergeProfile

profile_no_images

Profile of the merge process. There are 2 profiles within the standard workflow package. They are located in the folder profiles merge-profile of the StepWorkflow project. If you need additonal profiles you have to add them to the project with your BPM Designer,

nextStep

MergeItems-Process

This bpel prcoess allows you to merge items into the Master Catalog.

Example 9 (Classic Tasks)

In this example we are creating a classic (standard) tasks. The first classic task is a supplier task and the second one is a classic task for an user group. The last task will be again a workflow (approval) task, with the option to send the items back to a further step. The difference between a workflow and a classic task is when finishing a classic task all items (products or variants) within this task will be finished at once. It is highly recommended to use this approach only with report based events like export completed, import started etc., because there will be always a new task created. Independent whether the same task with the same name for the entire catalog already exists.

Diagram for example 9

images/download/attachments/425636021/Example_09.png

Explanation of the steps example 9

Step

Description

1

Run DQ check "Channel 1" if fail ==>put the item into the supplier classic task

2

Run DQ check "Channel 2" if fail ==>put the item into the classic task

3

Approve task with rejection options to all previous tasks

Product 360 prerequisites for example 9

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

DQ Channel

Channel 1

DQ Channel

Channel 2

user

jsmith

user

jsauer

StepWorkflow.xml file for example 9

Example 1
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 9</label>
<identifier>Workflow_09</identifier>
<version>1.0</version>
<step>
<id>1</id>
<entity>Article</entity>
<batchSize>1000</batchSize>
<getField>Article.MainSupplier->Party.Name</getField>
<getField>Article.CatalogProxy->SupplierCatalog.Supplier->Party.Name</getField>
<uiTemplate>Item approve UI</uiTemplate>
<classicTask>Supplier Classic Task</classicTask>
<userType>supplier</userType>
<escalation>PT12H</escalation>
<substitute>jsmith</substitute>
<deadline>PT24H</deadline>
<responsible>jsauer</responsible>
<description>Select each item and fix any rules that failed in the Quality Status tab. Go back up to the task level, select Actions,Complete</description>
<workflowServiceEndpoint>StepWorkflowClassic-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<executeDq>Always</executeDq>
<dqService>ExecuteDqOneChannel-Process</dqService>
<dqChannel>Channel 1</dqChannel>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<uiTemplate>Item approve UI</uiTemplate>
<classicTask>Standard User Classic Task</classicTask>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<resetTask>true</resetTask>
<escalation>P2D</escalation>
<substitute>jsauer</substitute>
<deadline>P4D</deadline>
<responsible>pim</responsible>
<description>This task is testing StepWorkflow using classic, or standard, tasks.</description>
<workflowServiceEndpoint>StepWorkflowClassic-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<executeDq>Always</executeDq>
<dqService>ExecuteDqOneChannel-Process</dqService>
<dqChannel>Channel 2</dqChannel>
<nextStep>STEP:3</nextStep>
</step>
<step>
<id>3</id>
<entity>Article</entity>
<workflowStatus>Approve</workflowStatus>
<description>Approval</description>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<singleChoice>true</singleChoice>
<rejectDecision>
<id>p360.bpm.reject.STEP:1</id>
<label>Send task back to supplier</label>
</rejectDecision>
<rejectDecision>
<id>p360.bpm.reject.STEP:2</id>
<label>Send task back to Standardusers</label>
</rejectDecision>
<rejectFieldDescriptor>Article.CurrentStatus</rejectFieldDescriptor>
<rejectFieldValue>100</rejectFieldValue>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 1

This step will run a dq execution on channel "Chanel 1". If the result of this execution is false a classic task for the supplier will be created and the items will be put into this task.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

batchsize

1000

Batch size to use with trigger batching.

getField

Article.MainSupplier->Party.Name

List of any fields directly on the entity that will be required. These entries must be fully qualified.

getField

Article.CatalogProxy->SupplierCatalog.Supplier->Party.Name

List of any fields directly on the entity that will be required. These entries must be fully qualified.

uiTemplate

Item approve UI

This is the default UI of the task.

classicTask

Supplier Classic Task

Name of the classic task.

userType

supplier

Type of the task. In this case a supplier task will be created.

escalation

PT12H

The escalation date of the task will be set to 12 hours after the creation data.

substitute

jsmith

Substitute user of this task.

deadline

PT24H

The deadline date of the task will be set to 1 day after the creation data.

responsible

jsauer

Responsible user for this task.

description

Select each item ....

Description of the task.

workflowServiceEndpoint

StepWorkflowClassic-Trigge

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

OnDqResults

The circumstances when an item should enter the task. In this case only when dq fails!

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqOneChannel-Process

This bpel service from InfaNextSteps executes a channel dq validation

dqChannel

Channel 1

Name of the DQ channel which will be executed.

nextStep

STEP:2

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 2

This step will run a dq execution on channel "Chanel 1 2". If the result of this execution is false a classic task for the usergroup "Standardusers" will be created and the items will be put into this task.

Key

Value

Description

...

...

Same keys and values than step 1.

id

2

Identifier of the step.

classicTask

Standard User Classic Task

Name of the classic task.

userType

userGroup

Type of the task. In this case a classic task for a user group will be created.

userName

Standardusers

Name of the user group.

resetTask

True

If reset tasks is true, then the create date of the task will be the current date-time. If it is not set, then the new task will have the same create date-time as the original task.

escalation

P2D

The escalation date of the task will be set to 2 days after the creation data.

substitute

jsmith

Substitute user of this task.

deadline

P4D

The deadline date of the task will be set to 4 days after the creation data.

responsible

jsauer

Responsible user for this task.

description

Select each item ....

Description of the task.

enterStatus

OnDqResults

The circumstances when an item should enter the task. In this case only when dq fails!

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

ExecuteDqOneChannel-Process

This bpel service from InfaNextSteps executes a channel dq validation

dqChannel

Channel 2

Name of the DQ channel which will be executed.

nextStep

STEP:3

Identifier of the next step, The item will be moved to the next step, when this step is finished.

Step 3

Approve step with possibilty to reject.

Key

Value

Description

id

3

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Approve

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

Approval

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

singleChoice

true

This is for Rejects only and determines if you can have more than one choice. ==> The workflow can be rejected to a previous step.

<rejectDecision>id

p360.bpm.reject.STEP:1

Identifier of the 1st reject step.

<rejectDecision>label

Send task back to supplier

Label of the 1st rejection. This label will show up in the UI.

<rejectDecision>id

p360.bpm.reject.STEP:2

Identifier of the 2nd reject step.

<rejectDecision>label

Send task back to Standardusers

Label of the 2nd rejection. This label will show up in the UI.

rejectFieldDescriptor

Article.CurrentStatus

Field which will be modified if the item will be rejected.

rejectFieldValue

100

This value will be set during ejection.

Example 10 (1 Task)

The tenth workflow puts items into a workflow task called “My first task” that is assigned to whatever user is in the field “ArticleLang.Remarks”. It also sends an email to that user. For this workflow task we need 2 steps. The first step checks whether the affected item is already in this workflow, if not it will move to the next step.. The second step puts the item in the task and sends the notification.

Diagram for example 10

images/download/attachments/487621610/ex10-0.png

Explanation of the steps example 10

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "My first task" and emails the user.

Product 360 prerequisites for example 10

Product 360 entity

value

User

The value in “ArticleLang.Remarks” field.

Ui Template

Item approve UI

Info

Whatever user name is in “ArticleLang.Remarks” is user that the task is assigned to. There is a new status added to the workflow with the user name appended to the task name. There is a delimiter “|” between the task name and the user name.

StepWorkflow.xml file for example 10

Example 10
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 10</label>
<identifier>Workflow_10</identifier>
<version>1.0</version>
<taskUserDelimiter>|</taskUserDelimiter>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My first task</workflowStatus>
<description>The description of my first workflow task.</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<getField>Article.SupplierAID</getField>
<getField>ArticleLang.DescriptionShort(9, "Default Channel")</getField>
<getField>ArticleLang.DescriptionLong(9, "Default Channel")</getField>
<getField>ArticleLog.ModificationDate(HPM)</getField>
<enterStatus>Always</enterStatus>
<notificationService>NotifyUser-Process</notificationService>
<batchSize>500</batchSize>
<userType>user</userType>
<userName>SERVICE:UserTask-Workflow</userName>
<userDescriptor>ArticleLang.Remarks(9, "Default Channel")</userDescriptor>
<includeLabels>true</includeLabels>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0

This step checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq succeeds.

taskDelimeter

|

The delimiter that goes between the original task name and the user name.

Step 1

This step enters the items in the task called “My first task” and emails the user this task is assigned to.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My first task

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My first workflow task

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always

userType

user

Type of the default assignee of this task. In this case it will be a user.

userName

SERVICE:UserTask-Workflow

The service for the bpel process that will determine the user or usergroup to assign the task to.

updateFieldDescriptor

ArticleLang.Remarks(9, "Default Channel")

The field which stores the user name to assign the task to for dynamic users.

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

notificationService

NotifyUser-Process

The service for the bpel process that will perform the email service.

includeLabels

true

This will allow us to receive the item number in addition to the item ID.

getField

Several field names

This will get the field values for the items from P360. By default, for NotifyUser, these will be included in an html table in the email.

Example 11 (1 Task with DQ checks)

The eleventh workflow puts items into a workflow task called “My first task”. The first step checks whether the urn value for workflow_11.active is true, if not, the workflow will end. If it is "true", it will move to the next step. The second step checks to see if the affected items have a Current Status of 100, or “01 New” on most systems. If it is not, then the items will not go into the task and the workflow will end. If so, it will move to the next step. The 3rd step updates the current status of the items to 200. The 4th step puts the item in the task.

Diagram for example 11

images/download/attachments/487621725/ex11-0.png

Explanation of the steps example 11

Step

Description

0

Check whether urn is set to true.

1

Check if the CurrentStatus of item is “01 New”

NoLongerNew

Update Current Status to something else/

2

Put the item into the task "My first task"

Product 360 prerequisites for example 11

Product 360 entity

value

UserGroup

Standardusers

Ui Template

Item approve UI

Article.CurrentStatus

100

ActiveVOS Console

value

Urn:workflow_11.active

true

Info

The DQ Service “dqValueCheck-Process” is used for both DQ’s. There are 3 elements of the rule: [TYPE] | [KEY] | [VALUE] The types of comparisons are not case sensitive and are:

* Descriptor: <dqRule>Descriptor|Article.CurrentStatus|100</dqRule>

* Name: <dqRule>Name|Status|100</dqRule>

* URN value: <dqRule> URN|urn:skip.merge.task|true</dqRule>

StepWorkflow.xml file for example 11

Example 11
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 11</label>
<identifier>Workflow_11</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>5000</batchSize>
<executeDq>Always</executeDq>
<getField>Article.CurrentStatus</getField>
<dqService>dqValueCheck-Process</dqService>
<dqRule>urn|urn:workflow_11.active|true</dqRule>
<nextStep>STEP:1</nextStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>5000</batchSize>
<executeDq>Always</executeDq>
<getField>Article.CurrentStatus</getField>
<dqService>dqValueCheck-Process</dqService>
<dqRule>descriptor|Article.CurrentStatus|100</dqRule>
<nextStep>STEP:NoLongerNew</nextStep>
<nextStep>STEP:2</nextStep>
</step>
<step>
<id>NoLongerNew</id>
<entity>Article</entity>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<updateFieldValue>200</updateFieldValue>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>My first task</workflowStatus>
<description>My first workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0

This step checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

dqService

dqValueCheck-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqRule

urn|urn:workflow_11.active|true

Checks to see if urn:workflow_11.active is “true”

nextStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq succeeds.

Step 1

This step checks to see if the Current Status is 100. If yes, the workflow will move to the next step2 defined as NoLongerNew and 2.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

dqService

dqValueCheck-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqRule

descriptor|Article.CurrentStatus|100

Checks to see if Current Status is 100, or “01 New”

nextStep

STEP: NoLongerNew

STEP:2

The item will be moved to the step with the identifier 1 if the above dq succeeds.

Step NoLongerNew

This step updates the Current Status field.

Key

Value

Description

id

NoLongerNew

Identifier of the step.

entity

Article

Entity container for this workflow.

updateFieldDescriptor

Article.CurrentStatus

The descriptor for the field being updated.

updateFieldValue

200

The value to update the field with.

Step 2

This step puts the affected items in the "My first Task" task.

Key

Value

Description

id

2

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My first task

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My first workflow task

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always

userType

userGroup

Type of the default assignee of this task. In this case it will be a user.

userName

Standardusers

The service for the bpel process that will determine the user or usergroup to assign the task to.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

Example 12 (2 Triggers and Merge with Results)

The twelfth workflow puts items into a workflow task called “Contact external team”. The first step checks whether the affected item is already in this workflow, if not it will be put into the task. The second step puts the items in the “Contact external team” task . The workflow then stops until it is triggered again by an import, export, or entity change. Once the workflow is triggered again, it moves to an approval task. Approved items go to the next step and rejected items end the workflow. In the last step, the affected items merge. Because it is set up as a dq, any items that fail to merge go into a “Failed to Merge” task.

Diagram for example 12

images/download/attachments/487621760/ex12-0.png

Explanation of the steps example 12

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "Contact external team".

2nd Trigger

This step is triggered by an import complete, export started, or an entity changed. It then moves to Step 3.

3

Put the item into an approval task. Items that are rejected end the workflow. Ones that are approved move to step Merge.

Merge

Merge the items as a DQ. if fail ==>put the item into the task “Failed to Merge” and send an email.

Product 360 prerequisites for example 12

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Info

Standarduser is the Identifier of the Usergroup. This workflow stops after step one until a new trigger is generated for the step “2nd Trigger”. This workflow also features a merge that runs as a DQ. The items will merge, but if any fail, they will enter a merge failed task.

StepWorkflow.xml file for example 12

Example 12
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 12</label>
<identifier>Workflow_12</identifier>
<version>1.0</version>
<taskUserDelimiter>|</taskUserDelimiter>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>Contact external team</workflowStatus>
<description>Contact external team and finish the task. Once the import is completed the workflow will pick up where it left off.</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
</step>
<step>
<id>2nd Trigger</id>
<entity>Article</entity>
<triggerConfiguration>Example12_ImportCompleted_2nd</triggerConfiguration>
<triggerConfiguration>Example12_ExportStarted_2nd</triggerConfiguration>
<triggerConfiguration>Example12_EntityChange_2nd</triggerConfiguration>
<nextStep>STEP:3</nextStep>
</step>
<step>
<id>3</id>
<entity>Article</entity>
<workflowStatus>Approve</workflowStatus>
<description>Approval</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<rejectTrigger>StepWorkflow_ParallelTasks-Reject</rejectTrigger>
<singleChoice>false</singleChoice>
<rejectDecision>
<id>p360.bpm.reject</id>
<label>Reject</label>
</rejectDecision>
<nextStep>WorkflowWait-Process</nextStep>
<wait>PT5S</wait>
<nextStep>STEP:Merge</nextStep>
</step>
<step>
<id>Merge</id>
<entity>Article</entity>
<workflowStatus>Failed to Merge</workflowStatus>
<description>These items failed to merge.</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>OnDqResults</enterStatus>
<userType>user</userType>
<userName>pim</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Always</executeDq>
<dqService>MergeItemsResults-Process</dqService>
<mergeProfile>profile_no_images</mergeProfile>
<dqFailStep>NotifyUser-Process</dqFailStep>
</step>
</workflow>
</imp:payload>

Detailed explanation of the steps

Step 0

This step checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq fails.

Step 1

This step puts the affected items in a task. If the task is finished, the workflow will stop.

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Contact external team

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

Contact external team and finish the task. Once the import is completed the workflow will pick up where it left off.

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

Step 2nd Trigger

Once this step is triggered, it just moves to the next step.

Key

Value

Description

id

2nd Trigger

Identifier of the step.

entity

Article

Entity container for this workflow.

triggerConfiguration

Example12_ImportCompleted_2nd

Example12_ExportStarted_2nd

Example12_EntityChange_2nd

The 3 different trigger configurations that can trigger the step

nextStep

STEP:3

The item will be moved to the step.

Step 3

This is the approval step that moves to Merge if approved while workflow ends for rejected items.

Key

Value

Description

id

3

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Approve

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

Approval

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

batchSize

500

Batch size to use with trigger batching.

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

rejectTrigger

StepWorkflow_ParallelTasks-Reject

Endpoint for the reject trigger of parallel states (tasks).

singleChoice

true

This is for Rejects only and determines if you can have more than one choice. ==> The workflow can be rejected to only one step,

<rejectDecision>id

p360.bpm.reject

Identifier of the reject step. Since none is added, it will not go to a task.

<rejectDecision>label

Reject

Label of the rejection. This label will show up in the UI.

nextStep

WorkflowWait-Process

This step will wait and then go to the next nextStep.

wait

PT5S

Standard duration notation. This is 5 seconds.

nextStep

STEP:Merge

Identifier of the next step, The item will be moved to the next step, when this step is approved.

Step Merge

This step does the merge through a DQ process. The items will merge, but if any fail, they will enter a merge failed task.

Key

Value

Description

id

Merge

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

Failed to Merge

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

These items failed to merge.

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

OnDqResults

The circumstances when an item should enter a status (task). In this case only when DQ check will fail!

userType

user

Type of the default assignee of this task. In this case it will be a user.

userName

pim

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the user "pim".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Always

The circumstances when a DQ should be run. In this case always!

dqService

MergeItemsResults-Process

The service name of the process that will be handle the processing of the DQ. In this case, it will merge the items and return Success for those that do not have issues and Failed for those that do.

dqFailStep

NotifyUser-Process

This will send an email containing all items that failed to merge if any did.

nextTrigger

StepWorkflow_ParallelTasks-Finish-1

This is another service name of the partner link of the parallel tasks. It will be called if the item will leave this step.

Example 13 (Workflow starts another workflow)

The thirteenth workflow puts items into a workflow task called “My first task” and then to another workflow. The first step checks whether the affected item is already in this workflow, if not it will be put into the task. The second step puts the items into the task. Once the items are finished in the task, they will move to another workflow at a specific step.

Diagram for example 13

images/download/attachments/487621791/ex13-0.png

Explanation of the steps example 13

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "My first task". When that task is finished, send the items to a step in another workflow

Product 360 prerequisites for example 13

Product 360 entity

value

Usergroup

Standardusers

Ui Template

Item approve UI

Workflow

Workflow_02

Info

Standarduser is the Identifier of the Usergroup!

StepWorkflow.xml file for example 13

Example 13
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Example Workflow 13</label>
<identifier>Workflow_13</identifier>
<version>1.0</version>
<step>
<id>0</id>
<entity>Article</entity>
<enterStatus>Never</enterStatus>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:1</dqFailStep>
</step>
<step>
<id>1</id>
<entity>Article</entity>
<workflowStatus>My first task</workflowStatus>
<description>My first workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate>Item approve UI</uiTemplate>
<executeDq>Never</executeDq>
<changeWorkflowLabel>Example Workflow 2</changeWorkflowLabel>
<changeWorkflowIdentifier>Workflow_02</changeWorkflowIdentifier>
<changeWorkflowStep>2</changeWorkflowStep>
<nextStep>ChangeWorkflow-Process</nextStep>
</step>
</workflow>
</imp:payload>  

Detailed explanation of the steps

Step 0

This step checks only whether the item is already in this workflow. If not the executed next step is 1. If yes the workflow will end because there is no next step defined.

Key

Value

Description

id

0

Identifier of the step.

entity

Article

Entity container for this workflow.

enterStatus

Never

The circumstances when an item should enter a status (task). In this case never!

batchSize

500

Batch size to use with trigger batching.

dqService

ItemsInWorkflowTasks-Process

This DQ service is an additional bpel inside the StepWorkflow which checks whether the item is already inside this workflow or not.

dqFailStep

STEP:1

The item will be moved to the step with the identifier 1 if the above dq fails.

Step 1

This step moves the items into a task called "My first task". When the items are finished by a user, they will move into "Example Workflow 2" step "2".

Key

Value

Description

id

1

Identifier of the step.

entity

Article

Entity container for this workflow.

workflowStatus

My first task

Status name within the Product 360 workflow. ==> Product 360 task name = [Workflow] - [Status] - [Catalog]

description

My first workflow task

Description of the status.

workflowServiceEndpoint

StepWorkflow-Trigger

This is the service name of the partner link. This name is defined in the process deployment descriptor of the workflow.

enterStatus

Always

The circumstances when an item should enter a status (task). In this case always!

userType

userGroup

Type of the default assignee of this task. In this case it will be a usergroup.

userName

Standardusers

Name/Identifier of the Default assignee of the task. ==> The item will be assigned to the usergroup "Standardusers".

uiTemplate

Item approve UI

This is the default UI of the task.

executeDq

Never

The circumstances when a DQ should be run. In this case never!

changeWorkflowLabel

Example Workflow 2

The label of the workflow the item is going to.

changeWorkflowIdentifier

Workflow_02

The identifier of the workflow the item is going to.

changeWorkflowStep

2

The step of the workflow the item is going into.

nextStep

ChangeWorkflow-Process

This process will send the item to another workflow and step based on the 3 previous parameters.

StepWorkflow Sanity

The StepWorkflow package includes a Sanity process. It has a workflow file for configurations

Sanity
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>StepWorkflowSanity</label>
<identifier>StepWorkflowSanity</identifier>
<version>1.0</version>
<step>
<id>Sanity</id>
<urn>urn:p360.api.username</urn>
<urn>urn:p360.api.password</urn>
<urn>urn:p360.api.manager</urn>
<urn>urn:p360.api.queue</urn>
<urn>urn:p360.rest.url</urn>
<urn>urn:dq.timeout</urn>
<urn>urn:p360.api.data.quality.queue</urn>
<urn>urn:p360.api.data.quality.response.queue</urn>
<urn>urn:list.get.timeout</urn>
<getField>Article.CurrentStatus</getField>
<updateFieldDescriptor>Article.CurrentStatus</updateFieldDescriptor>
<createTask>true</createTask>
<sendNotification>true</sendNotification>
<emailConfigs>sanity</emailConfigs>
</step>
  </workflow>
</imp:payload>  

It consists of 3 main sections:

  • URN check. It verifies that urn values that are required for StepWorkflow do exist. It does this based on the values in the config file with the ‘urn’ tag. Users can add any urn's they want to include them in the sanity. If the urn exists and the test is considered SUCCESS if it does not, it is considered FAILED.

  • Workflow map files. The sanity goes through the StepWorkflow.map file and verifies that it can access each workflow file in this file. It also verifies that the workflow identifier in the map file matches the one in each workflow xml file.

  • Access to P360. The config file has get field and update field descriptor values to verify connection to P360. First, it does a get and verifies the response. Then it uses the same value to do a post. Using the same value makes sure nothing is changed for the sanity test but also verifies the connection.

The sanity test also allows for a task to be created and/or an email sent out. For the task and email, the sanity test is labeled a SUCCESS if no tests fail. Otherwise, it is considered FAILED.

Key

Value

Description

urn

urn:p360.api.queue

These are the urn values that the Sanity will verify that they do exist.

getField

Article.CurrentStatus

This is the field that the sanity will use to verify a get for P360

UpdateFieldDescriptor

Article.CurrentStatus

This is the fields used to verify that a post will work to P360. It must be one of the fields in the Update Descriptor field.

CreateTask

TRUE

This determines whether or not there will be a task for the Sanity results.

sendNotification

TRUE

This determines whether or not there will be an email sent for the Sanity results.

emailConfigs

sanity

The xls file that serves as the template for the email.

Sample email:

SanityResults

SanityResults
<type>
<test>
<name>urn:p360.api.username</name>
<details>RestServiceUser</details>
<results>SUCCESS</results>
</test>
<test>
<name>urn:p360.api.password</name>
<details>######</details>
<results>SUCCESS</results>
</test>
<test>
<name>urn:p360.api.manager</name>
<details>ActiveMQ</details>
<results>SUCCESS</results>
</test>
<test>
<name>urn:This.is.a.test.urn</name>
<details>none</details>
<results>FAILED</results>
</test>
<test>
<name>project:/StepWorkflowExamples/workflow/Example_01.xml</name>
<details>Loaded file</details>
<results>SUCCESS</results>
</test>
<test>
<name>Workflow_01</name>
<details>Workflow id matches map file</details>
<results>SUCCESS</results>
</test>
<test>
<name>project:/StepWorkflowExamples/workflow/Example_02.xml</name>
<details>Loaded file</details>
<results>SUCCESS</results>
</test>
<test>
<name>Workflow_02</name>
<details>Workflow id matches map file</details>
<results>SUCCESS</results>
</test>
<test>
<name>get(Article.CurrentStatus)</name>
<details>0939699831001: 200</details>
<results>SUCCESS</results>
</test>
<test>
<name>update(Article.CurrentStatus)</name>
<details>UPDATED</details>
<results>SUCCESS</results>
</test>
</type>        

Defaults

The StepWorkflow package includes 3 default workflows. 1 workflow for items, 1 for products and an additional 1for variants. These 3 workflows are only simple examples of defaults. Such a default workflow will be triggered if the trigger you defined in your Product 360 Desktop client does not match to an entry in the StepWorkflowMap.xml file.

DefaultArticle

Diagram for default article

images/download/attachments/485279294/SW_DefaultArticle.png

Explanation of the steps default article

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "Default workflow task".

Product 360 prerequisites for default article

Product 360 entity

value

Usergroup

Standardusers

StepWorkflow.xml file for defaultArticle.xml

Default Article
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Item Workflow</label>
<identifier>Default_Workflow_Article</identifier>
<version>1.0</version>
<step>
<id>1</id>
<entity>Article</entity>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:2</dqFailStep>
</step>
<step>
<id>2</id>
<entity>Article</entity>
<workflowStatus>Default workflow task</workflowStatus>
<description>Default workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate></uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

DefaultVariant

Diagram for default variant

images/download/attachments/485279294/SW_DefaultVariant.png

Explanation of the steps default variant

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "Default workflow task".

Product 360 prerequisites for default variant

Product 360 entity

value

Usergroup

Standardusers

StepWorkflow.xml file for defaultVariant.xml

Default Variant
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Variant Workflow</label>
<identifier>Default_Workflow_Variant</identifier>
<version>1.0</version>
<step>
<id>1</id>
<entity>Variant</entity>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:2</dqFailStep>
</step>
<step>
<id>2</id>
<entity>Variant</entity>
<workflowStatus>Default workflow task</workflowStatus>
<description>Default workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate></uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>

DefaultProduct2G

Diagram for default product2g

images/download/attachments/485279294/SW_DefaultProduct2G.png

Explanation of the steps default product2g

Step

Description

0

Check whether item is already in this workflow.

1

Put the item into the task "Default workflow task".

Product 360 prerequisites for default product2g

Product 360 entity

value

Usergroup

Standardusers

StepWorkflow.xml file for defaultProduct2G.xml

Default Product2G
<?xml version="1.0" encoding="UTF-8"?>
<imp:payload xmlns:imp="http://www.informatica.com/schema/ItemMap" contentType="string">
<workflow>
<label>Product Workflow</label>
<identifier>Default_Workflow_Product2G</identifier>
<version>1.0</version>
<step>
<id>1</id>
<entity>Product2G</entity>
<batchSize>500</batchSize>
<executeDq>Always</executeDq>
<dqService>ItemsInWorkflowTasks-Process</dqService>
<dqFailStep>STEP:2</dqFailStep>
</step>
<step>
<id>2</id>
<entity>Product2G</entity>
<workflowStatus>Default workflow task</workflowStatus>
<description>Default workflow task</description>
<workflowServiceEndpoint>StepWorkflow-Trigger</workflowServiceEndpoint>
<enterStatus>Always</enterStatus>
<batchSize>500</batchSize>
<userType>userGroup</userType>
<userName>Standardusers</userName>
<uiTemplate></uiTemplate>
<executeDq>Never</executeDq>
</step>
</workflow>
</imp:payload>