Developing and deploying transformations using WebSphere TX Design Studio, Integration Flow Designer, and Launcher

This article shows you how to create type trees and maps using WebSphere Transformation Extender (WebSphere TX) Design Studio, how to create process flows and the executable systems of maps using WebSphere TX Integration Flow Designer, and how to deploy maps as executable systems using WebSphere TX Launcher.

Share:

Nidhi Nijhawan (nidhinijhawan@in.ibm.com), IBM Certified IT Specialist IT Specialist, WebSphere Worldwide Business Partner team, IBM

Nidhi Nijhawan works for the WebSphere Lab Services team in IBM India, and is an EAI consultant for WebSphere Transformation Extender, WebSphere Message Broker, WebSphere MQ, and WebSphere DataPower SOA Appliances. She has five years of industry experience. You can contact Nidhi at nidhinijhawan@in.ibm.com



Devipriya Selvarajan (dselvara@in.ibm.com), Messaging Consultant, IBM

Devipriya Selvarajan is a Messaging Consultant on the WebSphere Lab Services team. She handles Business Partner enablement for WebSphere Transformation Extender, WebSphere Message Broker, WebSphere MQ, and WebSphere DataPower SOA Appliances. You can contact Devipriya at dselvara@in.ibm.com.



11 November 2009

Also available in Chinese

Introduction

IBM® WebSphere® Transformation Extender (hereafter called WebSphere TX) is a powerful, transaction-oriented universal data transformation and validation solution that automates the transformation and routing of high-volume data from source systems to target systems in both batch and real-time environments. It handles data in any format -- XML, non-XML, or mixed. This article describes WebSphere TX Design Studio, Integration Flow Designer, and Launcher, and shows you how to implement a supply chain scenario.

In this scenario, when an order is received, if the quantity requested is 100 or higher, OrderStatus is set to Unavailable, and if it is below 100, OrderStatus is set to Available. This message is passed on to the shipping department, which checks OrderStatus. If it is Available, then the shipping status is updated to Shipped, otherwise it is set to Rejected. In the following sections, you will see how to implement this solution using:

  • WebSphere Transformation Extender Design Studio to develop and test maps
  • WebSphere Transformation Extender Integration Flow Designer to develop a system of maps
  • WebSphere Transformation Extender Launcher to deploy the systems developed in Integration Flow Designer

Developing type trees and maps using WebSphere TX Design Studio

To implement the above scenario, you need to develop two maps -- Order and Shipping. Order map takes input in the form of flat files and transforms them to XML. The Shipping map takes the output XML from Order map and transforms it to another XML file with the Shipping information. To begin with, you need to develop the type trees required for these two maps.

Developing the input type tree for the Order map

The input to the Order map is in comma separated format. Each input file has many Order records, each of which consists of the following fields: Catalog Number, Contact Address, Contact Name, CustomerID, OrderDate, OrderNumber, QtyOrdered, UnitPrice, and WantDate.

  1. Open the WebSphere TX Design Studio and select a workspace.
  2. In the Transformation Extender Development perspective, create a new Extender project. Enter the project name as SupplyChain and click Finish.
  3. Right-click on the TypeTrees folder under the SupplyChain project, and select New => Type Tree:
    Figure 1. Creating new type tree
    Figure 1
  4. Select SupplyChain as the parent folder and name the TypeTree Order_CSV.
  5. After the type tree has been built, you will be prompted to open the type tree. An empty type tree will open up in the editor and at the bottom of the page, you will see the Extender Properties view, which shows the properties of a particular data type. Select Root and click on the Extender Properties View.
  6. Modify the properties of the Root type. Change the name of the type from Root to Data and press Enter:
    Figure 2. Type tree designer window
    Figure 2
  7. Right-click on Data and select Add to add the other data types. Click Yes in the pop-up window to create a new data type.
  8. In the Extender Properties view, change the name of the data type to Element and press Enter. Under this category, you will create all of the item-level data types.
  9. Similarly, create a category for Groups.
  10. Start adding the fields under the Element category in a similar way. The Class property must be changed from Category to Item. The Catalog Number element is in Text format. Choose the properties as shown below:
    Figure 3. Catalog Number properties
    Figure 3
  11. Similarly, create the other text fields: Contact Address, Contact Name, CustomerID, and OrderNumber. Add the QtyOrdered and UnitPrice fields under the Element category. These fields are of Number format, so choose the properties as shown below:
    Figure 4. QtyOrdered Properties
    Figure 4
  12. Add the OrderDate and WantDate fields under the Element category. These fields are of Date format, so specify the Item subclass as Date && Time and leave other properties as default.
  13. Create groups for the Order record and the entire file, which has multiple Order records. Add a group called Record under the Groups category. Select the Class property as Group. Each Order record consists of fields separated by commas, so this group is defined as Explicit -- Delimited and the delimiter value is "," . Each record is terminated by newline character:
    Figure 5. Record Group properties
    Figure 5
  14. Add another group called File under the Groups category.
  15. Since the Record is an explicitly defined group, the File will be an implicit group. So change the class to Group and leave other properties as default. The type tree definition is now complete:
    Figure 6. Completed type tree view
    Figure 6

