Example: Creating a Service
A sample service is provided to illustrate how to write a basic service for Sterling B2B Integrator.
Files for the test service are contained in the installTestService.jar file. After you install the jar, you will have a custom service named BTI Service created. Make sure the file has the following structure:
META-INF
MANIFEST.MF
testservice
jars
testservice
1_0
testservice.jar
bpml
testFileService.bpml.in
servicedefs
TestServices.xml
TestFileService.java
serviceinstances.xml
These files are explained in the following sections.
Service definition
The service definition defines the service. The TestServices.xml file contains the definition for the service.
It has important information like the implementation class of the service and the type
of service. In this example, type=”Basic”
defines it as a service, and
not an adapter.
Service Instance
The service instance defines an instance of the service. The serviceinstances.xml file contains the service instance. It has information like the display name and the target of the service. Because you can manually define a service through the user interface, this file is optional.
Implementation of the service
The Test service is implemented in Java. It requires some JAR files delivered in Sterling B2B Integrator. For most services, including this one, the following JAR files are needed:.
- install_foundation.jar
- platform_afc.jar
- platform_baseutils.jar
- platform_ifcbase.jar
- platform_security.jar
- platform_asi.jar
These files are obtained from the Sterling B2B Integrator installation directory. For example, the platform_asi.jar file is located in the <Install_Diretory>/ jar/platform_asi/1_3 folder.
Class definition
The file testservice.jar provides the class definition. This JAR file contains one file namedcom/sterlingcommerce/wordstock/testservice/TestFileService.class. When installed, this file will be appended to the <Install_Directory>/dynamicclasspath.cfg file.
Details for the test service
The test service needs to implement an interface called IService. This is done with the line:
public class TestFileService implements IService {…}
At the start, the Test service calls method harnessRegister() in the WorkFlowContext.java file to register the thread for this service so we know that the workflow is executing this service. At the end, the service calls unregisterThread() to unregister the thread so we know that a workflow is not executing the service.
Other methods can also be called:
- Call method getParm(..) to get the parameters passed to the workflow.
- Call method Manager.getProperties(..) to get the properties in a property file.
- Call method getPrimaryDocument() to get the primary document passed from the previous service,
- Call method putPrimaryDocument(..) to make a document the primary document.
- Action FS_EXTRACT is for writing the content in primary document to a file in disk.
- Action FS_COLLECT is for getting the content of a file in the disk and writing it to the document then making it a primary document.
Workflow to test the Test service
The file testFileService.bpml.in is a test workflow for testing the service. When run, it gets the primary document from the user interface, and then writes to a file in the disk. Then it reads the newly generated file, writes to a document, and makes it the primary document.
Installing and using the Test service
- Use the InstallService.sh or Install
Service.cmd file to install the
installTestService.jar file. For information about the
InstallService file, see bin Directory Files.
A service called Simple Test File Service will be created. The new service has type TestFileService.
A workflow (business process) called TestFileService will also be created.
- After installing the service, review the <Install_Directory>/documents/testFileService.txt file. Look at the details of each step to help understand the Test service.
- Run the TestFileService business process, and you will see that a document is created in the <install_dir>/documents folder.
Creating a custom service or adapter
To create your own custom service or adapter: