BridgeGate™


Tutorial 3: Using Variables, Plug-ins, Sequences and Conditional Field Lists

Table of Contents

Using Variables, Plug-ins, Sequences and Conditional Field Lists

Introduction

This third sample walks you through creating another simple Inbound Template, but this time the Outbound Templates will contain more than just plain old Records and Fields. We will learn how to manipulate the Inbound Data, and use Conditions to determine whether or not some of the data will be 'forwarded' on to the outbound data. This Sample will include 4 different Outbound Templates. To reduce complexity, we will use a simple outbound data format, consistent for all the Outbound Templates. Other Tutorials show how easy it is to convert outbound data formats into other formats with very little effort.

Our first Outbound Template will cover the use of Variables. Variables can be used to perform concatenation and arithmetic functions on inbound data, with the ability to use the resulting values as Outbound Fields. Also, these resulting values can be used for a number of other purposes. They can be passed into Plug-ins for further manipulation through programming code (Java, C++, etc), they can be passed into Sequences and other Variables, or even used Conditionally to determine if entire Records are to be added to the outbound data. This Outbound Template is designed only to demonstrate Variables. This will allow easy reference later when Variables need to be created in your own Templates.

Our second Outbound Template will cover the use of Plug-ins. For simplicity, our Plugin will use the Java programming language, the same language BridgeGate Is based upon. A more complex example using a Plugin to expose Native C++ code using Java Native Interface (JNI) is discussed in another Tutorial. Briefly, BridgeGate™ allows you to send values into the Plugin, perform business logic on them (or possible obtain data elsewhere using Sockets, Database connections, HTTP Connections, etc), and ultimately allow for the return of values that can be used as Outbound Fields. Like Variables, these resulting values can be used for a number of other purposes; they can be passed into other Plug-ins for further manipulation through programming, they can be passed into Sequences and other Variables, or even used conditionally to determine if entire Records are to be added to the outbound data. This Outbound Template is designed only to demonstrate Plug-ins. This will allow easy reference later when you need to create Plug-ins in your own Templates.

Our third Outbound Template discusses the use of Sequences. Sequences are provided as a built in feature of BridgeGate™ to allow you can create virtually unlimited number of different types of Sequences that allow you to retrieve a guaranteed next integer value from a list. This is handy for created Ids, Order numbers, etc. These values are typically used directly as an Outbound Field, but like Variables and Plug-ins can be passed into any other special object in BridgeGate™ for further use.

Our final Outbound Template covers a vital piece to most Industry Standard Formats, as well as many others. Conditional Field Lists allow Records (or even a few Fields) to be conditionally added to the outbound data. Many formats will provide for up to 8 different types of Records (or Segments in EDI), with only 1 of the allowed to be used based on the value of some inbound data. Using Conditional Field Lists, this is easily accomplished. Raw data from the inbound data can be used for determining Conditionality, but as has been expressed in the previous paragraphs, BridgeGate™ allows for complete data manipulation prior to a Condition being used.

To continue in our series of Samples, and in an attempt to focus our Tutorials without making them overly complex, we will use a variation of the same data from a previous Sample.

Fred,Flintsone,Flintstones,Male,Black,40
Betty,Rubble,Flintstones,Female,Black,30
Elroy,Jetson,The Jetsons,Male,Bonde,10
Judy,Jetson,The Jetsons,Female,White,16
Barney,Rubble,Flintstones,Male,Blonde,33
Wilma,Flintstone,Flintstones,Female,Red,35
George,Jetson,The Jetsons,Male,Red,40
Jane,Jetson,The Jetsons,Female,Orange,35

Creating an Inbound Template

Again, you will start by defining the Inbound Template. To open our Inbound Template, click on the Manage Inbound Templates button in the toolbar:

We are going to start by using the Wizard to create a new Workflow group in which to place our Inbound Template. Pick the drop down arrow and create a Sample3Test Workflow group.

Now, once again, we will use the Wizard to 'Create a new Inbound Template'. Name this Template 'MySample3Inbound', named after the completed Inbound Template for this Tutorial, 'Sample3Inbound'. After creating the Inbound Template, you will see it populated in the Inbound Templates tree.

From our sample data above, we see we have a single Record, consisting of 6 Fields. Let's create those now. After adding 'New Body Record', the Unnamed1 Record is displayed. Now create a 'New Field'. The new Unnamed1 Field is then displayed:

Create 5 more Fields in this manner. Then select the UNNAMED1 Record from the tree to the right. At this point, you can define Record and Fields, as before.

We begin by changing the Record name from 'UNNAMED1' to 'PERSON". We will remove the Record Mappings section by highlighting the Unnamed1 Mapping, and then with the right mouse button, select the 'Delete Selected Record Mapping'. You do not need a record mapping if you only have a single type of record.

Complete the process by defining each of the Fields, each as an Char data type, just as before. We select the first Field named UNNAMED1, and change the Map Name to 'First Name' and the description to 'First Name' as well. Leave everything else alone for this Tutorial. This time, the Description entered will be displayed in the Tree to the right. If no Description is available, the Map Name is shown. If this is an XML Inbound Template, the Element Name is shown. Follow the same instructions for the remaining Fields according to the attributes below.

2nd Field: Last Name
3rd Field: Cartoon
4th Field: Sex
5th Field: Hair Color
6th Field: Age

Remember at the beginning of this Tutorial we stated that our Records are delimited with a Carriage Return (CRLF) and the Fields within the Record are delimited by a Comma (,)? The Template at the bottom left panel of the screen is where these settings are located. By default, the first data type in the drop down says "CSV (Comma Separated Value)". This is close to what we want, but CSV formats also have double quotes "" around each Field in addition to the commas to separate Fields. Our data format does not specify this, so we have to manually set our data type.

Select DELIMITED from the Data Type drop down. Select CRLF from the Record Type drop down (or type CRLF in), type a ',' (a Comma) for the Field Delimiter, select is from the ASCII chart displayed by the Chooser (A Comma is ASCII value 44).

When finished, the Template will have the following fields:

That's it for our Inbound Template. We now have all the information we need to define our original data. Click the save button in the Toolbar at the top of the screen:

The 'Save Verification' screen will be displayed. If there are no errors found, Save Selected Items.

Troubleshooting the Inbound Template

If you see an error when trying to save that says: "Record Mapping for Record Type PERSON has no comparator value" you have not deleted the Record Mapping from the PERSON Record. Follow the previous directions on the page defining the Record PERSON for how to delete the Record Mapping.

Creating the First Outbound Template: Using Variables

From the Toolbar, click on the Outbound Template:

We will use a Wizard to create an Outbound Template. Make sure the sample3test Workflow Group is selected. Select the drop down arrow in the Workflow Group Navigator, and using the Wizard, 'New Template Wizard…' and name this Outbound Template 'MySample3VariableOutbound'.

Again, notice CSV (Comma Separated Value) is the first data type in the drop down in Template Properties. Select DELIMITED for the data type from the drop down. Set the Field Delimiter to '|' (PIPE, located above your Enter button). Set the Record Delimiter to CRLF by selecting it from its drop down. Make sure that none of the boxes are checked. These will be discussed in a different Tutorial. For the Inbound Template Dependencies, select MySample3Inbound, which we just created. This allows the BridgeGate Template Builder to know which Inbound Template we are going to create mappings to.

Like the Inbound Template, change the Body Record to PERSON by entering 'PERSON' into the Description. Because PERSON is a Record Type from the Inbound Template, and it is one we expect to repeat over and over (in our case, 8 persons' from the two Cartoons- The Jetson's and The Flintstones), select PERSON Inbound Record Type from the drop down.

Not all Records you create for the Outbound Template will be mapped to an Inbound Record. If you create a Record in your Outbound Template that does not exist in your Inbound Template, then "Loop Record (optional)" is left blank. Outbound Records that are linked to an Inbound Record Type display a symbol next to the Record in the Target Layout tree. Outbound Records that do not link to an Inbound Record Type show a symbol.

We want to check the box, 'Use Record Delimiter at End of Record'

Now we can create the Template Fields for MySample3VariableOutbound. As we have done in the previous exercises, we will create the Fields for the Outbound Template.

Now, go ahead and toggle the 'Drag and Drop Mode' to open the Source Layout tree all the way, allowing the 6 inbound Fields to be displayed. As you will see, the Inbound Template is displayed here to allow you to drag and drop of the Inbound Records and Fields onto the Target Layout, which the right side of the screen. This allows you to quickly produce all the Fields needed for the outbound data format without actually having to recreate them. Make sure that the Link Mode is unchecked.

Since this Tutorial is only focusing on the basics of translating a data format into another, we will leave the Fields in the same order as they were read in. However, in the Outbound Record, we want to concatenate the 'First Name' and 'Last Name' from the Inbound Record into a Field called 'Full Name' in the Outbound Template; we will accomplish this by using variables.

Drag the inbound record PERSON to the outbound record PEOPLE and drop it.

If the Fields become out of order from the Source Layout, drag them to the proper place within the Target Layout tree. BridgeGate Workbench drops all objects BELOW the object it was dropped on. You can drag the Fields out of order intentionally here and place them back in order to get a feel for the drag and drop abilities.

Your initial layout will show a 'First Name' and 'Last Name' in the Outbound, but below, we are going to concatenate the 'First Name' and 'Last Name' from the Inbound into a Field called 'Full Name' in the Outbound. All of the other properties for Fields will be discussed in later Tutorials.

Up to this point, the Outbound Template appears almost identical to that in a previous example demonstrating XML Outbound Templates. We will now be creating 3 different Variables. The First Variable will be used to concatenate the First and Last Names and reduce them to a single Field. The Second Variable will count the number of persons found, and report the total into a very simple Trailer. The Third Variable will count the total age of all persons found, and report the total into the same Trailer. Let's get started with the Variables.

First Variable

Click on the PERSON Record, and click on the drop down arrow in the Records tree (or right mouse click) and pick 'New Variable'. This allows the Variable to be the first object under the Record PERSON. Then in the Variable Actions window under Variable Properties, right mouse click and add a New Variable Action:

Change the Variable Name to 'FirstLastName', Initial Value is the default value to which this Variable will be initialized. If we were performing arithmetic with this Variable, we could have set it to 0. Leave the Initial Value blank to indicate 'empty' since that's the value we want to use before adding the First and Last Names together. Select the first Variable Action created, select Variable Action 'SET' and Map Name 'First Name' from the PERSON Record Type.

Set the Inbound Record Name to PERSON by selecting it from the drop down (this is the Inbound Record Type PERSON), then for Inbound Field Name select First Name from the drop down, and change the Record Type to Char. Select Variable Action 'CONCATENATE'. Repeat the process as described above for Last Name, as seen below.

Delete the field named Last Name.

Confirm deletion of the field by clicking Yes.

Change the field named First Name to 'Full Name', and map it to the variable named FirstLastName as seen below:

Second Variable

The Second Variable will be used to count the total number of persons found in the inbound data, and report the result in a new Field located on the 'Trailer' tab of the Target Layout tree. Like the first Variable, select the Record: PERSON in the tree, click 'New Variable', creating another Variable, this time directly above the last Variable. Name this Variable PersonCounter. Set the Initial Value to 0 (zero).

Select the Variable Action to COUNT, Set Increment By to 1 (This textbox will appear when you select COUNT), and uncheck the 'Reset Before Use'. If we leave 'Reset Before Use' as checked (TRUE), then for each person the value will be set back to 0.

Variables can be reused as many times as needed throughout the Outbound Template, and many complex Templates will do so. A good example of this is for an Order, where each order needs an OrderTotal Variable to be reset at the start of each Order, and each Item found needs to be counted for the Order. When the last Item is found for the Order, the total can be placed in a Field. Then the Variable can be reset and ready for use in the next Order record. For our Sample, setting it to FALSE is proper, because as our PERSON's finish, we need to maintain the value so we know how many we have!

Now select the 'Trailer' tab at the TOP of the Records tree, currently we are on the 'Body' tab. The Trailer will be empty. Right mouse click or use the drop down to Add a New Record to the Trailer.

Set the Description to Trailer. Right mouse click (or use the drop down) in the Records tree and add a new 'Field'. Set the Description to PERSONCOUNT. Select the Record Type VARIABLE, and then set the Name to 'PersonCounter'. Set the Field Type to INTEGER, or else the Variable will report the value as a decimal (in our case, 8.0 people), as seen in the following screen:

Third Variable

Our final Variable will perform addition. We will add the ages for each Person record found, and report this as the second and final Field in the Trailer. Create a third Variable, its location is unimportant for this particular Format. This Tutorial adds it to the beginning again, like the last two Variables have been. Name this Variable AgeCounter. Set the Initial Value to 0 (zero). Set the Variable Action to 'ADD'. Set the Field Type to 'INTEGER'. Select the Record Type 'PERSON' and set the Name to 'Age'. Here is a screen shot of the completed Third Variable.