Developing the output type tree for the Order map

Download the Order.xsd file at the bottom of the article if you have not already done so and use it to create the output type tree:

  1. Right-click on TypeTrees in the Extender Project and select Import => XMLSchema.
  2. Select Order.xsd in the XML Schema Importer window and click Next.
  3. Select the Parent project and click Finish to generate the type tree, which is named Order.mtt.
    Figure 7. Order Type Tree generated from XSD
    Figure 7

Developing the Order map

  1. Right-click on the Map Files folder in the Extender Project and select New => Map Source.
  2. Give the name as SupplyChain.
  3. In the Outline view, right-click on the Map Source and select New:
    Figure 8. Creating new map
    Figure 8
  4. Give the name of the map as Order.
  5. Right-click on the input cards and select New. Enter the values as shown below and click OK:
    Figure 9. Input card properties for Order Type Tree
    Figure 9
  6. Right-click on the output cards and select New. Enter the values as shown below and click OK:
    Figure 10. Output card properties for Order Type Tree
    Figure 10
  7. The map will open in the Toolkit. Populate the fields in the output tree as shown below. Enter each value in the Rule Editor and press Enter. The value will be added in the Output Card field. For the entry F_OrderCSVtoXML(Record:CSVinput), write the name of the functional map as F_OrderCSVtoXML() in the Rule Editor. Drag and drop the Records field from the input card in the braces and press Enter:
    Figure 11. Mapping the fields in Order map
    Figure 11
  8. F_OrderCSVtoXML is a functional map, which is like a subroutine, and will be executed for mapping each record in the input file one-by-one. Right-click on F_OrderCSVtoXML and select Functional Map Wizard. In the wizard, click Create:
    Figure 12. Functional map wizard
    Figure 12
  9. Map the fields in the functional map. Drag and drop each field in the input card onto the respective field in the output card. For the OrderStatus variable, there is simple logic to check if the ordered quantity is less than 100. Add the rule to the Rule Editor as shown below and then press Enter:
    Figure 13. Adding rules for the fields in Order map
    Figure 13
  10. Save the map. The map outline should look like this:
    Figure 14. Map outline view
    Figure 14
  11. Right-click on the Order map and select Build. Check the Build Results view to see if there are any errors.
  12. When the build is successful, right-click on the Order map and select Run. If the run is successful, the following window will pop up:
    Figure 15. Map execution successful
    Figure 15
  13. Under the Misc folder in the Extender project, open the output file XMLOut.txt. If the file has records in XML format as shown below, the map has executed successfully:
    <Order>
    <OrderNumber>ABC123</OrderNumber> 
    <CustomerID>CUST01</CustomerID>
    <ContactName>DeviPriya</ContactName>
    <ContactAddress>XYZ Street Bangalore</ContactAddress>
    <OrderDate>2009-07-07</OrderDate>
    <WantDate>2009-10-07</WantDate>
    <CatalogNumber>123</CatalogNumber>
    <QtyOrdered>50</QtyOrdered>
    <UnitPrice>10</UnitPrice>
    <OrderStatus>AVAILABLE</OrderStatus>
    </Order>
  14. You need to create another map named Shipping. Import the Shipping.xsd file provided in the downloadable artifacts.zip file. Create a type tree out of the .xsd file using the instructions above. Create a map named Shipping. The input card to this will refer to the Order type tree and the output card will refer to the Shipping type tree. In the input card for Get => Source => File Path, enter the file name as XMLOut.txt. For the output card, enter the file name as ShippingXML.txt. The main map will look like this:
    Figure 16. Shipping map view in map designer
    Figure 16
  15. Create the functional map F_OrdertoShipping using the Functional Map Wizard and populate the map rules as shown below:
    Figure 17. Functional map referenced from Shipping map
    Figure 17
  16. Build and run the Shipping map. The output of the Order map XMLOut.txt is the input to the Shipping map. Since the Order map has been run successfully, XMLOut.txt will be present in the workspace. When you run the Shipping map, XMLOut.txt will be the input to the map and the output generated will be ShippingXML.txt. Verify that it is similar to this:
    <Shipping>
    <OrderNumber>ABC123</OrderNumber>
    <CustomerID>CUST01</CustomerID>
    <ContactName>DeviPriya</ContactName>
    <ContactAddress>XYZ Street Bangalore</ContactAddress>
    <OrderDate>2009-07-07</OrderDate>
    <ShippingDate>2009-10-28</ShippingDate>
    <CatalogNumber>123</CatalogNumber>
    <QtyOrdered>50</QtyOrdered>
    <UnitPrice>10</UnitPrice>
    <ShippingStatus>SHIPPED</ShippingStatus>
    </Shipping>

