# Creating an ebXML Control

This topic describes how to create a new ebXML control. Each ebXML control instance represents a single ebXML conversation. For each separate ebXML conversation in a business process, you must add a separate ebXML control instance. To learn about ebXML controls, see ebXML Control.

To create a new ebXML control

1. If you are not in Design View, click the Design View tab.
2. On the Controls section of the Data Palette, click Add.

Note: If the Controls tab is not visible in WebLogic Workshop, choose View —> Windows —> Data Palette from the menu bar. Instances of controls already available in your project are displayed in the Controls tab.

3. In the pop-up menu, click Integration Controls to display a drop-down list of controls that represent the resources with which your business process can interact.
4. Click ebXML to display the Insert Control - Insert ebXML dialog box.
5. In the Step 1 pane, in the Variable name for this control field, type the variable name used to access the new ebXML control instance from your business process. The name you enter must be a valid Java identifier.
6. In the Step 2 pane, select one of the following options:

- Use an ebXML control already defined by a JCX file

Enter the name of the JCX file, or click the Browse button to find and select it.

- Create a new ebXML control to use

Enter the name of the new JCX file to create.

7. If you are creating a new control, in the Step 3 pane, specify the following information:

Field | Description
ebxml-service-name | Required. Name of an ebXML service. For initiator and participant business processes that participate in the same conversation, the settings for ebxml-service-name must be identical. This service name corresponds to the eb:Service entry in the ebXML message envelope.
from | Optional. Business ID for the initiator in this conversation. One of the following values: Empty—Uses the default trading partner. Static Value—Business ID of the initiating trading partner. The specified business ID must be configured in the TPM repository. To specify the initiator business ID dynamically, use selectors or use the setProperties method in a Control Send node, as described in Dynamically Specifying Business IDs. You can also obtain this value by using XQuery selectors on process variables or method parameters in an incoming message.
to | Optional. Business ID for the participant in this conversation. One of the following values Empty—Uses the default trading partner. Static Value—Business ID of the participating trading partner. The specified business ID must be configured in the TPM repository. To specify the participant business ID dynamically, use selectors or use the setProperties method in a Control Send node, as described in Dynamically Specifying Business IDs. You can also obtain this value by using XQuery selectors on process variables or method parameters in an incoming message.
method-arg-type | Required. Type of attachment. One of the following values: XmlObject—Default. Represents data in untyped XML format. The XML data is not specified at design time. XmlObject[]—Array containing one or more XmlObject elements. Note: The XmlObject[] option is not available from the drop-down menu on the control wizard window. It has to be specified in source view, see Specifying XmlObject and RawData Array Payloads RawData—Represents any non-XML structured or unstructured data for which no MFL file (and therefore no known schema) exists. RawData[]—Array containing one or more RawData elements. Note: The RawData[] option is not available from the drop-down menu on the control wizard window. It has to be specified in source view, see Specifying XmlObject and RawData Array Payloads. MessageAttachment[]—Array containing one or more parts of an ebXML business message. Message parts can be untyped XML data (XmlObject data type) or non-XML data (RawData data type). Used when sending different kinds of payloads (XML and non-XML) in the same message. The actual number of message parts might not be known until processed. To learn about working with MessageAttachment objects, see Using Message Attachments. To learn more about data types, see Working with Data Types.
ebxml-action-mode | Action mode for this ebXML control. Determines the value specified in the eb:Action element in the message header of the ebXML message, which becomes important in cases where multiple message exchanges occur within the same conversation. One of the following values: default—Sets the eb:Action element to SendMessage (default name). non-default—Sets the eb:Action element to the name of the method (on the ebXML control) that sends the message in the initiator business process. For sending a message from the initiator to the participant, this name must match the method name of the Client Request node in the corresponding participant business process. For sending a message from the participant to the initiator, the method name in the callback interface for the client callback node in the participant business process must match the method name (on the ebXML control) in the control callback interface in the initiator business process. Using non-default is recommended to ensure recovery and high availability. If unspecified, the ebxml-action-mode is set to non-default.

8. Click the Create button.
9. If you are prompted, select a subfolder in which to save the JCX file.

An ebXML control instance is displayed in the Controls tab.

After you create the JCX file, the name of the JCX file becomes available as a service on the Services tab in the WebLogic Integration Administration Console.

### Specifying XmlObject and RawData Array Payloads

The XmlObject[] and RawData[] payload options are only available in source view. You can configure your ebXML control to use these options after you have created it.

To Specify the Payload in Source View

1. Open your control definition file (JCX file). You can do this by double-clicking on the file in the Application pane.
2. Click the Source View tab.
3. In the request and response methods, change the payload specified to the payload type that you want to use.

The following restrictions apply to payload specifications:

- If an array of any type is used, an argument of the same type cannot follow that array in the argument list. In other words, an array must be the last argument specified of that type.
- If a MessageAttachment[] type is one of your arguments, no other array (including a MessageAttachment[]) is allowed in the argument list.

4. After you have applied your changes, save and close your control definitions file.

Note: The order of arguments which you used in the control definition file and the order of the arguments in the node on the participant business process which is listening for your message must match.

To learn more about the request and response methods, see EBXMLControl Interface.

Related Topics

Overview: ebXML Control

Using an ebXML Control

Example: ebXML Control