Now, let's add the Field to the Trailer that we will report the total Age in. Click on the 'Trailer' tab, select the first Field created (PERSONCOUNT), and then click 'New Field'. This will create a new Field underneath PERSONCOUNT. Click on this Field, and set the Description to AGECOUNT. Select Record Type VARIABLE, and Name 'AgeCounter'. Set this field as type INTEGER, or else the Variable will report the value as a decimal (in our case, 138.0 total years). Here is the completed Trailer Field:

Click save from the Toolbar at the top of the screen:

Testing the Variable Outbound Template

To test this Outbound Template we just created, click on the Test button in the Toolbar:

Select the templates for your Inbound and Outbound test.

The test data should automatically appear in the Test Data window. If not, copy and paste the following data into the area of the Screen that asks for it.

Fred,Flintsone,Flintstones,Male,Black,40
Betty,Rubble,Flintstones,Female,Black,30
Barney,Rubble,Flintstones,Male,Blonde,33
Wilma,Flintstone,Flintstones,Female,Red,35

Press the Test Translation button, and the translated results should be displayed in the Result window.

Creating the Second Outbound Template: Using Plug-ins

From the Toolbar, click on the Outbound Template Builder:

Once again, we will use the Wizard to create a new Outbound Template. Make sure the sample3test Workflow Group is expanded and select the existing outbound template named 'mysample3variableoutbound'. and open the New Template Wizard from the Outbound Templates drop down arrow.

Click on 'Copy selected Template…', and name the new copy 'MySample3PluginOutbound' and select Finish.

Change the data type to XML. Set the Inbound Dependency for your Template.

Go to the 'Records' tab and delete the 3 Variables created from the last Exercise.

Confirm deletion of the three fields by clicking Yes.

Click on the 'Trailer' tab at the top of the Target Layout tree and delete the record and both Fields created from the last Exercise.

Confirm deletion of the record by clicking Yes.

Delete and confirm deletion of the Full Name field from the last exercise, as we will be adding a FIRST_NAME element and a LAST_NAME element.

Click on 'Mapping Mode'. Drag the First Name and Last Name fields from the Source Layout tree on the left to the Records tree on the right. Put them back in the top two positions for the Fields as the originally were. Make sure to replace the 'space' with an 'underscore' for both <FIRST_NAME> and <LAST_NAME>, since white space is not allowed for XML Elements. When you drag over the Last Name, you get a dialog that asks whether you want to place the Element inside or after the previous Element. Select 'No' to place the Last Name after the First Name.

Here is what you should have at this point:

Click on the <PERSON> Record, click 'New Plugin'. The Plugin should appear directly below the <PERSON> XML Element, as the first object under it. For the Plugin Class drop down, select 'com.oidev.Sample3Plugin'.

Inbound Argument

Click on the on the In Values tab in the Plugin Properties section. For this Sample Plugin, it only requires a single Argument- Cartoon Name. Select Field Type Char, Source Record Name/Field Name for the Cartoon Name is from the inbound data as PERSON/CARTOON. The Plugin will perform its business logic, and return a value based on it. For Fred Flintstone, the value for CARTOON will be 'Flintstones', and so on. The plug-in will determine Copyright based on the external business logic found in the plug-in.

Outbound Argument

Click on the Out Values tab. You will see a non editable entry named COPYRIGHT. This value is populated with the result and you are able to access it after the plug-in executes.

Assigning the Outbound Argument value to an XML Element

In order for the value returned from the Plugin to be added in the outbound data, we need to assign the value to an XML Element. Let's create a new XML Element after AGE. Click on <AGE>, click 'New Element' and select 'XML Element'. The new XML Element is automatically selected.

Notice the Question Mark icon. This is always shown when a Record Type/Map Name mapping is not found.

For Element Name, enter 'COPYRIGHT_FOUND'. For Source Record Name, select PLUGIN, and for Source Field Name, select the COPYRIGHT. The Plugin has very simple logic, it checks to see if the value sent in was Flintstones or Jetsons, and returns Hanna-Barbera or Warner Brothers. The Logic used isn't important; these steps are demonstrated to show how external business logic can be executed and values returned. This Plugin can hook into any exist sources of data or additional business logic needed to produce a meaning decision, and allow return values if necessary.

Click Save from the Toolbar at the top of the screen:

Testing the Plugin Outbound Template

To test this Outbound Template we just created, click on the Test button in the Toolbar:

