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.