---
schema_version: "1"
id: be6c4f9849fb6cb92341fcdf652bd2443372ea4baf7e87c128c59f622a184a69
title: RosettaNet Connector Examples
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/rosettanet-connector/latest/rosettanet-connector-examples.md
canonical_url: https://docs.mulesoft.com/rosettanet-connector/latest/rosettanet-connector-examples
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 07729fc1a61290b213b619730d8f3152065856df184228ad42acf4869bb0a36f
description: MuleSoft Documentation Site
release: "3.1"
latest: true
---
---
product: RosettaNet Connector
version: 3.1
is-latest-version: true
---

# RosettaNet Connector Examples

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Mule applications using Anypoint Connector for RosettaNet (RosettaNet Connector) must include a
global configuration to add external libraries specific to the active security mode. Only one
external libs configuration is permitted per application, so you must configure this element
manually in the examples.

This example consists of two apps:

- The Buyer app sends a purchase order request message to a Seller App.

- The Seller app sends a purchase order confirmation message to the Buyer app when the order is
  fulfilled.

  The following section provide instructions for configuring the global element for external
  libraries and it needs to be done for each application.

## Configure a Global Element for External Libraries

Mule applications using RosettaNet Connector must contain only one global element configuration to
provide the external libraries required for the selected security mode.

To configure the global element for RosettaNet Connector and add external libraries, follow these
steps:

1.  In **Package Explorer** or Anypoint Studio canvas, open your Mule flow or configuration.

2.  Click **Global Elements**. Or click **Create global element**, and then click the plus icon next
    to Global Elements.

3.  Click **Create**, and then search for the `RosettaNet` or `External Libs` option and select
    **RosettaNet External Libs - Non FIPS**.

4.  Name the configuration.

5.  Click **Configure** > **Add recommended libraries**.

6.  Click **OK** to include the libraries as dependencies and shared libraries in the Mule
    application `pom.xml` file.

7.  Verify that your project has the required dependencies for your security mode.

    Add the dependencies via Maven if they aren’t added automatically.