Be sure to select the Plugin Outbound Template from the drop down. Copy and paste the following data into the area of the Screen that asks for it.

Fred,Flintsone,Flintstones,Male,Black,40
Betty,Rubble,Flintstones,Female,Black,30
Elroy,Jetson,The Jetsons,Male,Bonde,10
Judy,Jetson,The Jetsons,Female,White,16
Barney,Rubble,Flintstones,Male,Blonde,33
Wilma,Flintstone,Flintstones,Female,Red,35
George,Jetson,The Jetsons,Male,Red,40
Jane,Jetson,The Jetsons,Female,Orange,35

Click the 'Test Data Translation' button and your browser will open showing the tested translation. Notice the <COPYRIGHT_FOUND> Data was created from within the Plugin, Hanna-Barbera and Warner Brothers, and the Plugin decided based on which Cartoon which Copyright to add.

Troubleshooting the Outbound Template

The following errors are possible from the Manage Outbound Template Screen.

You Must Specific a Root Element for this outbound XML Data.

Element names cannot have a space in them. Consider using an underscore '_'.

Creating the Third Outbound Template: Using Sequences

From the Toolbar, click on the Outbound Template Builder:

Use the Wizard to create a new outbound template. Make sure the mysample3pluginoutbound template is selected from under the the sample3test Workflow Group.

Select the New Template Wizard from the Outbound Templates drop down arrow. Click on the 'Copy selected Template…' radio button.

Name this new copy 'MySample3SequenceOutbound' and click Finish.

Delete both the Plugin created in the last exercise and the <COPYRIGHT_FOUND> Element.

Adding the Sequence

A sequence is a persistent counter. Sequences can be used for a variety of needs, such as EDI control numbers. Mainly, when a unique ID is required in a guaranteed incremental order, such as with an Order number or batch number, Sequences are used. Sequences persist forever; you can guarantee you will receive the next value from it a minute from now or next week, whenever the sequence is queried upon again. BridgeGate™ uses an internal database to store these sequences. There is no practical application for Sequence with our Flintstones example, so we will add a new Sequence to the beginning of every outbound record (for every cartoon character) and call it a Character Id. If you can, imagine different sets of data coming in, each with various quantities of other cartoon characters all grouped into batches. Each cartoon needs to keep a unique id number for each of its characters. Fred Flinstone could be 1 for Flintstones, while George Jetson would be 1 for The Jetsons. Click on the <PERSON> Record, and click on 'New Sequence' and shown below:

Make up a name for the Sequence, any name will do. This name allows you to identify this Sequence throughout its use, within the Outbound Template. For our example, call it 'seq1'. The Sequence Group is the actual persisted name from the BridgeGate internal database. If the Sequence Group does not exist, BridgeGate™ automatically creates a new Sequence for it and persists is for future use. For Sequence Group, enter 'Sample3 Sequence'. Since it does not exist, it will be created. Every time you run a test for this Outbound Template, you will notice the sequence number continuing from where it left off. Uncheck 'Increment Only Once'. Increment Only Once specifies what to do if more than 1 of this Record is found in the inbound data (i.e. more than 1 PERSON Record). If checked, then only the First 'Flintstone' PERSON Record would be incremented. Likewise, only the first 'Jetson' Record will get incremented. If this is unchecked (FALSE), as we have done, then each PERSON Record gets the next sequence available, no matter how many are found. For Increment By, enter 1 (one). To further specify the Sequence to use, you could optionally pass in the Source Record Name/Source Field Name for the Sequence. For our example, we will enter in the Cartoon Name, and a sequence will be started for the Flintstones, and a different one will be started for the Jetsons. For Source Record Name, select PERSON, and for Source Field Name, select CARTOON.

Now, the Sequence has been incremented, but the value has not been put into the Outbound Template. If the value is to be used in the outbound data, a Field has to be created for it. From this Sequence screen, click 'New Field'. For the XML Element Name, enter 'CHARACTER_ID' and define as seen below:

That's it for the Sequence Outbound Template. Click 'Save' from the Toolbar at the top of the screen:

Testing the Sequence Outbound Template

To test this Outbound Template we just created, click on the Test button in the Toolbar:

Copy and paste the following data into the area of the Screen that asks for it.

