Skip to Content
Author's profile photo Dai Quach

The very first BPM and PI communication

The scenario is very simple for the first PI-BPM communication, the user sends a greeting text to PI and PI will communicate with BPM then send back a hello greeting like “Hello {text}“.

dataflow.JPG

Create ESR objects

1. Data type for request and response message

esr_datatype_requestMessage.JPG

2. Message Type for request and response message

esr_messagetype_requestMessage.JPG

3. Service Interface for request and response message.

Communication between PI and BPM is on XI 3.0, so service interface have to be Stateless (XI-30 compatible).

We use a single service interface for both outbound and inbound is reason why the service interface is set to Abstract

esr_serviceinterface_requestMessage.JPG

Create BPM

1. Create a new Software Component TECH-DEMO

newSoftwareComponent.JPG

Keep default SC Dependencies, and click Finish.

2. Create a new Development Component

Right click on the Software Component to create a new Development Component

newDevelopmentComponent.JPG

Choose Process Composer

newDevelopmentComponent_ProcessComposer.JPG

Name it “veryfbpm”, then click Finish.

newDevelopmentComponent_ProcessComposer_verfyfbpm.JPG

3. Switch to Process Development perspective

Eclipse will automatic switch you to the perspective

switchPerspective.JPG

If it’s not, go to Window > Perspective > Open Perspective > Other > Process Development

switchPerspective_ProcessDevelopment.JPG

4. Create a new process

newMessageTrigger.JPG

Name it “veryfirstbpm”, then click Finish.

newProcess_verfyfirstbpm.JPG

5. Import Service Interface

Import the service interface that we have created, Right click on Service Interface and choose Import WSDL.

importServiceInterface.JPG

After success login, then choose the service interface to import. And click Next.

importServiceInterface_si_as_greeting.JPG

Name the service group, then click Finish.

importServiceInterface_serviceGroup.JPG

6. Create new Message Event Trigger

Right click on Event Triggers > Message to create a new one.

newMessageTrigger.JPG

Name it “start”, then click Next.

newMessageTrigger_start.JPG

Select the service we just imported, then click Finish.

newMessageTrigger_service.JPG

7. Point to the message event trigger

Click on Start and change the Trigger to “start” what we just created.

startMessage.JPG

The End Message will also be changed to “start” as Start Message.

endMessage.JPG

8. Simple mapping Hello + world

Drag and drop Mapping from left Palette to the process. And name it Mapping Hello

simpleMapping.JPG

Create a data object of DT_Greeing by drag and drop it from the project explore to the process.

dataobject_dt_greeting.JPG

Click on Start, then choose Output Mapping tab to do mapping MT_Greeting -> DO_DT_Greeting.

mapping_Start.JPG

Click on Mapping Hello, then choose Mapping tab to do mapping text -> text.

mapping_MappingHello.JPG

Double click on orange line to put code live below. The output will be “Hello {text}”

mapping_MappingHello_code.JPG

Click on End, then choose Input Mapping to do mapping DO_DT_Greeting -> MT_Greeting

mapping_End.JPG

9. Last step

This is an important step to get the process worked.

We have chosen Stateless XI 3.0 for the service interface in ESR objects. And we also need to change the service type of the service interface (default is WS) to XI in BPM accordingly.

servicetype.JPG

We changed the Sender Component to BPM, then we will create a Business Component in PI Integration Directory with the same name BPM to present for our BPM process.

Don’t forget to deploy the BPM to server. In Project Explorer, right click on the project and select Development Component > Deploy.

This is done for our first BPM, now we will create Scenario in Integration Builder to complete the whole data flow.

Create Integration Builder objects

We will have one Integration Configuration and 2 communication channels for the scenario.

theScenario.JPG

There is nothing special for configured objects except the receive channel, we are using SOAP adapter with message protocol XI 3.0.

theChannel_SOAPXI.JPG

For the sender channel we can use any adapter for testing as long as it supports quality of service – BE.

Testing

We can use any sender adapter (support BE) to do testing that is most easy for each one, for this I’m using HTTP channel with POST method.

Use “Send Test Message” on NWA to test, but it just shows success or failure without response payload.

testing_nwa.JPG

To see the response payload we have to use one of external tools to test. Here is Postman

testing_postman.JPG

Hope you enjoy the document.

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.