Developing a system of maps using WebSphere TX Integration Flow Designer

WebSphere TX Integration Flow Designer helps you create visual process flows, and from them create executable systems that are processed by the Launcher or Command Server. It enables you to easily manage collections of related maps by graphically organizing them into logical collections of systems. The graphical representation of systems in the Integration Flow Designer helps to visualize system designs, what-if scenarios, and system execution behavior. In this section, you will develop a system of maps that you have already created, and then deploy the executable system in WebSphere Transformation Extender Launcher:

  1. Open the Integration Flow Designer GUI: Select Start => WebSphere Transformation Extender V8.2 => Design Studio => Integration Flow Designer. Select Create a new system definition file.
  2. From the menu, select System => Add Component => Source Map:
    Figure 18. Adding source map
    Figure 18
  3. Browse and select the source map name from the workspace path. The maps in the map source will be listed. Select both of the maps to create the System. Sometimes the Order map is hiding under the Shipping map on the canvas, so you will need to drag the Shipping map to see the Order map.
  4. Double-click on the maps to open up the input and output cards:
    Figure 19. Maps in Integration Flow Designer
    Figure 19
  5. Verify the location of the input files, output files, and schema files. If the file locations are correct, you will see connectivity between the maps. If not, give the absolute path reference for the files by double-clicking the input and output files:
    Figure 20. Launcher settings
    Figure 20
  6. The output file of Order map is the input file to Shipping map. After the file paths have been corrected, you will see the connectivity between the maps as shown below. If you change any parameter in this setting, it will override the map setting.
    Figure 21. System created in Integration Flow Designer
    Figure 21
  7. Right-click on the map and select Edit Launcher. The window shown below in Figure 22 will open. Expand the inputs and change Source Event from OFF to ON, to signal the Launcher to run the map when the input file arrives in the specified directory. Click OK.
    Figure 22. Editing Launcher settings
    Figure 22
  8. After you have turned on the Source Event, you will see a pair of glasses watching for an event.
  9. Select LocalServer as the Server and Execution Mode as the Launcher. Save the System definition file.

Deploying system of maps using WebSphere TX Launcher

WebSphere TX with Launcher provides a standalone event server to host the WebSphere TX engine. It includes the command-line and script processing capabilities and activates transformations when triggered by an event, such as a file creation, a message arriving on a WebSphere MQ queue, a database trigger, a scheduler, or a combination of different triggers. The Launcher offers an online run-time environment that synchronizes and controls complicated data transformations while maintaining and optimizing the execution environment for the transformations. This section shows you how use the WebSphere TX Launcher to deploy the executable system that you developed in the Integration Flow Designer.

  1. To deploy the map, select System => Deploy => Definitions. Name it SupplyChain:
    Figure 23. Editing deploy definitions
    Figure 23
  2. Highlight Generate and Transfer Launcher Control File, and click Details:
    Figure 24. Editing deploy definitions
    Figure 24
  3. Select the WebSphere TX installation directory /Systems and save the deploy scripts with the name SupplyChain.msl. You must save the .msl file in /Systems so that the Launcher can find it.
  4. Close the Define Deploy Scripts window.
  5. To deploy the definition to the Launcher runtime, select System => Deploy => SupplyChain.
  6. If the deployment is successful, you will see the message "The deploy operation has completed successfully.
  7. Click Yes on the pop-up window to view the results, which should look like this:
    Figure 25. Results of successful deploy
    Figure 25
  8. Start the service IBM WTX Launcher. If it is already started, stop and restart it. When you deploy a new system file, you must restart the Launcher.
    Figure 26. IBM WebSphere TX Launcher service
    Figure 26
  9. The input file is already available in the input file location. After the Launcher has restarted, check the directories C:\\Documents and Settings\\Administrator\\IBM\\wtx\\devworks\\SupplyChain\, (or wherever you have configured the output to be written to) for the output files. If the Launcher has run the maps and generated the output files, you should see XMLOut.txt and ShippingXML.txt. If the files are not there, check that the input file and schema files are in the correct locations, and that the system has the correct absolute path reference to their locations.

Conclusion

This article has shown you how to:

  • Develop and test maps using WebSphere TX Design Studio.
  • Develop a system of maps using WebSphere TX Integration Flow Designer.
  • Deploy the systems using WebSphere TX Launcher.

Downloads

DescriptionNameSize
Project files1artifacts.zip 2 KB
Complete Solution2solution.zip72 KB

Notes

  1. artifacts.zip contains the project artifacts.
  2. solution.zip contains all solution artifacts: the project interchange file for the Extender project, the system definition file (.msd), and the Launcher file (.msl). To run the application, import the Extender project into WebSphere TX Design Studio.

Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into WebSphere on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=WebSphere
ArticleID=445691
ArticleTitle=Developing and deploying transformations using WebSphere TX Design Studio, Integration Flow Designer, and Launcher
publish-date=11112009