Fred,Flintsone,Flintstones,Male,Black,40
Betty,Rubble,Flintstones,Female,Black,30
Elroy,Jetson,The Jetsons,Male,Bonde,10
Judy,Jetson,The Jetsons,Female,White,16
Barney,Rubble,Flintstones,Male,Blonde,33
Wilma,Flintstone,Flintstones,Female,Red,35
George,Jetson,The Jetsons,Male,Red,40
Jane,Jetson,The Jetsons,Female,Orange,35

Click the 'Test Data Translation' button and your browser will open showing the tested translation. Notice the Character ID is always 1234. Sequences do not execute during testing in the Workbench, only for production runs.

To see the proper execution of the sequences, you will need to create a workflow, and execute it in the Portal using the 'Execute' tab under Operations. At that point, you will notice the increment in Character ID for each Cartoon. Both the Flintstones and the Jetsons reach 4 on the first pass, then continue to increment each successive run.

Troubleshooting the Outbound Template

The following errors are possible from the Manage Outbound Template Screen.

You Must Specific a Root Element for this outbound XML Data.

Element names cannot have a space in them. Consider using an underscore '_'.

The Root Element is specified on the 'Template Header' tab, at the top of the screen. Enter 'PEOPLE' for its value. The Fields <FIRST NAME> <LAST NAME> <HAIR COLOR> and <CHARACTER ID> need to be changed to <FIRST_NAME> <LAST_NAME> <HAIR_COLOR> and <CHARACTER_ID>.

Creating the Fourth Outbound Template: Using Conditional Field Lists

Use the Wizard to create a new outbound template. Make sure the mysample3sequnceoutbound template is selected from under the the sample3test Workflow Group.

Select the New Template Wizard from the Outbound Templates drop down arrow. Click on the 'Copy selected Template…' radio button.

Name this new copy 'MySample3ConditionalFieldListOutbound' and click Finish.

Delete both the Sequence and new Field to display the Sequence <CHARACTER_ID> created in the last exercise.

Click on the <PERSON> Record, and use the right click menu to select 'New Conditional Field List'.

For the Name, enter 'Flinstones Only'. For Record Type, select the PERSON Record created in the Inbound Template associated with this Outbound Template, and for Name, select CARTOON. Below, in the Condition section, you select any number of Comparators to allow a wide range of Conditions. For some of them, such as GREATER_THAN and LESS_THAN, the value must be a numeric type. For our example, EQUALS is the one we want, and it's already selected. For Field Type, select Constant from the drop down list. Set the constant value to Compare to 'Flintstones'. Make sure you type this exactly as it appears in the Sample Data; NO record will be produced in the outbound data if it's misspelled.

Now, the last step is to add all 6 Fields into the Conditional Field List.

Select all 6 fields and Drag them all onto the Conditional Field List.

You will be prompted to add the first field inside the Conditional Field List, or outside as the next sibling. If you select No, the Field will end up where it is now. Select Yes, and the Field will appear as the first Field inside the Conditional Field List.

The remaining fields will be added to each previously added field so we want them to be pasted outside so they are at the same level so answer 'No' to the remaining confirmation prompts.

When finished, the Template will look as follows:

When finished, click 'Save' from the Toolbar at the top of the screen:

Testing the Conditional Field List Outbound Template

To test this Outbound Template we just created, click on the Test button in the Toolbar:

Copy and paste the following data into the area of the Screen that asks for it.

Fred,Flintsone,Flintstones,Male,Black,40
Betty,Rubble,Flintstones,Female,Black,30
Elroy,Jetson,The Jetsons,Male,Bonde,10
Judy,Jetson,The Jetsons,Female,White,16
Barney,Rubble,Flintstones,Male,Blonde,33
Wilma,Flintstone,Flintstones,Female,Red,35
George,Jetson,The Jetsons,Male,Red,40
Jane,Jetson,The Jetsons,Female,Orange,35

Click the 'Test Data Translation' button and your browser will open showing the tested translation. Notice Only Flintstones are displayed in the Outbound Data.

Troubleshooting the Outbound Template

The following errors are possible from the Manage Outbound Template Screen.

Element names cannot have a space in them. Consider using an underscore '_'.

No Data was Produced!

The Root Element is specified on the 'Template Header' tab, at the top of the screen. Enter 'PEOPLE' for its value. The Fields <FIRST NAME> <LAST NAME> and <HAIR COLOR> need to be changed to <FIRST_NAME> <LAST_NAME> and <HAIR_COLOR>.

If no data was produced, make sure you spelled 'Flintstones' properly for the Conditional Field List.