
<xs:element name="executeJob" type="tns:executeJob" />
<xs:complexType name="executeJob">
<xs:sequence>
<xs:element minOccurs="0" name="contexts" type="tns:talendContexts" />
<xs:element minOccurs="0" name="in-attachments" type="tns:inAttachments" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="in-data-bean" type="tns:inRow" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="talend-option" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="talendContexts">
<xs:sequence>
<xs:element name="outputLocation" type="xs:string" minOccurs="0"
default="C:/Documents and Settings/vzurczak/Bureau/output.csv" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="inAttachments">
<xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:complexType name="inRow">
<xs:sequence>
</xs:sequence>
</xs:complexType>
{code}
\\
As you can see, the context name, type and default value have been exported in the generated WSDL.
In any case, the default value is more useful to document the service than for the execution.
{note}
Obviously, the file path example to illustrate a context may not be the best one (for portability reasons).
Anyway, it serves its purpose, which is being an example of interactions between Petals ESB and a Talend job.
{note}
\\
And the output message only includes the job's result.
{code:lang=xml}
<xs:element name="executeJobResponse" type="tns:executeJobResponse" />
<xs:complexType name="executeJobResponse">
<xs:sequence>
<xs:element minOccurs="0" name="talend-job-output" type="tns:talendJobOutput" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="talendJobOutput">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="executionResult" nillable="true" type="ns1:stringArray" />
<xs:element minOccurs="0" name="outAttachment" type="tns:outAttachments" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="outDataBean" nillable="true" type="tns:outRow" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="outAttachments">
<xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:complexType name="outRow">
<xs:sequence>
</xs:sequence>
</xs:complexType>
{code}
h2. Deploying and testing this new service
To test this service, you can use a tool like SoapUI.
This way, you can see what the XML messages look like.
The first thing to do is to create a service-unit for the Petals-BC-SOAP component, that exposes (consumes) our _Talend job as a service_ outside the bus.
This step is not described here. You can take a look at the Petals-BC-SOAP documentation and the Petals Studio documentation.
Just make sure the SOAP configuration uses the InOut MEP.
\\
Now, your input message (in SoapUI) should look like this:
{code:lang=xml}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tal="http://petals.ow2.org/talend/">
<soapenv:Header/>
<soapenv:Body>
<tal:executeJob>
<!--Optional:-->
<tal:contexts>
<!--Optional:-->
<tal:outputLocation>C:/Documents and Settings/vzurczak/Bureau/output.csv</tal:outputLocation>
</tal:contexts>
<!--Optional:-->
<tal:in-attachments/>
<!--Zero or more repetitions:-->
<tal:in-data-bean/>
<!--Zero or more repetitions:-->
<tal:talend-option>?</tal:talend-option>
</tal:executeJob>
</soapenv:Body>
</soapenv:Envelope>
{code}