For configuration instructions for other security modes, see
[Configure External Libraries](https://docs.mulesoft.com/rosettanet-connector/latest/rosettanet-connector-upgrade-migrate#configure-external-libraries).

The following diagram shows the relationship between the two apps:

![Relationship between the Buyer and Seller apps](/mulesoft/current/en-us/rosettanet-connector/latest/_images/rosettanet-state-diagram.png)

## Buyer App

The Buyer app performs the following actions:

1.  Receives an input purchase order request document via an `HTTP POST`.

2.  Uses the RosettaNet **Send action** operation to send a purchase order request message to the
    Seller app.

3.  Transforms the message ID from the purchase order request message to plain text for use in
    responding to the `HTTP POST`.

4.  Receives an acknowledgment signal from the Seller app and logs information about the signal.

5.  Receives a purchase order confirmation message from the seller and logs information about the
    confirmation message.

6.  Receives the completion state from the Seller app and logs information about the completion
    state.

The following screenshot shows the Anypoint Studio app flows for the Buyer app:

![Studio flow for the Buyer app](/mulesoft/current/en-us/rosettanet-connector/latest/_images/rosettanet-buyer-visual-flow.png)

> [!NOTE] The keystore for the Buyer app, which includes the buyer private key, buyer certificate,
> and seller certificate is located in the project under `src/main/resources`.

### Create the First Flow of the Buyer App

The first flow of the Buyer app receives a purchase order request document via an `HTTP POST` and
sends this as a RosettaNet action message to the Seller app. Configuring this flow involves creating
a new Mule project, configuring the **HTTP Listener** source, adding a **Send action** operation,
and adding a **Transform** component.

#### Configure the HTTP Listener Source

Configure the **HTTP Listener** source to initiate a Mule flow when a call is made to the default
path (`/`):

1.  Create a new Mule project in Studio.

2.  From the **Mule Palette** view, select **HTTP** and drag the **Listener** component to the
    canvas.

3.  In the properties window, click **+** next to the **Connector configuration** field to add a
    global element.

4.  In the **Name** field, enter `HTTP_InputListener` and accept the default values.

#### Add the PO\_InitiatorConfig\_Buyer Global Element

Add the `PO_InitiatorConfig_Buyer` global element for the **Send action** operation:

1.  In the properties window for the **Send action** operation, click **+** next to the **Module
    configuration** field to add a global element.

2.  In the **RosettaNet Config** window, complete the following fields:

    <table><colgroup><col> <col></colgroup><thead><tr><th>Global HTTP Listener</th><th>HTTP_Listener-config</th></tr></thead><tbody><tr><td><p>Service Endpoint Path</p></td><td><p>/partner1</p></td></tr><tr><td><p>Global HTTP Request</p></td><td><p>HTTP_Request_configuration</p></td></tr><tr><td><p>Request Endpoint Path</p></td><td><p>/partner2</p></td></tr><tr><td><p>Keystore Path</p></td><td><p>/partner1.jks</p></td></tr><tr><td><p>Keystore Access password</p></td><td><p>nosecret</p></td></tr><tr><td><p>Signing key password</p></td><td><p>partner1</p></td></tr><tr><td><p>Content transfer encoding</p></td><td><p>QUOTED_PRINTABLE</p></td></tr><tr><td><p>Service-Content Compression</p></td><td><p>NONE</p></td></tr><tr><td><p>Global usage code</p></td><td><p>Test</p></td></tr><tr><td><p>Mule DUNS identifier</p></td><td><p>123456789</p></td></tr><tr><td><p>Mule location identifier</p></td><td><p>partner1</p></td></tr><tr><td><p>Partner DUNS identifier</p></td><td><p>123456788</p></td></tr><tr><td><p>Partner location identifier</p></td><td><p>partner2</p></td></tr><tr><td><p>Role in PIP</p></td><td><p>INITIATOR</p></td></tr><tr><td><p>PIP definition path</p></td><td><p>/PIP3A4/V02_02.xml</p></td></tr></tbody></table>

3.  Click **OK**.

#### Add the Send Action Operation

Add the **Send action** operation to send the purchase order request message to the Seller app by
using the configuration defined for the `PO_InitiatorConfig_Buyer` global element:

1.  From the **Mule Palette** view, select **RosettaNet** and drag the **Send action** operation
    next to **Listener**.

2.  In the properties window, complete the following fields:

    <table><colgroup><col> <col></colgroup><thead><tr><th>Field</th><th>Value</th></tr></thead><tbody><tr><td><p>Display Name</p></td><td><p>Send action</p></td></tr><tr><td><p>Module configuration</p></td><td><p>PO_InitiatorConfig_Buyer</p></td></tr></tbody></table>

#### Add a Transform Message Component

Add a **Transform Message** component to transform the message ID in the purchase order request
message to plain text:

1.  From the **Mule Palette** view, select **Core** and drag a **Transform Message** component next
    to **Send action**.

2.  In the properties window, overlay the brackets in the **Output** section with this DataWeave
    code:

    ```dataweave
    %dw 2.0
    output text/plain
    ---
    "Buyer sent action message " ++ attributes.messageId ++ "\n"
    ```

### Create the Second Flow of the Buyer App

The second flow of the Buyer app receives an acknowledgment signal from the Seller app and logs
information about the signal. It also receives the purchase order confirmation message from the
Seller app and logs information about the message.

#### Configure the Action Source

Configure the **Action source** source to initiate a Mule flow when a call is made to the
`/partner2` path:

1.  From the **Mule Palette** view, select **Rosettanet** and drag the **Action source** source to
    the canvas.

2.  In the **Module configuration** field, enter `PO_InitiatorConfig_Buyer`.

#### Add a Logger Component

Add a **Logger** component to log a message that includes information about the acknowledgment and
purchase order confirmation message:

1.  From the **Mule Palette** view, select **Core** and drag a **Logger** component next to **Action
    source** on the canvas.

2.  In the **Message** field, enter the following text:

    `"Buyer received action message #[attributes.messageId]"`

### Create the Third Flow of the Buyer App

The third flow of the Buyer app receives the completion state from the Seller app and logs
information about the completion state.

#### Configure the Completion Source

Configure the **Completion source** source to listen for a purchase order completion state message
from the seller:

1.  From the **Mule Palette** view, select **Rosettanet** and drag the **Completion source** source
    to the canvas.

2.  In the **Module configuration** field, enter `PO_InitiatorConfig_Buyer`.

#### Add a Logger Component

Add a **Logger** component to log information about the purchase order completion state:

1.  From the **Mule Palette** view, select **Core** and drag a **Logger** component next to
    **Completion source** on the canvas.

2.  In the **Message** field, enter the following text:

    `Buyer action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]`

#### Save and Run the App

To save the app, click **File > Save**.

To run the app, click **Run > Run as > Mule Application**.

#### XML for the Buyer App

Paste this code into the Studio XML editor to quickly load the flow for the Buyer app into your Mule
app:

```xml
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:rosetta="http://www.mulesoft.org/schema/mule/rosetta"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/rosetta
http://www.mulesoft.org/schema/mule/rosetta/current/mule-rosetta.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
	<http:listener-config name="HTTP_Listener_config"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8081" />
	</http:listener-config>
	<http:request-config name="HTTP_Request_configuration"
	doc:name="HTTP Request configuration">
		<http:request-connection host="localhost" port="8082" />
	</http:request-config>
	<rosetta:config name="PO_InitiatorConfig_Buyer"
	pipRole="INITIATOR" doc:name="RosettaNet Config"
	listenerConfigName="HTTP_Listener_config"
	servicePath="/partner1"
	requesterConfigName="HTTP_Request_configuration"
	requestPath="/partner2"
	keystorePath="/partner1.jks"
	keystorePass="nosecret"
	privatePass="partner1"
	globalUsageCode="Test"
	selfBusinessIdentifier="123456789"
	selfLocationId="partner1"
	partnerBusinessIdentifier="123456788"
	partnerLocationId="partner2"
	pipFile="/PIP3A4/V02_02.xml"/>
	<http:listener-config name="HTTP_InputListener"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8801" />
	</http:listener-config>
	<flow name="Send-Purchase-Order-Request" >
		<http:listener doc:name="Listener" config-ref="HTTP_InputListener"
		path="/"
		allowedMethods="POST"/>
		<rosetta:send-action doc:name="Send action"
		 config-ref="PO_InitiatorConfig_Buyer"/>
		<ee:transform doc:name="Transform Message"  >
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output text/plain
---
"Buyer sent action message " ++ attributes.messageId ++ "\n"]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
	<flow name="Receive-Purchase-Order-Confirmation"  >
		<rosetta:action-source doc:name="Action source"
		config-ref="PO_InitiatorConfig_Buyer"/>
		<logger level="INFO" doc:name="Logger"
		message="Buyer received action message #[attributes.messageId]"/>
	</flow>
	<flow name="Send-Purchase-Order-Completion" >
		<rosetta:completion-source doc:name="Completion"
		config-ref="PO_InitiatorConfig_Buyer"/>
		<logger level="INFO" doc:name="Logger"
		message="Buyer action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]"/>
	</flow>
</mule>
```

## Seller App

The Seller app performs the following actions:

1.  Receives an input purchase order request confirmation document via an `HTTP POST`.

2.  Uses a RosettaNet **Send action** operation to send a purchase order confirmation message to the
    buyer.

3.  Transforms the RosettaNet message ID from the purchase order confirmation message to plain text
    for use in responding to the `HTTP POST`.

4.  Receives a purchase order request message from the Buyer app and logs information about the
    request message.

5.  Receives an acknowledgment signal from the Buyer app and logs information about the signal.

6.  Receives a completion state message from the Buyer app and logs information about the completion
    state message.

The following screenshot shows the Anypoint Studio app flows for the Seller app:

![Studio flow for the Seller app](/mulesoft/current/en-us/rosettanet-connector/latest/_images/rosettanet-seller-visual-flow.png)

> [!NOTE] The keystore in the Seller app, which includes the seller private key, seller certificate,
> and buyer certificate is located in the project under `src/main/resources`.

### Create the First Flow of the Seller App

The first flow of the Seller app receives a purchase order request confirmation document via
`HTTP POST` and sends this as a RosettaNet action message to the Buyer app. Configuring this flow
involves creating a new Mule project, configuring the **HTTP Listener** source, configuring the
RosettaNet **Send action** operation, and adding a **Transform** component.

#### Configure the HTTP Listener Source

Configure the **HTTP Listener** source to initiate a Mule flow when a call is made to the default
path (`/`):

1.  Create a new Mule project in Studio.

2.  From the **Mule Palette** view, select **HTTP** and drag the Listener component to the canvas.

3.  In the properties window, click **+** next to the Connector configuration field to add a global
    element.

4.  In **Name**, enter `HTTP_InputListener`.

5.  In **Port**, enter `8082`.

6.  In **Read timeout**, enter `3000`.

#### Add a Global Element for the Send Action Operation

Create a global element named `PO_ResponderConfig_Seller` for the **Send action** operation.

1.  In the properties window for the **Send action** operation, click **+** next to the **Module
    configuration** field to add a global element.

2.  In the **RosettaNet Config** window, configure the following fields:

    <table><colgroup><col> <col></colgroup><thead><tr><th>Field</th><th>Value</th></tr></thead><tbody><tr><td><p>Global HTTP Listener</p></td><td><p>HTTP_Listener-config</p></td></tr><tr><td><p>Service Endpoint Path</p></td><td><p>/partner2</p></td></tr><tr><td><p>Global HTTP Request</p></td><td><p>HTTP_Request_configuration</p></td></tr><tr><td><p>Request Endpoint Path</p></td><td><p>/partner1</p></td></tr><tr><td><p>Keystore Path</p></td><td><p>/partner2.jks</p></td></tr><tr><td><p>Keystore Access password</p></td><td><p>nosecret</p></td></tr><tr><td><p>Signing key password</p></td><td><p>partner2</p></td></tr><tr><td><p>Content transfer encoding</p></td><td><p>QUOTED_PRINTABLE</p></td></tr><tr><td><p>Service-Content Compression</p></td><td><p>NONE</p></td></tr><tr><td><p>Global usage code</p></td><td><p>Test</p></td></tr><tr><td><p>Mule DUNS identifier</p></td><td><p>123456788</p></td></tr><tr><td><p>Mule location identifier</p></td><td><p>partner2</p></td></tr><tr><td><p>Partner DUNS identifier</p></td><td><p>123456789</p></td></tr><tr><td><p>Partner location identifier</p></td><td><p>partner1</p></td></tr><tr><td><p>Role in PIP</p></td><td><p>RESPONDER</p></td></tr><tr><td><p>PIP definition path</p></td><td><p>/PIP3A4/V02_02.xml</p></td></tr></tbody></table>

3.  Click **OK**.

#### Add the Send Action Operation

Add the **Send action** operation to send a purchase order confirmation message to the Buyer app:

1.  From the **Mule Palette** view, select **RosettaNet** and drag the **Send action** operation
    next to **Listener**.

2.  In the properties window, configure the following fields:

    <table><colgroup><col> <col></colgroup><thead><tr><th>Field</th><th>Value</th></tr></thead><tbody><tr><td><p>Display Name</p></td><td><p>Send action</p></td></tr><tr><td><p>Module configuration</p></td><td><p>PO_ResponderConfig_Seller</p></td></tr></tbody></table>

3.  Click **OK**.

#### Add a Transform Message Component

Add a **Transform Message** component to transform the message ID from the purchase order
confirmation message for use in responding to the `HTTP POST`.

1.  From the **Mule Palette** view, select **Core** and drag a **Transform Message** component next
    to **Send action** on the canvas.

2.  In the properties window, overlay the brackets in the **Output** section with this DataWeave
    code:

    ```dataweave
    %dw 2.0
    output text/plain
    ---
    "Seller sent action message " ++ attributes.messageId ++ "\n"
    ```

### Create the Second Flow of the Seller App

The second flow of the Seller app receives an acknowledgment signal from the Buyer app and logs
information about the signal. It also receives a purchase order request message from the Buyer app
and logs information about the request.

#### Configure the Action Source

Configure the **Action** source to initiate a Mule flow when a call is made to the default path
(`/`):

1.  From the **Mule Palette** view, select **Rosettanet** and drag the **Action source** source to
    the canvas.

2.  In the **Module configuration** field, enter `PO_ResponderConfig_Seller`.

#### Add a Logger Component

Add a **Logger** component to log information about the acknowledgment signal and purchase order
request message:

1.  From the **Mule Palette** view, select **Core** and drag a **Logger** component next to
    **Completion source** on the canvas.

2.  In the **Message** field, enter the following text:

    `Seller received action message #[attributes.messageId]`

### Create the Third Flow of the Seller App

The third flow of the Seller app sends a purchase order completion state message to the Buyer app
and logs information about the purchase order completion state message. Configuring this flow
involves configuring the **Action** source and adding a **Logger** component.

#### Configure the Action Source

Configure the **Action** source to receive the completion state from the Buyer app.

#### Adding a Logger Component

Add a **Logger** component to log information about the purchase order state completion message.

1.  From the **Mule Palette** view, select **Core** and drag a **Logger** component next to **Action
    source** on the canvas.

2.  In the **Message** field, enter the following text:

    `Seller action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]`

#### Save and Run the App

To save the app, click **File > Save**.

To run the app, click **Run > Run as > Mule Application**.

### XML for the Seller App

Paste this code into the Studio XML editor to quickly load the flow for the Seller app into your
Mule app:

```xml
<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns:rosetta="http://www.mulesoft.org/schema/mule/rosetta"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/rosetta
http://www.mulesoft.org/schema/mule/rosetta/current/mule-rosetta.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
	<http:listener-config name="HTTP_Listener_config"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8082" />
	</http:listener-config>
	<http:request-config name="HTTP_Request_configuration"
	doc:name="HTTP Request configuration" >
		<http:request-connection host="localhost" port="8081" />
	</http:request-config>
	<rosetta:config name="PO_ResponderConfig_Seller"
	pipRole="RESPONDER"
	doc:name="RosettaNet Config"
	listenerConfigName="HTTP_Listener_config"
	servicePath="/partner2"
	requesterConfigName="HTTP_Request_configuration"
	requestPath="/partner1"
	keystorePath="/partner2.jks"
	keystorePass="nosecret"
	privatePass="partner2"
	globalUsageCode="Test"
	partnerBusinessIdentifier="123456789"
	partnerLocationId="partner1"
	selfBusinessIdentifier="123456788"
	selfLocationId="partner2" pipFile="/PIP3A4/V02_02.xml"/>
	<http:listener-config name="HTTP_InputListener"
	doc:name="HTTP Listener config" >
		<http:listener-connection host="localhost" port="8802" />
	</http:listener-config>
	<flow name="Send-Purchase-Order-Confirmation">
		<http:listener doc:name="Listener"
		config-ref="HTTP_InputListener"
		path="/" allowedMethods="POST"/>
		<rosetta:send-action doc:name="Send action"
		 config-ref="PO_ResponderConfig_Seller"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output text/plain
---
"Seller sent action message " ++ attributes.messageId ++ "\n"]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
	<flow name="Receive-Purchase-Order-Request">
		<rosetta:action-source doc:name="Action source"
		config-ref="PO_ResponderConfig_Seller"/>
		<logger level="INFO" doc:name="Logger"
		 message="Seller received action message #[attributes.messageId]"/>
	</flow>
	<flow name="Send-Purchase-Order-Completion">
		<rosetta:completion-source doc:name="Completion"
		config-ref="PO_ResponderConfig_Seller"/>
		<logger level="INFO" doc:name="Logger"
		message="Seller action message #[attributes.replyAttributes.messageId] completed as #[payload.completionCode]"/>
	</flow>
</mule>
```

## Test the Examples

To test the Buyer and Seller apps, do the following after you run the apps:

1.  Provide the purchase order request to the Buyer app.

2.  Provide the purchase order request response to the Seller app.

### Provide the Purchase Order Request Document

Use an HTTP POST to the Buyer app `HTTP_InputListener` endpoint to provide the purchase order
request to send to the seller.

You can download a
[sample purchase order request](https://s3-us-west-2.amazonaws.com/mulesoft-sites-vendorcontent/public-assets/sample-purchase-order-request-content.xml).
You can then use any HTTP tool, such as a browser plugin, standalone tool such as PostMan, or
console tool such as `curl` to POST the data to the Buyer app.

For example, the following `curl` command posts a purchase order request:

`curl -v -H "Content-Type: application/xml" -XPOST --data-binary @sample-purchase-order-request-content.xml http://localhost:8801`

RosettaNet Connector generates a RosettaNet message based on the purchase order request and sends it
to the seller, responding to the HTTP POST operation with a message identifier. In your console,
your output should look like this:

```java
INFO  ... Seller received action message pMAIhTBMsGzAf/NFx83KBO9nt+T+DV2RNLhwlpNqnXM=0
INFO  ... Buyer action message pMAIhTBMsGzAf/NFx83KBO9nt+T+DV2RNLhwlpNqnXM=0 completed as SUCCESS
```

### Provide the Purchase Order Confirmation Document

Use an HTTP POST to the Seller app `HTTP_InputListener` endpoint to provide the purchase order
confirmation to send to the buyer.

You can download a
[sample purchase order confirmation](https://s3-us-west-2.amazonaws.com/mulesoft-sites-vendorcontent/public-assets/sample-purchase-order-confirmation-content.xml)
and then use any HTTP tool to post the data to the Seller app.

For example, the following `curl` command posts a purchase order confirmation:

`curl -v -H "Content-Type: application/xml" -XPOST --data-binary @sample-purchase-order-confirmation-content.xml http://localhost:8802`

RosettaNet Connector generates a RosettaNet message based on the purchase order confirmation and
sends it to the buyer, responding to the HTTP POST operation with a message identifier. In your
console, your output should look like this:

```java
INFO  ... Buyer received action message ng7+TalLLPTJZHok4tQSBi8RYZD8IsD9+iB85cubzM=1
INFO  ... Seller action message sng7+TalLLPTJZHok4tQSBi8RYZD8IsD9+iB85cubzM=1 completed as SUCCESS
```

The purchase order confirmation action sent by this sample app is only an example. To send a real
purchase order confirmation, you must configure the `replyAttributes` on the RosettaNet
`send-action` operation with the information provided by when you received the corresponding
purchase order request. These `replayAttributes` enable the RosettaNet protocol to distinguish
between many concurrent requests.

## See Also

- [Introduction to Anypoint Connectors](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors)

- [Salesforce Help](https://help.salesforce.com)
