Starting a Business Service — Service Connector API Example (Java)
An example is provided that illustrates starting a business service using the method calls available in the Service Connector API.
The step numbers in the comments correspond to the steps in the illustration Starting a Business Service.
private void startBusinessServiceExample()
{
try
{
// Get all the business service categories that are available
ListCategoriesResponse categories = serviceConnectorInstance.getBusinessService().listCategories( Long.valueOf(0), Long.valueOf(0), true, null, true, null);
// Step 1: For this example we will pick the first category
if (categories.getCategoryArray() != null && categories.getCategoryArray().length > 0)
{
// Query the business services for a particular category ( and all child categories by adding "/**" )
QueryBusinessServicesResponse response = serviceConnectorInstance.getBusinessService()
.queryBusinessServices(categories.getCategoryArray(0).getName() + "/**", null, true);
if (response.getBusinessServiceTemplateArray() != null
&& response.getBusinessServiceTemplateArray().length > 0)
{
// Get the first business service for the category
BusinessServiceTemplate template = response.getBusinessServiceTemplateArray(0);
// Step 2: Start the first business service
StartBusinessServiceResponse startResponse = serviceConnectorInstance.getBusinessService()
.startBusinessService(template, null, PayloadModeType.XML, Long.valueOf(0));
// Now we would use the forms API to open the Business Service and allow users to enter data
// After form processing is complete update the business service with the new data
// Build up a request context for the update call
RequestContext requestContext = RequestContext.Factory.newInstance();
// We need a Process Reference for the context
ProcessReference ref = ProcessReference.Factory.newInstance();
ref.setId(startResponse.getPageResponse().getContext().getProcessReference().getId());
// We also need an Activity Reference for the context
// For this example we will update the first activity in the business service
ActivityReference actRef = ActivityReference.Factory.newInstance();
actRef.setActivityId(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getActivityId());
actRef.setActivityModelId(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getActivityModelId());
actRef.setActivityName(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getActivityName());
actRef.setModuleName(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getModuleName());
actRef.setModuleVersion(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getModuleVersion());
actRef.setProcessName(startResponse.getPageResponse().getPageDataArray(0).getPageReference()
.getProcessName());
// update the request context with the Process Reference and Activity Reference
requestContext.setProcessReference(ref);
requestContext.setActivityReference(actRef);
// setup the data payload with the new business service data, normally we would get this back when the form is closed or submitted
DataPayload payload = DataPayload.Factory.newInstance();
payload.setPayloadMode(PayloadModeType.JSON);
payload.setSerializedPayload("");
// Step 3: Update the business service
UpdateBusinessServiceResponse updateResponse = this.serviceConnectorInstance.getBusinessService()
.updateBusinessService(requestContext, null, PayloadModeType.XML);
print(updateResponse);
}
}
}
catch (com.tibco.n2.busserv.services.InternalServiceFault e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (com.tibco.n2.busserv.services.InvalidArgumentFault e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (com.tibco.n2.busserv.services.PageFlowExecutionFault e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Copyright © Cloud Software Group, Inc. All rights reserved.
