Babelway B2B Integration Platform Documentation


Welcome to the Babelway documentation.

This documentation is structured to help you to quickly find an answer to your questions.

To best suit your needs, the documentation is available in the following formats:

In addition to this documentation, you may find additional information in the following places:

Self-service help

Babelway B2B Integration Platform Documentation


1. Introduction - Babelway concept
2. Generalities
2.1. Login and registration
2.2. Page structure
2.3. Finding help
2.4. Grids
2.4.1. Filters
3. Monitoring
3.1. Messages
3.1.1. Messages list
3.1.2. Message details
3.1.3. Resubmitting a Message
3.1.4. Resubmit multiple messages
3.1.5. Download messages as a zip file
3.2. Alerts
3.2.1. Alerts list
3.2.2. Alert details
3.2.3. All possible alert types
3.3. Statistics
3.3.1. Status statistics
3.3.2. Time evolution statistics
3.3.3. Traffic shape statistics
3.4. Documents
4. Channels
4.1. Overview
4.1.1. Channels list
4.1.2. Creation of a new Channel
4.1.3. Channel detail
4.1.4. Deployment
4.1.5. Delete a Channel
4.1.6. Duplicate a Channel
4.2. Gateways
4.2.1. Gateways list
4.2.2. Creation of a gateway
4.2.3. Gateway detail
4.2.4. Gateway types
4.3. Message definitions
4.3.1. Message definitions list
4.3.2. Creation of a message definition
4.3.3. Message definition detail
4.3.4. Update the message definition tree
4.3.5. Message definition formats
4.3.6. Common Message Definition Properties
4.3.7. Support for 997 Acknowledgements
4.3.8. Choosing an X12 (EDI) Communication ID
4.4. Transformations
4.4.1. Transformations list
4.4.2. Creation of a transformation
4.4.3. Transformation detail
4.4.4. Drag and Drop Transformation
4.4.4.1. Viewing and selecting mapping rules
4.4.4.2. Nodes mapping
4.4.4.3. Edit formula
4.4.4.4. Understanding functions
4.4.4.5. User-defined functions
4.4.4.6. Sub-formulas
4.4.4.7. Working with formulas - frequent scenarios
4.4.4.8. Mapping loops
4.4.4.9. Multi nodes mapping
4.4.4.10. Using or changing metadata
4.4.4.11. Drag and Drop transformation properties
4.4.5. Xslt Transformation
4.4.6. No Transformation
4.5. Notifications
4.5.1. Notifications list
4.5.2. Notification detail
4.6. Partners
4.6.1. Defining partners manually
4.6.2. Assigning partners to messages
4.6.3. Using partners
4.6.4. Be compliant to GS1.
4.6.5. Automatic Population of your Partners List
4.7. Lookup tables
4.7.1. Lookup tables list
4.7.2. Create a lookup table
4.7.3. Lookup table detail - General
4.7.4. Lookup table detail - Structure
4.7.5. Lookup table detail - Content
4.7.6. Lookup table detail - Related items
4.7.7. Use your lookup tables
4.7.8. Automatic Population of Lookup table from CSV
4.7.9. Automatic Population of Lookup table using Channel
4.8. Routing
4.8.1. Routing list
4.8.2. Routing detail
4.8.3. Editing routings from channels section
4.9. Test cases
4.9.1. Test case detail
4.10. Certificates
4.10.1. Certificate's Details
4.10.2. Trust new certificate
4.10.3. Add a certificate
4.10.4. Certificate Update
4.11. Extra processings
4.11.1. Extra processings on gateway IN
4.11.2. Extra processings on message definition IN
4.11.3. Extra processings on Transformation
4.11.4. Extra processings on message definition OUT
4.11.5. Extra processings on gateway OUT
4.12. Metadata
4.12.1. Metadata usage
4.12.2. System Metadata
4.13. Change Log
4.13.1. Environment change Log
4.13.2. Elements change Log
4.14. Reuse and save time
4.14.1. Search and Reuse
4.14.2. Using the Babelway catalogue
4.14.3. Using or duplicating elements that you already defined
4.14.4. Accessing elements from other environments.
4.14.5. Using examples or suggestions
5. Admin
5.1. Personal data
5.2. Environment settings
5.2.1. General
5.2.2. Messages
5.2.3. Partners
5.2.4. Document types
5.2.5. Do I need one or several account environments ?
5.3. Billing
5.4. Users
5.4.1. Add a User
5.4.2. Create a User
5.4.3. User detail
5.4.4. User rights
5.4.5. Reset User Password
6. Miscellanous
6.1. B2B Integration Project Management
6.2. DNS load-balancing
6.3. Message size limits
6.4. Security Management
6.5. External References
6.6. Rest API
6.6.1. Introduction
6.6.2. Available actions
6.6.2.1. tickets
6.6.2.2. ticket
6.6.2.3. deleteTicket
6.6.2.4. messages
6.6.2.5. message
6.6.2.6. channels
6.6.2.7. gateways
6.6.2.8. messageDefinitions
6.6.2.9. transformations
6.6.2.10. catalogue
6.6.3. Code samples
6.7. Verify the chain yourself
6.8. Common Integrations
6.8.1. How to Integrate with 3M?
6.8.2. How to Integrate with Ace Hardware?
6.8.3. How to Integrate with Amazon?
6.8.4. How to Integrate with Belk?
6.8.5. How to Integrate with Canadian Freightways?
6.8.6. How to Integrate with Celadon Trucking?
6.8.7. How to Integrate with CTSI?
6.8.8. How to Integrate with Dayton Freight?
6.8.9. How to Integrate with DSV?
6.8.10. How to Integrate with Expeditors?
6.8.11. How to Integrate with J.B. Hunt?
6.8.12. How to Integrate with Knight Transportation?
6.8.13. How to Integrate with MercuryGate?
6.8.14. How to Integrate with Oak Harbor?
6.8.15. How to Integrate with Office Depot?
6.8.16. How to Integrate with ODW Logistics?
6.8.17. How to Integrate with PAM Transport?
6.8.18. How to Integrate with Pitt Ohio?
6.8.19. How to Integrate with Rite Aid?
6.8.20. How to Integrate with Riverside Transport?
6.8.21. How to Integrate with Rockfarm?
6.8.22. How to Integrate with Saks?
6.8.23. How to Integrate with Smith Transport?
6.8.24. How to Integrate with Southeastern Freight Lines?
6.8.25. How to Integrate with Swift Transportation?
6.8.26. How to Integrate with Tax-Air Freight?
6.8.27. How to Integrate with Traffic Tech?
6.8.28. How to Integrate with Transplace?
6.8.29. How to Integrate with Trax Tech?
6.8.30. How to Integrate with USA Truck?
6.8.31. How to Integrate with US Xpress?
6.8.32. How to Integrate with Walmart?
6.8.33. How to Integrate with Wayfair?
6.8.34. How to Integrate with Würth?
6.8.35. How to Integrate with XPO?
7. Babelway Glossary

Chapter 1. Introduction - Babelway concept

Babelway is a B2B integration Software-as-a-Service-SaaS. Babelway provides a data translation software and B2B communication gateways organised in a full-service proposition. Babelway services are fully available on-demand via a web-browser. There is no software or hardware to buy and maintain in-house, however Babelway is still under the full control of its users.

The main functions of Babelway are:

  • Babelway transports electronic messages between two parties.

  • Babelway transforms messages from an input to an output format (csv, xml, Excel, flat file, EDI,...).

  • Babelway stores messages in a secure way for a defined period of time. The archiving system is compliant with EU legal requirements.

Note: Babelway is supported by all browsers that were made available from 2012 to today and that are up to date in terms of security standards.

Chapter 2. Generalities

In this chapter, we explain the structure of the interface, and all other topics that are transversal to the application, such as style conventions or grids.

2.1. Login and registration

To access the application, just go to the url https://www.babelway.net/.

Login page

Figure 2.1. Login page


Registration

If you are not yet a registered user, enter your email in the right part of the screen, and choose a username and a password. A new environment will be created for you and you will be able to test the application for FREE for 30 days.

Note: In the Babelway system the Username is case sensitive, For example the Username "User01" is not equal to the Username "user01".

Login

If you are already a registered user, just fill in your login and password details in the left part of the screen.

Reset Password

If you don't remember your username or your password, you can follow the 'Forgot your password?' link. This will lead you to the 'Reset Password' page.

Start by entering the email address you used to register your account in Babelway. The system will then send you an email containing a link to a secure page allowing you to reset your password.

Note: If you have registered several users with the same email address, the system will ask you to choose which one you want to change.

Expired Password

If your password expired, you will automatically be redirected to the 'Renew expired password' page. You will not be able to access Babelway until your password is renewed.

2.2. Page structure

All the pages of the system have the following elements (see figure):

Page structure

Figure 2.2. Page structure


  • The top bar is to show you in which environment you are working. It displays:

    • Name of the current user.

    • The environment you are working in. This is only available if you have access to multiple environments. In this case, you can also switch from one environment to another (just click on the arrow at the right of the name of the environment).

    • The logout button.

  • The menu allows you to go to the different parts of the system.

    • Home just allows you to return to the welcome page of the system.

    • You'll find in the Monitoring section all the functionalities needed to follow and manage all the messages processed by the system, once the flow of messages is defined.

    • In the Channels section, you'll be able to define how the messages will be processed by the system.

    • The Admin section gives you access to the parameters of your environments, your bills, the management of the users that may access your account, ...

  • The page introduction is a short inline help for the page. See help for more details.

  • The page title and page body contains the data of the page, and are specific to each page.

  • The Help Us Improve button allows you to easily contact Babelway. It is also described in more details in the help section.

  • The Need help button allows you to access Babelway Help Guide. See help for more details.

2.3. Finding help

In the interface, you will find many methods to get help. Most of this help is available via the help menu, which can be found at the right of the interface.

Need help?

Figure 2.3. Need help?


  • Page introduction. At the begining of every page, a short text gives you contextual help about the page.

    Page introduction

    Figure 2.4. Page introduction


    If you don't want to see it anymore, just close it by clicking the X which can be found in the end of the page production paragraph next to (Read more) phrase., and it will also not be displayed anymore for all the following pages.

    To enable the Page introduction go to (Admin / Personal data / Preferences) and then enable the "Show page introduction", as shown below.

    Show page introduction

    Figure 2.5. Show page introduction


  • In many places of the system, inline help is available. It is indicated by the icon . To see the help, just place your mouse over the icon.

    Inline help

    Figure 2.6. Inline help


  • User guide. This is a help manual, available via the "Need help?" menu.

  • Contact our support team. If you have any question, don't hesitate to ask at support@babelway.com. We'll answer you promptly. The link is also accessible via the "Need help?" menu.

  • Babelway Academy. Training presented by a Babelway expert. Click on the "Need help?" menu then select Babelway Academy.

  • Tips & Tricks. For common FAQ. Click in the "Need help?" menu to access then select Tips & Tricks.

  • Help us improve. If at any time, you have some feedback or suggestion about the interface, you can send it to us by clicking the Help us improve button, which can be found at the right of the interface.

    Help us improve

    Figure 2.7. Help us improve


  • You’ll be navigated to the dashboard of “suggest a feature for Babelway” page like the screen shot below:

    Make A Suggestion

    Figure 2.8. Make A Suggestion


  • (1) Make A Suggestion: On that tab you can submit your suggestion. After suggesting your feature, it will appear on “Requests you want” tab as you are the owner of the request. Also it will appear to others on “Requested by others” tab so they can vote for it.

  • (2) Requested by others: On that tab you can check the suggestions requested by others before. You can click on a suggestion to check its thread, and comment also on the selected thread if you like.

  • (3) Requests you want: On that tab you can find the features you suggested before, also you can find the suggestions you are interested in.

  • You can search for a request by writing its title on the “search requests” bar on the top right side of the page.

  • You can check the upcoming planned features by clicking on “what’s Coming?” tab on the left bar.

  • Also you can check the releases by clicking on “Releases” tab on the left bar or pressing on “what’s new?” on the top right side of the page.

2.4. Grids

Grids of data are displayed in many pages of the application.

The grids are very powerful, and have many options that are described below.

The grids are always displayed as in the following figure:

Grids

Figure 2.9. Grids


  • The headers contain the title of the columns.

    On most columns, you can click on it to sort the data following this column. If you want to sort in the reverse order, you click again on the header of the column. The current sort of the grid is signified by the icon

    You can resize columns by clicking on the separation between two columns, and dragging the icon to the preferred size.

    You can also reorder columns by clicking on the header of one column, and dragging it to the new place you want.

  • The filter bar allows you to filter the displayed data.

    The system will only display the data that satisfies ALL the criteria that you enter in this line.

    You can find more information about the specific filters available for all columns in the Filters section.

  • The data zone just displays the requested data.

  • The zone with the number of data tells you how many records have matched your criteria, and which part of this data is currently displayed.

  • With the Pagination options, you can easily navigate in all the data, or choose the number of records that you want to display on a page. The system will automatically record this preference when you change it, and subsequently display by default all the next tables with this number of records.

  • The action buttons allow you to complete the following actions:

    • allows you to change the displayed columns.
    • allows you to clear all search criteria.
    • allows you to refresh the data.
    • allows you to export the data.

2.4.1. Filters

In all grids, the filter bar allows you to filter easily the displayed data.

The filters that are available depend on the type of data in this column. If you use multiple criteria, the system will display the data that satisfy ALL the criteria. You can also reset all the criteria in one click with the "Reset filters" buttton found in the action buttons of the grid.

Textual data

For textual data (columns like name, description ...), you will have a text-field allowing you to type your criteria. The system will search by default for all the data that contains the criteria, but you can change the operator by just clicking on it.

Textual filter

Figure 2.10. Textual filter


Here is the full list of available operators :

  • ~ : contains. The system will only display the rows whose value in the field contains (ignore case) the typed value.
  • !~ : does not contain. The system will only display the rows whose value in the field does not contain (ignore case) the typed value.
  • = : equals. The system will only display the rows whose value in the field is exactly equal to the typed value.
  • ^ : begins with. The system will only display the rows whose value in the field begins with the typed value.
  • | : ends with. The system will only display the rows whose value in the field ends with the typed value.
  • ≈ : matches regex. The system will only display the rows whose value in the field matches the entered regular expression.
  • # : is empty. The system will only display the rows that have no value for this field.
  • !# : is not empty. The system will only display the rows that have a (non-empty) value for this field.

Numeric values

For the numeric columns, the same system applies.

The available operators are :

  • = : equals. The system will only display the rows whose value in the field is exactly equal to the entered number.
  • < : less than. The system will only display the rows whose value in the field is stricly lower than the entered number.
  • > : greater than. The system will only display the rows whose value in the field is stricly greater than the entered number.
  • ≤ : less than or equal. The system will only display the rows whose value in the field is less or equal than the entered number.
  • ≥ : greater than or equal. The system will only display the rows whose value in the field is greater or equal than the entered number.
  • [] : range. The system will only display the rows whose value in the field is between the 2 entered limits. You must pick the 2 limits separated by a space or a dash. Ex : '12 50', or '12-50'.
  • , : is in. The system will only display the rows whose id of element in the field is in the list of entered values. ids must be separated by commas. Ex : '1234,1235'.
  • !, : is not in. The system will only display the rows whose id of element in the field is not in the list of entered values. ids must be separated by commas. Ex : '1234,1235'.

Filter on a numeric column

Figure 2.11. Filter on a numeric column


Auto-complete functionality in the New search operators

The auto-complete functionality only works with certain operators. For example the "Name is" ( = ) operator will generate a dropdown menu with possible choices, as shown below.

Filter using name

Figure 2.12. Filter using name


List is generated

Figure 2.13. List is generated


The same search using a "contains" operator won't generate a dropdown menu due to the way this operator works.

Filter using contain

Figure 2.14. Filter using contain


Note: If you weren't using the "name is" operator, and you could see the dropdown menu then this is the browser's auto complete function.

For example, if the browser is Chrome then it offers you any value that you recently typed in any field named 'name', as shown below:

Browser settings

Figure 2.15. Browser settings


Such confusing behavior is generated by the browser you are using. You can disable the option by removing the check from the "Enable Autofill to fill out web forms in a single click".

Channels, gateways, message definitions, transformations, ...

The same system with operators applies again. By default, all elements whose name contains the entered criteria will match.

The available operators are :

  • ~ : name contains. The system will only display the rows whose name of element in the field contains (ignore case) the typed value.
  • !~ : name does not contains. The system will only display the rows whose element name in the field does not contain (ignore case) the typed value.
  • = : name equals. The system will only display the rows whose name of element in the field is exactly equal to the typed value.
  • , : id in. The system will only display the rows whose id of element in the field is in the list of entered values. ids must be separated by commas. Ex : '1234,1235'.
  • !, : id not in. The system will only display the rows whose id of element in the field is not in the list of entered values. ids must be separated by commas. Ex : '1234,1235'.

Filter on a channel

Figure 2.16. Filter on a channel


Types with a limited number of possible values.

When all the values of type can be enumerated, a dropdown menu shows all the possible values. If you select a specific value, the system will search for all the data that exactly include this value in the column.

Filter on a date

Figure 2.17. Filter on a date


Dates and times

A dropdown menu allows you to choose from several common periods ("Last 24 hours", "Last 7 days", "Last month", ...)

Filter on a closed type

Figure 2.18. Filter on a closed type


If you want to view a custom time period, you can select the "Custom" value. A pop-up will then be available enabling you to choose any time interval.

Custom filter on a date

Figure 2.19. Custom filter on a date


Chapter 3. Monitoring

The monitoring section of the application contains all the tools and information that allow you to follow and manage the messages processed by the system, once the rules for how to handle the messages have been setup.

The main functionalities are:

  • Search for all messages processed by the system. See all the details of the messages.

  • View the alerts generated by the system.

  • Actions to manage the messages (for example, resubmit a message in error)

  • View the stats of the messages.

  • View documents, a business view on the processed messages.

Note

The items in the previous list should link to the section that details the functionality.

3.1. Messages

A message encapsulates all the information about data processing of an input file by Babelway system.

The message contains the following information:

  • Incoming file: The file received by Babelway from the source external system.

  • Outgoing file: The file sent by Babelway to the target external system.

  • Status of the processing: Was the file correctly processed or was it in error? Is it still being processed?

  • Various dates about the processing: When was the input file received? when was the output sent? ...

  • Information about how the message was received or sent.

  • ...

3.1.1. Messages list

The list of messages allows you to browse and search all messages processed by Babelway systems.

To access this screen, just click on the Monitoring menu item. Thus, the Messages sub-menu item is automatically selected.

List of messages

Figure 3.1. List of messages


A lot of information about the messages can be directly displayed in the table. All additional information can be found in message details.

For more information about the behavior of the grid, and how to search through it, see the grid section of the help.

Click on a message line to access all the details about the message, and access the different operations you can take on messages.

3.1.2. Message details

Message Details screen shows you all the details about the processing of a message by Babelway system. It also allows you to make all necessary actions on this message.

You can access it by clicking on its line in the messages list screen, or you can find a specific message by searching for it with a reference like file name, date, etc.

Message details screen

Figure 3.2. Message details screen


The following information can be available on a message:

Status

The status of the message processing. The possible statuses are:

  • Processing: Message is being processed by Babelway.

  • Paused: Message processing was temporarily stopped (because human validation has been requested, because it can only be delivered in specific time frames, ...).

  • In delivery: Message is being transferred to the target system. This status differs from "In progress" in the sense that the output message is completely generated and available via the interface, but communication of the message to the target system is not yet terminated. The reasons for this delay in the communication can be multiple: We wait for the file being downloaded, or we wait for an acknowledgment, or the target system was unavailable and we will retry later, ...

  • Success: Message processing is completely finished and action done as requested.

  • Error: When there was an error in any step of the processing.

    Here are some examples of errors:

    • The received file did not pass the input validations.
    • The generation of the output file completed successfully, the file was made available for download on Babelway FTP server, but was never downloaded (after X days). This is an error because we know that the file was not received by the end user.
    • The generation of the output file was completed successfully and the file had to be sent by email to 2 recipients. "One of the deliveries succeeded (and the user) correctly received the message, while the other delivery failed."
    • The generation of the output file completed successfully and was correctly uploaded to the target system, but we did not receive an expected acknowledgement (or it was not correct).
    • The processing crashed.

    The precise description of the error will always be present in the field "Error description"

  • Error (closed): This status never indicates an automatic action by the system, it's a subsequent status after you have analyze and fix the error.

Date in

The date and time when the message was received by Babelway.

Date out

The date and time when the processing of the message was completely finished (even if complete processing of the message implied waiting for an acknowledgement from the external system, waiting for download by the client, making retries,etc.).

Processing complete

The date and time when the Babelway processing of the message was finished. This is the moment when the message out is made available to the target system.

This time will differ from "Date out" when the delivery of the file implies waiting for the external target system (ex: waiting for an acknowledgement, waiting for a download, or waiting for the external system availability). "Processing complete" doesn't include this delay while "Date out" includes this delay.

Keep until

The date and time until which the message will be kept in the Babelway system. You can change this setting for your whole environment or by channel.

Message In

Incoming file, as received by the source external system. Click on the file name to open it.

Message Out

Outgoing file, as sent to the target external system. In case of processing error, this file may be unavailable if the messaging engine was unable to generate it. Click on the file name to open it.

Error description

When the message couldn't be processed, a text that describes the error's reason.

Type

Message type, can be either Test or Regular.

Test status

Only for test messages. The test status can be either Test failed, Waiting result or Test successful. It should be differentiated from the Status field, that tells if the message has been processed without errors. When you make a test case, you can add complementary assertions on the result of the processed message. This will cause the test to be considered as 'failed' if not fulfilled.

Channel

The channel that processed the message.

Gateway In

Incoming gateway used to receive the input file.

Gateway Out

Outgoing gateway used to process the output file.

Key

A UUID (universal unique identifier) that uniquely identifies a Message.

Reference

Message reference or file name. You can choose this reference.

Gateway in message key

Specific communication-level identifier from the gateway in.

Gateway in message status

Specific communication-level information from the gateway in, like related id's or addressing information of partner systems

Gateway out message key

Specific communication-level identifier from the gateway out

Gateway out message status

Specific communication-level information from the gateway out, like related id's or addressing information of partner systems, info about acknowledgments, retries, ...

Size of incoming message

Incoming message size (in bytes).

Size of outgoing message

Outgoing message size (in bytes).

User comment

Free text allowing the user to comment on a message. It can be changed anytime from the SelfService applicaiton as well as during in the processing of any message.

Note: You can populate the user_comment system metadata in the transformation using setMetadata('user_comment', 'Replace this text with the text you want to use as a user comment or you can map it from a field from the Message In'), as shown below.

Populate the user_comment system metadata in the transformation using static text

Figure 3.3. Populate the user_comment system metadata in the transformation using static text


Populate the user_comment system metadata in the transformation from a field from the Message In

Figure 3.4. Populate the user_comment system metadata in the transformation from a field from the Message In


The section Internal files also gives you access to internal data about the processing of the message. This information can be useful to investigate some problems, or to understand the behavior of the system. Two categories of internal files exist: The step files and the other files.

The step files represent the evolution of the message content from the message IN to the message OUT. After each modification of the message's content, a new step file is created. Here is the complete list of possible types of step files:

Message IN received

The message IN as it was at the start of the processing (after reception by the gateway IN).

Message IN after unwrapping (Deprecated)

The message IN after the deprecated unwrapping extra-processing.

Message IN after S/MIME unwrapping

The message IN after the S/MIME unwrapping extra-processing.

Message IN after PGP unwrapping

The message IN after the PGP unwrapping extra-processing.

Message IN after ZIP unwrapping

The message IN after the ZIP unwrapping extra-processing.

Message IN after PDF unwrapping

The message IN after the PDF unwrapping extra-processing.

Message IN after regular expression transformation

The message IN after the regular expression based extra-processing.

Message IN after Serving XML transformation

The message IN after the Serving XML based extra-processing.

Message IN after transformation to XML

The message IN after its conversion to an internal XML representation.

Message IN after XSLT transformation

The XML message IN after the XSLT based extra-processing.

Message after transformation

The XML message after its transformation.

Message OUT after XSLT transformation

The XML message OUT after the XSLT based extra-processing.

Message OUT after transformation from XML

The message OUT after its conversion from the internal XML representation.

Message OUT after Serving XML transformation

The message OUT after the Serving XML based extra-processing.

Message OUT after regular expression transformation

The message OUT after the regular expression based extra-processing.

Message OUT after line delimiter transformation

The message OUT after the line delimiter transformation extra-processing.

Message OUT after PDF wrapping

The message OUT after the PDF wrapping extra-processing.

Message OUT after ZIP wrapping

The message OUT after the ZIP wrapping extra-processing.

Message OUT after PGP wrapping

The message OUT after the PGP wrapping extra-processing.

Message OUT after S/MIME wrapping

The message OUT after the S/MIME wrapping extra-processing.

The other files represent the additional information (other than the content) produced during the message processing. Here is the complete list of possible types of other files:

Context in

Full context of execution of the message, as it was at the start of the processing (after reception by the gateway IN).

Context out

Full context of execution of the message, as it was at the end of the processing.

Context

Additional list of properties and log of processes applied during message processing.

Message Delivery Notification In (MDN In)

The Message Delivery Notification (MDN) that was sent to the caller, to prove that Babelway has received the message.

Message Delivery Notification Out (MDN Out)

The Message Delivery Notification (MDN Out) that was received from the receiver of the message, to prove that Babelway has correctly submitted the message to its destination.

Documents In

When a document extractor is used on MessageDefinition IN, the extracted documents.

Documents Out

When a document extractor is used on MessageDefinition OUT, the extracted documents.

Invoices In

When a document extractor is used on MessageDefinition IN, the extracted invoices.

Invoices Out

When a document extractor is used on MessageDefinition OUT, the extracted invoices.

Orders In

When a document extractor is used on MessageDefinition IN, the extracted orders.

Orders Out

When a document extractor is used on MessageDefinition OUT, the extracted orders.

Desadvs In

When a document extractor is used on MessageDefinition IN, the extracted dispatch advices.

Desadvs Out

When a document extractor is used on MessageDefinition OUT, the extracted dispatch advices.

Standard Business Document Header In (SDBH)

A Standard Business Document Header (SDBH) is the effective message sent to a PEPPOL Access Point. It's the UBL message wrapped in an envelop that identifies key data about the document.

Standard Business Document Header Out (SDBH)

A Standard Business Document Header (SDBH) is the effective message sent to a PEPPOL Access Point. It's the UBL message wrapped in an envelop that identifies key data about the document.

Message Level Response (MLR)

A Message Level Response (MLR) is a business acknowledgment that tells the sender if the received message follows business rules related to the document type and business flow.

Message Delivery Notification of Message Level Response

A Message Delivery Notification (MDN) of a Message Level Response (MLR) is a proof from the receiver that the MLR was correctly submitted to its destination.

RosettaNet Message Out

The content that was sent by Babelway to the RosettaNet server.

RosettaNet Receipt Out

The RosettaNet delivery report that was received from the receiver of the message, to prove that Babelway has correctly submitted the message to its destination.

RosettaNet Message In

The content that was received by Babelway from the RosettaNet server.

RosettaNet Receipt In

The RosettaNet delivery report that was sent to the caller, to prove that Babelway has received the message.

X400 delivery report

The X400 message delivery report that was sent to the caller, to prove that Babelway has received the message.

SOAP Request

The soap request sent by the SOAP client out gateway.

SOAP Response

The soap response received by the SOAP client out gateway.

NemHandel Message Out

The content that was sent by Babelway to the NemHandel server.

NemHandel Response Out

The NemHandel rasp response that was received from the receiver of the message, to prove that Babelway has correctly submitted the message to its destination.

NemHandel Message In

The content that was received by Babelway from the NemHandel server.

NemHandel Response In

The NemHandel delivery report that was sent to the caller, to prove that Babelway has received the message.

Http request

The request sent by Babelway to a remote web server, when contacting it to send messageOUT.

Http response

The response received by Babelway from remote web server, after contacting it to send messageOUT.

Mail In

The mail message as received by babelway during the smtp exchange.

Chorus deposit summary

The deposit summary report provided by chorus. This helps you understand what went wrong if a file has been rejected. This report is also available in your chorus account.

Too Large Message

The message sent to Babelway but over the environment size limit.

Click on Back action to return to the list of Messages screen.

Click on Resubmit to reprocess this message. See Resubmitting a Message chapter for more details.

Click on Save As Test Case to create a test case with the data of this message. The new test case is automatically created in the channel that processed the message and populated with the message parameters, including the incoming message that will be used as a test message and outgoing message that will be used as expected message out.

Changes done in release of November 2015

  • The status Waiting ack has been merged to In progress, because the delivery of the message is not complete. Example: Waiting for the file being downloaded by the client.

  • A message may no longer stay forever in the status In progress. The message processing can only be ended in statuses Success or Error. When applicable, it means that a timeout will terminate the message (for example if a file is not downloaded on a FTP server after X days).

  • Dates and times associated with a message have been reviewed. The available date and times are now Message reception time, End processing time, End processing sla time and Keep until. See full description of all fields of messages for a full description of every field.

  • Field Acknowledgment reference has been removed. This information is now available in the field Gateway out message status

  • All intermediate files generated during the processing are now saved and are downloadable. This is for example very useful to debug your messages when you have many extra processings (wrappers or unwrappers, replacements based on regular expressions, ...), as you will now have access to the result after each step.

Message details new features screen

Figure 3.5. Message details new features screen


3.1.3. Resubmitting a Message

This function enables you to easily process a message again. This is especially useful when messages have not been processed due to a channel issue. Once that issue is solved, go to the message list, select the messages that have not been processed and submit them again directly to the messaging engine.

It is also very useful when the issue is in the message itself. Then you can just correct the input file, upload it and resubmit it for processing.

You can access this screen from the message details screen, or from the messages list screen.

Resubmit message screen

Figure 3.6. Resubmit message screen


Message in allows you to view or change the file that will be processed.

Send to allows you to specify which channel or gateway must process the message.

  • Same channel: Message will be processed by the channel that has processed the original message. Channel name is displayed between brackets. This option can't be available if the channel that processed the message doesn't exist anymore.
  • Channel: Message will be processed by the specific channel you have select. This can be, for example, very useful if the error in the processing is in the message that has been processed by a wrong channel (see routing rules).
  • Same gateway in: Message will be injected in the system as if it was received by the same gateway as the original channel. This option can not be available if the gateway that received the message doesn't exist anymore.
  • Gateway in: Message will be injected in the system as if it was received by the gateway that you select.

Using More options, you can edit metadata associated with the message. These metadata are typically set by the gateway that received the message, and can be used during the process.

Once all parameters are set up according to your preferences, click on " Send " button to effectively launch the reprocessing. Then you will be immediately redirected to the screen that shows the details of the reprocessed message.

3.1.4. Resubmit multiple messages

the "resubmit all" function allows you to resubmit many messages in one operation.

You can find this operation at the bottom of the messages list screen. Once you have selected all the messages that you want to reprocess, just click on it. The test messages will be automatically excluded from the selection.

Selecting multiple messages to resubmit

Figure 3.7. Selecting multiple messages to resubmit


The function works the same way as the resubmit message function. The difference is that you process many messages at the same time.

Resubmit multiple messages screen

Figure 3.8. Resubmit multiple messages screen


Messages field shows the number of messages that you have selected to be reprocessed. If this number is not correct, please click on back and change your search. Remember that test messages are automatically filtered out from your request.

send to field allows you to specify which channel or gateway to process the messages and to work exactly the same way as with resubmit message.

Once all parameters are correct, click on Resubmit to launch the resubmission of all the messages. Then you will be redirected to a screen that shows you the status of the resubmit, and allows you to stop the resubmit if you want. You must stay on this screen until the end of the resubmit process. Leaving this screen is equivalent to clicking on Stop.

Resubmit multiple messages in progress

Figure 3.9. Resubmit multiple messages in progress


3.1.5. Download messages as a zip file

The download function allows you to download messages as a zip file.

You can find this operation at the bottom of the messages list screen. Once you have selected all the messages that you want to download, just click on it and your download will begin directly.

Selecting multiple messages for download

Figure 3.10. Selecting multiple messages for download


The zip file will contain received and generated files related to messages and a "messageRecords.csv" file that contains the list of downloaded messages.

Zip file content

Figure 3.11. Zip file content


Some limits are implemented:

  • You can only start 5 downloads at a time. Then you have to wait for completing any download before initiating another.

  • You can request a download of 10000 messages maximum. If you need to download more messages, split the content of your request. For example, filter all messages per periods in time so that they fit in the limit.

3.2. Alerts

An alert is a signal sent by the Babelway system to inform you that something abnormal has happened. For example,the most common type of alert is to inform you when the processing of a message failed.

All alerts should normally be handled by a human. Once the problem is solved, the alert should be deleted (or at least closed).

You'll be warned in the Welcome Page if you have open alerts.

3.2.1. Alerts list

The list of alerts allows you to browse and search all the alerts generated by the Babelway systems.

To access this screen, just click on the Monitoring menu item, then on Alerts sub-menu item.

List of alerts

Figure 3.12. List of alerts


The detailed explanation of each possible column can be found in alert details.

For more information about the behavior of the grid, and how to make searches, see the grid section of the help.

Click on a line to access all the details about the alert, and be able to make actions on it.

3.2.2. Alert details

The alert details displays all the information about an alert, and allows you to take the necessary actions to solve the problem.
Detail of an alert

Figure 3.13. Detail of an alert


Severity

The seriousness of the issue, it can be High, Medium, Low or Info.

Status

The alert status, it can be either Open or Closed. It is important to close the alerts once the problem is resolved, as the system will remind you if you have open alerts pending.

Type

The type of alert, see Possible Alerts for a complete list and further information.

Created On

The alert generation date and time.

Summary

A short description of the issue.

Description

An additional description of the issue.

Key

An UUID that uniquely identifies the alert within the Babelway platform.

Comment

Enable you to add comments about the issue. It may be useful to keep track of actions already taken to solve the problem.

You can click Close when the problem described in the alert is solved, or on Reopen if a previously closed alert was not correctly solved.

You can click Delete when the problem described in the alert is solved, and you don't want to see it anymore in your alerts list.

3.2.3. All possible alert types

This page describes all possible alert types. The types should also be grouped in a logical way.

Note

Explanations to be completed.

General monitoring

...

Message Processing Issue

...

Unidentified Source

...

Unidentified Message In

...

Unidentified Channel

...

Message Validation Issue

...

Failed Delivery

...

Planned Deletion of Unattended Messages

...

Hub Issue

...

Storage Capacity Reached

...

Planned Maintenance Unavailability

...

New Functionality Available

...

Account Issue

...

Credit Limit Reached

...

Outstanding Invoice

...

Credit Limit Almost Reached

...

VAT Rate Has Changed

...

Channel Management Issue

...

Notification of a Change in a Linked Channel

...

Planned Deletion of Unused Channels

...

Documentation of a Channel

...

User Management Issue

...

Failed Connection Attempts

...

First Connection of new New User

...

Planned Deletion of Inactive Users

...

Invitation Expired

...

3.3. Statistics

The Statistics section allows you to view some aggregated data about your environment and your messages. This data can be displayed in graphics or in table.

3.3.1. Status statistics

This screen allows you to have an aggregated view of the messages processed by your system.

You can select the period of time for which you want to see the stats, and if you want the data to be aggregated by channel, gateway in or gateway out.

The resulting graph will display one horizontal bar for each aggregated element (channel, gateway in or gateway out). This bar will be split according to message status. The total count will also be displayed.

Status by channel

Figure 3.14. Status by channel


In the graphic, you can click on the legend to hide or show messages with a certain status. This is very useful to clearly see the few errors (if any) amongst the many Success messages.

Status by channel, Success messages are hidden.

Figure 3.15. Status by channel, Success messages are hidden.


You can also click on the bars in the graph to go to the messages lists screen, with the correct search criteria filled, to see these messages directly.

The refresh action button allows you to refresh the data.

The Switch to data action button allows you to switch to the table display of the number. It can be especially useful if you have many channels, and want to see all of the data (graphic is limited to 40 elements), or if you want to export the data.

Messages stats

Figure 3.16. Messages stats


Switch to data

Figure 3.17. Switch to data


3.3.2. Time evolution statistics

This screen allows you to see the evolution of the messages processed over time.

These statistics count all messages that went through the system, even if the message has now been deleted.

Within the options, you can select the data that you want to see on the graphs: message totals, message sizes or both.

You can also select the granularity of the graph. Aggregate data per month means that there will be one point or one bar on the graph by month.

You can also select to display the graphic in lines or in bars. Please note the following points:

  • Line graphs are zoomable. To zoom in, drag your mouse on the graphic over the period you want. Double-click anywhere on the graph to return to the full view.
  • If you display both message totals and message sizes, this option will only apply to messages totals. Messages sizes will always be displayed in a line graph.

Number and sizes of messages per month.

Figure 3.18. Number and sizes of messages per month.


Zoom in line graphic.

Figure 3.19. Zoom in line graphic.


3.3.3. Traffic shape statistics

This graph shows you the graphic shape over one day, or over one week.

The Type of graphic option allows you to choose between:

  • Traffic shape over one day: To see the distribution of your messages throughout the whole day. The first data point will count the messages in the selected period that you receive between 0am and 1am, second point between 1am and 2 am, ...
  • Traffic shape over one week: To see the distribution of your messages throughout the whole week. The messages will also be counted by hour: successive point will be for counts of messages for Monday 0am to Monday 1am, Monday 1am to Monday 2am, ... till Sunday 11pm to Sunday 12pm.

The second option allows you to choose which messages will be counted: Messages for the last week, 4 weeks, month, ... Please note that only the messages that are currently visible in your interface will be counted, and not messages that have been deleted.

Traffic shape over one week

Figure 3.20. Traffic shape over one week


Traffic shape over one day

Figure 3.21. Traffic shape over one day


3.4. Documents

If you've reached this page, it means you have configured a business view on your messages which we call Documents.

For example, you can have here the list of your invoices, with fields like Amount, Currency, DueDate, Recipient, ...

You can fully configure the type of documents that you want to use, and all the fields that you want to have. This can be done in the admin section.

Example of a document list: invoices.

Figure 3.22. Example of a document list: invoices.


You can configure different document types. To do so, you must first:

Chapter 4. Channels

This section of the application contains all that is needed to configure how the messages should be processed by the Babelway system.

The different sub-menu items contain the different building blocks available to make it work.

4.1. Overview

This section gives you the high-level view of how the messages are processed by the Babelway system.

In Babelway words, the messages are processed by Channels. A channel defines the full path that a message follows within Babelway, from the external system that generated the input file, to the external system that must receive the output.

Its main components are:

  • The gateway in specifies the way incoming messages are communicated from the source external system to Babelway. Babelway supports a large variety of protocols, including FTP, AS2, HTTP, Email, OFTP, SFTP, X400 or web upload.

  • The message in precisely describes the structure of the incoming message.

  • The transformation describes how the incoming message should be translated to the outgoing message.

  • The message out precisely describes the structure of the outgoing message.

  • The gateway out specifies how the outgoing message should be communicated to the target external system.

Some optional components are:

  • The test cases are a great way to be sure that your channels are correctly configured, and produce the expected results.

  • The notifications allow you to receive emails when messages are processed, or are in error.

  • The routing allows you to define which channel must process a message, when multiple channels use the same gateway in for example.

Another important concept is the notion of deployment: when you are setting up your channels, you can make any changes you want without any risk to the production system. You can work safely without impacting your production flow of messages. When you're satisfied with the new setup and want the changes to take effect for the production messages, you have to deploy your environment. The new setup is migrated to the servers that handle your production messages.

.

4.1.1. Channels list

The List of Channels screen shows you all the channels defined in your environment, and is the starting point for editing them, create new ones or deploy them to the production systems.

Channels list screen

Figure 4.1. Channels list screen


The list can contain the following columns:

Name

A name that identifies the channel.

Description

A free description for the channel.

Created on

The date and time when the channel was created.

Last updated on

The date and time of the last modification that affected the channel.

Status

Indicates if the channel is now running in the production system (value On ), or not (value Off ). See deployment for more details.

Next deployment

Indicates which kind of change will be applied to the production systems at next deployment. Possible values are No change (channel will not be impacted by next deployment), Start (channel is currently not deployed, but will be after next deployment), Stop (channel is currently deployed, but will be undeployed at next deployment) or Apply changes (channel is currently activated and modifications will be applied at deployment). See deployment for more details.

Enabled

Indicates if the channel is Enabled or Disabled. See deployment for more details.

Gateway In

The name of the gateway In used in this channel, or blank if it is not yet defined.

Message In

The name of the message In used in this channel, or blank if it is not yet defined.

Transformation

The name of the transformation used in this channel, or blank if it is not yet defined.

Message Out

The name of the message Out used in this channel, or blank if it is not yet defined.

Gateway Out

The name of the gateway Out used in this channel, or blank if it is not yet defined.

Id

A technical identifier that uniquely identifies the channel.

Notification

Display the notification name used by this channel.

Deployable

Display the status of the channel if it is Deployable then the message that will be displayed is true, If it is not Deployable then the message that will be displayed is false.

Storage duration

Display how long the message processed by this channel will be kept in the system.

For more information about the behavior of the grid, and how to make searches, see the grid section of the help.

You can click on a line to view the details of the associated channel, or edit it. See Channel details.

The Create channel action button allows you to create new channels.

The Deploy action button allows you to deploy your environment.

4.1.2. Creation of a new Channel

This screen allows you to create a new channel from scratch.

It is accessible from the channels list screen.

The screen will just prompt you for a name and a description for your channel. When filled, just click on Create. The channel will then be created, and you will be redirected to the channel detail screen, so that you can edit all of its components.

Create a channel

Figure 4.2. Create a channel


The other method to create a channel is to search for an existing channel in the Reuse and save time zone.

4.1.3. Channel detail

All the information required to configure a channel is displayed here, split into different tabs. Tabs are presented in a logical order starting with the gateway for the incoming message, going to message transformation, gateway for the outgoing message, email notifications, routing rules, and finally testing.

Channel detail screen

Figure 4.3. Channel detail screen


General

This tab displays the following information. You can change it by just editing the fields and click on Save.

Name

The name of the channel.

Description

The description of the channel.

Enabled?

A channel can be disabled to be ignored by future deployments. A disabled channel is just as a deleted channel, except that you can keep it for future use. An enabled channel is just a 'normal' channel, and all its changes will be reflected to the production system at every deployment.

Next deployment

Tells what will happen with this channel at next deployment. 'Apply Changes' means that the channel is already in production but has changed since the last deployment; the changes will be deployed. 'Start' means the channel is not yet in production, but will be after next deployment. 'Stop' means the channel is currently in production, but will be removed at next deployment. 'No change' means nothing will be done about this channel at next deployment.

Message storage duration

How long the message processed by this channel will be kept. This value can also be set at environment level.

It also displays information about date and times where the channel was created or last updated.

The Delete action allows you to delete your channel.

The Duplicate action allows you to duplicate your channel.

The top right corner shows important information: the status of the channel and the deploy action.

Channel status and deploy action

Figure 4.4. Channel status and deploy action


You will find more information in the deployment section.

Gateway In

The gateway In specifies the way incoming messages are communicated from the sources external system to Babelway. Babelway supports a large variety of protocols, including FTP, AS2, HTTP, Email, OFTP, SFTP, X400 or web upload.

You can find all information about how to define and configure gateways in the gateways chapter.

Message In

The message In precisely describes the structure of the incoming message.

You can find all information about how to define and configure message definitions in the message definitions chapter.

Transformation

The transformation tells Babelway how the incoming message should be translated to the outgoing message.

You can find all information about how to define and configure transformations, including the behavior of the visual drag-and-drop editor, in the transformations chapter.

Message Out

The message Out precisely describes the structure of the outgoing message.

You can find all information about how to define and configure message definitions in the message definitions chapter.

Gateway Out

The gateway Out specifies how the outgoing message should be communicated to the target external system.

You can find all information about how to define and configure gateways in the gateways chapter.

Email Notifications

For each individual channel, you may configure automatic notifications that send emails to specified addresses upon arrival of new messages. Notified users can be different if the message has been successfully processed or if an error has been generated.

Channel Notifications

Figure 4.5. Channel Notifications


You can find all information about how to define and configure notifications in the notifications chapter.

Routing

The routing allows you to define which channel must process a message, when multiple channels use the same gateway In.

You can find all information about how to define and configure gateways in the routing chapter.

Testing

The test cases are a great way to be sure that your channels are correctly configured, and produce the expected results.

You can find all information about how to define and configure gateways in the test cases chapter.

Related Items

Related Items

Figure 4.6. Related Items


The following tabs give you quick links to many other elements of the application that are related to this channel :

Parent channel

Channel used as base for this channel.

Children channels

Channels based on this channel

Other channels with same gateway IN

Displays the channels using the current channel's gateway In

Other channels with same message definition IN

Displays the channels using the current channel's message In

Other channels with same message definition OUT

Displays the channels using the current channel's message Out

Other channels with same gateway OUT

Displays the channels using the current channel's gateway Out

Previous channels (within this environment)

Channel from which the current channel receives messages.

Following channels (within this environment)

Channels following the current channel to execute advance functions.

Messages processed by this channel

Redirect you to the messages list containing only the messages of this channel.

4.1.4. Deployment

When you are setting up your channels, you're working in a sandbox that is separate from the production systems, so that you can make any changes or tests you want without any risk to the production system and your production flow of messages.

When you are satisfied with the changes and want them to take effect for the production messages, you have to deploy your environment. Only at this time, the new setup is migrated to the servers that handle your production messages.

Please also note that the deployment always affects your whole environment. It is not possible to deploy changes for only one channel.

Keep also in mind that any server, email address, etc. defined in incoming and outgoing gateways is only created during deployment. A new incoming email address for example will not be available and any email sent to that address will generate an error before deployment.

You can access the deployment screen from the list of channels or from the detail of a channel. In the top right corner, there is information about the deployment status of your channel

Channel status and deploy action

Figure 4.7. Channel status and deploy action


Status

The status tells if a channel is currently deployed in production ( On ) or not ( Off ).

Deploy action

By clicking on it, you will open the deployment screen. A tooltip will inform you about which kind of change will be applied to the production systems at next deployment.

  • to start the channel: channel is currently not deployed, but will be after next deployment.
  • to apply the changes you made: channel is currently activated and modifications will be applied at deployment.
  • to stop the channel: channel is currently deployed, but will be undeployed at next deployment.

If the deploy action is disabled, a tooltip will describe the reason :

  • because no changes have been made to this channel
  • because the channel is disabled: You can enabled it in the General tab (See the channel detail ).
    Channel Disabled

    Figure 4.8. Channel Disabled


  • because it contains errors: Follow the exclamation marks to see where errors are.
    Contains Errors

    Figure 4.9. Contains Errors


Before the deployment takes effect, a summary of the things that will be changed on your production system will be displayed. The changes are displayed in a grid, one affected channel by line. For all the channels, the 3 last fields describe the changes:

Deployment confirmation

Figure 4.10. Deployment confirmation


On this screen, the following two advanced functions are also available:

Run tests

When deploying, the system automatically reruns all test cases of the affected channels, and forbids the deployment if some test cases are in error. The goal of this operation is to guarantee that you don't deploy by accident a channel that is not functional. If you are really sure of what you are doing, you can decide not to run the tests. In very large environments, this can result in big performance improvement, but at the cost of being sure that the channels pass the tests.

Full provisioning

The system performs by default incremental provisioning: only the changed channels and configurations are resent to the production system. This option allows to completely undeploy and redeploy your environment.

Advanced Options

Figure 4.11. Advanced Options


Advanced Deploy

Figure 4.12. Advanced Deploy


4.1.5. Delete a Channel

To delete a channel, just click on Delete in the general tab of the channel detail screen.

This action is not available if the channel is currently deployed. If it is the case and you want to delete it, you must first undeploy it from the production systems (click on Disable, then Deploy).

A confirmation screen will be shown.

By default, only the channel will be deleted, not the elements (gateways, message definitions, transformations, ...) that the channel could reference. But it is possible to also delete the elements, thanks to the More options button in the confirmation screen. Just click on the elements that you also want to delete. Note also that this list only includes elements that are deletable, i.e. elements that are not referenced by other channels or transformations.

Delete a channel

Figure 4.13. Delete a channel


4.1.6. Duplicate a Channel

This operation allows you to easily create a channel similar to an existing one.

By default, the created channel will be completely independent from the source one : all referenced elements (gateways, message definitions and transformations) will also be duplicated. But you can change this in the More options button by specifying element by element if you want to make a copy, share the existing element, use another similar element or even leave it empty.

Duplicating a channel

Figure 4.14. Duplicating a channel


The duplication can be accessed from the general tab of the channel detail screen, or from the create channel screen. You have to use this second location if you want to use as source channel a channel from a different environment than the current one.

How to Duplicate a channel from one environment to another environment

To be able to duplicate a channel from one environment to another environment your user must have one of the Environment access levels mentioned below:

  • Account Administrator (Full access)

  • Channel Manager

  • Monitoring

Note: If a user has a 'Portal user' Environment access level, he can't duplicate a Channel from one environment to another environment.

1-In the channels tab, click on Create a channel.

Create a channel

Figure 4.15. Create a channel


2-In 'Reuse and save time', click on 'More'.

Reuse and save time

Figure 4.16. Reuse and save time


3-In the 'Environment' drop down list, select the environment containing the channels you want to duplicate.

Environment drop down list

Figure 4.17. Environment drop down list


4-Now select the channel you want to duplicate. In this example, the channel name is 'Order Customer 1'.

Choose your channel

Figure 4.18. Choose your channel


5-On this page, you can click on the Duplicate button to duplicate the channel immediately or you can click on More options to customize the channel elements (Gateway In, Message In, Transformation, Message Out, Gateway Out). In this example, you will click on More options.

Duplicate channel more options

Figure 4.19. Duplicate channel more options


6-For example, for any element of this channel you can select "Leave empty" from the drop down list next to each element based on your needs.

Channel elements options

Figure 4.20. Channel elements options


7-To finish, click on Duplicate to duplicate this channel.

4.2. Gateways

This section contains all the tools needed to manage your gateways. A simplified edition of the gateways is directly available in the channels overview, but you need to come to this section to have access to all functionalities.

Gateways are used in Babelway to specify how messages are communicated between external systems and the Babelway system.

Each channel contains 2 gateways:

  • Gateway in is used to specify the way incoming messages are communicated from the source external system to Babelway.
  • Gateway out is used to specify the way outgoing messages are communicated from Babelway to the target external system.

Babelway supports a large variety of protocols, including AS2, FTP, OFTP, Email, Http. To browse the full list of available gateways, see our catalogue, or consult the different gateway types.

4.2.1. Gateways list

The List of Gateways screen shows you all the gateways defined in your environment, even if they have not been used in any channel. From here, you can easily edit them, or create new ones.

This screen is accessible by clicking on the menu Channels, then the sub-menu Gateways

List of gateways

Figure 4.21. List of gateways


The list can contain the following columns:

Name

A name that identifies the gateway.

Description

A free description for the gateway.

Direction

IN for gateways in, or OUT for gateways out.

Type

The type of the gateway. See gateway types for all possible values.

Created on

The date and time when the gateway was created.

Last updated on

The date and time of the last modification that affected the gateway.

For more information about the behavior of the grid, and how to make searches, see the grid section for help.

You can click on a line to view the details of the associated gateway, or edit it. See gateway details.

The Create gateway action button allows you to create new gateways.

The Clean gateways action button allows you to very easily delete all the gateways that are not used. The interface will just show you the list of all gateways that are deletable (this means not used in any channel). You'll just have to tick the ones that you want to delete, and confirm the operation.

Clean gateways

Figure 4.22. Clean gateways


4.2.2. Creation of a gateway

To create a gateway, you have two main options:

  • Create the gateway from scratch.
  • Duplicate an existing gateway that you already created, or from the Babelway catalogue.

You can access this choice by clicking on Create a gateway in the gateways list screen, or directly from the channel detail screen.

Create a new gateway

To create a gateway, first you have to select the type of gateway that you want to use (Email, FTP, AS2, HTTP, ...).

Gateway creation - Type choice.

Figure 4.23. Gateway creation - Type choice.


Then you need to fill the parameters of the gateway and click on Create gateway. The parameters depend on the type of gateway selected. You can find a detailed explanation of every gateway type in the section on GatewayTypes..

Gateway creation - Parameters for Email

Figure 4.24. Gateway creation - Parameters for Email


Gateway creation - Parameters for FtpClient

Figure 4.25. Gateway creation - Parameters for FtpClient


After having clicked on Create gateway, you will receive a confirmation that the gateway is correctly created, or a detailed error message if your settings are not correct.

Gateway creation - Confirmation

Figure 4.26. Gateway creation - Confirmation


Gateway creation - Error

Figure 4.27. Gateway creation - Error


Reuse an existing gateway

The other solution is to select an existing gateway from the "Reuse and save time" zone.

Gateway creation - Reuse

Figure 4.28. Gateway creation - Reuse


Gateway creation - Reuse confirmation

Figure 4.29. Gateway creation - Reuse confirmation


When you are in the Channels section, and you reuse a gateway that is already used in other channels, you will have the choice of either to share the gateway, or to make a copy.

Gateway creation - Share or copy

Figure 4.30. Gateway creation - Share or copy


More details can be found in the Reuse and save time section.

4.2.3. Gateway detail

This page shows all the details about a gateway, and gives access to all operations that can be made on gateways.

This page can be accessed from the gateways list, or by following any link that refers to a gateway.

The page contains the following tabs.

General

The general tab contains the signaletic information of the gateway, and offers actions that act on the whole gateway.

Direction

Field used to indicate if the message is coming in the system or leaving it.

Type

Type of the gateway. See gateway types for more details.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free text field that you can set and/or modify used in addition to the element name to help you identify your element usage and/or function.

Id

A unique identifier automatically set by the Babelway platform.

Created On

Date and time of element creation.

Last Updated On

Date and time of last element configuration update.

If the gateway is based on time, for instance a FTP Client Gateway using polling, this page contains a Poll now action button. This button triggers the gateway action directly without waiting for the next defined moment.

Properties

This tab contains the configuration of the gateway.

The parameters depend on the type of the gateway.

Related items

This tab contains quick links to many other elements related to this gateway.

Using channels

All the channels that use this element.

Parent

The parent is the element from which the element has been copied.

Children

The children is the element which is a copy of the current element.

Connected gateways (within this environment)

List of gateways to which this gateway sends messages.

Connected gateways (within this environment)

List of gateways from which this gateway receives messages.

Connected Notifications

List of notifications from which this gateway receives messages.

Messages processed by this gateway

A link that shows you the message list filtered, to show messages processed by this gateway.

Connected Message Definition (through extra-processing)

List of message definitions that have an extra-processing related to this gateway.

Change Log

This tabs shows you all the history of changes made on this gateway, and allows you to revert to a past version. For more details, see the change log section.

4.2.4. Gateway types

Here is the list of all the gateway types used in the application, with some more information about their specific uses and parameters.

Gateway In

  • Email Gateway In: Incoming messages are attached to email messages and sent to a specific Babelway email address and processed as soon as they arrive.

  • FTP Client Gateway In: Incoming messages are polled and retrieved from a remote ftp server using a login and password.

  • SFTP Client Gateway In: Incoming messages are polled and retrieved from a remote sftp server using a login and password.

  • FTP Server Gateway In: Incoming messages are transferred to a specific Babelway Ftp server and processed as soon as they arrive.

  • SFTP Server Gateway In: Incoming messages are transferred to a specific Babelway sftp server and processed as soon as they arrive.

  • AS2 Gateway In: A communication standard largely used in retail environment to secure communications over the Internet.

  • Internal Gateway In: A gateway used to transfer messages between 2 channels within Babelway.

  • Message record Gateway In: Used to export the messages details from the Monitoring in a message processed by the channel.

  • Lookup table Gateway In: Used to create a message using values present in a lookup table.

  • OFTP Server Gateway In: Incoming messages are transferred to a Babelway specific OFTP server and processed as soon as they arrive.

  • OFTP client Gateway In: Incoming messages are polled and retrieved from a remote OFTP server using login and password.

  • Http Client Gateway In: Incoming messages are polled and retrieved from a remote Http server.

  • Web Scraping Gateway In: Incoming messages are polled using a scenario mimicking a browser navigating the web.

  • Http Gateway In: Incoming messages are transferred to a Babelway specific Http server and processed as soon as they arrive and it is using asynchronous request.

  • Rest Gateway In: Allows you to implement a REST api and it is using asynchronous request.

  • X.400 Gateway In: Incoming messages are transferred to a Babelway specific X.400 server and processed as soon as they arrive.

  • Scheduler Gateway In: Create new messages based on time triggers.

  • NFS Gateway In: Incoming messages are polled and retrieved from a remote NFS server using login and password.

  • SAP Gateway In: Incoming messages are pushed to Babelway from an SAP server and processed as soon as they arrive.

  • Dropbox Gateway In: Incoming messages are polled from a Dropbox account.

  • Tradeshift Gateway In: Incoming messages are polled from a Tradeshift account.

  • E-conomic Gateway In: Incoming messages are pushed to Babelway from an E-conomic account and processed as soon as they arrive.

  • VAN Gateway In: Incoming messages are polled from ECGrid VAN.

  • PEPPOL Gateway In: Incoming messages are received from the PEPPOL network.

  • RosettaNet Gateway In: Incoming messages are received from a RosettaNet server.

  • ePrior Gateway In: Incoming messages are received from ePrior requests.

  • Simpl.ePrior Gateway In: Incoming messages are received from Simpl.ePrior requests.

  • Amazon Marketplace Gateway In: Incoming messages are polled from an Amazon marketplace account.

  • NemHandel Gateway In: Incoming messages are received from the NemHandel network.

  • Oracle Fusion Gateway In: Incoming messages are received from the Oracle Fusion CMK.

Gateway Out

  • Email Gateway Out: With an Email Gateway Out, outgoing messages are attached to an email and sent to a specific email address.

  • FTP Client Gateway Out: With a Ftp Client Out Gateway, outgoing messages are transferred to an external Ftp server.

  • SFTP Client Gateway Out: With a SFTP Client Out Gateway, outgoing messages are transferred to an external SFTP server.

  • FTP Server Gateway Out:With a Ftp Server Out Gateway, outgoing messages are available from a Babelway FTP server.

  • SFTP Server Gateway Out:With a Sftp Server Out Gateway, outgoing messages are available from a Babelway SFTP server.

  • AS2 Gateway Out: A communication standard largely used in retail environment to secure communications over the Internet.

  • Internal Gateway Out: The internal gateways in / out are used to transfer messages between 2 channels inside the same Babelway environment.

  • Null Gateway Out: The outgoing messages are not sent anywhere.

  • Splitter Gateway Out: A gateway used to split your messages and pass them to other gateways.

  • Aggregator Gateway Out: The aggregator allows you to merge messages into one larger file. The resulting messages are forwarded to another channel in the same environment.

  • Lookup Table Gateway Out: Used to fill a lookup table automatically from a message.

  • OFTP Server Gateway Out: With an OFTP Server Out Gateway, outgoing messages are available from a Babelway OFTP server.

  • OFTP Client Gateway Out: With an OFTP Client Out Gateway, outgoing messages are transferred to an external OFTP server.

  • Http Gateway Out: With a HTTP out Gateway, outgoing messages are available from a Babelway HTTP server.

  • Http Client Gateway Out: With an Http Client Out Gateway, outgoing messages are sent using an Http connection.

  • SOAP Client Gateway Out: With a Soap Client Out Gateway, outgoing messages are sent using a SOAP call and it is using asynchronous request.

  • ePrior Gateway Out: With ePrior Out Gateway, outgoing messages are made available on Babelway ePrior server.

  • Simpl.ePrior Gateway Out: With Simpl.ePrior Out Gateway, outgoing messages are made available on Babelway ePrior server.

  • X.400 Gateway Out: With an X.400 Gateway, outgoing messages are sent to a specific trading partner address using an X.400 network.

  • NFS Gateway Out: Outgoing messages are pushed from Babelway to an NFS server.

  • SAP Gateway Out: Outgoing messages are pushed from Babelway to an SAP server.

  • Dropbox Gateway Out: Outgoing messages are pushed from Babelway to a Dropbox account.

  • Exact Postbox Gateway Out: Outgoing messages are pushed from Babelway to an Exact POSTBOX account.

  • Tradeshift Gateway Out: Outgoing messages are pushed from Babelway to a Tradeshift account.

  • Billtrust Gateway Out: Outgoing messages are pushed from Babelway to a Billtrust API.

  • VAN Gateway Out: Outgoing messages are pushed from Babelway to ECGrid VAN.

  • PEPPOL Gateway Out: Outgoing messages are sent to the PEPPOL network.

  • RosettaNet Gateway Out: Outgoing messages are sent to a RosettaNet server.

  • Amazon Marketplace Gateway Out: Outgoing messages are sent to Amazon marketplace account.

  • NemHandel Gateway Out: Outgoing messages are sent to the NemHandel network.

Email Gateway In

Email gateway in allows you to receive incoming messages sent to a specific Babelway email address, as attachments. The messages are processed as soon as they arrive.

The specific settings are:

Email address

The email address to which the incoming messages are sent as email attachment. If the address already exists, you will have to enter a new address. Remember that this email address will only be created at channel deployment.

Process all files

By default we will process all files received. Unselect this box if you wish to define a specific rule.

File name pattern

Pattern (regular expression) for the file name in the email of the file that will become your input message. First match is used.

Other files to save

Allows you to save other files of the email for future use. For every file that you want to save, you have to specify the pattern of the file name in the email and the name of the metadata in which you want to save the content. If one pattern matches multiple files, it is possible to save them all if you guarantee to generate a different metadata name for each. This can be achieved by using the capturing groups of the regex in the metadata names. Ex: if your pattern is (.*\.csv) and your metadata name is attachment-$1, processing with files file1.csv and file2.csv will result in two metadata as follows attachment-file1.csv and attachment-file2.csv .

Note: This "Gateway In" filters out images in the attachment with the formats (bmp, gif, jpg, jpeg, png, eml, vcf) .

FTP Client Gateway In

With an Ftp Client In Gateway, incoming messages are transferred from an external Ftp server. Babelway polls files from this server at regular intervals. You may need this gateway to integrate with Wayfair for example.

The specific settings are:

Server

External ftp server address where Babelway should fetch messages, e.g. ftp.example.com

Username

Login or username to access files on this external ftp server.

Password

Password associated to the username.

Passive Mode

Indicates that the ftp connection is in passive. Ticking this means the ftp client will establish 2 connections to the ftp server.

Directory

Directory where files are to be fetched on the server.

File pattern

The file pattern is a regex used to filter files to import (ex: '.*\.csv' for all files ending with '.csv' or '(?!proc_).*\.csv' for all csv files that don't start with 'proc_'. If left empty, all files will be transferred.

Protocol

Select FTP, FTPS (Explicit mode) or FTPS (Implicit mode) protocol.

Private key

The private key associated with the previous username to access your account. This can be left empty if you choose to only use the password authentication mechanism.

Suffix during transfer

Suffix that will be appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is transferred twice.

After transfer behaviour

What will happen to your file after we have read it. This behaviour is important so that your file is not read again at next poll. The possible values are :

  • Delete. It is the default. After having read it, the file will be deleted from the remote server.
  • Rename. A suffix will be appended to the file name.
  • Move. File will be moved to another folder of the remote server.
  • Move and rename. File will be moved to another folder, and renamed.
  • DoNothing. Don't do anything. Be very careful with this option, as it could mean that your file will be redownloaded at each poll. Should only be used with servers that move or delete the file automatically at download.

Suffix after transfer

Suffix that will be appended to the file name when a file has been completely transferred.

Folder for transferred files

Directory where transferred files will be moved.

Cron expression

Cron expression. Allows you to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at http://www.cronmaker.com/. For more information, please refer to the page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

When a message is transferred to the ftp server, it is processed immediately then the original file is removed from the server.

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

FTP Server Gateway In

With a Ftp Server In Gateway, incoming messages are received on a Babelway specific ftp server and processed as soon as they arrive.

The specific settings are:

Server

Babelway ftp server is the hostname for the ftp server where the files will be fetched.

Username

Login or username to access your account on Babelway ftp server. This username must be unique as it is linked to a specific directory on the ftp server.

Password

Password associated with the username.

Directory

The directory on the ftp server on which you wil have to put your files so that they are processed by this gateway.

After channel deployment, your ftp server will be available to send messages. You can access this ftp server using any ftp client software set up with the previous account settings.

The files sent by FTP commands STOR, STOU, APPE are processed as soon as the command is completed. There is no need to use a temporary file name suffix are other precautions. The FTP server does not support FTP commands RMD, MKD, RNTO.

Babelway FTP gateways are supporting FTP and FTPS (Explicit mode) on port 21. It also support FTPS (Implicit mode) on port 990.

Note: The ports used for the FTP connections in Babelway are: (FTP, FTPs explicit : 20020-21020, FTPs implicit : 22021-23020).

SFTP Client Gateway In

With an SFTP Client Input Gateway, incoming messages are transferred to an external SFTP server. Babelway platform polls this server at regular intervals and retrieves incoming files to process them.

The specific settings are:

Server

Sftp server host name

Username

Login or username to access files on this external sftp server.

Password

Password associated with the username.

Private key

Private key associated with the username.

Directory

Directory where files are to be fetched on the server.

File pattern

The file pattern is a regex used to filter files to import (ex: '.*\.csv' for all files ending with '.csv' or '(?!proc_).*\.csv' for all csv files that don't start with 'proc_'. If left empty, all files will be transferred.

Cron expression

Cron expression. Allows to define complex time expression like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at http://www.cronmaker.com/. For more information, please refer to the page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Suffix during transfer

Suffix that will be appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is transferred twice.

After transfer behaviour

What will happen to your file after we have read it. This behaviour is important so that your file is not read again at next poll. The possible values are :

  • Delete. It is the default. After having read it, the file will be deleted from the remote server.
  • Rename. A suffix will be appended to the file name.
  • Move. File will be moved to another folder of the remote server.
  • Move and rename. File will be moved to another folder, and renamed.
  • DoNothing. Don't do anything. Be very careful with this option, as it could mean that your file will be redownloaded at each poll. Should only be used with servers that move or delete the file automatically at download.

Suffix after transfer

Suffix that will be appended to the file name when a file has been completely transferred.

Folder for transferred files

Directory where transferred files will be moved.

Note:

  • Babelway By default connect to the remote SFTP server on port 22 but if you want to connect to this remote SFTP server using different port then use the below.

    In the Server field add the port number you want to use it, For example if use X.X.X.X:1722 in the Server field which means connect to the remote SFTP server X.X.X.X on port 1722.

  • In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

SFTP Server Gateway In

Using the SFTP Server In Gateway, incoming messages are received on a Babelway specific server and processed as soon as they arrive. The SFTP server gateway supports SFTP version 3 and password and/or public key user authentication mechanisms.

The specific settings are:

Server

Babelway sftp server is the hostname for the sftp server where the files will be fetched.

Username

Login or username to access your account on the Babelway SFTP server. This username must be unique as it is linked to a specific directory on the SFTP server.

Password

The password associated with the username. This can be left empty if you choose to only use the public key authentication mechanism.

Public Key

The public key associated with the username. This can be left empty if you choose to only use the password authentication mechanism. The supported formats are RSA public key (OpenSSH, Putty or DER format). More information about generating such a key can be found at the end of this page.

Directory

The directory on the ftp server on which you wil have to put your files so that they are processed by this gateway.

You can set both password and public key fields. Therefore, you will be able to connect to your account either by using a password or by using your private key associated with the uploaded public key.

After channel deployment, your SFTP server will be available to send messages. You can access this SFTP server using any SFTP (version 3) client software set up with the previous account parameters.

When a message is received by the SFTP server, it is directly processed. After processing, the file is removed from the server.

The public key is expected to be in an RSA format (OpenSSH, Putty or DER). If you don’t already have a public/private key, you can generate one using ssh-keygen from OpenSSH :

ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (/.ssh/id_rsa): /tmp/identity
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/identity.
Your public key has been saved in /tmp/identity.pub.
The key fingerprint is:
f0:e4:2f:(...) user@computer
		

AS2 Gateway In

With an AS2 Gateway, incoming messages are received using an AS2 connection. Incoming files are processed as soon as they are received. (see how Walmart, Rite Aid, Wayfair. and Amazon use AS2)

AS2 (Applicability Statement 2) is a specification about how to transport data securely and reliably over the Internet. Security is achieved by using digital certificates and encryption.

The specific settings are:

From

AS2 ID of the server that sends incoming messages. Provided by your partner

To

AS2 ID of the Babelway destination server. You must communicate it to your partner

Local URL address

URL address used by your partner to send messages to this gateway. It works for both http and https protocol.

AS2 documentation

File containing instructions and certificates for the installation. You should download it and send it to your AS2 partner.

Message signature enforced

Should message signature be enforced or not.

Certificate for verification

Certificate used for message verification. Provided by your partner.

Message encryption enforced

Should message encryption be enforced or not.

Certificate for decryption

Local certificate to use for decrypting the AS2 messages. These certificates are kept in the environment certificates store.

Maximum retries

Maximum number of retries if message sending failed. Default is 5 times.

Retry interval

Interval of time before trying to send message again (in seconds). Default is 60 (1 minute) and the maximum is 600 (10 minutes).

After channel deployment, your AS2 connection will be available to receive messages.

To report AS2 settings to the other party, dowload the AS2 documentation ZIP file. This file can be sent to the other party to give them all settings they will require to establish a communication with your channel.

Note: The Listening ports for the AS2 Gateway are:

  • When using the HTTPS protocol the Listening port is 443.

  • When using the HTTP protocol the Listening port is 80.

OFTP Server Gateway In

With an Oftp server Gateway in, Incoming messages are received on a Babelway specific OFTP server and processed as soon as they arrive.

The specific settings are:

Partner SSID

The OFTP ID provided by your partner.

Partner SFID

The SFID provided by your partner. If none has been provided, this is probably the same as SSID.

Partner password

The password of your partner. Provided by your partner.

My SSID

Babelway is providing an official Odette SSID : O01770000000000X0B5SHARED. Please call support if you want to use a different one.

My SFID

An SFID is automatically assigned to your Environment: O01770000000000X0B5xxxxxx. Please call support if you want to use a different one.

My password

The value of the password is 'BABELWAY'.

OFTP documentation

File containing instructions and certificates for the installation. You should download it and send it to your OFTP partner.

Use compression

Compresses the messages.

Secure Authentication

Use OFTP2 'Secure Authentication'. This will use the certificates defined for encryption and signature.

Sign messages

Sign outgoing messages using the key selected in "Signature certificate". This allows your partner to verify that you are the one sending the message. This option is only available with OFTP 2.0.

Signature certificate

Select signature certificate or go to certificates store. These certificates are also used for decrypting incomming messages. Multiple certificates for decryption are possible, but only first one in the list is used for signing. This option is only available with OFTP 2.0.

Encrypt messages

Encrypt outgoing messages using the certificate selected in "Encryption certificate". This allows your partner to be the only one able to decrypt the messages sent. This option is only available with OFTP 2.0.

Encryption certificate

Select encryption certificate or go to certificates store.

Encryption algorithm

Select encryption algorithm or go to certificates store.

Receive signed messages

This allows you to verify that your partner is the one sending the message using the certificate selected in "Signature verification certificate". This option is only available with OFTP 2.0.

Signature verification certificate

Select certificate for data or go to certificates store.

Request signed ack (EERP)

Requests that incoming acknowledgments are signed. The signature will be verified using the Certificate selected in "EERP verification certificate". This allows you to be sure that only the partner could have signed the incoming messages. This option is only available with OFTP 2.0.

EERP verification certificate

Select certificate for EERP or go to certificates store.

Transfer mode

Advanced. Once the connection is open the OFTP gateway will act as both sender and receiver by default. You can control this by setting the following values : BOTH / RECEIVER_ONLY / SENDER_ONLY

Version

Advanced. Babelway is supporting both OFTP1 and OFTP2. When a connection is open, Babelway uses the OFTP built-in mechanism to negotiate the protocol version. The protocol will be the highest possible. Valid values are : OFTP_V12 for version 1.2 / OFTP_V13 for version 1.3 / OFTP_V14 for version 1.4 / OFTP_V20 for version 2.0

Credit count

Advanced. Control the OFTP "creditCount" parameter. This is the number of data command ( = CREDIT) that could be exchanged prior to an OFTP confirmation from the partner. Default is 64

Data exchange buffer size

Advanced. Control the OFTP "dataExchangeBufferSize" parameter. This is the size of the OFTP data buffer. It should be smaller than the maxBDataLen for ISDN connection. The minimum is 128 bytes and the maximum is 4096 for ISDN and 65535 for TCP connections. Default is 1024

After channel deployment, your Oftp server will be available to send messages. You can access this oftp server using any Oftp client software set up with the previous account settings.

If you require a custom SSID / SFID / PASSWORD, please send a request to support@babelway.com .

When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server.

OFTP client Gateway In

With an OFTP Client In Gateway, incoming messages are transferred from an external OFTP server. The Babelway platform polls this server at regular intervals and retrieves files to process them.

The specific settings are:

Partner SSID

The OFTP ID provided by your partner.

Partner SFID

The SFID provided by your partner. If none has been provided, this is probably the same as the SSID.

Partner password

The password of your partner. Provided by your partner.

My SSID

Babelway is providing an official Odette SSID : O01770000000000X0B5SHARED. Please call support if you want to use a different one.

My SFID

An SFID is automatically assigned to your Environment: O01770000000000X0B5xxxxxx. Please call support if you want to use a different one.

My password

The value of the password is 'BABELWAY'.

OFTP documentation

File containing instructions and certificates for the installation. You should download it and send it to your OFTP partner.

ISDN number

List of phone numbers used for ISDN communication instead of Internet communication. The expected format is a comma separated list of phone numbers ex : 0049511211306466 or 0049511211306466,003221234567

Max nb datablocks

Advanced. Control the OFTP "maxBDataBlocks" parameter (ISDN only). Default is 7

Max size datablock

Advanced. Control the OFTP "maxBDataLen" parameter (ISDN only). Default is 1024

Server

The URL of the server of your partner. It is provided by your partner.

Port

The port to connect onto. It is provided by your partner.

Use TLS

Use TLS (SSL) for communication

Secure Authentication Certificate

Use this certificate to perform client side TLS (SSL) authentication.

Cron expression

Cron expression. Allows to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at http://www.cronmaker.com/. For more information, please refer to the page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Use compression

Compresses the messages.

Secure Authentication

Use OFTP2 'Secure Authentication'. This will use the certificates defined for encryption and signature.

Sign messages

Sign outgoing messages using the key selected in "Signature certificate". This allows your partner to verify that you are the one sending the message. This option is only available with OFTP 2.0.

Signature certificate

Select signature certificate or go to certificates store. These certificates are also used for decrypting incomming messages. Multiple certificates for decryption are possible, but only first one in the list is used for signing. This option is only available with OFTP 2.0.

Encrypt messages

Encrypt outgoing messages using the certificate selected in "Encryption certificate". This allows your partner to be the only one able to decrypt the messages sent. This option is only available with OFTP 2.0.

Encryption certificate

Select encryption certificate or go to certificates store.

Encryption algorithm

Select encryption algorithm or go to certificates store.

Receive signed messages

This allows you to verify that your partner is the one sending the message using the certificate selected in "Signature verification certificate". This option is only available with OFTP 2.0.

Signature verification certificate

Select certificate for data or go to certificates store.

Request signed ack (EERP)

Requests that incoming acknowledgments are signed. The signature will be verified using the Certificate selected in "EERP verification certificate". This allows you to be sure that only the partner could have signed the incoming messages. This option is only available with OFTP 2.0.

EERP verification certificate

Select certificate for EERP or go to certificates store.

Transfer mode

Advanced. Once the connection is open, the OFTP gateway will act as both sender and receiver by default. You can control this by setting the following values : BOTH / RECEIVER_ONLY / SENDER_ONLY

Version

Advanced. Babelway supports both OFTP1 and OFTP2. When a connection is open, Babelway uses the OFTP built-in mechanism to negotiate the protocol version. The protocol will be the highest possible. Valid values are : OFTP_V12 for version 1.2 / OFTP_V13 for version 1.3 / OFTP_V14 for version 1.4 / OFTP_V20 for version 2.0

Credit count

Advanced. Control the OFTP "creditCount" parameter. This is the number of data command ( = CREDIT) that could be exchanged prior to an OFTP confirmation from the partner. Default is 64

Data exchange buffer size

Advanced. Control the OFTP "dataExchangeBufferSize" parameter. This is the size of the OFTP data buffer. It should be smaller than the maxBDataLen for ISDN connection. The minimum is 128 bytes and the maximum is 4096 for ISDN and 65535 for TCP connections. Default is 1024

After channel deployment, your Oftp server will be available to send messages. You can access this oftp server using any Oftp client software set up with the previous account settings.

If you require a custom SSID / SFID / PASSWORD, please send a request to support@babelway.com .

When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server.

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Http Gateway In

With an Http In Gateway, incoming messages are received as HTTP Post on the Babelway HTTP server and processed as soon as they arrive.

The HTTP Post can use the following encoding method: HTML Form, base64 and urlencode.

Babelway is supporting synchronous processing of messaging. This is available when you submit messages using our HTTP gateway using SOAP and the SOAP operation: "process Message". The response will contain the final result of the execution of the messages. If the messages generate more than one message, the response will contain the full graph of processed messages.

It is also available through the REST of the gateways. There is only a limited available documentation on this topic, but we would be more than happy to understand more your requirements and provide a proof of concepts for you.

The specific settings are:

Authentication method

You can select from BASIC or CERT. BASIC is user/password authentication. CERT is 2-way SSL authentication.

Username

Login or username to access the service.

Password

Password associated with previous username.

2-way auth. certificate

The certificate used to validate the client certificate.

HTTP(S) Post URL

Using the HTTP(S) Post protocols. Support HTTP and HTTPS protocols.

The old address http(s)://{URL}/ws/HttpPostIn is still available, where {URL} is the same as the one in the new url http(s)://{URL}/ws/gateways/...

SOAP HTTP(S) Url

Using the SOAP Post protocols. WSDL.

Support HTTP and HTTPS protocols.

HTTPS Post URL

Using the HTTPS 2way authentication Post protocols.

Submitted using a FORM

Check the message posting was performed using a Http POST submit.

FORM parameter

If the option "Submitted using a FORM" is used, this selects the parameter where to find the content of the message.

Note: The HTTP server Gateway uses the port 80 for HTTP and 443 for HTTPS.

This "Gateway In" allow to provide the username and password in the URL when using the HTTP Post URL, The below print screen shows an example for this configuration.

HTTP Gateway IN example

Figure 4.31. HTTP Gateway IN example


The URl is http://eu1.babelway.net/ws/gateways/501484 ?userName=test4321&pwd=kM7kqSpFRkSX5nXZ

Note: Note: You will need to download the WSDL file for this gateway by using the SOAP URL in the browser then login using the user name and password for this gateway in order to download the WSDL file for this environment as for some environments the SOAP URL and the WSDL file are different from other environments.

Http Client Gateway In

The Http Client allows to periodically retrieve the content of the Http response to a specific URL

Authentication method

You can select from BASIC or TOKEN. BASIC depend on the server response.

Login url

If authentication method is FORM.

Url

Url to call to create message.

Support HTTP and HTTPS protocols.

Username

Username used for BASIC/NTLM/DIGEST authentication.

For NTLM authentication, the username can be prepended by the domain (domain/username).

Password

Password used for BASIC/NTLM authentication.

Valid HTTP return code

Comma separated list of expected return Http code. If the return code is not in the list, the polling generates an alert. The default is '200,201,202,204,205'.

Timeout

Timeout for connection in milliseconds. Must be between 10000 and 240000.

Http Method

You can specify the http method to call. The default is GET.

TLS version

You can specify the version of the TLS protocol. TLS is the replacement of SSL. The default is TLSv1.2.

Http headers

You can add specific http header.

Trust level

The trust level defines the level of security used in the SSL handshake. Relax = No certificate verification, Standard = trusting certificates in environment certificates as well as known CA's, Paranoiac = only trusts certificates defined in the environmnent certificates. The default is Standard

Login url

If authentication method is FORM.

Authentication form fields

When using FORM authentication, you can add specific authentication form fields to the authentication call. This accepts metadata.

Metadata from response

You can use data receive by the login request as metadata, which can be used in the data sending after login.

Cron expression

Cron expression. Allows to define complex time expression like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at http://www.cronmaker.com/. For more information, please refer to the page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Note:

  • The Gateway In of type "HTTP Client" only supports the BASIC authentication mode.

  • In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Web Scraping Gateway In

The Web scraping allows to periodically retrieve messages using a scenario mimicking a browser navigating the web.

This gateway has to be enabled by Babelway support. For more information or to request the activation, please send a mail to support@babelway.com.

Scenario

Xml definition of the web scraping scenario.

Use variables from lookup table

The scenario will be executed once per iteration lookup table row block. The value of the lookup table will be added to the execution context and available using the VARIABLE::columnName function. The scenario will be executed once without parameters if the lookup table is left empty.

2-way auth. certificate

If CERT authentication is used (2-way SSL authentication), this allows to select the key pair to use from the environment certificate.

Cron expression

Cron expression. Allows to define complex time expression like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at http://www.cronmaker.com/. For more information, please refer to the page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Rest Gateway In

This gateway in allows you to easily publish a REST api.

It has the following characteristics:

  • It will respond synchronously to the REST api calls with the result of the processing of the message by the channels.
  • It injects an xml message in that contains all the elements of the REST call (uri, parameters, expected output format, ...).
  • It supports 'json', 'xml' and 'csv' as output format.
  • It supports multi-credentials.

The specific settings are:

Url identifier

Part of the url that identifies this gateway. The urls to call the REST api will have the form https://ws.babelway.net/rest/<urlIdentifier>/<yourUrlParams>.(json|xml|csv)

Body of API call as message content

Activate this settings if you want to use the body of the API call (also known as the payload of the HTTP call) as message IN content. This only works with POST, PUT and PATCH HTTP methods. If you deactivate this options, your message content will look like the XML example we provided in the help guide.

Url to call

The URL to call the REST api.

Allowed credentials

A list of user names/password pairs that are allowed to access this api. The user will have the choice to provide user name and password via http basic authentication, http settings 'user' and 'password' or http headers 'user' and 'password'.

Url patterns

Optional. If filled, the requested url will be checked again. This pattern will be refused if it doesn't match at least one pattern. You can also prefix the pattern with 'PRE:', 'POST:', 'PUT:', ... if you want this pattern to only be accessible via one specific http method.

Here is an example of message In, that is generated by this gateway if you use the HTTP method POST.

<?xml version="1.0" encoding="UTF-8"?>
<restRequest>
  <uri>/sws/shipmentStatus/BE.json</uri>
  <identifier>sws</identifier>
  <action>shipmentStatus</action>
  <method>GET</method>
  <format>json</format>
  <userName>bertrand</userName>
  <parameters>
    <param1>BE</param1>
    <myParam>myValue</youpie>
  </parameters>
  <POST>... Payload or body of your HTTP call ... </POST>
</restRequest>
		

<POST>...</POST> xml tags will match the HTTP method you use to perform the call. Those would be <GET>...</GET> if you are using the GET method, etc...

Below is how to use the URL parameters for a REST API Server Gateway IN

For example we have created the REST API Server Gateway IN with the below parameters as a test values for explanation

1-The "Url identifier" as "testurl".

2-Regarding the "Allowed credentials" the "Username" as "usernametest" and the "Password" as "passwordtest".

3-For this test environment the "Url to call" is "http://ws.babelway.net/rest/testurl/message(?URL Params).(json|xml)"

REST API Server Gateway IN

Figure 4.32. REST API Server Gateway IN


To use the URL settings for a REST API Server Gateway IN, for example, this is the Url to call "http://ws.babelway.net/rest/testurl/message(?URL Params).(json|xml)"

You will replace the (?URL Params) with your URL params you want to use them.

Regarding the (json|xml) here you can determine the format of the data.

Note: If you want to get the input message name then you have to select one of the two below mentioned options. This is due to the fact that, when using the REST API Server Gateway IN there is no file.

  • Option one: You will need to include the input file name somewhere in the API call in the body of the HTTP call.
  • Option two: You will need to include the input file name somewhere in the URL parameters.

Now you can use the name that you have provided by selecting one of the two above mentioned options to create the output message file name.

X.400 Gateway In

An X.400 In Gateway allow to receive messages from X.400 networks. Your trading partners can reach you via your private X.400 address.

The specific settings are:

X.400 address

The account private address. This is the address to communicate to your trading partners. The formatting may vary from one partner to the other. The most common format is: C=WW; A=400NET; P=BABELWAY; S=HUB-25333 /C=WW/A=400NET/P=BABELWAY/S=HUB-25333.

After channel deployment, your connection will be available to send messages.

The first time X.400 is used in an account, it has to be enabled by Babelway support. The request is done automatically and you will be notified when the gateway is functional.

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Scheduler Gateway In

The Scheduler in Gateway allows you to create a message based on a time trigger.

The specific settings are:

Frequency

Number of seconds between two events. The default value is 90 seconds and cannot be lower. This is the simplest way to define a time event. For more complex needs, use the Cron Expression property instead.

Cron expression

Cron expression. Allows you to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). This takes precedence on the frequency property. For easy creation of your cron expression, you can use the online cron maker tool available at: http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Message

Message template that will be sent each time this scheduler is activated. If not filled, a default xml is used (that just contains the time and the gateway id).

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Internal Gateway In

The internal gateway in / out is used to transfer messages between 2 channels within the same account environment.

There is no setting to define in this template. The internal gateway will be automatically created using the gateway name you entered. You will then be able to select it as an Internal Gateway Out in another channel configuration.

As opposed to most other gateways, the internal gateway is immediately available as the gateway out for other channels configuration without requiring a channel deployment.

Message record Gateway In

This gateway exports periodically your message records (Messages details from the Monitoring). The export is in CSV, and is exactly the same format that you would have by exporting your messages manually in the interface.

Period

The period with the messages to export.

Filter

In addition to the time criteria, this setting allows you to define additional criteria to filter the messages to export.

In gateways

The list of gateways for which you want the processed messages.

Channels

The list of channels for which you want the processed messages.

Cron expression

Cron expression. Allows you to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the export will be scheduled automatically based on your period criteria. For easy creation of your cron expression, you can use the online cron maker tool available at: http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

This Gateway In is used to get the Message records from your environment and then for example the channel which has this Gateway In will send to your system a custom statistics every 7 days, The below example show how this is done.

1-Create a Gateway In of type Message Record then set the Cron expression to scheduled every 7 days.

Gateway IN of type Message Record

Figure 4.33. Gateway IN of type Message Record


2-For example the Message Out is of type XML that will contain custom statistics structure, In the transformation map all of the field from the "Message In" to the "Message out" to achieve the required information.

Message Record Transformation

Figure 4.34. Message Record Transformation


3-Every seven days the channel will send a custom statistics XML file to your system, Below is a sample for the generated XML file.

Message Record Output

Figure 4.35. Message Record Output


Lookup table Gateway In

This gateway allows you to create a message from the content of a lookup table. The message created is a XML document. It uses the same format as the XML CSV representation used internally by Babelway.

Lookup Table Id

The technical id of the lookup table.

Include headers

Check this to add the column names as headers of the messages created.

Filter 1 column

Column used to filter the extract of the lookup tables entries.

Filter 1 value

Value used to filter the extract of the lookup tables entries.

Filter 2 column

Column used to filter the extract of the lookup tables entries.

Filter 2 value

Value used to filter the extract of the lookup tables entries.

Filter 3 column

Column used to filter the extract of the lookup tables entries.

Filter 3 value

Value used to filter the extract of the lookup tables entries.

Post extract operation

Optional operation to perform on selected entries (NONE, DELETE and UPDATE) after extraction. Default is DELETE

Column to update

Column to update after the extract of the lookup tables entries, Only used with 'Update' in 'Post extract operation'.

Column to update

Column to update after the extract of the lookup tables entries, Only used with 'Update' in 'Post extract operation'.

Update value

Value to use when updating the column to update.

Limit

Maximum number of entries to extract in 1 execution of this gateway.

Entries per message

Maximum number of entries per message. If the overall limit is bigger, several messages will be created for each execution of this gateway.

Cron expression

Cron expression. Allows you to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at: http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

NFS Gateway In

The NFS gateway is used to connect and fetch files from a remote NFS server.

Server

Hostname of the NFS server.

Export

Name of the exported volume.

Login method

NFS login method: use PCNFSD for username / password and UGID to directly use UID, GID and GIDS.

Username

Username used for the NFS authentication. Only used with PCNFSD login method.

Password

Password used for the NFS authentication. Only used with PCNFSD login method.

User ud

Unix user UID to use during authentication. Only used with UGID login method.

User group id

Unix user's group GID to use during authentication. Only used with UGID login method.

User extra group ids

Unix user's additional groups GID to use during authentication, encoded as a comma separated list. Only used with UGID login method.

Directory

Local NFS path to the folder you want to use. This is relative to the export.

Filename pattern

If not empty, only the files whose name matches this pattern will be transferred.

Suffix during transfer

Suffix that will be appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is transferred twice.

After transfer behaviour

What will happen to your file after we have read it. This behaviour is important so that your file is not read again at next poll. The possible values are :

  • Delete. It is the default. After having read it, the file will be deleted from the remote server.
  • Rename. A suffix will be appended to the file name.
  • Move. File will be moved to another folder of the remote server.
  • Move and rename. File will be moved to another folder, and renamed.
  • DoNothing. Don't do anything. Be very careful with this option, as it could mean that your file will be redownloaded at each poll. Should only be used with servers that move or delete the file automatically at download.

Suffix after transfer

Suffix that will be appended to the file name when a file has been completely transferred. The use of this mechanism allows you to keep the file after the transfer, with this suffix appended to its name. If left empty, the file will be deleted after the transfer.

Folder for transferred files

Directory where transferred files will be moved.

Cron expression

By default, the gateway will regularly poll the messages from your NFS server, so that they come into Babelway a short time (less than 10 minutes) after they have been placed in your NFS server. You can write here a cron expression to customise the polling schedule. For easy creation of your cron expression, you can use the online cron maker tool available at : http://www.cronmaker.com/.

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

SAP Gateway In

The SAP Gateways are based on the SAP RFC protocol and JCo technology. RFC is an SAP interface protocol allowing internal or external systems to communicate with the SAP system. JCo is the Java implementation of RFC distributed by SAP. Babelway leverage the built-in JCo redundancy mechanism to distribute the gateway on our different locations (data centers).

Solution overview

Figure 4.36. Solution overview


System boundaries, acknowledgment and error management

For Inbound IDoc, Babelway sends the IDoc to SAP. If the message cannot be delivered to SAP, the error will be managed using the traditional Babelway process. Error notifications will be delivered to registered users. When the message is delivered to SAP, Babelway fetches the detailed status and error messages of the IDoc. The messages are always set to 'acknowledged' when the transmission is successfully. However the status could be SUCCESS or ERROR depending the SAP IDOC status code.

For Outbound IDoc, SAP sends IDOC to Babelway. If the message cannot be delivered to Babelway, the IDoc is in error in SAP with a status = 20. Once the message is delivered to Babelway, SAP automatically change the status to 03. In addition of this, we provide a function to explicitly change the status by calling the RFC defined during the setup phase. This allow SAP that the remaining of the IDoc processing will entirely take place in Babelway.

Connectivity Setup

Babelway provides the gateways to communicate in both direction. SAP Gateway In allows to receive outbound IDoc and SAP Gateway Out allows to send inbound IDoc to SAP. The JCo RFC Provider service uses a TCP/IP connection type. In order to secure this connection, Babelway advices one of the following solutions:

  • Option 1: A strict firewall rule to allow Babelway public IP addresses to connect to the SAP server
  • Option 2: Using SAP router in the DMZ, as well as the firewall configuration like in Option1
  • Option 3: You can contact Babelway support to setup a IPSec VPN between the Babelway public IP addresses and the SAP server. Please send a request to support@babelway.com

The Port number used to contact the SAP system range from 3300 to 3399. The exact port number depends on the SAP system you want to reach. The exact port number must be given in the parameters (defined below). Firewall need to allow Babelway server to reach these ports.

SAP configuration

Here is the list of the SAP specific setup to perform in order to make the connector working. This is guide lines

  • Create a "RFC destination" (transaction sm59) with the name "BABELWAY". The "Connection Type" is "TCP/IP Connection". Go to "Technical settings" and fill "BABELWAY" in the "Program ID" field. Go next to the "Unicode" tab and in the "Communication Type", select the "Unicode".
    RFC destination

    Figure 4.37. RFC destination


  • Create a "Ports in IDoc processing" (transaction we21) in the "Transactional RFC" with the name "BABELWAY".
    Ports in IDoc processing

    Figure 4.38. Ports in IDoc processing


  • For inbound IDoc, there is no special configuration. All programs are allowed to delivered IDocs for all partners. For outbound IDoc, Go to "Partner profiles" (transaction we20) then for each partner and each "Message Type" you want to change, go to "Outbound Options" and change the "Receiver port" to "BABELWAY" in the tab "tRFC".
    Sap Partner Profiles

    Figure 4.39. Sap Partner Profiles


    Sap Partner Profiles Outbound Parameters

    Figure 4.40. Sap Partner Profiles Outbound Parameters


  • If you want to leverage the "Update Status" feature, you need to add the specific RFC call. By default the system will call the following function: ZZBABELWAY_IDOC_STATUS_UPD taking 2 input parameters: PI_DOCNUM (IDoc number) and PI_STATUS (the new status = 16). The code for such function is given here.
  • Here is a list of transactions that could help you during the setup of your connection:
    • sm59 : maintenance of "RFC destination"
    • we21 : maintenance of "Ports in IDoc processing"
    • we20 : maintenance of "Partner profiles"
    • we02 : "IDoc List"
    • we19 : "Test tool for IDoc processing"
    • sm58 : "Transactional RFC". Use this to look for TID = Gateway In message key
    • smgw : "Gateway Monitor"
    • sm21 : "System Log"
    • we63 : "Documentation" usefull to get IDoc parser or XSD to use in Babelway wizard
    • su01 : "User Maintenance"
Babelway configuration

Simply create a channel with the SAP gateway and XML IDoc message definition.

Sap Channel Details

Figure 4.41. Sap Channel Details


The specific parameters are :

SAP client

SAP client to use. This is the three digit number you use in the first field of the login screen of SAP Gui. It has the name 'Client' and is just above the user and password fields. For instance: 001, 210, 400 ...

User

The Valid SAP user ID you want to use. Ideally this should be a user specially created for this purpose. For instance: user

Password

Password associated with the user ID. For instance: password

Server address

IP or DNS name for SAP application server. For instance: sap.yourcompany.com if using a sap router, use the sap router syntax details here: /H/SAP_ROUTER/S/3300/H/SAP_SERVER/S/3300 http://help.sap.com/saphelp_nw04/helpdata/en/4f/993172446d11d189700000e8322d00/frameset.htm if you are using a NAT: put the public address in sm59

RFC destination

This is the name of the RFC Destination to use. This RFC destination must use TCP/IP connection. See help for more details. For instance: BABELWAY

SAP system number

SAP system number is the last 2 digits of the SAP client. For instance: 01, 10, 00. Default is the last 2 digits of SAP client parameter

Gateway address

IP or DNS name for SAP gateway. It could be the same as jco.client.ashost if no external gateway is used. the For instance: gateway.yourcompany.com. Default is the same as SAP server address parameter.

Gateway port

This is the port number to reach the TCP RFC server. For instance use 3301 to reach system 01 or 3310 to reach system 10. Default is 3300 + the last 2 digits of SAP client parameter.

Custom update status

Should the system call the RFC function to explicitly update the status in SAP. Default is true and it required a RFC to be configured in SAP. Default is false.

Update status function

The name of the RFC updating the status. For instance: ZZBABELWAY_IDOC_STATUS_UPD

Use unicode

Specify if unicode should be used. Use 0 for false and 1 for true. For instance: 0

Dropbox Gateway In

The Dropbox gateway in allows to retrieve your messages from a Dropbox account.

The specific settings are:

Dropbox account

The name of the Dropbox account from which the messages are polled. This information is "read only", and set by the wizard when you allow Babelway to access the Dropbox account.

Folder

The folder in your Dropbox account from which the messages are transferred to Babelway. This folder is located under the path /Apps/Babelway/ .

Filename pattern

If not empty, only the files whose name matches this pattern will be transferred to Babelway. Otherwise, all files are automatically transferred to Babelway

Suffix during transfer

Suffix that will be appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is transferred twice.

After transfer behaviour

What will happen to your file after we have read it. This behaviour is important so that your file is not read again at next poll. The possible values are :

  • Delete. It is the default. After having read it, the file will be deleted from the remote server.
  • Rename. A suffix will be appended to the file name.
  • Move. File will be moved to another folder of the remote server.
  • Move and rename. File will be moved to another folder, and renamed.
  • DoNothing. Don't do anything. Be very careful with this option, as it could mean that your file will be redownloaded at each poll. Should only be used with servers that move or delete the file automatically at download.

Suffix after transfer

Suffix that will be appended to the file name when a file has been completely transferred. The use of this mechanism allows you to keep the file after the transfer, with this suffix appended to its name. If left empty, the file will be deleted after the transfer.

Folder for transferred files

Directory where transferred files will be moved.

Scheduling

By default, the gateway will regularly poll the messages from your Dropbox account, so that they come into Babelway a short time (less than 10 minutes) after they have been placed in your Dropbox account. You can write here a cron expression to customise the polling schedule. For easy creation of your cron expression, you can use the online cron maker tool available at : http://www.cronmaker.com/.

Tradeshift Gateway In

This gateway allows to retrieve files directly from an account on Tradeshift. The document retrieved will be marked as 'processed-by-babelway' in Tradeshift. The message will contain 2 metadata, 'document.metadata' containing the document metadatas and 'connection.properties' containing the connection properties, both as a single line JSON string.

API URL

URL Prefix to call Tradeshift API. Default is https://api.tradeshift.com/tradeshift/rest/

Polling type

Choose 'Document' for regular fetching of document. Choose 'Workflow' to poll workflow document.

Tenant Id

The Tradeshift tenantId to use. Use Babelway application in Tradeshift to retrieve this value.

Token

The Tradeshift token to use. Use Babelway application in Tradeshift to retrieve this value.

Secret

The Tradeshift token secret to use. Use Babelway application in Tradeshift to retrieve this value.

Consumer key

The Tradeshift consumer key to use to authenticate the Babelway application. This should be left empty in most of the case.

Consumer secret

The Tradeshift consumer secret to use to authenticate the Babelway application. This should be left empty in most of the case.

Stag

Specify where the document should be retrieved from. Values are 'inbox', 'outbox', 'sales', 'purchases', 'inbox,outbox', 'inbox,outboxsales,purchases', 'draft', 'sent'. Default is 'inbox'.

Type

type of document to retrieve. Values are 'invoice', 'creditnote', 'order', 'despatchadvice', 'invoice,creditnote', 'invoice,creditnote,order,despatchadvice'. Default is 'invoice'.

Additional query parameters

Parameter list added to the initial 'list documents' api call.

Reverse documents order

Process the documents in reverse order of retrieval. This option is useful if you query documents with the property 'ascending' set to false, which results in document being polled in the reverse order timewise, to process them in the correct order

Query parameters

Parameters used to build the document query. It is highly recommended to at least set the properties 'withouttag', 'limit', 'type' and 'stag'.

Get document metadata

Should document metadata be fetched?

Get network connections properties

Should network connection properties be fetched?

Poll processed documents

Poll processed documents by appending '/processed' to the GET document call

Additional tags

Set these tags to the document. It is important to at least set the 'withouttag' to avoid multiple processing of same message

Additional tags

Set these tags to the document. It is important to at least set the 'withouttag' to avoid multiple processing of same message

Properties

Set these properties to the document

Tags to remove

List of tags you want to remove from the document

Properties to remove

List of properties you want to remove from the document

Pull collaborations

Fetch collaboration messages for every document. Collaboration datas will be saved in message metadatas

Collaboration type

Which type of collaborations to fetch

Fetch Attachments

Include attachment into fetched data?

Frequency

Number of seconds between 2 checks. The default value is 3600 seconds (1 hour) and it can be lowered; the minimum accepted value is 90 seconds. This is the simplest way to define a time event. For more complex need, use the Cron Expression property instead.

Cron expression

By default, the gateway will regularly poll the messages from your Tradeshift account, so that they come into Babelway less than one hour after they have been placed in your Tradeshift account. You can write here a cron expression to customise the polling schedule. For easy creation of your cron expression, you can use the online cron maker tool available at : http://www.cronmaker.com/.

This Gateway In allow you connect to Tradeshift server to receive specific document base on the configuration of this Gateway In.

By using the Tradeshift API in the configuration in the Gateway In we can control to receive:

-A specific document type (The corresponding parameter is "type").

-Receive document in ascending or descending order (The corresponding parameters is "ascending").

-Receive document issued between a specific period of time (The corresponding parameters are "minissuedate" and "maxissuedate").

-Control the limit of the received document in one call (The corresponding parameter is "limit").

The below link from Tradeshift describes all of the Tradeshift API calls to be used in this Gateway In.

https://api.tradeshift.com/tradeshift/rest/external/doc

When the Tradeshift "Gateway In" is used in the channel and the message is in status of "in delivery" in the Babelway system then it will be marked as "processed-by-babelway" in Tradeshift, If the status is "Success" in the Babelway system then it will be marked as "sent-by-babelway" in Tradeshift, and if the status is "Error" in the Babelway system then it will be marked as "babelway-errorDescription" in Tradeshift.

For each message retrieved from Tradeshift two metadata are created and stored in the Context in file related to each document separately, This is stored in the "contextIn.xml" file in the "UserMetadatas" tag.

The "document.metadata" metadata contains all of the information related to this document for example (DocumentId, DocumentType, documentProfileId, … etc) stored in a JSON string.

Document Metadata

Figure 4.42. Document Metadata


The "connection.properties" metadata contains all of the information related to this connection properties for example (OpenDated, SupplierCategory, CompanyUrl, … etc) stored in a JSON string.

Connection Properties

Figure 4.43. Connection Properties


Example 1

We want to only poll documents with specific connection property which is "argtag"="TestInbound".

To accomplish this we will use the two query parameters "propertykey" and "propertyvalue".

In this case the "propertykey" will be "argtag" and the "propertyvalue" will be "TestInbound".

1-Create the Tradeshift Gateway In and configure the connection parameters.

2-From the Gateway In click on "Properties".

3-In the "Tradeshift" section for the "Additional query parameters" we will create the two query parameters with the corresponding values.

Example 1

Figure 4.44. Example 1


Example 2

The default limit for polling is 25 documents, so in this case for example we want to change it to be 70 documents.

To accomplish this we will use the query parameters "limit" which will be set to 70.

In the "Tradeshift" section for the "Additional query parameters" we will create the query parameter "limit" and set its value to "70".

Example 2

Figure 4.45. Example 2


Example 3

The query parameter "tag" is set by default to be interpreted as "OR" in this case we want to change it to be interpreted as "AND" this is done by setting the query parameter "useAndOperatorForTags" to "true".

In the "Tradeshift" section for the "Additional query parameters" we will create the query parameter "useAndOperatorForTags" and set its value to "true".

Example 3

Figure 4.46. Example 3


Example 4

We can use query parameter at the same time, In this we want to only poll documents with specific connection property which is "argtag"="TestInbound" and with limit of 70 documents.

We will use the three query parameters "propertykey" and "propertyvalue" and "limit".

In this case the "propertykey" will be "argtag" and the "propertyvalue" will be "TestInbound" and the "limit" will be "70".

Example 4

Figure 4.47. Example 4


Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

Amazon Marketplace Gateway In

This gateway allows to retrieve orders from an account on Amazon Marketplace. The gateway will only process orders created after the deployment of the gateway.

Process

Request support@babelway.com for changing this parameter. Type of process. 'PollOrders' is the only one supported at this stage.

Endpoint

Endpoint is the entry point for an Amazon marketplace web service. Default is https://mws.amazonservices.com

Access key

Amazon marketplace web services access key ID.

Secret key

Amazon marketplace web services secret key ID.

Seller Id

Amazon marketplace seller ID.

Marketplace Id

Amazon marketplace ID.

Cron expression

By default, the gateway will regularly poll the messages from your Amazon Marketplace account, so that they come into Babelway less than one hour after they have been placed in your Amazon Marketplace account. You can write here a cron expression to customise the polling schedule. For easy creation of your cron expression, you can use the online cron maker tool available at : http://www.cronmaker.com/.

Note: This Gateway In only receive order messages from Amazon Marketplace.

The below link has the complete list for all of the available FeedType in the Amazon MWS Feeds API section.

https://docs.developer.amazonservices.com/en_US/feeds/Feeds_FeedType.html

Below is a link for a list of Amazon Marketplace that will help you to access Amazon Marketplace Web Service (Amazon MWS) through a URL endpoint for your Amazon marketplace.

http://s3.amazonaws.com/devo.docs.developer.amazonservices.com/en_DE/dev_guide/DG_Endpoints.html

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

E-conomic Gateway In

The E-conomic wizard is used to create a gateway that lets you query your e-conomic online account (http://www.e-conomic.com) and retrieve invoice documents based on a specified CVR reference.

The specific settings are:

E-conomic Token Id

The generated Token Id by E-conomic that grants Babelway access to your E-conomic account.

It can be generated via https://secure.e-conomic.com/secure/api1/requestaccess.aspx?appId=N3m3TyMMqNgwTTso7dnr7f3rGOnXlZwKEeneiL2Uwo0=&role=SuperUser.

CVR Reference

Reference to Central Business Register (CVR). Only invoice documents with this reference will be retrieved by Babelway.

Cron expression

Cron expression. Allows to define complex time expression like every weekday night at 23:00 (0 23 ? * MON-FRI). If left empty, the system will check at least once every 15 minutes. For easy creation of your cron expression, you can use the online cron maker tool available at : http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

VAN Gateway In

This gateway allows to retrieve files from specific trading partners on ECGrid VAN. A Trading Partner is the company from whom you are going to receive documents. You may wish to use this gateway for example to integrate with Rite Aid or Wayfair.

The VAN gateway receives the message based on the Identifier / Qualifier pair as determined in the X12 or Edifact data. They look like this:

X12: ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *010101*0101*U*00401*000000001*0*T*!

EDIFACT: UNB+UNOA:1+ SENDERID:ZZ+RECEIVERID:ZZ +

For the VAN IN Gateway, your ID Is the Receiver ID. Your Trading Partner ID is the Sender ID.

If you are using an already existing ID (on another VAN), your ID must be migrated to Babelway before you can begin receiving documents. To do so you must:

1-Download and complete this letter of authorization, found here

2-Printout on your company letterhead, scan with completed information

3-Send authorization to along with your desired migration date

Please note that this migration will cause all traffic under this ID to be routed to the Babelway VAN Gateway In. You must be prepared to process all documents that you currently receive through your old VAN before the migration can be completed successfully.

If you would rather use a new ID and have your partners change what they are using, Babelway let’s you create a new ID on the gateway.

Your identifiers

Your Names / Identifiers / Qualifiers on VANs. All EDI messages specifying these Id/Qual in recipient will be routed to this gateway. Identifier = The X12 or EDIFACT ID for the ISA and UNB segments. Qualifier = The X12 or EDIFACT Qualifier for the ISA and UNB segments (Maximum is 2 characters). The name should be your company/ entity name and will be used by other EDI partners to find you before sending messages.

Note:

  • In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

  • VAN ID can't be used in two different environments. You can only share it in the same environment with more than one channel, then you will have to set routing conditions.

PEPPOL Gateway In

This gateway allows to receive files from the PEPPOL network.

PEPPOL ?

The PEPPOL project was started in 2008 with the objective to enable businesses to communicate electronically with any European government institution in the procurement process. Seven years later, PEPPOL standard is gaining traction by the European governments but also within the industry (the peppol.eu site lists 99 certified PEPPOL Access Points providers).

The three main components of the PEPPOL architecture are :

  • The Access Point (AP) : responsible to send and receive documents for a PEPPOL participant

  • The Service Metadata Publisher (SMP) : registry containing the Participant AP information. It tells you which access point must be contacted to send document of certain type to a PEPPOL participant

  • The Service Metadata Locator (SML) : the PEPPOL DNS Server. It tells you in which SMP a PEPPOL participant is registered

PEPPOL In Gateway

Figure 4.48. PEPPOL In Gateway


Participant

An "PEPPOL In Gateway" must be configured for one PEPPOL Participant (the receiver). There can be only one PEPPOL Gateway IN per participant identifier in Babelway.

The identifier value is the value identifying the PEPPOL participant in a given identification scheme. Most of the time this is a national VAT or a GLN number. For easier use, you can, for each identifier, define a user-friendly name that we call a "label".

When you deploy an "PEPPOL In Gateway", the gateway is registered as an Access Point for the receiver and document types in a Babelway SMP and the Babelway SMP is referenced in the SML for this participant.

The participant SML status tells you if the participant is registered in the PEPPOL SML.

PEPPOL In Gateway - Participant SML status

Figure 4.49. PEPPOL In Gateway - Participant SML status


Some actions are available depending on the participant status :

  • Prepare migration : Let you start the participant migration to another SMP than Babelway. It will generate a migration key that need to be exchange with the new SMP.

  • Migrate : If the participant is registered to another SMP in the SML, this action lets you migrate him to a Babelway SMP. The migration key received from the old SMP need to be entered.

  • Register : If the participant is not registered at all in the SML, you can register it by clicking on this action.

Registered Documents

Registered documents are UBL document type that are customized and categorized by PEPPOL business flows (i.e. : An UBL v2.1 Invoice that follows business specifications of the PEPPOL BIS 4a v2.0 ). One or more document types can be choose to configure the gateway.

PEPPOL In Gateway - Document types

Figure 4.50. PEPPOL In Gateway - Document types


Message Level Response

A Message Level Response (MLR) can be sent back to the sender of the PEPPOL message. A MLR is a business acknowledgment that tells the sender if the received message follows business rules related to the document type and business flow. You can choose the "MLR strategy" in the Gateway IN configuration.

PEPPOL Directory

Participants registered in the Babelway SMP can optionnally also be published to PEPPOL Directory.

Once your gateway is deployed, you will be able to see the defined identifiers in the PEPPOL directory ( http://directory.peppol.eu for Production, and http://test-directory.peppol.eu for Test environment).

Undeploying your gateway will delete the participants from the PEPPOL Directory.

Note that the process to add/delete participants to the PEPPOL Directory is asynchronous and might take some time until it actually shows up.

Here is the summary of gateway properties:

PEPPOL environment

Choose between the regular PEPPOL production infrastructure, connected to the SML, or the test infrastructure, connected to the SMK. The default is Production

Identifiers Values

The values identifying the PEPPOL participants. All values are mandatory.

The option 'Publish to PEPPOL directory' will only be taken into account if the PEPPOL participants is registered in the SMP of Babelway.

The 'label' of the PEPPOL participants will be used as the PEPPOL participant name in the PEPPOL directory (if the option is checked).

Registered Documents

List of documents accepted by this gateway and registered in the SMP.

Message Level Response

Using this option you can decide to send MLR directly after message reception. The options are :

  • Never send MLR MLR will never be sent automatically. The MLR is completely under the responsibility of the environment maintainer. This is the right choice if you want to generate a MLR based on the response of a back-end system or if the partner is not supporting MLR.

  • On invalid document, send MLR and stop message processing with an error MLR is sent automatically if the incoming message is not conforming to the documents customization business rules (schematron rules). In this case the MLR is return and the message is marked as 'ERROR' in Babelway. With this strategy, the 'SUCCESS' business acknowledgement flow can be based on the response of a back-end system.

  • On invalid document, send MLR and continue message processing MLR is sent automatically if the incoming message is not conforming to the documents customization business rules (schematron rules). In this case the MLR is return but the message is not marked as 'ERROR' in Babelway. With this strategy, the 'SUCCESS' business acknowledgement flow can be based on the response of a back-end system.

  • Always send MLR and stop message processing with an error MLR will always be sent back. An negative MLR is sent if the message is not conforming to the documents customization business rules (schematron rules), a positive MLR is sent otherwise. The message is put in error in case of a negative MLR.

  • Always send MLR and continue message processing MLR will always be sent back. An negative MLR is sent if the message is not conforming to the documents customization business rules (schematron rules), a positive MLR is sent otherwise. The message is not put in error in case of a negative MLR.

Participant SML status

The status of the participant in the PEPPOL SML

Access Point Key

The peppol key you received as an access point. If none is provided, the Babelway's key will be used.

SMP Key Alias

They key with which you wish to be registered as an SMP. If none is provided, your participants and documents will be registered on Babelway's SMP.

RosettaNet Gateway In

This gateway allows to receive RosettaNet complient PIP message from an other RosettaNet Server. The resulting message is the body of the Service Content section of the MIME message. Signature and Encryption are supported.

Url

URL of the RosettaNet server of the receiver.

Return receipt acknowledgment

Return the ReceiptAcknowledgment (RNIF v2.00) synchronously to the caller. If the option is not selected, the content of a valid ReceiptAcknowledgment is placed in the metadata of the message with the name 'RosettaNetReceiptIn' to be used later by the processing.

Decryption certificate

Select encryption certificate or go to certificates store.

Signature verification certificate

Select signature certificate or go to certificates store.

Note: In the "General" page for this Gateway In you can see the "Poll now" button. When clicking on this button this will poll all of the messages immediately (and will not wait for the next defined moment).

ePrior Gateway In

This Gateway allows to receive messages through ePrior requests.

The specific settings are:

Signature Verification Certificate

The X509 certificate used to verify the signature of the incomming ePrior requests.

Document Type

The document type which is accepted by the ePrior gateway.

Simpl.ePrior Gateway In

This Gateway allows to receive messages through Simpl.ePrior requests.

The specific settings are:

Signature Verification Certificate

The X509 certificate used to verify the signature of the incomming Simpl.ePrior requests.

NemHandel Gateway In

This gateway allows you to receive messages from the Danish NemHandel network.

Registration certificate

Select the certificate use to register your information into the NemHandel registry.

NemHandel environment

Choose between the regular NemHandel production infrastructure, or the test infrastructure. The default is Production

Identifiers Values

The values identifying the NemHandel participants.

Registered Documents

List of documents accepted by this gateway.

Signature certificate

Select signature certificate or go to certificates store.

Chorus Pro Gateway In

This gateway allows you to get information from the Chorus Pro platform, the french administration network.

Environment

This is the Chorus Pro environment you want to use: Production or Qualification.

Action type

This is the action you want to perform on the Chorus Pro platform. This includes :

  • invoice_status: This will fetch last 100 invoices you've submitted to the Chorus Pro platform and will create an XML document that looks like the following :

Technical API username

This is the technical username provided by chorus pro support to access the API through Babelway. More information on how to have that username can be found below.

Technical API password

This is the technical password provided by chorus pro support to access the API through Babelway. More information on how to have that password can be found below.

Cron Expression

Allows you to specify the frequency of the calls to the Chorus Pro platform with a cron expression. For easy creation of your cron expression, you can use the online cron maker tool available at: http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

XML generated for the invoice_status action type :

<?xml version="1.0" encoding="UTF-8"?>
<ChorusInvoiceStatuses>
	<ChorusInvoiceStatus>
		<ChorusInvoiceId>530273</ChorusInvoiceId>
		<InvoiceType>FACTURE</InvoiceType>
		<InvoiceNumber>BABELWAY-7657654</InvoiceNumber>
		<DepositDate>2016-12-23</DepositDate>
		<InvoiceDate>2016-08-22</InvoiceDate>
		<InvoiceStatus>MISE_A_DISPOSITION</InvoiceStatus>
		<AmountToPay>49.2</AmountToPay>
		<Devise>USD</Devise>
		<ReceiverId>25773702</ReceiverId>
		<ReceiverCode>00000000008266</ReceiverCode>
		<ReceiverIdentifierType>SIRET</ReceiverIdentifierType>
		<ReceiverName>AAA118DESTINATAIRE</ReceiverName>
	</ChorusInvoiceStatus>
...
</ChorusInvoicesStatuses>
		

Oracle Fusion Gateway In

This Gateway allows to receive messages through Oracle Fusion Collaboration Message Framework (CMK).

The specific settings are:

Authentication Method

How the inbound message is authenticated. The two methods are HTTP's Basic authentication (username/password) or WS-Security signature

Username

Login or username to access the service.

Password

Password associated with previous username.

Signature Verification Certificate

The X509 certificate used to verify the signature of the incomming Oracle Fusion requests.

ConfirmBOD success code behavior

The value to use for the ProcessingResultCode in the ConfirmBOD message on successful message reception

SOAP Url

The endpoint for the SOAP Post protocol.

Email Gateway Out

With an Email Gateway Out, outgoing messages are attached to an email and sent to a specific email address.

The specific settings are:

To Recipients

Email address to which messages will be sent (destination). You can add a comma separated list of recipients or a metadata.

Cc Recipients

Email destination CC address.You can add a comma separated list of recipients or a metadata.

Bcc Recipients

Email destination Bcc address.You can add a comma separated list of recipients or a metadata.

Sending Email Address

Email address from which messages will appear to be sent. Replies will be sent to that address.

Secure Email

If checked, the email message is signed using the transfer certificate. The sending email address should be hub-XXXXX@babelway.net where XXXXX is your account environment id.

Track email using web beacon

If checked, a web beacon (an image containing a unique link) will be in the footer of the email. When the image is loaded for the first time, it will report it as an acknowledgement of the reception of the message. The message is successful when it has been delivered to all recipients, and opened by at least one.

Subject

Email message subject.

Body type

[text/plain , text/html] default is text/plain

Email body

Email message Body.

HTML codes < and > must be escaped.

See http://www.htmlescape.net/htmlescape_tool.html for an online tool.

Send message as attachment

Should the message be sent as attachment or not.

Attachment name

Attachment file name [with extension if applicable]. If empty, we will apply the default settings.

Send message as a link

Add a download link in the message body. When the link is first clicked, it will "acknowledge" the message and mark it as successful. The link expiration period is 30 days from the moment the link is sent.

Text of message link

This is the text displayed for the download link. Default: "download message".

Attachments

Allows you to attach other files to the email. Name = filename of the attachment. Value = Pattern to match metadata containing the file to attach. If one pattern matches multiple files, it is possible to attach them all if you guarantee to generate a different filename name for each. This can be achieved by using the capturing groups of the regex in the filename. Ex: if your metadata pattern is attachment-(.*) and your filename is \1, processing with two metadata attachment-file1.csv and attachment-file2.csv will result in files file1.csv and file2.csv.

Enable DKIM authentication

Allows you to sign the outgoing message with a DKIM signature.

DKIM Domain Selector

Domain selector of the domain signing the message. This selector will be used by recipient to query DNS of giving domain.

DKIM Private Key

Private key to sign the message with.

FTP Client Gateway Out

With a Ftp Client Out Gateway, outgoing messages are transferred to an external Ftp server. You may wish to use this gateway for example to integrate with Wayfair.

The following fields should be defined in order to configure access to your external ftp server:

Server

External ftp server address where Babelway should send messages eg ftp.example.com.

Username

Login or username to access files on this external ftp server.

Password

Password associated with the username.

Passive Mode

Indicates that the ftp connection is in passive. Ticking it means the ftp client will establish 2 connections to the ftp server.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Directory

Directory where outgoing files will be stored on the server.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Filename during transfer

Prefix and suffix that will be prepended and appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is read before it is complete. However some systems do not allow to remotely rename files or directly process and delete the file triggering an ERROR in Babelway.

Protocol

Select FTP, FTPS (Explicit mode) or FTPS (Implicit mode) protocol.

Private Key

The private key associated with the username to access your account. This can be left empty if you choose to only use the password authentication mechanism.

FTP Server Gateway Out

With a Ftp Server Out Gateway, outgoing messages are available from a Babelway FTP server, where they can be fetched.

The specific settings are:

Server

Babelway ftp server is the hostname for the ftp server where the files will be made available to download.

Username

Login or username to access your account on Babelway ftp server. This username must be unique as it is linked to a specific directory on the ftp server.

Password

Password associated with the username to access your account.

Directory

The directory on the ftp server into which the outgoing files will be written.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Time out

During how much time the file will be kept available on the FTP server.

After this timeout, the file will be automatically removed from the FTP server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

After channel deployment, your ftp server will be available to receive messages. You can access this ftp server using any ftp client software set up with the previous account settings.

Note: The ports used for the FTP connections in Babelway are: (FTP, FTPs explicit : 20020-21020, FTPs implicit : 22021-23020).

SFTP Server Gateway Out

With a Sftp Server Out Gateway, outgoing messages are available from a Babelway FTP server, where they can be fetched.

The specific settings are:

Server

Babelway sftp server is the hostname for the sftp server where the files will be made available to download.

Username

Login or username to access your account on Babelway ftp server. This username must be unique as it is linked to a specific directory on the ftp server.

Password

Password associated with the username to access your account.

Public Key

The public key associated with the username. This can be left empty if you choose to only use the password authentication mechanism. The supported formats are RSA public key (OpenSSH, Putty or DER format). More information about generating such a key can be found at the end of this page.

Directory

The directory on the ftp server into which the ougoint files will be written.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Time out

During how much time the file will be kept available on the FTP server.

After this timeout, the file will be automatically removed from the FTP server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

After channel deployment, your sftp server will be available to receive messages. You can access this sftp server using any sftp client software set up with the previous account parameters.

SFTP Client Gateway Out

With a SFTP Client Out Gateway, outgoing messages are transferred to an external SFTP server.

The specific settings are:

Server

External sftp server address where Babelway will send messages.

Username

Login or username to access files on this external sftp server.

Password

Password associated with the username to access account.

Private Key

The private key associated with the previous username to access your account. This can be left empty if you choose to only use the password authentication mechanism. The supported formats are RSA private key (OpenSSH format).

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Directory

Directory where outgoing files will be stored on the server.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Filename during transfer

Prefix and suffix that will be prepended and appended to the file name when a file is being transferred. This mechanism is used to prevent that a file is read before it is complete. However some systems do not allow to remotely rename files or directly process and delete the file triggering an ERROR in Babelway.

Babelway provides a unique private key per environment named Transfer that can be used in "private Key" and then share the "public key" one with the partner, For the SFTP Client Gateway Out when using the public and private key authentication mechanism.

Below in the steps that you will follow to be able to use this certificate.

1-You do need to set the private key on Babelway and share the public one with your partner, From the GATEWAY OUT (SFTP_CLIENT) select "Transfer" from the dropdown of the Private Key.

SFTP Gateway Out

Figure 4.51. SFTP Gateway Out


2-The public key to provide to your partner can be downloaded from Channels -> Certificates -> Your certificates

Your Certificates

Figure 4.52. Your Certificates


3-By downloading the SSH version and sending it to your partner to add it into his SFTP server implemenation.

Key Certificate Detail

Figure 4.53. Key Certificate Detail


Note: Babelway By default connect to the remote SFTP server on port 22 but if you want to connect to this remote SFTP server using different port then use the below.

In the Server field add the port number you want to use it, For example if use X.X.X.X:1722 in the Server field which means connect to the remote SFTP server X.X.X.X on port 1722.

OFTP Client Gateway Out

With an OFTP Client out Gateway, outgoing messages are transferred to an external OFTP server.

The specific settings are:

Partner SSID

The OFTP ID provided by your partner.

Partner SFID

The SFID provided by your partner. If none has been provided, this is probably the same as the SSID.

Partner password

The password of your partner. Provided by your partner.

My SSID

Babelway is providing an official Odette SSID : O01770000000000X0B5SHARED. Please call support if you want to use a different one.

My SFID

An SFID is automatically assigned to your Environment : O01770000000000X0B5xxxxx where xxxxx is the ID of your Babelway environment. Please call support if you want to use a different one.

My password

The value of the password is 'BABELWAY'.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

OFTP documentation

File containing instructions and certificates for the installation. You should download it and send it to your OFTP partner.

ISDN number

List of phone numbers used for ISDN communication instead of Internet communication. The expected format is a comma separated list of phone numbers ex : 0049511211306466 or 0049511211306466,003221234567

Max nb datablocks

Advanced. Control the OFTP "maxBDataBlocks" parameter (ISDN only). Default is 7

Max size datablock

Advanced. Control the OFTP "maxBDataLen" parameter (ISDN only). Default is 1024

Server

The URL of the server of your partner. It is provided by your partner.

Port

The port to connect to. It is provided by your partner.

Use TLS

Use TLS (SSL) for communication

Secure Authentication Certificate

Use this certificate to perform client side TLS (SSL) authentication.

Skip EERP

Select this if your partner is not sending the mandatory EERP. The message will be set in SUCCESS directly after upload.

Use compression

Compresses the messages.

Secure Authentication

Use OFTP2 'Secure Authentication'. This will use the certificates defined for encryption and signature.

Sign messages

Sign outgoing messages using the key selected in "Signature certificate". This allows your partner to verify that you are the one sending the message. This option is only available with OFTP 2.0.

Signature certificate

Select signature certificate or go to certificates store. This option is only available with OFTP 2.0.

Encrypt messages

Encrypt outgoing messages using the certificate selected in "Encryption certificate". This allows your partner to be the only one able to decrypt the messages sent. This option is only available with OFTP 2.0.

Encryption certificate

Select encryption certificate or go to certificates store.

Encryption algorithm

Select encryption algorithm or go to certificates store.

Receive signed messages

This allows you to verify that your partner is the one sending the message using the certificate selected in "Signature verification certificate". This option is only available with OFTP 2.0.

Signature verification certificate

Select certificate for data or go to certificates store.

Request signed ack (EERP)

Requests that incoming acknowledgments are signed. The signature will be verified using the Certificate selected in "EERP verification certificate". This allows you to be sure that only the partner could have signed the incoming messages. This option is only available with OFTP 2.0.

EERP verification certificate

Select certificate for EERP or go to certificates store.

Transfer mode

Advanced. Once the connection is open, the OFTP gateway will act as both sender and receiver by default. You can control this by setting the following values : BOTH / RECEIVER_ONLY / SENDER_ONLY

Version

Advanced. Babelway is supporting both OFTP1 and OFTP2. When a connection is open, Babelway is using the OFTP built-in mechanism to negotiate the protocol version. The protocol will be the highest possible. Valid values are : OFTP_V12 for version 1.2 / OFTP_V13 for version 1.3 / OFTP_V14 for version 1.4 / OFTP_V20 for version 2.0

File format

Advanced. Babelway is supporting all types of records. Valid values are : FIXED / TEXTFILE / UNSTRUCTURED / VARIABLE. Default is UNSTRUCTURED

Record max size

Advanced. You can specify the record size (only used for FIXED and VARIABLE)

Credit Count

Advanced. Control the OFTP "creditCount" parameter. This is the number of data command ( = CREDIT) that could be exchanged prior to an OFTP confirmation from the partner. Default is 64

Data exchange buffer size

Advanced. Control the OFTP "dataExchangeBufferSize" parameter. This is the size of the OFTP data buffer. It should be smaller than the maxBDataLen for ISDN connection. The minimum is 128 bytes and the maximum is 4096 for ISDN and 65535 for TCP connections. Default is 1024

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

After channel deployment, your Oftp server will be available to send messages. You can access this oftp server using any Oftp client software set up with the previous account settings.

After channel deployment, your Oftp server will be available to send messages. You can access this oftp server using any Oftp client software set up with the previous account settings.

If you require a custom SSID / SFID / PASSWORD, please send a request to support@babelway.com .

When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server.

Note: When sending the message through this "Gateway Out" and the message fell in error "Unable to establish TLS connection to remote OFTP server for SSID XXXXXXXXXXX due to : General SSLEngine problem", This error means that there is a problem occurred while building SSL connection with the remote server, In order to fix this issue we will need to trust the self-signed SSL certificate used in the remote server by following the below steps.

1-From the "certificates" page in the "Trusted certificates" tab click on the "Trust new certificate" button.

Provide the sever IP and Port or URL and Port in the "Trusted Url" field then click on the "Trust root certificate", as shown below.

Lookup table detail - duplicate table

Figure 4.54. Lookup table detail - duplicate table


After that done forget to deploy the environment in order to push this changes to production, Then the messages should be processed successfully.

OFTP Server Gateway Out

With an OFtp server Gateway out, outgoing messages are available from a Babelway OFTP server.

The specific settings are:

Partner SSID

The OFTP ID provided by your partner.

Partner SFID

The SFID provided by your partner. If none has been provided, this is probably the same as the SSID.

Partner password

The password of your partner. Provided by your partner.

My SSID

Babelway is providing an official Odette SSID : O01770000000000X0B5SHARED. Please call support if you want to use a different one.

My SFID

An SFID is automatically assigned to your Environment : O01770000000000X0B5xxxxxx where xxxxx is the ID of your Babelway environment.. Please call support if you want to use a different one.

My password

The value of the password is 'BABELWAY'.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

OFTP documentation

File containing instructions and certificates for the installation. You should download it and send it to your OFTP partner.

Skip EERP

Select this if your partner is not sending the mandatory EERP. The message will be set in SUCCESS directly after upload.

Use compression

Compresses the messages.

Secure Authentication

Use OFTP2 'Secure Authentication'. This will use the certificates defined for encryption and signature.

Sign messages

Sign outgoing messages using the key selected in "Signature certificate". This allows your partner to verify that you are the one sending the message. This option is only available with OFTP 2.0.

Signature certificate

Select signature certificate or go to certificates store. This option is only available with OFTP 2.0.

Encrypt messages

Encrypt outgoing messages using the certificate selected in "Encryption certificate". This allows your partner to be the only one able to decrypt the messages sent. This option is only available with OFTP 2.0.

Encryption certificate

Select encryption certificate or go to certificates store.

Encryption algorithm

Select encryption algorithm or go to certificates store.

Receive signed messages

This allows you to verify that your partner is the one sending the message using the certificate selected in "Signature verification certificate". This option is only available with OFTP 2.0.

Signature verification certificate

Select certificate for data or go to certificates store.

Request signed ack (EERP)

Requests that incoming acknowledgments are signed. The signature will be verified using the Certificate selected in "EERP verification certificate". This allows you to be sure that only the partner could have signed the incoming messages. This option is only available with OFTP 2.0.

EERP verification certificate

Select certificate for EERP or go to certificates store.

Transfer mode

Advanced. Once the connection is open, the OFTP gateway will act as both sender and receiver by default. You can control this by setting the following values : BOTH / RECEIVER_ONLY / SENDER_ONLY

Version

Advanced. Babelway is supporting both OFTP1 and OFTP2. When a connection is open, Babelway is using the OFTP built-in mechanism to negotiate the protocol version. The protocol will be the highest possible. Valid values are : OFTP_V12 for version 1.2 / OFTP_V13 for version 1.3 / OFTP_V14 for version 1.4 / OFTP_V20 for version 2.0

File format

Advanced. Babelway is supporting all types of records. Valid values are : FIXED / TEXTFILE / UNSTRUCTURED / VARIABLE. Default is UNSTRUCTURED

Record max size

Advanced. You can specify the record size (only used for FIXED and VARIABLE)

Credit Count

Advanced. Control the OFTP "creditCount" parameter. This is the number of data command ( = CREDIT) that could be exchanged prior to an OFTP confirmation from the partner. Default is 64

Data exchange buffer size

Advanced. Control the OFTP "dataExchangeBufferSize" parameter. This is the size of the OFTP data buffer. It should be smaller than the maxBDataLen for ISDN connection. The minimum is 128 bytes and the maximum is 4096 for ISDN and 65535 for TCP connections. Default is 1024

Time out

During how much time the file will be kept available on the OFTP server.

After this timeout, the file will be automatically removed from the OFTP server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

After channel deployment, your Oftp server will be available to send messages. You can access this oftp server using any Oftp client software set up with the previous account settings.

If you require a custom SSID / SFID / PASSWORD, please send a request to support@babelway.com .

When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server.

AS2 Gateway Out

With an AS2 Gateway, outgoing messages are transmitted using an AS2 connection. Common trading partners using AS2 include Walmart, Amazon and Wayfair.

AS2 (Applicability Statement 2) is a specification about how to transport data securely and reliably over the Internet. Security is achieved by using digital certificates and encryption.

The following fields should be defined in order to configure your AS2 access:

From

Babelway source server.

To

AS2 ID of the server that receives outgoing messages. Provided by your partner.

type

MIME/TYPE used to transfer the AS2 message to your partner. Possible values are :

"edi", for the content type "application/EDIFACT".

"x12", for the content type "application/EDI-X12".

"eco", for the content type "application/edi-consent".

"xml", for the content type "application/XML".

"bin", for the content type "application/ octet-stream".

DEFAULT is "bin".

Attachment name

Name of the file sent by AS2. This is an extension to the base AS2 specification and might not be supported by all partners. By default no file name is sent.

Recipient address

The endpoint URL of the receiving gateway ,requires protocol prefix in URL (http:// or https://).

AS2 documentation

File containing instructions and certificates for the installation. You should download it and send it to your AS2 partner.

Compress message

Should the message be compressed or not?

Encrypt message

Should the message be encrypted or not?

Certificate for encryption

Certificate used for message encryption. Provided by your partner.

Encryption algorithm

Select algorithm used for encrypting message, if any.

Sign message

Should the message be signed or not?

Certificate for signature

Local certificate to use for signing AS2 messages. The certificates are kept in the environment certificates store.

Signing algorithm

Select algorithm used for signing the AS2 message. DEFAULT is SHA-1.

Request receipt

Should a receipt be sent when a request is received or not.

Asynchronous receipt

Should the receipt be sent asynchronously or not.

Signed receipt

Should the receipt be signed or not.

MIC algorithm

Select Message Integrity Code algorithm used to compute the MDN of the message. DEFAULT is SHA-1.

Message signature enforced

Should message signature be enforced or not. This parameter only applies if no AS2 IN gateway is configured for this partner (same AS2 FROM and AS2 TO).

Certificate for verification

Certificate used for message verification. Provided by your partner. This parameter only applies if no AS2 IN gateway is configured for this partner (same AS2 FROM and AS2 TO).

Maximum retries

Maximum number of retries if message sending failed. Default is 8 times.

Retry interval

Interval of time before trying to send message again (in seconds). Default is 1800 (30 minutes).

To report AS2 parameters to the other party, dowload the AS2 documentation ZIP file. This file can be sent to the other party to give them all parameters they will require to establish a communication with your channel.

Tip

Walmart requires their suppliers to use AS2 to connect with them: learn more.

Note: The Listening ports for the AS2 Gateway are:

  • When using the HTTPS protocol the Listening port is 443.

  • When using the HTTP protocol the Listening port is 80.

Http Client Gateway Out

With an HttpClientOut Gateway, outgoing messages are sent using a Http connection.

All the user defined metadatas defined in the messages are passed in the context of the new message.

The specific settings are:

Url

External service address.

Support HTTP and HTTPS protocols.

Username

Login or username to access the service.

Password

Password associated with the username.

Connected gateway

Select zero, one or several gateways to receive the response from the http server.

Valid HTTP return code

Comma separated list of expected return Http code which evaluates the response HTTP code in the header. If the return code is not in the list, the message is set in error. The default is '200,201,202,204,205'.

Success expression

The success expression is a regex that evaluates the HTTP response body. If the response doesn't match the success expression, the message is flagged with 'error' status.

Response filename

You can specify a filename that will be associated with the server response. Default is 'attachment'.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the response message created in the connected gateways.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Timeout

Timeout for connection in milliseconds. Must be between 10000 and 240000.

Http Method

You can specify the http method to call. 'Form Posting' is emulating a browser Form Post using mime multipart. The default is POST.

TLS version

You can specify the version of the TLS protocol. TLS is the replacement of SSL. The default is TLSv1.2.

Message parameter name

Name given to the parameter containing the actual message. This is also equivalent to the FORM parameter when a POST if done from a web browser.

Extra parameters

Extra parameters to inlude in the message. Name is the parameter name (FORM parameter) and the value is the name of a metadata containg the parameter content. In case of a binary content, the name of the metadata will also be used as the 'filename' of the parameter.

Http headers

You can add specific http header. This accepts metadata.

Trust level

The trust level defines the level of security used in the SSL handshake. Relax = No certificate verification, Standard = trusting certificates in environment certificates as well as known CA's, Paranoiac = only trusts certificates defined in the environmnent certificates. Mutual = requires 2-way authentication.

Authentication method

You can select from FORM, BASIC, DIGEST, NTLM, CERT, OAUTH1, OAUTH2, ANY or TOKEN. CERT is 2-way SSL authentication. ANY is BASIC, DIGEST or NTLM depending on the server response.

Preemptive authentication

Allows to send authentication information with the first http request (to avoid making a second request). Only for BASIC or DIGEST authentication.

Login url

If authentication method is FORM.

Authentication form fields

When using FORM authentication, you can add specific authentication form fields to the authentication call. This accepts metadata.

Metadata from response

You can use data receive by the login request as metadata, which can be used in the data sending after login.

2-way auth. certificate

If CERT authentication is used (2-way SSL authentication), this allows to select the key pair to use from the environment certificate.

Oauth bearer

If OAUTH2 authentication is used, this allows select the OAUTH bearer token to use.

Oauth signature method

If OAUTH1 authentication is used, this allows select the signature algorithm to use. Note that if SHA1withRSA is used, a Key alias must be selected.

Oauth consumer key

If OAUTH1 authentication is used, this allows defined the consumer key. This is mandatory.

Oauth consumer secret

If OAUTH1 authentication is used, this allows defined the consumer secret. This is optional.

Oauth token

If OAUTH1 authentication is used, this allows defined the token. At this version of Babelway this is mandatory, please contact support if you need to retreive the token from an OAUth handsake.

Oauth token secret

If OAUTH1 authentication is used, this allows defined the token secret. This is optional.

Oauth RSA key

If OAUTH1 authentication is used with SHA1withRSA, this allows to select the key signing the OAUTH authentication.

After channel deployment, your connection will be available to send messages.

Note: The sent HTTP request has a default content type of "text/html" and if you need to change it based in the output message, you can add the desired Content-Type in the headers section under the properties of the HTTP Client Gateway OUT as seen below:

1- Click on the properties of the HTTP Client Gateway OUT as seen below:

Go to the Properties of the HTTP Client Gateway OUT

Figure 4.55. Go to the Properties of the HTTP Client Gateway OUT


2- Add the desired Content-Type in the headers section (fo example "application/json") as seen below:

Add the desired Content-Type

Figure 4.56. Add the desired Content-Type


SOAP Client Gateway Out

With an SoapClientOut Gateway, outgoing messages are sent using a SOAP call.

All the user defined metadatas defined in the messages are passed in the context of the new message.

The specific settings are:

Url

External service address.

Username

Login or username to access the service.

Password

Password associated with the username.

Connected gateway

Select zero, one or several gateways to receive the response from the http server.

SoapFault strategy

If an error occurs during processing, the response to a SOAP message is a SOAP fault element in the body of the message, and the fault is returned to the sender of the SOAP message.

Standard Soap protocol suggests that they should be sent with a 500 HTTP error code, but some systems still send it with a HTTP 200 ok return code.

Choose here how you want to handle your Soap Fault messages:

1) You can treat them as normal messages and therefore, no special rules applies. If they arrive with a HTTP 500 error code, you should add 500 in the list of valid return code. Otherwise, they will end up in error, as normal messages.

2) You can always treat them as Error. Even if we receive them via a valid HTTP response code, the message will be put in error.

3) You can always treat them as Successful messages. Even if we receive them via a invalid HTTP return code, the message will be put in success and possibly transferred to a connected gateway.

Valid HTTP return code

Comma separated list of expected return Http code. If the return code is not in the list, the message is set in error. The default is '200,201,202,204,205'.

Success expression

The success expression is a regex. If the response doesn't match the success expression, the message is flagged with 'error' status.

Response filename

You can specify a filename that will be associated with the server response. Default is 'attachment'.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the response message created in the connected gateways.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Http Method

You can specify the http method to call. The default is POST.

Timeout

Timeout for connection in milliseconds. Must be between 10000 and 240000.

Http headers

You can add specific http header. This accepts metadata.

SOAPAction http header

Value of the SOAPAction http header.

SOAP Attachments

Allows to specify one or more soap attachments, based on SOAP with Attachments (SwA) using MIME. Name will be sent as 'ContentId' of the mime part of the attachment and Value must contain the name of the metadata containing the String or byte array body of the attachment.

Trust level

The trust level defines the level of security used in the SSL handshake. Relax = No certificate verification, Standard = trusting certificates in environment certificates as well as known CA's, Paranoiac = only trusts certificates defined in the environmnent certificates. Mutual = requires 2-way authentication.

Authentication method

You can select from FORM, BASIC, DIGEST, CERT or ANY. CERT is 2-way SSL authentication. ANY is BASIC, DIGEST or NTLM depending on the server response.

Preemptive authentication

Allows to send authentication information with the first http request (to avoid making a second request). Only for BASIC or DIGEST authentication.

Login url

If authentication method is FORM.

Authentication form fields

When using FORM authentication, you can add specific authentication form fields to the authentication call. This accepts metadata.

2-way auth. certificate

If CERT authentication is used (2-way SSL authentication), this allows to select the key pair to use from the environment certificate.

Soap headers

You can add specific soap header. This accepts metadata.

Soap version

Defined the standard version of the remote SOAP service.

Ws-Security profile

Ws-Security profile defines the type of security required to call the SOAP service.

Ws-Security Username

Ws-Security username is used in the username/token digest profile.

Ws-Security token

Ws-Security token is used in the username/token digest profile.

Ws-Security signing key

Ws-Security username is used in the X.509 signing profiles.

Ws-Security encryption certificate

Ws-Security username is used in the X.509 encryption profiles.

After channel deployment, your connection will be available to send messages.

Oracle Fusion Gateway Out

With an Oracle Fusion Out Gateway, outgoing messages are sent to a Oracle Fusion CMK endpoint using a SOAP call.

All the user defined metadatas defined in the messages are passed in the context of the new message.

The specific settings are:

Url

External service address.

Username

Login or username to access the service.

Password

Password associated with the username.

Connected gateway

Select zero, one or several gateways to receive the response from the http server.

SoapFault strategy

If an error occurs during processing, the response to a SOAP message is a SOAP fault element in the body of the message, and the fault is returned to the sender of the SOAP message.

Standard Soap protocol suggests that they should be sent with a 500 HTTP error code, but some systems still send it with a HTTP 200 ok return code.

Choose here how you want to handle your Soap Fault messages:

1) You can treat them as normal messages and therefore, no special rules applies. If they arrive with a HTTP 500 error code, you should add 500 in the list of valid return code. Otherwise, they will end up in error, as normal messages.

2) You can always treat them as Error. Even if we receive them via a valid HTTP response code, the message will be put in error.

3) You can always treat them as Successful messages. Even if we receive them via a invalid HTTP return code, the message will be put in success and possibly transferred to a connected gateway.

Valid HTTP return code

Comma separated list of expected return Http code. If the return code is not in the list, the message is set in error. The default is '200,201,202,204,205'.

Success expression

The success expression is a regex. If the response doesn't match the success expression, the message is flagged with 'error' status.

Response filename

You can specify a filename that will be associated with the server response. Default is 'attachment'.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the response message created in the connected gateways.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Http Method

You can specify the http method to call. The default is POST.

Timeout

Timeout for connection in milliseconds. Must be between 10000 and 240000.

Http headers

You can add specific http header. This accepts metadata.

SOAPAction http header

Value of the SOAPAction http header.

SOAP Attachments

Allows to specify one or more soap attachments, based on SOAP with Attachments (SwA) using MIME. Name will be sent as 'ContentId' of the mime part of the attachment and Value must contain the name of the metadata containing the String or byte array body of the attachment.

Trust level

The trust level defines the level of security used in the SSL handshake. Relax = No certificate verification, Standard = trusting certificates in environment certificates as well as known CA's, Paranoiac = only trusts certificates defined in the environmnent certificates. Mutual = requires 2-way authentication.

Authentication method

You can select from FORM, BASIC, DIGEST, CERT or ANY. CERT is 2-way SSL authentication. ANY is BASIC, DIGEST or NTLM depending on the server response.

Preemptive authentication

Allows to send authentication information with the first http request (to avoid making a second request). Only for BASIC or DIGEST authentication.

Login url

If authentication method is FORM.

Authentication form fields

When using FORM authentication, you can add specific authentication form fields to the authentication call. This accepts metadata.

2-way auth. certificate

If CERT authentication is used (2-way SSL authentication), this allows to select the key pair to use from the environment certificate.

Soap headers

You can add specific soap header. This accepts metadata.

Soap version

Defined the standard version of the remote SOAP service.

Ws-Security profile

Ws-Security profile defines the type of security required to call the SOAP service.

Ws-Security Username

Ws-Security username is used in the username/token digest profile.

Ws-Security token

Ws-Security token is used in the username/token digest profile.

Ws-Security signing key

Ws-Security username is used in the X.509 signing profiles.

Ws-Security encryption certificate

Ws-Security username is used in the X.509 encryption profiles.

After channel deployment, your connection will be available to send messages.

ePrior Gateway Out

With ePrior Out Gateway, outgoing messages are made available on Babelway ePrior server.

The specific settings are:

Signature Verification Certificate

The X509 certificate used to verify the signature of the incomming ePrior requests.

Consumer Identifier

The identification of the consumer from which the ePrior request comes from.

Receiver Identifier

The identification of the party to which the ePrior document is sent.

Sender Identifier

The identification of the party from which the ePrior document is sent.

Document Type

The type of the ePrior document.

Document Identifier

The identification of the ePrior document.

Time out

During how much time the file will be kept available on the ePrior server.

After this timeout, the file will be automatically removed from the ePrior server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

Simpl.ePrior Gateway Out

With Simpl.ePrior Out Gateway, outgoing messages are made available on Babelway Simpl.ePrior server.

The specific settings are:

Signature Verification Certificate

The X509 certificate used to verify the signature of the incomming Simpl.ePrior requests.

Consumer Identifier

The identification of the consumer from which the Simpl.ePrior request comes from.

Receiver Identifier

The identification of the party to which the Simpl.ePrior document is sent.

Sender Identifier

The identification of the party from which the Simpl.ePrior document is sent.

Document Type

The type of the Simpl.ePrior document.

Document Identifier

The identification of the Simpl.ePrior document.

Time out

During how much time the file will be kept available on the Simpl.ePrior server.

After this timeout, the file will be automatically removed from the Simpl.ePrior server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

Http Gateway Out

With a HTTP out Gateway, outgoing messages are available from a Babelway HTTP server.

The specific settings are:

Username

Login or username to access the service .

Password

Password associated with the username.

SOAP HTTP(S) Url

using the SOAP Post protocol. WSDL

Support HTTP and HTTPS protocols.

Content encoding

How to encode the content

Time out

During how much time the file will be kept available on the HTTP server.

After this timeout, the file will be automatically removed from the HTTP server (it you did not do it before). If the file was never downloaded, the file will also be marked in ERROR, because it has not reached its destination.

To be warned the soonest possible of errors, we recommend that you set here the lowest possible value. Example : if an automatic process polls the files from here every hour, a value of "3 hours" will allow you to be notified of the problem after just 2 or 3 failed/missing pollings, while a value of "30 days" would lead to files leaving there, without any automatic notification, until some user worries about lack of files.

After channel deployment, your connection will be available to send messages.

Note:

1- The HTTP server Gateway uses the port 80 for HTTP and 443 for HTTPS.

2- You will need to download the WSDL file for this gateway by using the SOAP URL in the browser then login using the user name and password for this gateway in order to download the WSDL file for this environment as for some environments the SOAP URL and the WSDL file are different from other environments.

X.400 Gateway Out

The X.400 out Gateway allows to send the message on the X.400 network to the address of your trading partner.

X.400 Address

The account private address. This is the address to communicate to your trading partner. The formatting may vary from one partner to the other. The most common formats are: C=WW; A=400NET; P=BABELWAY; S=HUB-25333 /C=WW/A=400NET/P=BABELWAY/S=HUB-25333.

Partner Manual Address

You can choose to enter the full address in the "manual address field" or each address component in the corresponding field.

Partner Country

Country = C value

Partner ADMD

Partner Administration Management Domain Name = A value

Partner PRMD

Partner Private Management Domain Name = P value

Partner Organization

Partner Organization = O value

Partner OU1

Partner Organizational Unit 1

Partner Given Name

Partner Given Name

Partner Initial

Partner Initial

Partner Surname

Partner Surname = S value

Partner Generation

Partner Generation Qualifier

Request receipt

Request a X.400 message delivery notification

Send as binary

Send the X.400 message as binary (using bilaterally-defined body part)

Internal Gateway Out

The internal gateway in / out are used to transfer messages between 2 channels within the same Babelway environment.

All the user defined metadatas defined in the messages are passed in the context of the new message.

The specific settings are:

Connected Gateways

Select the internal gateways In that will receive the message. You can select multiple gateway in. A copy of the message will be sent to each of them.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Response Filename

Filename of the Response message.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

As opposed to most other gateways, the internal gateway is immediately available as gateway out for other channels configuration without requiring a channel deployment.

Null Gateway Out

The null gateway can be used for test and development purposes. The outgoing message will not be sent anywhere and remain in Babelway.

Outgoing messages will not be forwarded but they are nevertheless created and readable through the Messages interface. You may use this gateway for testing your messages before going to production or for preventing a channel to send messages before deployment.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Splitter Gateway Out

The splitter gateway OUT enables to split a message into multiple messages. The splitter can split according to RegEx, XPath, Edifact or X12 expressions. The resulting messages are forwarded to one or more channels in the same environment.

The specific settings are:

Connected gateways

Select the internal gateways In that will receive the split messages. You can select multiple gateway in. A copy of the message will be sent to each of them.

Split type

The split type determines how the file will be analyzed (text, xml, edifact) to split it in parts.

Message Delay

Introduces a delay (in seconds, up to maximum 300 seconds) before it sends out each message. For example, if the delay is set to 30 and the split generates 4 messages, each message will be sent 30 seconds appart with the last message dispatched 1.5 minutes after the split.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

Filename

Filename of the parent message [with extension if applicable]. If empty, we will apply the default settings.

Response filename

Filename of the split message.

Header expression

Regex expression to create a header added to each split message

Regular expression

RegEx expression to select the content of the split message.

[\n](?=EE)

which means split when seeing line return and then EE

Lines

Split the message every so many lines

Xpath expression

XPath to select the content of the split message.

Footer expression

Regex expression to create a footer added to each split message

Keep xml parents

Keep the parent node of the split xml. Only valid with XPath splitting.

Omit xml declaration

Skip the xml declaration in the split xml. Only valid with XPath splitting.

Input charset

Charset to use to decode file waiting to be split.

Output charset

Charset to use to encode the file resulting of the splitting.

Aggregator Gateway Out

The aggregator gateway OUT enables to aggregate messages into one single file. The aggregator can append the messages, use an xslt to merge xml documents or merge Edifact or X12 documents. The resulting message is forwarded to one or more channels in the same environment.

All the user defined metadata in the first of the aggregated messages are passed in the context of the aggregated message.

The specific settings are:

Send aggregate to gateway(s)

The internal gateway where to send the aggregated message. You can select multiple gateways in. A copy of the message will be sent to each of them.

Aggregation type

Select 'append' for simple append. Use header, separator and footer to control the aggregation. Select 'xml' to create an aggregation of xml document. Optionally an xslt can be applied to the result. Select 'edifact' or 'x12' to merge edi documents; the envelope of the first document will be used. Select 'zip' to wrap messages in a single zip file. Select 'tar' to wrap messages in a single tar file.

Group by metadata

Optional. Enables to generate different aggregated files grouping incoming messages based on the value of a metadata. Example: 3 messages arrive with value A, B and A in the selected metadata. The aggregator will generate 1 file with the 2 messages with value A and 1 file with 1 message with the value B.

Maximum file size (MB)

Optional. By default, Babelway will put the message in error if it exceeds the maximum size allowed by the system (check documentation on allowed file sizes). If you specify a value, when the number of MB of the generated file reaches that value, Babelway will generate a message with the current values and start again with another file until all messages are processed.

Max file size naming strategy

Specifies how you want Babelway to differentiate files when split by the "Max file size" parameter. Either alphabetical append (alpha: filename, filename-a, filename-b, ...) or numeric append (numeric: filename, filename-1, filename-2, ...).

Frequency

Frequency in seconds. Default is 300 (5 minutes).

Cron expression

Cron expression. Allows you to define complex time expressions like every weekday night at 23:00 (0 23 ? * MON-FRI). This takes precedence on the frequency property. For easy creation of your cron expression, you can use the online cron maker tool available at: http://www.cronmaker.com/. For more information, please refer to the following page: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

Input filename

Filename of the message OUT of the channel that serves as input to the aggregator. If empty, we will apply the default settings.

Output filename

Filename of the aggregated file, by default the file name is set to 'aggregate'. Tip: You can use: {com_babelway_messaging_context_aggregator_groupBy} to include the name of the group by in the file name, or any user defined metadata defined in the first of the aggregated messages.

Minimum idle time

If you specify a time (in seconds), the aggregation will wait that time after the reception of a new incoming message, even if it conflicts with its scheduled run. This allows, for example, ensuring all messages from a batch are included in a single aggregation.

Header

For 'append' type: prefix to add at the beginning of the file. For 'xslt' type: name for the root of the resulting message. Default='messages'

Separator

For 'append' type: message separator. For 'xslt' type: name for the element surrounding each message. Default='message'

Footer

Suffix to add at the beginning of the file.

Xslt

Xslt to execute on the resulting Xml.

Edifact skip UNA

Check this to skip the UNA section in EDIFACT and Odette messages.

Edifact control

Define a custom XPATH expression used to compute the edifact control field. If left empty, the control of the first message will be used.

Input charset

Charset to use to decode the file waiting to be aggregated. Default is UTF8.

Output charset

Charset to use to encode the file resulting of the aggregation. Default is UTF8.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

NFS Gateway Out

The NFS gateway is used to connect and push files to a remote NFS server.

Server

Hostname of the NFS server.

Export

Name of the exported volume.

Login method

NFS login method: use PCNFSD for username / password and UGID to directly use UID, GID and GIDS

Username

Username used for the NFS authentication. Only used with PCNFSD login method.

Password

Password used for the NFS authentication. Only used with PCNFSD login method.

User uid

Unix user UID to use during authentication. Only used with UGID login method.

User group gid

Unix user's group GID to use during authentication. Only used with UGID login method.

User extra group ids

Unix user's additional groups GID to use during authentication, encoded as a comma separated list. Only used with UGID login method.

Directory

Local NFS path to the folder you want to use. This is relative to the export.

Lookup Table Gateway Out

The lookup table gateway is used to fill a lookup table automatically from a message. See also Automatic Population of Lookup table using Channel for information about importing data from a channel.

Lookup Table Id

The technical id of the lookup table.

Append

Check this if you need to append the records contained in the messages going through this channel. Otherwise, the entire table will be replaced by the new values.

Criteria

If filled, only the values that match this criterion will be deleted or inserted in the target lookup table. The name must be the name of the column that must match. The value is the value that this column must have to be replaced.

SAP Gateway Out

With a SAP Out Gateway, outgoing messages are pushed from Babelway to a SAP server.

The specific settings are:

SAP client

SAP client to use. This is the three digit number you use in the first field of the login screen of SAP Gui. It has the name 'Client' and is just above the user and password fields. For instance: 001, 210, 400 ...

User

The Valid SAP user ID you want to use. Ideally this should be a user specially created for this purpose. For instance: user

Password

Password associated with the user ID. For instance: password

Server address

IP or DNS name for SAP application server. For instance: sap.yourcompany.com

SAP system number

SAP system number is the last 2 digits of the SAP client. For instance: 01, 10, 00. Default is the last 2 digits of SAP client parameter

Dropbox Gateway Out

The Dropbox gateway out allows you to upload your messages into a Dropbox account.

The specific settings are:

Dropbox account

The name of the Dropbox account to which the messages will be sent. This information is "read only", and set by the wizard when you allow Babelway to access the Dropbox account.

Folder

The folder in your Dropbox account in which the messages will be placed. This folder will appear under the path /Apps/Babelway/ .

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Exact Postbox Gateway Out

The Exact gateway allows to send messages to Exact Postbox users. This gateway must be used with the Exact wizard and the message delivery is based solely on the content of the message sent.

Tradeshift Gateway Out

This gateway allows you to send files directly to an account on Tradeshift.

API Prefix

URL Prefix to call Tradeshift API. Default is https://api.tradeshift.com/tradeshift/rest/

Connection type

Choose 'Tenant' to connect to your own Tradeshift account and send the document from there. Choose 'Van' if you don't have a Tradeshift account and you need to dispatch the document to the account of someone else.

Tenant Id

The Tradeshift tenantId to use. Use Babelway application in Tradeshift to retrieve this value.

Token

The Tradeshift token to use. Use Babelway application in Tradeshift to retrieve this value.

Secret

The Tradeshift token secret to use. Use Babelway application in Tradeshift to retrieve this value.

Consumer key

The Tradeshift consumer key to use to authenticate the Babelway application. This should be left empty in most of the case.

Consumer secret

The Tradeshift consumer secret to use to authenticate the Babelway application. This should be left empty in most of the case.

Retry on http return code

Comma separated list of error Http return code that should be retried. If the return code is not in the list, the message is set in error. The default is '502,503,504'.

Retry on patterns

Optional. If the HTTP response is success (HTTP code 2xx) and if the HTTP response matches one of the pattern(s) (regular expressions), the message will be retried.

API suffix

The Tradeshift API to call. Do not include the URL prefix.

Http Method

You can specify the http method to call. The default is PUT.

Request content type

The content type of the generic api request. The default is text/xml.

Response content type

The content type of the generic api response. The default is text/xml.

Connected gateway

Select zero, one or several gateways to receive the response from the Tradeshift API.

Document Profile

The Tradeshift document profile.

Van

The van id used by Tradeshift to find the business partner.

Country

The country used by Tradeshift to find the business partner.

Company Name

The company name used by Tradeshift to find the business partner.

Email

The email address used by Tradeshift to find the business partner.

Identifier Scheme

The identifier scheme used by Tradeshift to find the business partner.

Identifier Value

The identifier value of the scheme used by Tradeshift to find the business partner.

Additional query parameters

Key value pairs which will be added to the request.

Additional properties

Additional properties that can be set on the Tradeshift document.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Connected Gateways

Select zero, one or several gateways to receive the response from the server.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

Lookup Table Id

The technical id of the lookup table.

Amazon Marketplace Gateway Out

This gateway allows to send 'Feeds' to an account on Amazon Marketplace.

Process

Request support@babelway.com for changing this parameter. Type of process. 'Feed' is the only one supported at this stage.

Endpoint

Request support@babelway.com for changing this parameter. Endpoint is the entry point for an Amazon marketplace web service. Default is https://mws.amazonservices.com

Access key

Amazon marketplace web services access key ID.

Secret key

Amazon marketplace web services secret key ID.

Seller Id

Amazon marketplace seller ID.

Marketplace Id

Amazon marketplace ID.

Feed type

Feed type see MWS doc.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Note: This Gateway Out only sends Price and Inventory and Product messages to Amazon Marketplace.

The below link has the complete list for all of the available FeedType in the Amazon MWS Feeds API section.

https://docs.developer.amazonservices.com/en_US/feeds/Feeds_FeedType.html

Billtrust Gateway Out

With an BilltrustOut Gateway, outgoing messages are sent to Billtrust API.

All the user defined metadata defined in the messages are passed in the context of the new message.

The specific settings are:

Url

External service address.

Login url

URL used to get OAUTH2 token.

Username

Login or username to access the service.

Password

Password associated with the username.

Connected gateway

Select zero, one or several gateways to receive the response from the http server.

Valid HTTP return code

Comma separated list of expected return Http code. If the return code is not in the list, the message is set in error. The default is '200,201,202,204,205'.

Success expression

The success expression is a regex. If the response doesn't match the success expression, the message is flagged with 'error' status.

Response filename

You can specify a filename that will be associated with the server response. Default is 'attachment'.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the response message created in the connected gateways.

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

Timeout

Timeout for connection in milliseconds. Must be between 10000 and 240000.

Http Method

You can specify the http method to call. The default is POST.

Http headers

You can add specific http header. This accepts metadata.

Trust level

The trust level defines the level of security used in the SSL handshake. Relax = No certificate verification, Standard = trusting certificates in environment certificates as well as known CA's, Paranoiac = only trusts certificates defined in the environmnent certificates. Mutual = requires 2-way authentication.

After channel deployment, your connection will be available to send messages.

VAN Gateway Out

This gateway allows to send files directly a Trading Partner’s VAN via the ECGrid VAN. A Trading Partner is the company whom you are going to send documents. It can be useful to integrate with Rite Aid or Wayfair for example.

The VAN gateway routes the message to its destination based on the Identifier / Qualifier pair as determined in the X12 or Edifact data. They look like this:

X12: ISA*00* *00* *ZZ*SENDERID *ZZ*RECEIVERID *010101*0101*U*00401*000000001*0*T*!

EDIFACT: UNB+UNOA:1+SENDERID:ZZ+RECEIVERID:ZZ+

For the VAN Out Gateway, your ID Is the Sender ID. Your Trading Partner ID is the Receiver ID.

When sending a message through the gateway, two things may occur:

1. The Receiver ID is known in the VAN database. If this is the case, your message will transmit properly to your receiver. The message will be successful.

2. The Receiver ID is unknown in the VAN database. The message will be a failure. If this is the case, a new Trading Partner request must be sent. To do so, send the following to support@babelway.com

  • Subject: New Trading Partner Request

  • Trading Partner Name

  • Trading Partner Qualifier / ID Pair

  • Trading Partner VAN name

Setup usually takes 5 business days depending on the receiver’s VAN. Babelway will confirm with you when the setup is complete.

Once this is complete, you may begin using the channel to send to your trading partner.

The specific settings are:

Filename

Filename of the outgoing message [with extension if applicable]. If empty, we will apply the default settings.

PEPPOL Gateway Out

This gateway allows you to send files to the PEPPOL network.

More information about PEPPOL in Gateway IN section

PEPPOL environment

Choose between the regular PEPPOL production infrastructure, connected to the SML, or the test infrastructure, connected to the SMK. The default is Production

Access Point Key

The peppol key you received as an access point. If none is provided, Babelway's key will be used.

Attachment Name

Name of the file sent by AS2. This is an extension to the base AS2 specification and might not be supported by all partners. By default no file name is sent.

Retry Strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Note: In order to change the PEPPOL environment to Production or Test regarding the "Gateway Out" then from "Gateway Out" properties select Production or Test from "PEPPOL environment" field, as shown below.

Select PEPPOL environment Production or Test

Figure 4.57. Select PEPPOL environment Production or Test


RosettaNet Gateway Out

This gateway allows you to send RosettaNet complient PIP message to another RosettaNet Server. This Gateway must be used along with a RosettaNet message out.

Url

URL of the RosettaNet server of the receiver.

Signature certificate

Select signature certificate or go to certificates store.

Encryption certificate

Select encryption certificate or go to certificates store.

Attachment patterns

Attachments to add to the S/MIME message. Metadata = Pattern to match metadata containing the file to attach. Filename = name of the file in the zip. If one pattern matches multiple files, it is possible to put them all if you guarantee to generate a different filename name for each. This can be achieved by using the capturing groups of the regex in the filename. Ex: if your metadata pattern is attachment-(.*) and your filename is \1, processing with two metadata attachment-file1.csv and attachment-file2.csv will result in files file1.csv and file2.csv.

Test flag

Select this to set the GlobalUsageCode in the ServiceHeader to 'Test'. Otherwise 'Production' is used.

NemHandel Gateway Out

This gateway allows you to send messages to the Danish NemHandel network.

Registration certificate

Select the certificate use to register your information into the NemHandel registry.

NemHandel environment

Choose between the regular NemHandel production infrastructure, or the test infrastructure. The default is Production

Signature certificate

Select signature certificate or go to certificates store.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Chorus Pro Gateway Out

This gateway allows you to send invoices and credit note to the french administration network.

Environment

This is the Chorus Pro environment you want to use: Production or Qualification.

Technical API username

This is the technical username provided by chorus pro support to access the API through Babelway. More information on how to have that username can be found below.

Technical API password

This is the technical password provided by chorus pro support to access the API through Babelway. More information on how to have that password can be found below.

Retry strategy

Allows you to determine what to do if call to remote server fails. If 'No retry' is chosen, the message will be put immediately in error. Other values allow to make some retries before setting the message in error.

Send Chorus detailed report In

Allows you to send the Chorus Json report into one or multiple gateway IN internal. See below for example of json response. For more information, please refer to the page: https://communaute.chorus-pro.gouv.fr/show-detailed-report/

{
"codeRetour": 0,
"libelle": "TRA_MSG_00.000",
"codeInterfaceDepotFlux": "FSO1110A",
"dateDepotFlux": "2018-02-16T15:10:25.536+01:00",
"dateHeureEtatCourantFlux": "2018-02-16T15:10:28.137+01:00",
"etatCourantDepotFlux": "IN_INTEGRE_PARTIEL",
"listeErreurTechnique": {
	"natureErreur": "00000000005734",
	"codeErreur": 252,
	"libelleErreur": "L'identifiant fournisseur de la demande de paiement (balise : AccountingSupplierParty.Party.PartyIdentification.ID.value) n'est pas reference dans notre systeme. "
},
"listeErreurDP": {
	"identifiantDestinataire": "00000000005734",
	"identifiantFournisseur": "00000000005719",
	"libelleErreurDP": "L'identifiant fournisseur de la demande de paiement (balise : AccountingSupplierParty.Party.PartyIdentification.ID.value) n'est pas reference dans notre systeme. ",
	"numeroDP": "F1110_NBO050740100"
},
"nomFichier": "FSO1110A_CPP001_CPP0011110000000000001557"
}
					

4.3. Message definitions

This section contains all the tools needed to manage your message definitions. A simplified edition of the message definitions is directly available in the channels overview, but you need to come to this section to have access to all functionalities.

Message definitions describe in Babelway the format (CSV, XML, EDIFACT, ...) and the structure (all the fields) of an exchanged file.

Each channel contains 2 message definitions:

  • Message in is used to describe the files received by Babelway from the source external system.
  • Message out is used to describe the files that Babelway must send to the target external system.

4.3.1. Message definitions list

The List of Message definitions screen shows you all the message defitnions defined within your environment, even if they are not used in any channel. From here, you can easily edit them, or create new ones.

This screen is accessible by clicking on the menu Channels, then the sub-menu Message definitions

Message definitions list

Figure 4.58. Message definitions list


The list can contain the following columns:

Name

A name that identifies the channel.

Description

A free description for the channel.

Direction

IN for message definitions In, or OUT for message definitions Out.

Type

The type of the message definition. See message definitions types for all possible values.

Created on

The date and time when the message definition was created.

Last updated on

The date and time of the last modification of the message definition.

For more information about the behavior of the grid, and how to make searches, see the grid section of the help.

You can click on a line to view the details of the associated message definition, or edit it. See message definition details.

The Create message definition action button allows you to create new message definitions.

4.3.2. Creation of a message definition

To create a new message definition, you have two main options:

  • Create it from scratch.
  • Duplicate an existing message definition (from your environment, or from the Babelway catalogue).

You can access this choice by clicking on Create a message definition in the message definitions list screen, or directly from the channel detail screen.

Create a new Message Definition.

To create a Message Definition, you have first to select the type of message that you want to use (CSV, XML, Edifact, ...).

MessageDefinition creation - Type choice.

Figure 4.59. MessageDefinition creation - Type choice.


Then you need to follow the instructions on the screen. The parameters depend on the type of MessageDefinition selected. You can find detailed explanation of every type in the section of MessageDefinition formats..

MessageDefinition creation - CSV.

Figure 4.60. MessageDefinition creation - CSV.


MessageDefinition creation - XML (step 1).

Figure 4.61. MessageDefinition creation - XML (step 1).


Reuse an existing MessageDefinition.

The other solution is to select an existing MessageDefinition from the "Reuse and Save time" zone.

MessageDefinition creation - Reuse

Figure 4.62. MessageDefinition creation - Reuse


Gateway creation - Reuse confirmation

Figure 4.63. Gateway creation - Reuse confirmation


When you are in the Channels section, and you reuse a MessageDefinition that is already used in other channels, you will have the choice to share the MessageDefinition, or to make a copy.

Gateway creation - Share or Copy

Figure 4.64. Gateway creation - Share or Copy


More details can be found in the Reuse and Save time section.

4.3.3. Message definition detail

This page shows all the details about a message definition, and gives access to all operations that can be made on a message definition.

This page can be accessed from the message definitions list, or by following any link that refers to a message definition.

General

The general tab contains the general information of the gateway, and offers actions that act on the whole message definition.

Direction

Field used to indicate if the message is coming in the system or leaving it.

Type

Type of the message definition (CSV, XML, EDIFACT, ...)

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free text field that you can set and/or modify used in addition to the element name to help you identify your element usage and/or function.

Id

A unique identifier automatically set by the Babelway platform.

Created On

Date and time of element creation.

Last Updated On

Date and time of last element configuration update.

Tree

The tree describes the structure of the message, with all its fields. It is displayed in graphical form.

For more details, see all information about the message definition tree.

Don't forget to save when you're finished with your changes.

Properties

This screen allows you to configure all the options of the message definitions. Some of these options are common. Others differ depending on the message definition type.

See the message definition common options for further information on common message definition properties.

See the message definition types section to learn more about the options for each message definition type.

Extra processing

The extra processing allows you to configure additional processes that must be applied on the messages. Some examples are extracting the file from a zip file, or signing the output file.

See extra processing section for the description of every available extra processing, and all their parameters.

Related items

This tab contains quick links to many other elements related to this message definition.

Using channels

All the channels that use this element.

Parent

The parent is the element from which the element has been copied.

Children

The children is the element which is a copy of the current element.

Using transformations

List of transformations using this message definition.

Change Log

This tabs shows you all the history of changes on this message definition, and allows you to revert to a past version. For more details, see the change log section.

4.3.4. Update the message definition tree

Once a new message format has been saved or during edition of existing messages, the message tree is rendered in the Visual Editor in a hierarchical and graphical form as illustrated below.

In Visual Editor, you can further configure and set up message format as well as add verification rules as explained in following sections.

Message edit screen

Figure 4.65. Message edit screen


Left panel - understand tree structure

The left part of the screen shows the structure of the message, as a tree. It describes all the elements that the message format may contain.

Note

People familiar with xml files will find many similarities between the tree definition used here and the structure of a xml file. The reason is the following: In Babelway, all message formats are first translated into xml, that is used to apply all message transformations. The structure defined here is in fact the xml representation of your message.
Structure of message

Figure 4.66. Structure of message


The tree uses different types of nodes:

  • (1) A value node is just a "normal" node. It corresponds to one element in the message format that we are describing. It can just contain a value, or also be a structural element that contains other nodes.

    • represents an element structure in the corresponding xml.

    • represents an element structure in the corresponding xml which is hidden.

    • represents an element in the corresponding xml.

    • represents an element in the corresponding xml which is hidden.

    • represents an element in the corresponding xml, that contains a fixed static value.

    • represents an element in the corresponding xml, that contains a fixed static value which is hidden.

    • represents an attribute in the corresponding xml.

    • represents an attribute in the corresponding xml which is hidden.

    • represents an attribute in the corresponding xml, that contains a fixed static value.

    • represents an attribute in the corresponding xml, that contains a fixed static value which is hidden.

    Note

    A message item will be defined as an xml element or attribute depending on xml generation or translation tool that has been used. The main difference for Babelway platform is that an attribute is unique and cannot be repeated inside an element. So you cannot use loops with these attribute items.

  • (2) Other nodes are virtual nodes. They do not have any correspondence in the messages, but are used to tell additional information to the Babelway platform, like the fact that some elements can be repeated, or have possible structure alternatives.

    • represents a loop node. It means that its content can be repeated multiple times.

    • and indicate that the message can have multiple alternatives. The first icon is used to group all choices, and the second one for every option.

Note: From the message definition if you selected element structure node then hide it using the "Hide in transformations" button and its child node is mapped in the transformation, When opening this transformation after hiding it you may face the error message which says "Can not display mapping because of :" or when saving the transformation you will not be able to save it and no error message will be displayed.

Right panel - edition of element node

The right part of the screen shows how the details about the selected node. From there, you can edit all the properties of the node, or make actions on it to change the structure of the tree (delete, duplicate, ...).

Details of selected node

Figure 4.67. Details of selected node


General parameters are:

Label

The label is the text used to show this node in the message definition tree. It can be changed freely, as it has no impact on the processing of the messages.

Description

The description allows you to save some more documentation about this node.

Name

The name identifies the element in the xml representing the messages. Change only with care, for example XML language doesn't accept spaces.

Default value

Only for message definition OUT. The default value will be used in the message out for this field if no mapping is done for this field.

Filter value

Only for message definition IN. When this value is filled, only the records with this precise value will be used.

You can also add validations on nodes. The validations are assertions that will be checked when we receive a message in this format, or before we send a message in this format. If one of the validations fails, it means that the message does not comply with the definition, and the message will be put in error.

Note

We strongly recommend that you fill the validations, and reject messages that are wrong. If you don't enforce validations, there is a big risk that you send to the receiving partner files that are not correct, because your mapping will probabaly not foresee all of these cases. Validations on message OUT will also allow you to detect early problems in your mappings, detecting it immediately when one of your mapping generates a message that do not comply with the definition.

The following validations are available:

Mandatory

When a field is marked as mandatory, it must have a non-empty value. From the xml point of view, it means that the element must be present, and may not be empty.

Type

Type of the data in the field (String, Number, Date, ...). This field will also affect the other validations that will be available.

Length (only for Strings)

Min or Max length (in characters) for the value.

Regexp (only for Strings)

Regular expression that the value must match.

Min/max value (only for Numbers)

Indicates that the number value must be between the two given limits.

Format (only for Dates/Datetimes)

Format that are accepted, like 'yyyy/MM/dd', ... Full description of accepted formats can be found at ... Multiple allowed formats can be entered, separated by a comma.

Custom

Custom xpath expressions that the value must match (if non-empty).

Appearance in output file is enabling you to decide the conditions in which the selected element will appear in the output file.

Here are all the possible conditions:

Always

This element will always appear in the output file whether or not it's filled or not.

If at least one non-default sub-element appears

This element will appear if at least he has a value or if one of his non-default sub-element decided to appear. By non-default, we mean an element which doesn't have a default value. In short, only structural sub-element (white) and non-default field (blue).

Example of element that will appear in the output:

One out of two blue sub-element mapped

Figure 4.68. One out of two blue sub-element mapped


One blue and 1 green sub-element

Figure 4.69. One blue and 1 green sub-element


1 structural sub-element appears out of 3 sub-elements.

Figure 4.70. 1 structural sub-element appears out of 3 sub-elements.


1 attribute sub-element appears.

Figure 4.71. 1 attribute sub-element appears.


Example of element that will NOT appear in the output:

Two green sub-elements (because they are default values).

Figure 4.72. Two green sub-elements (because they are default values).


One blue with no value and one green sub-elements.

Figure 4.73. One blue with no value and one green sub-elements.


If all sub-elements appear

If all sub-elements decided to appear in the output file

Example of element that will appear in the output:

All blue sub-elements

Figure 4.74. All blue sub-elements


Example of element that will NOT appear in the output:

Two green sub-elements or One blue not filled and one green

Figure 4.75. Two green sub-elements or One blue not filled and one green


Only one out of two blue sub-elements

Figure 4.76. Only one out of two blue sub-elements


Not Empty

(applies only to element without children) Will appear in the output file if it has a value.

Search

On the top of the left panel, a search bar allows you to easily find nodes in big documents.

Search

Figure 4.77. Search


To search nodes, just type part of the name that your searching.

  • All the items that match will be highlighted.

  • The first matching item will be selected, and details shown in right panel.

  • Numbers of matching items will be displayed, with arrows to iterate between matches.

  • If needed, tree will be opened, or scroll will be adjusted, so that current match is made visible.

Updating tree structure

Search

Figure 4.78. Search


To update the tree structure, you have different possibilities

  • When a node is selected, all actions that apply to this node are available on the bottom of the right panel. You just have to click on it to call the wanted action.

  • Move operations can be done immediately in the tree, by just drag-and-dropping your node to the new selected validation. Duplication can be done the same way, by pressing the Ctrl key before the drag.

Managing Choice

You can create choice to manage conditional processing of your message definition.

To identify a node or a set of nodes that can have several alternatives in its structure and/or value, you need to enclose the set of related alternatives within a Choice node and each alternative branch into an Option node.

A Choice node is a virtual node identifying alternative branches. Each alternative branch is a possible option and is represented by an Option virtual node as illustrated in the following example:

Example of a choice

Figure 4.79. Example of a choice


There are two Choice nodes, one for the buyer's information, that accepts either a company structure with a VAT number value, or a person structure with firstname, lastname and address values. The other Choice node is for the price of an Item, it can accept either a price with a 0% or a 21% VAT.

In this latter case, both alternative branches have the same structure, but they have different static values (0 or 21) for their VAT node (static value nodes are green).

It is mandatory that each Option of a Choice is uniquely identifiable compared to each other. They could be identified by having different structures (like the buyer's Choice example) or by having the same structure with different static values (like in the price Choice example).

Managing Loops

Create loops to manage repetitive parts of your message definition.
Loops and grouping

A message is based on three node types as defined in the Message Definition chapter.

To specify that a value or a structural node can occur more than once, you need to enclose it in a Loop. A Loop is a virtual node representing the multiplicity of a node or a set of nodes. It is defined by its minOccurs and maxOccurs properties:

  • MinOccurs defines the minimum number of repetition of the node or the set of nodes that should occur. It may be 0 or any positive number.

  • MaxOccurs defines the maximum number of repetition of the node or the set of nodes that should occur. It is either a positive number or the value " unbounded " (that represents an undetermined number of repeat).

CSV Sample:

By definition a CSV message is composed of a header containing some header items, followed by one or many lines containing line items. The number of line items correspond to the number of header items.

header1,header2,header3,header4
123,aaa,abc,000
456,bbb,def,111
789,ccc,ghi,222
...

Here is the message tree for this CSV:

Message tree

Figure 4.80. Message tree


The headers and line nodes are structural nodes, while header and line items are value nodes. To specify that the line can appear more than once, there is a virtual Loop node enclosing the line node.

Grouping

A Loop can define the multiplicity of a node sequence. To identify a node sequence in a Loop, you must manually group those relevant nodes using one of the following grouping types:

  • Group By: groups together all nodes that have the same value as the Grouping value.

  • Group Adjacent: groups together all nodes that have the same value as the Grouping value, provided that they are also adjacent in the message sequence.

  • Group Starting With: processes the nodes in the supplied sequence in turn, starting a new group whenever one of the node matches the Grouping value.

  • Group Ending With: processes the nodes in the supplied sequence in turn, closing the current group whenever one of the node matches the Grouping value.

Loop parameters can be edited by left-clicking on the loop node in the message tree in the In or Out message tab during channel editing.

Loop parameters

Figure 4.81. Loop parameters


The grouping value is an XPath expression identifying the grouping pattern.

By left clicking on any node, you can:

  • Create Loop: to enclose the selected node in a new loop node.

  • Remove from Loop: to remove the selected node from its parent loop.

  • Put in next/previous Loop: if the selected node is adjacent to a loop node you can make it join that loop to create a multiplicity on a nodes sequence (in that case, specify a Grouping value ).

Regrouping a Loop

An existing loop can also be regrouped using one of the Grouping type. To do this you can use the Regroup this Loop in the loop contextual menu. This will create a new enclosing loop that requires specifying the Grouping type and the Grouping value.

Example with a DESADV message in a CSV format:

TruckId,PalletId,PacketId,Quantity,Item
 1,       1,       1,       5,Item 1
 1,       1,       1,      25,Item 2
 1,       1,       1,       1,Item 3
 1,       1,       2,       3,Item 4
 1,       1,       2,      15,Item 5
 1,       2,       1,     100,Item 6
 1,       2,       1,       2,Item 7
 1,       2,       3,      20,Item 8
 1,       2,       3,      11,Item 9
 1,       2,       3,       9,Item 10
 1,       2,       4,      72,Item 11
 2,       1,       1,      91,Item 12
 2,       2,       1,     423,Item 13
 2,       3,       1,      88,Item 14
 2,       4,       1,       3,Item 15
 3,       1,       1,      12,Item 16
 3,       1,       1,      21,Item 17
 3,       1,       1,     666,Item 18
 3,       1,       2,       3,Item 19
 3,       1,       2,      22,Item 20
 3,       1,       2,       2,Item 21
 3,       2,       1,     211,Item 22
 3,       2,       1,      64,Item 23
 4,       1,       1,      61,Item 24
 4,       1,       1,      17,Item 25
 4,       1,       2,       2,Item 26
 4,       1,       2,       9,Item 27
 4,       1,       2,      85,Item 28
 5,       1,       1,      57,Item 29
Default message tree

Figure 4.82. Default message tree


In this example, we have a loop of lines defining an item to dispatch, where each line has the truck id for where the item is stored.

We could regroup this loop of lines by TruckId so that we can loop on all trucks and then loop inside each truck on all the items in that truck.

To do that we select the Regroup this Loop action on the loop, select the Group By value for Grouping type and set it to ' field[1] ' (as this is the XPath of the TruckId element).

Regroup this loop

Figure 4.83. Regroup this loop


We now have a loop on all trucks and a sub loop on all the items in the truck.

Sub loop

Figure 4.84. Sub loop


When we want to group by the loop using two fields for example (Code and Area) then we can use the concat() function, as shown below.

Using concat() function with CSV "Message In"

Figure 4.85. Using concat() function with CSV "Message In"


Note: When the "Message In" is of type CSV then we will need to use "field" value in the field of the group by and by using the [ ] characters we will filter the needed field, For example if we want the get the first and third positions fields we will use field[1] and field[3].

When the "Message In" is of type XML then we will use the field name, In this case it will be concat(Code,Area), as shown below.

Using concat() function with XML "Message In"

Figure 4.86. Using concat() function with XML "Message In"


We can even go further and decide to group by PalletId and PacketId, that would give us four nested loops, one for all trucks, the next one for all pallets in a truck, the next one for all packets in a pallet and the last one, for all items in a packet.

Regroup this loop of lines by TruckId, PalletId and PacketId

Figure 4.87. Regroup this loop of lines by TruckId, PalletId and PacketId


4.3.5. Message definition formats

This list shows main message formats supported by the application.

CSV

A CSV or comma-separated values file is used for the digital storage of data organized in a table form. Each line in the CSV file corresponds to a row in the table, and within a line, fields are separated by commas (or semicolons, colons or tabs), each field belonging to one column of the source table.

As this is a very common and simple file format, CSV files are often used to move tabular data between different computer programs, such as between a database and a spreadsheet program.

Note: When using a CSV as a Message IN definition, each line will be identified in a separate record at the same level and the Message IN after transformation to XML will not have any hierarchical structure.

File sample

Following is a sample CSV file.

NAV Date,ISIN,Fund Name,Share Typ,Fund Ccy,NAV in Fund Ccy,Bid Price in Fund Ccy,Offer Price in Fund Ccy,TNA,Outstanding,Publication Ccy,NAV in Publication Ccy,Bid Price in Publication Ccy,Offer Price in Publication Ccy,Equity Profit,WKN Code,Zwischengewinn,TIS,TID
06/13/2008,LU0223208157,HSBC GIF EMERGING EUROPE EQUITY,AC,EUR,15.088,15.088,15.924,12190498.17,807980.236,GBP,11.96,11.96,12.623,37.650,A0ER9A,0.001,,

The following properties are available:

Delimiter character

The character that is used to separate the fields in the csv. It can be a comma, colon, semicolon or tab.

Quote character

The character that is used to quote the specials characters in the csv. It can be a single quote (') or a double quote (").

Headers

Tells you if the csv file begins with a line that contains headers of the columns, or directly begins with the lines of data.

Encoding

The encoding of the csv file.

Sample

An example of CSV file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Edifact

Introduction

United Nations / Electronic Data Interchange for Administration, Commerce and Transport (UN/EDIFACT) is the international EDI standard developed under the United Nations impulse. This standard is maintained and further developed by a UN body. EDIFACT has now been adopted by the International Organization for Standardization (ISO) as the ISO standard ISO 9735.

The EDIFACT standard provides a set of syntax rules to structure data, an interactive exchange protocol (I-EDI), and standard messages which allow multi-country and multi-industry exchange.

You can find more information about Edifact on its offical site ( http://www.unece.org/cefact/edifact/welcome.html ) or on Wikipedia ( https://en.wikipedia.org/wiki/EDIFACT ). See how Walmart and Amazon use Edifact to connect with their suppliers.

Below is a sample EDIFACT file.

UNB+UNOA:1+005435656:1+006415160:1+060515:1434+00000000000778'
UNH+00000000000117+INVOIC:D:97B:UN'
BGM+380+342459+9'
DTM+3:20060515:102'
RFF+ON:521052'
NAD+BY+792820524::16++CUMMINS MID-RANGE ENGINE PLANT'
NAD+SE+005435656::16++GENERAL WIDGET COMPANY'
CUX+1:USD'
LIN+1++157870:IN'
IMD+F++:::WIDGET'
QTY+47:1020:EA'
ALI+US'
MOA+203:1202.58'
PRI+INV:1.179'
LIN+2++157871:IN'
IMD+F++:::DIFFERENT WIDGET'
QTY+47:20:EA'
ALI+JP'
MOA+203:410'
PRI+INV:20.5'
UNS+S'
MOA+39:2137.58'
ALC+C+ABG'
MOA+8:525'
UNT+24+00000000000117'
UNZ+1+00000000000778'
Extensive support

Babelway supports all Edifact messages, and knows all the definitions of the different norms. This knowledge of these definitions will allow additional functionnalities when you work with Edifact. Amongst other things :

  • By just loading a sample Edifact file, Babelway wil be able to deduce the structure, find the definition of the elements, calculate human-readable labels, ... You can see on the following screenshot the result when you load the sample above.

    Edifact tree just after having loaded a Sample.

    Figure 4.88. Edifact tree just after having loaded a Sample.


  • Adding or removing segment elements is very easy, as the interface knows precisely which elements may take place in the selected segment.

    Edit segment shows all the possible elements.

    Figure 4.89. Edit segment shows all the possible elements.


  • In the same way, segments can be easily added. The interface will offer you segments and elements that may take place at this location.

    Edit segment shows all the possible elements.

    Figure 4.90. Edit segment shows all the possible elements.


  • Messages can be validated deeply (structure, mandatory fields, values, ...) automatically, without having to define any validation manually.

  • For all the runtime messages, comments are added in the internal representation to ease the reading of the file.

    Internal representation of an Edifact.

    Figure 4.91. Internal representation of an Edifact.


    Note: For some specific segment if the position is changed in the "Message In" tree and/or if the position of the segment is changed in the input message this will leads to a different naming in the "Message IN after transformation to XML" file for this segment and then in this case the mapping will not generate the values in the output message.

Properties

The following properties are available:

Validate structure

Only for messages OUT. If yes, an error will be generated if your message has an incorrect structure. Deactivate only if you really want to send messages with incorrect structures.

Validate values

If yes, all values will be checked against their definition. Deactivate only if you really want to receive/send messages with values that do not respect the Edifact standard.

Validate segments

If yes, all segments will be checked against their definition (mandatory fields must exist, no field can be present if not in definition). Deactivate only if you really want to receive/send messages with values that do not respect the Edifact standard.

Sign Edifact

If checked, you will be able to configure the settings for a signed edifact.

Output variant selection

Choose the edifact variant for the output file.

Security Version

If set, signature will be applied to the edifact generated file and security segments will be inserted (USH, UST, USR, USA, USC, UNO and UNP).

Security certificate

Which certificate will be used for security segments.

Sample

An example of Edifact file handled by this message definition.

UNA segment

Only for messages OUT. The UNA segment to be used in your output message. If you asked for an empty UNA segment, it will not be printed, and default separators will be used. If you specify one, the rest of the file will be written accordingly, adapting to the separators defined in the segment.

Add line breaks between segments

Only for messages OUT. If yes, an additional line break will be added in the output message between every segment. Only for human readability.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Note: Regarding the "Message In" we can't disable the "Validate structure" because it is mandatory, Regarding the "Message Out" we can disable the "Validate structure" from the "Properties".

X12 Message Format

ASC X12 (also known as ANSI ASC X12) is the official designation of the U.S. national standards body for the development and maintenance of Electronic Data Interchange (EDI) standards. ASC X12 has sponsored more than 315 X12-based EDI standards for health care, insurance, government, transportation, finance, and many other industries (see how Walmart, Amazon, Rite Aid, and Wayfair use X12).

Babelway supports all X12 messages, and offers the same extensive support as for Edifact.

File sample

Below is a sample X12 file.

ISA*00*          *00*          *ZZ*SENDERISA      *ZZ*RECEIVERISA    *960807*1548*U*00401*000000020*0*T*>~
GS*IN*SENDERDEPT*007326879*19960807*1548*000001*X*004010~
ST*810*000000001~
BIG*20090927*00027**A00027-01~
N1*ST*CHOCOLATE IMPORT*9*1234567890~
N3*1000 N. NORTH HIGHWAY~
N4*NEW YORK*NY*10310~
N1*BT*RETAILER INC.*9*1098765432~
N3*P.O. BOX 0000~
N4*LAKE*VA*20120~
N1*RE*FOODSELLER*9*12345QQQQ~
N3*P.O. BOX 222222~
N4*FAIRFAX*VA*94978~
ITD*01*3*1**15**16~
FOB*PP~
IT1**16*CA*12.34**UA*006540022222~
PID*F****BELGIUM CHOCOLATE~
IT1**13*CA*12.34**UA*006540033333~
PID*F****SWISS CHOCOLATE~
TDS*35786~
CAD*****FREEFORM~
ISS*29*CA~
CTT*2~
SE*22*000000001~
GE*1*000001~
IEA*1*000000020~
		

The following properties are available:

Validate structure

Only for messages OUT. If yes, an error will be generated if your message has an incorrect structure. Deactivate only if you really want to send messages with incorrect structures.

Validate values

If yes, all values will be checked against their definition. Deactivate only if you really want to receive/send messages with values that do not respect the X 12 standard.

Validate segments

If yes, all segments will be checked against their definition (mandatory fields must exist, no field can be present if not in definition). Deactivate only if you really want to receive/send messages with values that do not respect the X 12 standard.

Sample

An example of X 12 file handled by this message definition.

Edi template

Template of output file, that will be used to choose delimiters. If no template is selected and the message IN was a X12, the system will reuse the delimiters from the message IN. Otherwise the default delimiters are '~' '*' ':'.

Output Charset

Output Charset is used to encode the file.

Input Charset

Input Charset is used to decode the file.

Send 997

Automatically generate a 997 functional acknowledgement upon receiving a message. This will not work for messages which are themselves 997s. See 997 Acknowledgements for more information.

Transfer Metadata

Additional metadata and universal routing metadata are always attached to the new 997 message generated. This option allows you to additionally attach the user metadata of the original message to the 997.

Ack will be sent by

997 messages will be sent into a channel through this gateway IN.

Expect 997

If selected, the message remains 'In delivery' until a matching 997 is received or until the timeout is reached. The message status will change to 'Success' upon reception of an 'Accepted' 997. The message status will change to 'Error' upon reception of a 'Rejected' 997 or no 997 received before time out. See 997 Acknowledgements for more information.

Timeout

Indicates how long the message will await the 997 before the message status is changed from 'In delivery' to 'Error'. See 997 Acknowledgements for more information.

Gateways

Lists the gateways for which a channel was identified or created which correlates incoming acknowledgements.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Note:

  • There is no escaping character for the X12 message, For example if you defined the X12 segment separator as ^ character and for one of the element has the ^ character in it's value then the Babelway system will replace this ^ character by a space for the value of this element.

  • Regarding the "Message In" we can't disable the "Validate structure" because it is mandatory, Regarding the "Message Out" we can disable the "Validate structure" from the "Properties".

  • Below are different ways to define the segment separator for X12 message regarding the "Message Out".

    1-By uploading X12 message template to the "Edi template" then Babelway will use the segment separator that you have defined in this template.

    Edi template for X12 "Message Out" Properties.

    Figure 4.92. Edi template for X12 "Message Out" Properties.


    2-If you didn't define Edi template and the "Message Out" definition is of type X12 then Babelway will use the separator character from the X12 message.

    3-If you are using "Message Out" definition that isn't of type X12 then Babelway will use the standard separator for the X12 message.

Odette

The Organization for Data Exchange by Tele Transmission (ODETTE) in Europe is a group that represents the interests of the automotive industry in Europe. They are the equivalent of the Automotive Industry Action Group (AIAG) in North America.

ODETTE has been responsible for developing communication standards such as OFTP and OFTP2.0.

Babelway supports all following ODETTE Messages:

AVIEXP, AVIGRU, AVIREX, BASDAT, CONFOR, CONTRL, CREDIT, DEBNOT, DELINS, ENQIRY, FORDIS, GRUDES, INVOIC, KANBAN, MODPRI, OFFERR, ORDERR, OSTENQ, PRILST, REMADV, REPDEL, REPINV, REPORD, STATAC, STOACT, SYNCRO, SYNPAC

File sample

Below is a sample ODETTE file.

UNB+UNOA:1+1111:OD+2222:OD+980611:1723+888++KANBAN'
UNH+1+KANBAN:2::OD'
MID+0000001266+040331:0001'
CDT+::::::2474'
BDT+0931955500293'
CSG+0931955500293+I'
ARD+190569'
KDE+:336+3840++040402:1648'
ARD+192209'
KDE+:492+1600++040402:2057'
UNT+10+1'
UNZ+1+888'

The following properties are available:

Edi Template (Only available for Odette Out)

The template is used by the EdiWriter in order to define the proper layout of the odette and follows the syntax of the template.

Skip UNA (Only available for Odette Out)

Check this to skip the UNA section in ODETTE.

Output Charset

Output Charset is used to encode the file.

Input Charset

Input Charset is used to decode the file.

Sample

An example of ODETTE file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

XML

XML stands for eXtensible Markup Language and is a very common type of files.

File sample

Below is a sample XML file.

<?xml version="1.0"?>
<Document>
<SenderID>5420008199981</SenderID>
<ReceiverID>5400102000086</ReceiverID>
<DocumentDate>20080531170538</DocumentDate>
<DocumentNumber>VK20084010</DocumentNumber>
<TestIndicator>P</TestIndicator>
<DocumentLanguage>NL</DocumentLanguage>
<Version>1.1/Food</Version>
<Invoice>
<MessageReferenceNumber>VK20084010</MessageReferenceNumber>
<InvoiceHeader>
<MessageType>INV</MessageType>
<MessageNumber>VK20084010</MessageNumber>
<MessageFunction>ORI</MessageFunction>
<InvoiceCurrency>EUR</InvoiceCurrency>
<Dates>
<InvoiceDate>20080531170538</InvoiceDate>
<AccountingValueDate>20080531170538</AccountingValueDate>
<DeliveryDate>20080530170738</DeliveryDate>
<OrderDate>20080530170538</OrderDate>
</Dates>
</InvoiceHeader>
<InvoiceDetail>
<InvoiceItem>
<ItemType>GDS</ItemType>
<LineItemNumber>1</LineItemNumber>
<EANArticleNumber>95400102057205</EANArticleNumber>
</InvoiceItem>
</InvoiceDetail>
</Invoice>
</Document>

The following properties are available:

Output Charset

Charset to use to encode the file

Input Charset

Charset to use to decode the file

XSD

Xsd definition file corresponding to the XML message.

XsdImports

Xsd Imports that the Xsd definition depends on.

Sample

An example of XML file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

If you want to create and XML message definition, we advise you to provide a complete XML sample and XSD file(s) defining the structure of the XML. You will get validation, documentation, loop generation from XSD files and the resulting message definition will be limited to fields present in the XML sample.

If you provide XSD files only, be aware that, if XSD structure is fairly complex, the resulting message definition will be very difficult to use.

If you provide an XML sample file only, you will need to manually edit the message definition to add the 'loops' where it makes sense.

Excel Message Format

File sample

Below is a sample Excel file having headers at the first row of the Excel sheet.

Excel Sample file

Figure 4.93. Excel Sample file


The following properties are available:

Excel version (Only available for Excel In)

Which Excel format is used (XLS or XLSX).

Ignore empty lines (Only available for Excel In)

Check this to ignore empty lines.

Trim (Only available for Excel In)

Check this to remove all spaces from text except for single spaces between words.

Dateformats (Only available for Excel In)

Used date format.

SheetMode (Only available for Excel In)

Single/Multiple sheets? If not selected, only the first sheet of the workbook is considered.

ExcelTemplate (Only available for Excel Out)

This action allows to list all the tickets, optionnaly filtered by some search criteria.

Note: This only support xls format.

Headers

Select if first row contains field headers.

Encoding

Charset used to encode/decode the file.

Sample

An example of Excel file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

File sample

Babelway Excel wizard only supports the Excel files with extension ".XLS"

So if the Excel file you are intended to use has an extension ".XLSX", you will have to change the Excel extension to ".XLS" before uploading it in the Excel wizard. Here is the procedure.

*Excel file extension modification procedures.

1- Open your Excel file with extension ".XLSX" and click on "save as".

Press save as

Figure 4.94. Press save as


2- Open the "Save As type" drop down menu and choose the extension XLS and click on save.

Save file with a new extension

Figure 4.95. Save file with a new extension


Message In of type PDF

Creating "Message In" of type PDF

1-From the "Message In" Select "PDF" for the "Your message is of type" field, as shown below.

Figure 4.96. 


2-For the "PDF Sample" field click on the "Choose File" button and upload your PDF sample file, as shown below.

Figure 4.97. 


3-For the "Template name" write your template name in this case it will be "Invoice_Template_1", as shown below.

Figure 4.98. 


Note: You can name the Template name any name you want and it only can contain characters from A to Z in upper case and/or a to z characters in lower case and/or numbers between 0 to 9 and _ character, This is the only allowed characters.

4-If you want to receive a notification email when the message fell in a validation error regarding the PDF then you will need to enable the "Fix validation error" and then for the "Recipients" enter the email address that will receive the notification, as shown below.

Figure 4.99. 


Note: For the "Fix validation errors" you can use one or more email addresses to receive the notification emails, To add more than one email address you will click on the + icon, as shown below.

Figure 4.100. 


After the "Message In" is created then from "Properties" you can update the configuration in the future when needed.

5-Now the Template will be created in the templates section, and the "Message In" structure will be empty for now because we will need to define it in the below steps in the "Extracting Fields" section, as shown below.

Figure 4.101. 


Note: The template allows you to define multiple templates that will match the same message definition, The template is very helpful when there are more than one PDF messages sharing the same message definition by creating a template for each PDF message then you can process all them in one channel.

PDF Template Settings

The Template matching conditions is used to indicate which elements are static elements that is used to define the PDF file which will allow the system to know how to make a link between the PDF template and the input PDF message.

Note: This is the ID of the document, For the incoming PDF messages it this match the ID then the message will be processed by it's corresponding template based on the set of rules defined in the Template matching conditions.

For example you can use one of the following (Company logo, Company address, Document type, … etc) and when this elements is used to identify the PDF file then this element must be provided in all of the input PDF message in order to the system to be able to identify the message, If for example you used the Company logo with the Document type to identify the message then you will need to provide this two fields in all of the processed PDF input messages in order for the system to be able to identify the PDF message.

1-At the bottom of the "Message In" click on the "Edit PDF template" button to begin editing the template, as shown below.

Figure 4.102. 


2-Click on the gear icon to open the "PDF Template Settings" pop-up page, as shown below.

Figure 4.103. 


Note:

  • - The "PDF Template Settings" will be opened automatically the first time when creating a new template.

  • - The below drop down menu has all of the template names, In this case we only have one template which name is "Invoice_Template_1", as shown below.

Figure 4.104. 


3-We will see in this case that the system automatically have selected the Company logo to identify this PDF Template, as shown below.

Figure 4.105. 


Note: You can remove the automatically created rule if this will achieve your logic and then you can add the needed rules.

4-To add more elements click on the "Add more" button, as shown below.

Figure 4.106. 


5-Select a uniquely element in this PDF to identify the PDF, In this case we will use the "INVOICE" label, as shown below.

Figure 4.107. 


6-Now you will need to click on the "Save Template Settings" button to save this changes, as shown below.

Figure 4.108. 


How to process PDF input message which will contain multiple Invoices as an example in this case?

1-From the "Message In" click on the "Edit PDF template" button, as shown below.

Figure 4.109. 


2- Click on the gear icon to open the "PDF Template Settings" pop-up page, as shown below.

Figure 4.110. 


3-From the "PDF Template Settings" in the "Can this pdf include several documents of the same template?" click on "Yes" to inform the system that this PDF input message will have several messages, as shown below.

Figure 4.111. 


Note: The system will split the input message and process each message in a separate PDF file.

4- Now you will need to click on the "Save Template Settings" button to save this changes, as shown below.

Figure 4.112. 


Extracting Fields

To extract fields from the PDF Template you have three options to select one of them based on your need.

1-Fixed

2-Relative to a label / image

3-Within a table

Below is explanation for each option:

1-Fixed

The value always starts at the same position within the PDF template (exact same coordinates each time). The value can then vary in length as long as the start position is consistent.

2-Relative to a label / image

The position of this value can vary, but it is always close to a label (field name) or image. Ex. The value 12/08/2017 is always to the right of the label 'Date'.

In fact we only care to find the exact text of the value and from there we look to the right/left/above/below depending on how the rule is set to find the value, as shown below.

Figure 4.113. 


The field which has the value "101" is relative to the label "INVOICE #:".

Note: As advanced feature, We added ability to also say it is relative to (Text equals to, Text starts with, Text ends with, Text contains, Text matches regex).

3- Within a table

This will extract the line values from the table and the table can either be displayed in a single page or is divided on multiple pages.

The below steps will describe how to use the "Fixed" extraction method.

A-For extracting one line you will click on it to select it, For extracting more than one line you will click and drag the mouse around the text you want to extract, as shown below.

Figure 4.114. 


B-From the pop-up window "How to find field value?" click on "Fixed", as shown below.

Figure 4.115. 


C-Now the "Extract data from field" will show the field name which in this case it is "field1" and the value "6, Rue Louis de Geer 1348 L", as shown below.

Figure 4.116. 


D-We can rename the field by clicking on it and then rename it, as shown below.

Figure 4.117. 


Note: After you finish click on the "Confirm" button to save this changes.

E-Now the "Field name" and the "Field value" will be extracted, as shown below.

Figure 4.118. 


The below steps will describe how to use the "Relative to a label / image" extraction method.

A-Click on the field then the "How to find this field value?" pop-up will be displayed, as shown below.

Figure 4.119. 


B-Select the "Relative to a label / image", as shown below.

Figure 4.120. 


C-Then select the relative label in this case it is "INVOICE #:", as shown below.

Figure 4.121. 


D-In this case the PDF has two "INVOICE #:" so we will need to select a strategy for it, as shown below.

Figure 4.122. 


E-From the "Strategy when we find multiple labels or images :" select in this case "Pick first label or image", as shown below.

Figure 4.123. 


Note:

  • Pick first: This strategy means we will always pick the first key encountered on the PDF.

  • Pick last: This strategy means we will always pick the last key encountered on the PDF.

  • Surrounding field: Choose a label/image that is close to the key you want to pick.

F- Now the "Extract data from field" will show the field name which in this case it is "field2" and the value "101", as shown below.

Figure 4.124. 


G- We can rename the field by clicking on it and then rename it, as shown below.

Figure 4.125. 


H- Now the "Field name" and the "Field value" will be extracted, as shown below.

Figure 4.126. 


The below steps will describe how to use the "Within a table" extraction method.

A-Click on the field then the "How to find this field value?" pop-up will be displayed, as shown below.

Figure 4.127. 


B-Select the "Within a table", as shown below.

Figure 4.128. 


C-Select the start of the table, as shown below.

Figure 4.129. 


D-From the "How to find the start of the table?" pop-up window select "Relative to a label/image" then in this case select "Quantity", as shown below.

Figure 4.130. 


Figure 4.131. 


E-Select the end of the table, as shown below.

Figure 4.132. 


F-From the "How to find the start of the table?" pop-up window select "Relative to a label/image" then in this case select "Subtotal", as shown below.

Figure 4.133. 


Figure 4.134. 


G-Select the start of the table on next pages, as shown below.

Figure 4.135. 


H-From the "How to find the start of the table?" pop-up window select "Fixed position", as shown below.

Figure 4.136. 


I-Select the end of the table on the first page, as shown below.

Figure 4.137. 


J-From the "How to find the start of the table?" pop-up window select "Fixed position", as shown below.

Figure 4.138. 


K-Select the Item that will inform the system that will determine the line delimiter, as shown below.

Figure 4.139. 


L-From the "What is the alignment of this field?" pop-up window select "Align Left", as shown below.

Figure 4.140. 


M-Select all of the items you want to extract them from the table, as shown below.

Figure 4.141. 


N-Now you will find four fields created in this example from "Item1" to "Item4"m as shown below.

Figure 4.142. 


O-Now rename the fields to be clearer for the mapping, as shown below.

Figure 4.143. 


P-For the Table name change its name to be "Lines" for example, as shown below.

Figure 4.144. 


Q-Now when we open the "Message In" we will see the structure is created, as shown below.

Figure 4.145. 


The following properties are available:

Message Definition

This file is Babelway's internal representation of your message definition tree.

Validation Mode

The validation mode describes how strictly messages need to comply with your definition in order to be processed.

Template name

Babelway allows you to define multiple templates that will match the same message definition. Please choose the name of the first template you will create.

Fix validation errors

If you check this, whenever some extracted fields will cause validation errors, you'll be notified by e-mail and able to fix the message.

Recipients

List of emails where the error notification is sent.

Split texts when double space

This will split texts in two when a double space is detected.

Add missing space characters

Sometimes, PDFs contains texts that are separated by position only and don't contain the actual space ' ' character. This will add those space character.

Missing space tolerance

Number from 0.01 to 2.00. This is the percentage of a space width that the difference between two letters must not exceed to generate a space character. For example, 0.7 means : we create a space between A and B if posX(A)+ spaceWidth - posX(B) less than spaceWidth * 0.7. The actual space width can vary a lot from PDF to PDF. This a magical number to find.

Merge characters tolerance

Number from 0.01 to 2.00. This is a percentage of space width that is needed to consider two characters to be split. For example, 1.00 means we look for maximum 1.00 * spaceWidth after character A to find the next character. If we find it, we merge, otherwise, we finish the text extraction here.

PDF based on XHTML template Message Format

PDF Wizard screen allows you to define your PDF message format based on your XHTML template file.

To define a message in PDF format, select an existing template or make a copy of the generic PDF template in the catalogue and the following screen will be displayed.

Wizard screen

When you create a new message format, you must first configure it using the following wizard.

PDF Wizard screen

Figure 4.146. PDF Wizard screen


A PDF message can only be set up using a template file in XHTML format. Select your template file using the Choose File button next to the XHTML file, then click on the Confirm command.

File sample

Below is a sample PDF file.


<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>PDF output</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<style>
 @page { size: A4; margin: 3cm 1.5cm 2cm 1.5cm; border: none; padding: 1em; }
 @page { @top-left{content: ""; }}
 @page { @top-right{content: "Page " counter(page) " on " counter(pages);}}
 @page { @bottom-left{content: element(footer);border-top: solid 0.01mm #000; }}

 #footer{display: block; position: running(footer); }
</style>

   </head>
   <body style="font-size: 12pt; font-family: 'Nobile'">

      <center>
         <h1 >PDF output example</h1>
      </center>
      <br/>
      <div style="font-size: small">
         <span>Date :</span>
         <span id="invoiceDate">25-08-2009</span>
      </div>
      <br/>
      <center style="font-size: large">Example</center>
      <br/>
      <table style="width: 100%" >
         <tr>
            <td rowspan="1" style="width: 200px; height: 20px;">
               <span>Invoice number :</span>
               <span id="invoiceNumber">field1</span>
            </td>
            <td style="width: 300px; height: 20px;">
               <span>Contact Name :</span>
               <span id="firstName">field2</span>
               <span id="lastName">field3</span>
            </td>
         </tr>
      </table>
      <br/>
      <center>
         <span>Some static info</span>
      </center>
		<table style="width: 100%" dir="ltr" frame="box">
		  <tbody>
			<tr>
			  <td bgcolor="#cdd5cb" rowspan="1"
				style="width: 120px; height: 30px;">Description</td>
			  <td bgcolor="#cdd5cb" style="width: 80px; height: 30px;">Unit price</td>
			  <td bgcolor="#cdd5cb" style="width: 40px; height: 30px;">Qty</td>
			  <td bgcolor="#cdd5cb" style="width: 80px; height: 30px;">Vat rate</td>
			  <td bgcolor="#cdd5cb" style="width: 100px; height: 30px;">Tax free
			  price</td>
			  <td bgcolor="#cdd5cb" style="width: 80px; height: 30px;">Tax</td>
			  <td bgcolor="#cdd5cb" style="width: 80px; height: 30px;">Total price</td>
			</tr>
			<tr id="product-loop">
			  <td style="width: 120px; height: 20px;" rowspan="0"><span
				id="itemDescription">Support pack 5h</span> </td>
			  <td style="width: 80px; height: 20px" align="right"><span
				id="itemUnitPrice">425.00</span> </td>
			  <td style="width: 40px; height: 20px" align="right"><span
				id="itemQuantity">1</span> </td>
			  <td style="width: 80px; height: 20px" align="right"><span
				id="itemVatRate">21.00</span> </td>
			  <td style="width: 100px; height: 20px" align="right"><span
				id="itemTaxFreePrice">425.00</span> </td>
			  <td style="width: 80px; height: 20px" align="right"><span
				id="itemTax">89.25</span> </td>
			  <td style="width: 80px; height: 20px" align="right"><span
				id="itemTotalPrice">514.25</span> </td>
			</tr>
		  </tbody>
		</table>
		<br />
      <center style="page-break-before:always">
         <span>second page</span>
      </center>
      <br/>
      You can upload images or css sheets as file properties and use a simple relative url in your xhtml.
      <br/>
      <br/>
      For specific print css options, see http://www.w3schools.com/css/css_reference.asp for all css options
      <br/>
      <br/>
      <h2>Barcode Integration</h2>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="EAN13">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="EAN8">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="UPCA">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="UPCE">01234133</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODABAR">A123456789A</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODE39">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODE39_EXTENDED">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODE128">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODE128_UCC">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="CODE128_RAW">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="EAN8">123456789012345675</barcode>
        <br/>
        <barcode style="display: inline-block; width: 300px; height: 200px;" type="POSTNET">123456789012345675</barcode>
        <br/>
	  <div id="footer">
		Footer line#1<br/>Footer line#2
	  </div>

   </body>
</html>

			

Edit screen

Once the message format template has been uploaded, or when it is used or copied from a saved format, you have the possibility to go on the created element. If you want to edit the properties of that message definition, switch to "Properties".

PDF Edit screen

Figure 4.147. PDF Edit screen


The following properties are available:

Xhtml template

The Xhtml template which defines structure of the requested PDF.

Xhtml resources

Resources used inside the Xhtml template such as images, css files,...

Sample

An example of PDF file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Fix validation errors

If you check this, whenever some extracted fields will cause validation errors, you'll be notified by e-mail and able to fix the message.

Recipients

List of emails where the error notification is sent.

In order to ease the navigation, the xhtml attribute id is used as the name in the resulting message definition. These elements are visible by default. Mapping to these elements will be preserved if you upload another template containing the element with the same id.

If you need to add a loop to your xhtml, you can simply name the element with a suffix -loop like in the example above. The system will create a loop and a corresponding element. Mapping to these elements will also be preserved if you upload another template.

All elements without id in the xhtml will be hidden by default. If you cannot add an id to your element, you have to manually show any element you need in the transformation step. Additionally, you should edit and rename the element label for easier management during transformation step.

To ease the search of the fields you need, the values uploaded from your example file are displayed in the field tooltip descriptions.

See Message Definition to change show/hide settings and edit the element label.

Note: If you need to add a barcode corresponding to a specific EAN, you can use the below structure after the EAN field in your template.

"<span style="display: inline-block; width: 100px; height: 66px;" type="EAN13" id="your_desired_id"/>"

Multirecord Flat files

Multirecord Wizard screen allows you to define your Multirecord message format (delimited or a fixed-length) according to your own file format.
What is an mr file?

An mr file is a multirecord definition file used by the Self-Service MultiRecord wizard to generate the corresponding message definition and also build the corresponding serving xml resource file.

How to build an mr file?
(1) Specify if the message is a delimited or a fixed-length message:

For fixed-length messages, the mr file header looks like this:

<multirecord name="mymultirecord" type="fixed-length" lineDelimited="true" recordDelimiter="\r\n" quoteSymbol-character="&quot;" quoteSymbol-escapeSequence="\&quot;" xmlns="http://xmlns.babelway.com/2007/multi-record">

For delimited messages the mr file header looks like this:

<multirecord name="mymultirecord" type="delimited" fieldDelimiter="," recordDelimiter="\r\n" quoteSymbol-character="&quot;" quoteSymbol-escapeSequence="\&quot;" xmlns="http://xmlns.babelway.com/2007/multi-record">

* recordDelimiter defines the delimiter between each record, it is usually the ending line character represented on windows by \r\n, on Unix/Linux by \n and on Macintosh by \r.

Note: It is recommended when creating Multirecord for the "Message In" to remove the LineDelimited in order to support all EOL "End Of Line" for any of those operating systems.

* lineDelimited specifies if the system uses a record delimiter. If set to false, the record will be based on the sum of the fields length for fixed length or the number of fields for delimited multirecords.

* trim specifies if the white spaces at the beginning and the end of the fields should be removed.

* fieldDelimiter is only used with a delimited message, defines the field delimiter.

* quoteSymbol-character is the character used to quote a field (often &quot;)

* quoteSymbol-escapeSequence is the sequence that displays the quote symbol character in a quoted field (often \&quot;)

Tip:

For multirecord as Message In, do not specify recordDelimiter; the system will catch the \r or \n or \r\n. For multirecord as Message Out, DO specify recordDelimiter as being for instance "\r\n"; this will generate windows compliant file and let you change the delimiter from the advanced properties later on.

(2) Write the message records definitions:

You should specify the name for the record and for each of its fields. Each record should have at least one field with a static value which is used to identify the record.

<record name="Record1">
	    <field name="recordType" value="R1" width="2"/>
	    <field name="field1" width="5"/>
	    <field name="field2" width="3"/>
	</record>

* the width is only mandatory for fixed-length messages

* value is used to specify a static value of the field that never changes.

By default all first fields with a static value are used to identify a record. But, you can also manually define which fields must be used to identify a record using the identifier parameter.

Note: The identifier is case sensitive, so identifier="true" is not equal to identifier="True".

<record name="Record1">
	    <field name="recordType" value="R1" width="2" />
	    <field name="fieldA" width="5"/>
	    <field name="fieldB" width="3" value="BBB" identifier="true"/>
	    <field name="fieldC" width="7" />
	    <field name="fieldD" width="2" value="DD" identifier="true"/>
	</record>

In this case, only the third and fifth fields (fieldB & fieldD), with identifier equals to "true", is used to identify the record. The default (without identifier="true") is only using recordType field as the identifier.

Remark:

For fixed-length messages, the fields used to identify a record should have the same position and length in each record. No overlap between identifiers is allowed between records, If there is only one field used to define the records, it should have the same position and can have a different length in each record.

If fixed-length messages have variable length identifiers per record, the only way to define it in the mr files is to first define the smallest common length identifier for all records and then for each record that has a longer identifier, add as many smaller fields as needed to unambiguously identify each record.

Note: if the multi-record file has a leading spaces, it must be taken into account while defining the mr file and make sure that the identifiers are at the same position, so you can remove the leading spaces by using the "Replacement based on regular-expressions" Extra Processing and add the following regex (?m)^[\s]+ to match all the leading spaces and replace them with empty values as shown below:

Regular expression to remove the leading spaces

Figure 4.148. Regular expression to remove the leading spaces


For example, if we have a message where AAAAA, 111 and 2222 are identifiers as shown below:

AAAAA  contentcontent  anothercontent
	1112222  this and that

The following definition is not valid since the fieldA is bigger than field1 and moreover, fieldA also overlaps with field2 and only the first record will be read:

<record name="Record1">
	    <field name="fieldA" width="5" value="AAAAA" identifier="true"/>
	    <field name="fieldB" width="16" />
	    <field name="fieldC" width="16" />
	</record>

	<record name="Record2">
	    <field name="field1" width="3" value="111" identifier="true"/>
	    <field name="field2" width="4" value="2222" identifier="true"/>
	    <field name="field3" width="15" />
	</record>
		

It should be replaced by using the "Replacement based on regular-expressions" Extra Processing as indicated before:

<record name="Record1">
	    <field name="fieldA" width="3" value="AAA" identifier="true"/>
	    <field name="fieldA" width="2" value="AA" identifier="true"/>
	    <field name="fieldB" width="16" />
	    <field name="fieldC" width="16" />
	</record>
	<record name="Record2">
	     <field name="field1" width="3" value="111" identifier="true"/>
	    <field name="field2" width="2" value="22" identifier="true"/>
	    <field name="field2" width="2" value="22" identifier="true"/>
	    <field name="field3" width="15" />
	</record>

We had to split fieldA in two in order to have one fieldA 3 characters long (the same as field1) and another fieldA with the 2 remaining characters.

Then field2 (length 4) was also bigger than the second fieldA (length 2) so we also need to split it in two field2 of 2-character length.

All corresponding identifiers now have the same length (3 and 2) and there is no overlap between them.

It is also possible to add 4 extra settings (label, description, justify & padCharacters) to each field:

<field name="myField" label="My Field" description="My field description" justify="right" padCharacter="x" width="10"/>

* label and description are used to display the message tree.

* justify can be center, left or right.

* padCharacter is the character used to fill an empty space in the field width.

(3) Define the message structure at the end of the mr file:

 <xml>
	    <group name="Transaction" maxOccurs="unbounded">
	          <group name="headers">
	             <record name="header" minOccurs="1" maxOccurs="unbounded"/>
	          </group>
	          <record name="record1" maxOccurs="unbounded"/>
	          <group name="footers">
	             <record name="footer" />
	          </group>
	     </group>
	  </xml>

*Each element can define the minOccurs and the maxOccurs setting with either 0, a positive number or 'unbounded'.

* Records defined in the records simplesect can only appear once in the message structure.

* Records can be grouped using the group element. The name of the group is mandatory.

* Records in a group should be ordered in the same way they appeared in the message.

Sample of a multirecord fixed-length message:
HH00123  AB
HH00045 CDE
R1one  100
R1two  101
R1four 103
FF3
Sample of a multirecord definition file:
<?xml version="1.0" encoding="UTF-8"?>
<multirecord name="mymultirecord" type="fixed-length" recordDelimiter="\r\n" quoteSymbol-character="&quot;" quoteSymbol-escapeSequence="\&quot;" xmlns="http://xmlns.babelway.com/2007/multi-record">
<records>
<record name="header">
<field name="recordType" value="HH" width="2"/>
<field name="header1" width="5" justify="right" padCharacter="0" />
<field name="header2" width="4" justify="right" padCharacter=" " />
</record>
<record name="record1">
   <field name="recordType" value="R1" width="2"/>
   <field name="field1" width="5" label="My field" description="My field Descritpion" />
   <field name="field2" width="3"/>
</record>
<record name="footer">
<field name="recordType" value="FF" width="2" />
<field name="footer1" width="1"/>
</record>
</records>
<xml>
       <group name="Transaction" maxOccurs="unbounded">
          <group name="headers">
             <record name="header" minOccurs="1" maxOccurs="unbounded"/>
          </group>
          <record name="record1" maxOccurs="unbounded"/>
          <group name="footers">
             <record name="footer" />
          </group>
       </group>
    </xml>
</multirecord>

Note: When updating the MultiRecord structure, you must update it from the "MultiRecord definition" file first (not from the message tree) and then by using the "Rerun creation wizard" button, upload the updated "MultiRecord definition" file from the "Message In" or "Message Out".

The following properties are available:

Output Charset

Output charset is used to encode the file.

Input Charset

Input Charset is used to decode the file.

MultiRecord definition

The MultiRecord definition file.

ServingXml (Visible only for Babelway admins)

The ServingXml code generated based on the Multirecord defintion file.

Sample

An example of Multirecord file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Serving Xml

File sample

Below is a sample of Serving Xml file:

<sx:resources xmlns:sx="http://www.servingxml.com/core">

	<sx:service id="countries">
		<sx:serialize>
			<sx:transform>
				<sx:content ref="countries"/>
			</sx:transform>
		</sx:serialize>
	</sx:service>

	<sx:recordContent id="countries">
		<sx:flatFileReader>
			<sx:urlSource url="data/countries.csv"/>
			<sx:flatFile ref="countriesFile"/>
		</sx:flatFileReader>
		<sx:recordMapping ref="countriesToXmlMapping"/>
	</sx:recordContent>

	<sx:flatFile id="countriesFile">
		<sx:flatFileHeader lineCount="1"/>
		<sx:flatFileBody>
			<sx:flatRecordType name="country">
				<sx:fieldDelimiter value=","/>
				<sx:delimitedField name="code"/>
				<sx:delimitedField name="name"/>
			</sx:flatRecordType>
		</sx:flatFileBody>
	</sx:flatFile>

	<sx:recordMapping id="countriesToXmlMapping">
		<countries>
			<sx:onRecord>
				<country>
					<sx:fieldElementMap field="name" element="countryName"/>
					<sx:fieldAttributeMap field="code" attribute="countryCode"/>
				</country>
			</sx:onRecord>
		</countries>
	</sx:recordMapping>

</sx:resources>

Below is a sample of an Xml file:

<?xml version="1.0" encoding="utf-8"?>
<countries>
	<country countryCode="BE">
		<countryName>Belgium</countryName>
	</country>
	<country countryCode="FR">
		<countryName>France</countryName>
	</country>
	<country countryCode="IT">
		<countryName>Italy</countryName>
	</country>
</countries>

The following properties are available:

Output Charset

Output Charset is used to encode the file.

Input Charset

Charset to use to decode the file

XSD

Xsd definition file corresponding to the XML message.

ServingXml

The ServingXml code file.

Sample

An example of FLATFILE handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

TRADACOM Message Format

TRADACOM is an early standard for EDI (Electronic Data Interchange) primarily used in the UK retail sector. It was introduced in 1982 as an implementation of the UN/GTDI syntax, one of the precursors of EDIFACT, and was maintained and extended by the UK Article Numbering Association (now called GS1 UK).

As Babelway supports all TRADACOM transaction sets of the TRADACOM standard, you can use any of them in your own gateway setup.

Babelway supports all following TRADACOM documents:

1.ACKHDR, ACKMNT, ACKTLR, AVLDET, AVLHDR, AVLTLR, CORDER, CORHDR, CORTLR, CRAHDR, CRAINF, CRATLR, CREDIT, CREHDR, CRETLR, CUSHDR, CUSINF, CUSTLR, DELHDR, DELIVR, DELTLR, DLCDET, DLCHDR, DLCTLR, DRAHDR, DRAINF, DRATLR, EXCHDR, EXCINF, EXCTLR, GENHDR, GENRAL, GENTLR, INVFIL, INVOIC, INVTLR, LPRDET, LPRHDR, LPRTLR, ORDERS, ORDHDR, ORDTLR, PAYHDR, PAYINF, PAYTLR, PICHDR, PICKER, PICTLR, PPRDET, PPRHDR, PPRTLR, PRIHDR, PRIINF, PRITLR, PROHDR, PROINF, PROINF, PROTLR, RSGRSG, SADDET, SADHDR, SADTLR, SNPHDR, SNPHDR, SNPSTS, SNPTLR, SRMHDR, SRMINF, SRMTLR, UCNDET, UCNHDR, UCNTLR, UCNTLR, UPLHDR, UPLIFT, UPLTLR, UTLBIL, UTLHDR, UTLTLR, UVATLR, VATTLR

File sample

Below is a sample of TRADACOM invoice file.

STX=ANAA:1+501xxxxxxxxxx:name+501xxxxxxxxxx:NAME SERVICES (U.K.)LTD.+040316:184411+00001++INVTES'
MHD=1+INVFIL:9'
TYP=0700+INVOICES'
SDT=501xxxxxxxxxx:053752CF01STDD+Tenprl Fnsrjnl Sbbqfreivpr+221 UvyyunyyRoad:Yvfohea:Co. Antrim:N.Ireland:OG27 5WQ+412557175'
CDT=501xxxxxxxxx+NAMESERVICES (U.K.) LTD.+Cnexynaqf Pbheg:OvezvatunzTerng Cnex:Ehorel:Birmingham:OG45 9CM'
FIL=1+1+040316'
FDT=040302+040302'
MTR=7'
MHD=2+INVOIC:9'
CLO=0000000100007: ++PNEEVPX GOLF CLUB:ABEGU ROAD:PNEEVPX SRETHF::OG388YC'
IRF=01000589M+040302+040302'
ODD=1+::040302+:040302'
ILD=1+1+:8408++:31266+0+2:2500:KG+54300+135800+Z+0+++SILVERSIDE 1-5 KG'
STL=1+Z+0+0+1358+++++1358++0+0++1358'
TLR=1+1358+++++1358++1358+0++1358'
MTR=8'
MHD=3+VATTLR:9'
VRS=1+Z+0+1358+1358+0+1358+1358'
MTR=3'
MHD=4+INVTLR:9'
TOT=1358+1358+0+1358+1358+1'
MTR=3'
MHD=5+RSGRSG:2'
RSG=00001+501xxxxxxxxxx'
MTR=3'
END=5'

The following properties are available:

Output Charset

Charset used to encode/decode the file.

Input Charset

Charset used to encode/decode the file.

Sample

An example of TRADACOM file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

JSON Message Format

JSON Wizard screen allows you to define your JSON message format according to your own file format.

JSON (JavaScript Object Notation) is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for many languages. JSON format is often used for serializing and transmitting structured data for web applications.

The following properties are available:

Sample

An example of JSON file handled by this message definition.

To define a message in JSON format, select an existing template or make a copy of the generic JSON wizard in the catalogue and the following screen will be displayed.

File sample

Below is a sample of JSON file:

	{
	"id": "0001",
	"type": "donut",
	"name": "Cake",
	"ppu": 0.55,
	"batters":
		{
			"batter":
				[
					{ "id": "1001", "type": "Regular" },
					{ "id": "1002", "type": "Chocolate" },
					{ "id": "1003", "type": "Blueberry" },
					{ "id": "1004", "type": "Devil's Food" }
				]
		},
	"topping":
		[
			{ "id": "5001", "type": "None" },
			{ "id": "5002", "type": "Glazed" },
			{ "id": "5005", "type": "Sugar" },
			{ "id": "5007", "type": "Powdered Sugar" },
			{ "id": "5006", "type": "Chocolate with Sprinkles" },
			{ "id": "5003", "type": "Chocolate" },
			{ "id": "5004", "type": "Maple" }
		]
	}
		

The following properties are available:

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Note: Regarding the Messages Out of type JSON each field in the last level of the tree will have a "type" attribute that will store the type to this field that will be used to validate the generated output message.

For example: Below is the tree of the above mentioned JSON file. The "type" attribute for the field "ppu" is float. This means that the generated output message for the "ppu" field will be validated if its value is a float value, as shown below:

Message Out of type JSON

Figure 4.149. Message Out of type JSON


If the input message for this field has a value of "75" or "8.5", the messages will be processed successfully. If the message has "Cake" value, which is a string, then the processed message will fail in error: Unparseable number: "Cake". This is because the value of "Cake" is string, not a float.

Below are the values that can be used in the "type" attribute (int, float, string, boolean, array).

Rest Message Format

REST message definition allows you to define easily a typical response for a REST request. The main particularity of this message definition is that it can generate json, xml or csv responses based on the request. This allows to define easily rest apis that supports the 3 formats with just one channel.

The output format (json, xml or csv) will be chosen according to the metadata rest_output_format. Note that this metadata is automatically set if you use a REST Gateway IN in your channel.

The following properties are available:

CSV delimiter character

The character that is used to separate the fields, when generating CSVs.

Quote character

The character that is used to quote the special characters, when generating CSVs.

Headers

Tells if the csv files must begin with a line that contains the headers of the columns.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

In order to use them in any output format, there are some limitations about the message definition tree that you can use:

  • Only the first two levels of the tree is used when asking for CSV output format. If the tree has at least 2 levels (beside the root node), the first level tags will be mapped into rows of the CSV, and the second level into columns. If the tree has only one level, fields will be only mapped into columns.
  • If you use a CSV with headers, headers will be automatically calculated based on the element names of the first row.

Here is an example of an output file in the 3 formats:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <country><code>BE</code><name>Belgium</name></country>
  <country><code>FR</code><name>France</name></country>
</root>
[
  "country" : {
    "code" : "BE",
    "name" : "Belgium"
  },
  "country" : {
    "code" : "FR",
    "name" : "France"
  }
]
		
code,name
BE,Belgium
FR,France
		

SAP IDOC Message Format

SAP IDOC are the well-known SAP interchange format. You can obtain the definition parser directly from SAP. In order to do this, select the transaction WE63. Select Basic type or Extended Type according IDoc extensions usage.

IDOC parser sample

Below is a sample of SAP IDOC file:

BEGIN_RECORD_SECTION
   BEGIN_CONTROL_RECORD
     BEGIN_FIELDS
       NAME                TABNAM
       TEXT                Name of external structure
       TYPE                CHARACTER
       LENGTH              000010
       FIELD_POS           0001
       CHARACTER_FIRST     000001
       CHARACTER_LAST      000010

       NAME                MANDT
       TEXT                Client
       TYPE                CHARACTER
       LENGTH              000003
       FIELD_POS           0002
       CHARACTER_FIRST     000011
       CHARACTER_LAST      000013

       NAME                DOCNUM
       TEXT                IDoc number
       TYPE                CHARACTER
       LENGTH              000016
       FIELD_POS           0003
       CHARACTER_FIRST     000014
       CHARACTER_LAST      000029

       NAME                DOCREL
	   ...
		

The following properties are available:

Idoc parser

The Idoc parser.

Output Charset

Output Charset is used to encode the file.

Input Charset

Input Charset is used to decode the file..

Sample

An example of SAP IDOC file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Not Defined Message Format

Not Defined message format is used when there is no need to define the format of Message In and Out, because no processing will be performed on it as no change is required.

For formats not natively supported by Babelway: Advanced users have the option to upload programmatic code that provides support to proprietary message formats, such as specific binary ERP format (for example idoc of SAP...)

If the Message In format is "Not defined", so should be the Message Out. Otherwise the output may return an unexpected result or an empty message.

Usually, this setting is used in combination with No Transformation in a channel that simply transfers an unchanged and unprocessed message from one gateway to another.

Output Character Set

Output Charset is used to encode the file. Leave empty to keep the file as is.

Input Character Set

Input Charset is used to decode the file. Leave empty to keep the file as is.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

Generic Message Format

Generic Wizard screen allows you to define your generic message format according to your own file format.

The following properties are available:

Output Charset

Output Charset is used to encode the file.

Input Charset

Input Charset is used to decode the file.

ConverterClass

ConverterClass is used to parse the file.

Sample

An example of the file handled by this message definition.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

UBL

OASIS Universal Business Language (UBL) is the product of an international effort to define a royalty-free library of standard electronic XML business documents such as purchase orders and invoices.

File sample

Below is a sample of UBL file:

<?xml version="1.0" encoding="UTF-8"?>
<Catalogue xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2" xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 ../UBL%202.1%20schema/maindoc/UBL-Catalogue-2.1.xsd">
	<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
	<cbc:CustomizationID>urn:www.cenbii.eu:transaction:biicoretrdm019:ver2.0:extended:urn:www.peppol.eu:bis:peppol1a:ver2.0</cbc:CustomizationID>
	<cbc:ProfileID>urn:www.cenbii.eu:profile:bii01:ver2.0</cbc:ProfileID>
	<cbc:ID>1234</cbc:ID>
	<cbc:ActionCode listID="ACTIONCODE:PEPPOL">Add</cbc:ActionCode>
	<cbc:Name>Peppol Catalogue</cbc:Name>
	<cbc:IssueDate>2013-08-01</cbc:IssueDate>
	<cbc:VersionID>1</cbc:VersionID>
	<cac:ValidityPeriod>
		<cbc:StartDate>2013-09-01</cbc:StartDate>
		<cbc:EndDate>2014-12-31</cbc:EndDate>
	</cac:ValidityPeriod>
	<cac:ReferencedContract>
		<cbc:ID>3299-8RA</cbc:ID>
		<cbc:ContractType>Framework</cbc:ContractType>
	</cac:ReferencedContract>
	<cac:ProviderParty>
		<cac:PartyIdentification>
			<cbc:ID schemeID="GLN">579000123002</cbc:ID>
		</cac:PartyIdentification>
		<cac:PartyName>
			<cbc:Name>Office AS</cbc:Name>
		</cac:PartyName>
	</cac:ProviderParty>
	<cac:ReceiverParty>
		<cbc:EndpointID schemeID="NO:ORGNR">99156827</cbc:EndpointID>
		<cac:PartyIdentification>
			<cbc:ID schemeID="NO:ORGNR">99572527</cbc:ID>
		</cac:PartyIdentification>
		<cac:PartyName>
			<cbc:Name>DIFI</cbc:Name>
		</cac:PartyName>
	</cac:ReceiverParty>
	<cac:CatalogueLine>
		<cbc:ID>1</cbc:ID>
		<cbc:ActionCode listID="ACTIONCODE:BII2">Add</cbc:ActionCode>
		<cbc:OrderableIndicator>true</cbc:OrderableIndicator>
		<cbc:OrderableUnit>BX</cbc:OrderableUnit>
		<cbc:OrderQuantityIncrementNumeric>1</cbc:OrderQuantityIncrementNumeric>
		<cbc:MinimumOrderQuantity>1</cbc:MinimumOrderQuantity>
		<cac:RequiredItemLocationQuantity>
			<cac:Price>
				<cbc:PriceAmount currencyID="NOK">20.00</cbc:PriceAmount>
			</cac:Price>
		</cac:RequiredItemLocationQuantity>
		<cac:Item>
			<cbc:Description>Ballpoint pen comes in different colours and tip sizes</cbc:Description>
			...

The following properties are available:

Sample

An example of UBL file handled by this message definition.

Document type

Type and version of the UBL document. Automatically detected from the provided sample

Profile and customization

UBL Profile and UBL customization reference used to validate the UBL document. Automatically detected from the provided sample

Disable UBL Validation

Some business rules related to the document profile and customization are automatically validated. Click here to disable this validation.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

By using UBL message definition, you will get benefit of UBL XSD validation and schematron validation for some of the UBL Profile and Customization (OpenPEPPOL, ePrior...)

RosettaNet

The RosettaNet standard is based on XML and defines message guidelines, interfaces for business processes, and implementation frameworks for interactions between companies. Mostly addressed is the supply chain area, but also manufacturing, product and material data, and service processes are within scope.

The following properties are available:

RosettaNet process type

The message definition will represent a PIP action or a RNIF signal. Please select it in the list.

Disable Rosetta net Validation

Some business rules related to the process type are automatically validated. Click here to disable this validation.

Filename

The filename of the output message [with extension if applicable]. When empty, we apply the default settings.

4.3.6. Common Message Definition Properties

Message Definition

This file is Babelway's internal representation of your message definition tree. You can view and modify its contents through here for troubleshooting purposes. However, we highly recommend you use the graphical editor (tree) as this guarantees that all your changes are supported by the platform.

Validation Mode

Upon processing a message, the platform will check that it matches the description configured in your message definition tree. The validation mode describes how strictly messages need to comply with your definition in order to be processed.

By default, loose validation is selected for all new message definitions. The validation modes differ in the way they handle unrecognized fields and loops:

Strict

  • Field Values: Mandatory fields and all value restrictions configured in your message definition tree will be checked.

  • Structure: Unrecognized fields will trigger an error.

  • Loops: If applicable, checks that there aren't too few or too many elements in the loop.

Loose

  • Field Values: Mandatory fields and all value restrictions configured in your message definition tree will be checked.

  • Structure: Unrecognized fields will be ignored and the message will be processed.

  • Loops: The number of elements in loops aren't checked.

Compatibility (Deprecated)

This mode is deprecated, please contact support for more information.

4.3.7. Support for 997 Acknowledgements

997 is the functional acknowledgement in X12. It will typically:

  • indicate if the original X12 message is structurally valid or not
  • optionally describe the errors found (data element too long, invalid control numbers etc)
  • provide an acknowledgement code indicating if the message was accepted or not.

Sending Out 997 Acknowledgements

We provide the possibility to automatically generate 997s upon reception of an X12 message. Hence, if the message passed X12 validation (the acknowledgement is sent before checking the message against your message definition) we will send a positive acknowledgement. If the X12 validation failed we will try to construct a matching 997 describing the error. Note that depending on the nature of the error this may not succeed: we do not recover from certain structural errors. If the acknowledgement creation fails, then the message will be set in error and will indicate the failure of generating a 997. If the original message contains an FA functional group, then it will be ignored. If the interchange only contains functional acknowledgement groups no message will be generated at all.

Ultimately, when you choose to send out an acknowledgement, the system needs to know which gateway IN to inject it into. This configuration is available on the X12 message definition properties page:

X12 Message Definition Page

Figure 4.150. X12 Message Definition Page


A wizard can construct the separate channel which will send out the acknowledgements:

X12 Choose Gateway

Figure 4.151. X12 Choose Gateway


You can choose to reuse existing components or to build a completely new channel.

X12 Choose Gateway

Figure 4.152. X12 Choose Gateway


Babelway's 997s contain one functional group and transaction set per functional group found in the original message. Note that in Babelway a message either passes entirely or not at all. Thus, if you include multiple messages within an interchange and one of them is in error, the 997 produced will indicate all items are in error.

Below you will find the error codes we support:

AK9 and AK5

A - message is accepted

E - message is accepted but errors were noted. Typically, if you choose not to validate segments or values but that errors were identified then we will send out this status.

R - message is rejected.

AK9 - Functional group errors

4 Group control number in the functional group header and trailer do not agree

5 Number of included transaction sets does not match actual count

AK5 - Transaction set errors

3 Transaction set control number in header and trailer do not match

4 Number of included segments does not match actual count

5 One or more segments in error

AK3 - Segment errors

5 Segment exceeds maximum use

8 Segment has data element errors

AK4 - Data element errors

1 Mandatory data element missing

2 Conditional required data element missing

3 Too many data elements

5 Data element is too long

6 Invalid character in data element

8 Invalid date

9 Invalid time

Expecting 997 Acknowledgements

On an X12 message definition OUT, you can choose for a message to "expect an acknowledgement". This means that after the message is sent out, it is only flagged in success if a successful 997 is received within a timeframe configured in your message definition. It will be set in error if after the timeout period no 997 is received or if a 997 indicated that the message was rejected (in part or fully).

This feature requires a matching channel capable of receiving messages from the partner to whom you're sending X12 messages. Additionnally, this channel needs to be configured to identify and match incoming 997s with pending messages.

X12 Message Definition Page

Figure 4.153. X12 Message Definition Page


A wizard assists you in guaranteeing that you have the right setup to identify matching acknowledgements. It allows you to configure a new gateway IN for your partner. If you already have a gateway configured to receive messages from this partner you can select the existing gateway and we will configure an additional channel around it. If you already have a channel starting with this gateway capable of handling 997s we won't create additional components and will simply indicate that an existing channel will handle these incoming acknowledgements.

X12 Choose Gateway

Figure 4.154. X12 Choose Gateway


4.3.8. Choosing an X12 (EDI) Communication ID

If this is your first time exchanging X12 documents, you may be wondering which communication identifiers to supply your trading partner. Identifiers can be requested for ISA (interchange envelope) and GS segments (functional group) and can differ between production and test transactions. So, you can have between 1 and 4 identifiers depending on your trading partner's requirements or your EDI needs.

If you can avoid it, for simplicity, we recommend using the same identifiers for both ISA and GS segments. For test and production messages however, it can either simplify or complicate your setup to use the same identifiers both ways. For example, if you intend on handling test and production messages in separate channels, choosing different identifiers can be a good way to route messages one way or another.

An X12 communication ID involves two parts:

  • A 2 character code indicating what your identifier represents. X12 refers to this code as the qualifier.
  • A maximum 15 character free text (but stick to letters and numbers) which is the ID itself.

Although X12 authorizes all sorts of identifiers. These are the most common:

  • ZZ - Mutually defined: This one is the simplest. You will typically use your company name. For most protocols, all you need is for this identifier to be unique among your trading partner's partners. However, if you decide to register on a VAN (value added network) your identifier will need to be unique accross more or less the north American market. And depending on your company name, this may not be the best identifier choice. Also, note that you should be careful about any special characters you would use in your identifier since they could end up being used as separators in your dealings with trading partners and may end up involuntarily breaking the structure of your message.
  • 01 - DUNS: Most common especially among retailers and naturally unique.
  • 12 - Phone: This one is naturally unique as well although not as telling from a human point of view.

For example, if Babelway were to opt for a mutually defined identifier, our ISA might look like this (note the "ZZ*BABELWAY"):

 ISA*59*          *59*          *12*9419442114     *ZZ*BABELWAY       *171594*1924*|*59423*159595912*2*P*>~

This is the list of codes for X12 version 4010. Note that this list can differ slightly depending on the X12 standard. It's possible earlier versions don't support some of these codes.

01 - Duns (Dun and Bradstreet)

02 - SCAC (Standard Carrier Alpha Code)

03 - FMC (Federal Maritime Commission)

04 - IATA (International Air Transport Association)

08 - UCC EDI Communications ID (Comm ID)

09 - X.121 (CCITT)

10 - Department of Defense (DoD) Activity Address Code

11 - DEA (Drug Enforcement Administration)

12 - Phone (Telephone Companies)

13 - UCS Code (The UCS Code is a Code Used for UCS Transmissions; it includes the Area Code and Telephone Number of a Modem; it Does Not Include Punctuation, Blanks or Access Code)

14 - Duns Plus Suffix

15 - Petroleum Accountants Society of Canada Company Code

16 - Duns Number With 4-Character Suffix

17 - American Bankers Association (ABA) Transit Routing Number (Including Check Digit, 9 Digit)

18 - Association of American Railroads (AAR) Standard Distribution Code

19 - EDI Council of Australia (EDICA) Communications ID Number (COMM ID)

20 - Health Industry Number (HIN)

21 - Integrated Postsecondary Education Data System, or (IPEDS)

22 - Federal Interagency Commission on Education, or FICE

23 - National Center for Education Statistics Common Core of Data 12-Digit Number for Pre- K-Grade 12 Institutes, or NCES

24 - The College Board's Admission Testing Program 4- Digit Code of Postsecondary Institutes, or ATP

25 - American College Testing Program 4-Digit Code of Postsecondary Institutions, or ACT

26 - Statistics of Canada List of Postsecondary Institutions

27 - Carrier Identification Number as assigned by Health Care Financing Administration (HCFA)

28 - Fiscal Intermediary Identification Number as assigned by Health Care Financing Administration (HCFA)

29 - Medicare Provider and Supplier Identification Number as assigned by Health Care Financing Administration (HCFA)

30 - U.S. Federal Tax Identification Number

31 Jurisdiction Identification Number Plus 4 as assigned by the International Association of Industrial Accident Boards and Commissions (IAIABC)

32 - U.S. Federal Employer Identification Number (FEIN) 33 National Association of Insurance Commissioners Company Code (NAIC)

34 - Medicaid Provider and Supplier Identification Number as assigned by individual State Medicaid Agencies in conjunction with Health Care Financing Administration (HCFA)

35 - Statistics Canada Canadian College Student Information System Institution Codes

36 - Statistics Canada University Student Information System Institution Codes

37 - Society of Property Information Compilers and Analysts

AM - Association Mexicana del Codigo de Producto (AMECOP) Communication ID

NR - National Retail Merchants Association (NRMA) - Assigned

SN - Standard Address Number

ZZ - Mutually Defined

4.4. Transformations

This section covers all sections related to transformations.

Transformations are used to convert a message in into a message out.

The transformation is the place in Babelway where you indicate how we should convert your incoming message into your message out. It contains all the rules indicating which incoming message fields should populate your outgoing message and how (conditional values, calculations, conversions etc).

The Babelway application supports 3 ways of defining a transformation.

4.4.1. Transformations list

The list of transformations screen shows you all the transformations defined in your environment, even if they are not used in any channel. From here, you can easily edit them, or create new ones.

This screen is accessible by clicking on the Channels menu, then on the Transformations sub-menu

The list can contain the following columns:

Name

A name that identifies the channel.

Description

A free description for the channel.

Message in

The message is used as input for the transformation.

Message out

The message in produced as output of the transformation.

Created on

The date and time when the channel was created.

Last updated on

The date and time of the last modification that affected the channel.

For more information about the behavior of the grid, and how to make searches, see the grid section of the help.

You can click on a line to view the details of the associated transformation, or edit it. See transformation details.

The Create transformation action button allows you to create new transformations.

4.4.2. Creation of a transformation

To create a transformation, just choose its type, and click on Create transformation

You can find all details about every type of transformation in the corresponding sections :

Gateway creation - Reuse confirmation

Figure 4.155. Gateway creation - Reuse confirmation


4.4.3. Transformation detail

General

The general tab contains the general information of the gateway, and offers actions that act on the whole transformation.

Message IN

The message definition of the input message related to this transformation.

Message OUT

The message definition of the output message related to this transformation.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free text field that you can set and/or modify used in addition to the element name to help you identify your element usage and/or function.

Id

A unique identifier automatically set by the Babelway platform.

Created On

Date and time of element creation.

Last Updated On

Date and time of last element configuration update.

Mapping / xslt

Following the type of transformation, these tabs define all the rules that must be applied to convert the message in to the message out.

See Drag and Drop Transformation in order to define the transformation with the visual editor.

See Xslt Transformation in order to define the transformation by writing an xslt.

Related items

This tab contains quick links to many other elements related to this gateway.

Associated message definitions

The message definitions related to this transformation.

Using channels

All the channels that use this element.

Parent

The parent is the element from which the element has been copied.

Children

The children is the element which is a copy of the current element.

Change Log

This tab shows the complete history of changes on this gateway, and allows you to revert to a past version. For more details, see the change log section.

4.4.4. Drag and Drop Transformation

Drag and Drop transformation visual editor enables to easily define the transformation between your source message and your target message.

This transformation visual editor is divided into the following zones:

  • Top bar allows you to edit all of your formulas, when a mapping rule is selected. In other circumstances, it just guides you with contextual help.

  • Left pane displays the structure of the message in.

  • Right pane displays the structure of the message out.

  • At the bottom of the component, you have links for global actions (save the mapping, or run a test case).

Drag and drop transformation visual editor

Figure 4.156. Drag and drop transformation visual editor


Note

The editor has been optimized to use all the available space of your window. To take full profit of it, we recommend that you maximize the size of your window, especially when you work with big message definitions.

4.4.4.1. Viewing and selecting mapping rules

An icon (chain mark) shows, at a glance, all the fields that are used in the transformation.

To see how a field is used in the transformation, you can simply click on it.

Click on mapped field

If you click on a node that is already used in the transformation, the nodes involved in the transformation rule are clearly showed on the screen. The formula bar will show the transformation formula, and allow to edit it. For more information about how to edit a transformation formula, see the section about how to edit formulas..

Visual editor when a mapping is selected

Figure 4.157. Visual editor when a mapping is selected


The lines enable you to immediately see all the involved nodes, even when they are combined in a formula.

Visual editor when a mapping is selected (multiple inputs)

Figure 4.158. Visual editor when a mapping is selected (multiple inputs)


Click on field mapped more than once.

If you clicked on a field that is used in more than one mapping rule, system will show you all the mapping rules, and ask you to choose the one you want to edit.

Mapping choice

Figure 4.159. Mapping choice


Moving mouse over one of the mapping lines enables you to see all the details of the given mapping. To select it and edit it, just click on the line.

Mapping choice (highlighted)

Figure 4.160. Mapping choice (highlighted)


Click on not mapped field.

If you clicked on a field that is not used in the mapping, you will just be notified of it, and enabled to initiate a new mapping rule for it.

Selection of not mapped field

Figure 4.161. Selection of not mapped field


Iterate through mappings..

It is also possible to iterate through all mappings using the arrows at the top right of the target tree zone.

Mapping iteration

Figure 4.162. Mapping iteration


Starting from the currently selected node in the target tree (or at the top of the tree if no node is selected), the right arrow finds and selects the next mapped node. Same way as the left arrow does the previous mapped node.

4.4.4.2. Nodes mapping

You can initiate new mappings via the following methods :

Drag-and-drop

Just drag your source field to the target field. A simple mapping will be defined. This mapping states that the target field must be filled with the value that was in the source field. You can then update the formula (see the section about how to edit formulas).. When you are dragging your source field, all compatible target fields are highlighted.

New mapping (drag-and-drop)

Figure 4.163. New mapping (drag-and-drop)


Formula bar

Select your target field, then start typing your formula in the formula bar (see the section about how to edit formulas). When you need source fields in your formula, you can just drag-and-drop them in the formula bar.

New mapping (via formula bar)

Figure 4.164. New mapping (via formula bar)


4.4.4.3. Edit formula

Formula bar

By default, when you just make your mappings by dragging and dropping your source fields to the corresponding target fields, the values are associated without any transformation.

Formula bar

Figure 4.165. Formula bar


For advanced users, the formula language is xpath, and you can use whatever xpath function to create your formula, even if it is not documented in the function library. Differences of pure xpath formula are:

  • You can refer to source fields by just dragging and dropping them in the formula (a summary of the node will be displayed).

  • All the documented functions, even the extensions specific to Babelway, can be called without a namespace prefix.

Easy Function Editor

Easy Function Editor can help you writing your formulas. It opens in two situations:

  • When you write a function call in the formula bar. And it shows you help of the function you are using.

  • When you click on the "Easy Function Editor" link, at the right of the formula bar.

In any case, the help relates to the cursor position, as it is about the called function at this precise cursor position. You can use both the formula bar or the Easy Function Editor to write your functions and their parameters. All changes you make in the editor panel are automatically and immediately reflected in the formula bar, and vice-versa.

While typing a function name, the formula editor just shows all the functions in the library that match the prefix you type. You can select the proposal by just clicking on it. Then the name will be completed in your formula, and the editor will allow you to fill the parameters. You can also use the following keyboard shortcuts:

  • Enter: Select the currently highlighted proposal.

  • Down arrow: Select the next proposal.

  • Up arrow: Select the previous proposal.

  • Escape: Hide the function editor.

Formula bar - choosing your function

Figure 4.166. Formula bar - choosing your function


While defining the parameters of a function, the formula editor shows you all the documentation about the function (description, examples, ...), and allows you to easily define the parameters.

Formula bar - filling parameters

Figure 4.167. Formula bar - filling parameters


Whenever possible, the function editor shows additional help to allow you to easily define the function parameters. In the following example, using a lookup table, the editor will allow you to select your lookup table and its columns in a dropdown menu that its content depend on your environment.

Formula bar - filling parameters

Figure 4.168. Formula bar - filling parameters


Note: When you have used the lookup table name in the "lookupTable" field then the lookup table name was changed, the processed message will fail in error due to unknown lookup table name. But using the lookup table ID instead will process the message successfully then.

Finally, When you are planning to duplicate channels from one environment to another then the best is to use the lookup table name in the lookup table function, And when you will use this channel in one environment only then you can use the lookup table ID in the lookup table function.

The online help describes many functions, and helps you pick parameters for all of them. These functions mostly covers your needs. And should you need more search clarification, please do not hesitate to ask our support: support@babelway.com

Formula bar - functions list

Figure 4.169. Formula bar - functions list


Colorization of the formulas

To ease reading and error detecting of the formulas, they are colorized.

Colorization of the formulas

Figure 4.170. Colorization of the formulas


  • Recognized function names are displayed in italic light blue.

  • String constants are displayed in dark blue.

  • Other elements of the formula are displayed in black.

Validation of your formulas

If you want to be sure that your formula's syntax is correct (a valid xpath expression), you can click the validate icon at the end the formula bar.

Validate formula

Figure 4.171. Validate formula


If the formula is correct, the icon will become green.

Validate formula - OK

Figure 4.172. Validate formula - OK


If not, it will become red, and a summary of the error will be available when you move the mouse on the icon.

Validate formula - OK

Figure 4.173. Validate formula - OK


The validation is also accessible by just pressing the Enter key.

Deleting a formula

To delete a formula, so that the target node is not mapped anymore, you can:

  • Empty the formula bar.

  • Click on the X icon at the end of the formula bar.

Reset formula

Figure 4.174. Reset formula


Note: The "Validate your formula" button only validate the formula's syntax and not the formula's value type of the parameters and arguments.

4.4.4.4. Understanding functions

Functions are used in formulas to calculate the wanted output starting from your input fields.

Introduction

A function is an operation that takes values as input (the parameters), and computes an output value (the result). Functions can be written for any calculation you can think of. They will be identified by their name, and you have to know which settings they expect to be able to call them.

A function can be called in a formula by just typing the function name, an opening parentheses, the settings (separated by commas), and a closing parentheses. You can find some examples below :

max((3,5)) -> 5
min((3,5)) -> 3
lower-case('BABELWAY') -> 'babelway'
concat('First ', 'example')  -> 'First example'
string-length('Babelway') -> 8
changeDateTimeFormat('2022-01-31', 'yyyy-MM-dd', 'yyyyMMdd') -> '20220131

Function elements

The Babelway online help will give you immediate access to all elements that describe the function.

Function elements

Figure 4.175. Function elements


  1. The function name identifies the function. It is what you have to write before the opening parenthesis to call this function.

  2. The library just indicates the provenance of this method. It can be one of the following :

    • XSL : This function is just standard XSL. If you know XSL, it is exactly the function that you know. Also, every help you can find on the Internet about this function is valid.

    • Babelway : This function is a Babelway-specific extension to xsl. You have to read the Babelway online help to know about this function, or call our support if you need more info.

    • User : This function has been defined by you, in the context of this mapping. You can freely update or delete it, according to your needs.

  3. The description describes what the function does, and what it is intended for.

  4. The result description describes the value that is returned by the function, including its type (see following section for more information about types).

  5. The parameters section shows all information about the parameters of the function.

    1. The name of the parameter. It is just one word that should make you understand the parameter.

    2. The field for the value for this parameter. You can type the value into this field.

    3. More help about the parameter. You have to select the parameter for which you want to see this help. Help starts again with the function name.

    4. Type of the parameters (see following section for more information about types), and indication if this parameter is mandatory (the default) or not.

    5. More info to help you understand this parameter, and how you have to fill it.

  6. The examples show you some function calls to the function, with the result. It should clarify how the function works.

Parameter types.

In every function, the parameters and the return type are typed objects (a string, a number, ...).

The reason for this is that functions can not operate on any parameter, but have requirements on them to be able to operate. As an example, a function that would multiply its parameters will require that the parameters are numbers. It will be able to calculate 3*5, but not 3 * 'abc'.

The type of the parameters summarizes most of the constraints on the parameters. It will also allow to detect immediately that the function can not work, because the parameter types are not the expected ones.

The following types are used in the functions of the mapping editor.

  • String. It is the most basic type. It is just a sequence of characters, without any more constraint. When you write a String constant into an xpath expression, you have to enclose it with single quotes. Ex : 'abc', 'string example'. Also, all the fields coming from your source document are Strings. You can therefore just drag-and-drop them when you need a String parameter.

  • Integer. An integer is a number without decimals, like 2 or 17 (but not 3.5). When you write an Integer constant into an xpath expression, it must be written as is, without enclosing it with a delimiter. Ex : max(3, 5)

  • Boolean. A Boolean either true or false. When you write a Boolean constant into a xpath expression, it must be written as is, without enclosing it with a delimiter. Ex : true()

  • Number. A number can contain any numeric value, like 2 or 3.5 . The best way to get a Number value from its representation is to use the function toNumber. Ex: toNumber('3.5'). You can also write Numbers directly in your xpath expressions, without enclosing quotes. Ex: 3.5 .

  • DateTime. A date is an instant, like '02/06/2017 13:25:17.645'. As for Dates, you can not directly write DateTime constants in an xpath expression. They can only be returned by other functions, like currentDateTime(), or parseDateTime(representation, format)

  • DateTimeFormat. A DateTimeFormat is a String that is used to represent the format of a DateTime. Besides being a String, it must comply to the same requirements as DateFormat, that are fully described in http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html. Some examples are 'yyyy-MM-dd hh:mm:ss', or 'ddMMyyhhmm'.

  • LookupTable. A LookupTable parameter must refer to an existing LookupTable in your environment. You can write a reference to a LookupTable directly in a formula by writing a string constant containing the name (or the id) of the lookup table ('stocks', 'clients', ...). In the Easy Function Editor, you can just choose your table in a dropdown menu.

  • LookupTableColumn. A LookupTableColumn parameter must refer to a column of a specific LookupTable. You can write a reference to a LookupTableColumn directly in a formula by writing a string constant containing the name (or the index) of the column ('name', 'code', ...). In the Easy Function Editor, you can just choose your column in a dropdown menu.

  • Node. A single xml element. This type will be used to represent a single xml node from your source document or from an additional xml source. To complete it, you should drag-and-drop a simple node to the field or use an xpath expression referring to a single Node.

  • NodeList. A list of xml elements. This type will be used to represent a list of nodes in your source document. In the Easy Function Editor, you can just choose your column in a dropdown menu.g-and-drop a loop node to the field.

  • Object. Object is a special value meaning that anything is accepted. You can use Strings, Integers, Dates, ...

To illustrate the importance of types, take a deeper look to the differences between the functions changeDateTimeFormat and formatDateTime. changeDateTimeFormat will take the input date as a String. But it doesn't contain enough information to interpret it as a DateTime. Therefore, it also takes another parameter that is the format of this representation.

changeDateTimeFormat('2022-01-31', 'yyyy-MM-dd', 'yyyyMMdd')

formatDateTime will take the input date by just taking one DateTime parameter.

formatDateTime(currentDateTime(), 'yyyyMMdd')
formatDateTime(parseDateTime('2022-01-31', 'yyyy-MM-dd'), 'yyyyMMdd')

If you just want to change the format of a date contained in one of your source fields, changeDateTimeFormat seems to be exactly the ideal method. But passing by the DateTime objects will just be easier (and for many cases the only way) if you need to make more complex calculations.

formatDateTime(addDays(currentDateTime(), 7), 'yyyyMMdd')

In any case, you have to realize that the following calls would just be WRONG :

formatDateTime('2022-01-31', 'yyyyMMdd')    // formatDateTime expects a DateTime as first parameter, not a String.
changeDateTimeFormat(currentDate(), 'yyyy-MM-dd', 'yyyyMMdd')     // changeDateTimeFormat expects a String as first parameter, not a DateTime.

4.4.4.5. User-defined functions

Babelway offers many functions to make the calculations in your mappings. These functions should be enough for most of your needs. Anyway, in some situations, you could want to define additional functions, to simplify your mappings.

Specialize existing function to specific needs

The first reason why you could want to create additional functions is to specialize existing functions to your context.

As an example, let's suppose that you must convert in your mapping many dates, and that the input format is always ddMMyyyy or dd/MM/yyyy, and the output format must always be yyyyMMdd. In Babelway, this can be achieved easily by using the function changeDateTimeFormat.

changeDateTimeFormat([yourField], 'ddMMyyyy,dd/MM/yyyy', 'yyyyMMdd')

Anyway, having to type the input and output formats in every of these formulas can be tedious, and it would be easier to be able to write

convertDate([yourField])

This can be achieved by defining a function that suits this specific need :

convertDate(x) = changeDateTimeFormat(x, 'ddMMyyyy,dd/MM/yyyy', 'yyyyMMdd')

This scenario of specializing a method can be used in many situations : accessing a lookup table, formatting fields, ...

stock(x) = lookupTableValue('stocks', 'productId', 'stock', x)
pad(x) = padLeft(x, 20, ' ')
Simplify complex formulas

Another situation where user functions are useful is when you have to write very complex (or long) formulas. Defining functions can simplify greatly the writing by allowing to factorize (and name) parts of the formulas.

In the following example, defining the intermediate function nextWeekDay has greatly improved the readability of the formula.

[DeliveryDate] = formatDateTime(nextWeekDay(nextWeekDay(currentDateTime())), 'yyyyMMdd') 
nextWeekDay(day) = addDays($day, IF(formatDateTime($day, 'E')='Fri', 3, IF(formatDateTime($day, 'E')='Sat', 2, 1)))

The improvement in readability will increase with the complexity of the formula you have to write.

Definition in the interface

You have the ability to create your function from the screen with search of functions, in the function library.

Defining user function (1)

Figure 4.176. Defining user function (1)


When the link is clicked, you have access to a screen that will ask you for all the details of functions.

Defining user function (2)

Figure 4.177. Defining user function (2)


All the concepts are the same as the one displayed for the already existing functions. See the section about standard functions for an in-depth explanation of every field. The fields are :

  1. The function name identifies the function. It is what you have to write before the opening parenthesis to call this function.

  2. The description describes what the function does, and what it is intended for. This description is not required for user functions, but filling it will allow the interface to show you help when you use the function, as for all the other functions.

  3. The parameters section asks you for all the information about the parameters of the function.

    1. The name of the parameter. It is just one word that should make you understand the parameter. It is also with this name that you will be able to reference the parameter in the implementation of the function.

    2. Type of the parameter.

    3. Description of the parameter.

  4. The result section asks you for the type of the result of the function (a), and a small description of this result (b).

  5. The formula is the formula that implements the function. In this formula, you can reference the function parameters with the dollar sign ('$') followed by the name of the parameter.

Updating or deleting user functions

Starting again from the screen with list of functions, user functions have one more link to be able to edit them.

If you click on it, you will come again in the screen of the definition of the function, and you will be able to change the function, or delete it.

Defining user function (2)

Figure 4.178. Defining user function (2)


4.4.4.6. Sub-formulas

Sub-formulas are parts of formulas that you can name and reuse later.

Sub-formulas are another way to simplify the writing of very long formulas.

  • When you work on this part of the formula, you only see this part (instead of the whole formula), and do not have to identify this part again and again inside the whole formula.

  • When you work on the main formula, it is much smaller and readable, as all complex parts have been factorized and are just replaced by a reference to the sub-formula.

Sub-formulas also allow you to share common parts of long formulas across different formulas. If you need to change this part, you will only have to change it once, and all formulas using it will be automatically updated.

Example

As an example, let's imagine that you have to make some complex calculations to calculate a date and time, then put the date in one field, and the time in another field.

[DeliveryDate] = formatDateTime(addDays(parseDateTime([yourDate], 'yyyyMMddhhmm'), if ([productType]=1 or [productType]=2) then 3 else 2), 'dd/MM/yyyy')
[DeliveryTime] = formatDateTime(addDays(parseDateTime([yourDate], 'yyyyMMddhhmm'), if ([productType]=1 or [productType]=2) then 3 else 2), 'hh:mm:ss')

By using a sub-formula you could factorize the common part and just let the outer formulas deal with the selection of date or time in complex formulas.

[DeliveryDate] = formatDateTime([DeliveryDateTime], 'dd/MM/yyyy')
[DeliveryTime] = formatDateTime([DeliveryDateTime], 'hh:mm:ss')
[DeliveryDateTime] = addDays(parseDateTime([yourDate], 'yyyyMMddhhmm'), if ([productType]=1 or [productType]=2) then 3 else 2)

The new version is much more readable. If you still find it too complex, you could even go further, and separate the calculation of [DeliveryDateTime] in 2 parts.

[DeliveryDate] = formatDateTime([DeliveryDateTime], 'dd/MM/yyyy')
[DeliveryTime] = formatDateTime([DeliveryDateTime], 'hh:mm:ss')
[DeliveryDateTime] = addDays(parseDateTime([yourDate], 'yyyyMMddhhmm'), [DaysNeededToDeliver])
[DaysNeededToDeliver] = if ([productType]=1 or [productType]=2) then 3 else 2
Execution

The result of the execution of the formulas will always be exactly the same whether you factorize some parts in sub-formulas or not. Using sub-formulas is a way of writing your formula easier. It is always completely equivalent to the fully expanded formula.

To illustrate, let's take the following complete formula, whose result will be '1 2'

concat(nextCounterValue('invoice'), ' ', nextCounterValue('invoice'))

If you decide to write it using a sub-formula, the result will still be exactly the same : '1 2', because nextCounterValue will still be evaluated twice, exactly like in the previous formula.

concat([mySubFormula], ' ', [mySubFormula])
[mySubFormula] = nextCounterValue('invoice')
Create a sub-formula

You can find sub-formulas at the top of the output tree.

To create a new sub-formula, just open the section, click on the '...' at the bottom of the section, and choose the name that you want to give to the sub-formula.

Create sub-formula (1)

Figure 4.179. Create sub-formula (1)


Create sub-formula (2)

Figure 4.180. Create sub-formula (2)


Define a sub-formula

Sub-formulas can be defined the same way as any other output field. See the sections about how to map nodes or how to edit formulas for more details.

Define a sub-formula

Figure 4.181. Define a sub-formula


Use a sub-formula

Sub-formulas can be used the same way as any other input field. To make this possible, all sub-formulas are also available at the top of the tree with your incoming message. You can really see them as "virtual input fields", or "calculated input fields".

Use a sub-formula

Figure 4.182. Use a sub-formula


In your formulas, sub-formula references can be easily recognized : they are drawn like references to input fields, but with a purple text.

Sub-formula reference in a formula

Figure 4.183. Sub-formula reference in a formula


Global overview

When you have many nested sub-formulas, or user-functions, you can always have a global overview of your formula by using the "Copy-paste version".

Sub-formula global view

Figure 4.184. Sub-formula global view


Delete a sub-formula

To delete a sub-formula, use the action at the right of the formula bar.

The sub-formula will be deleted, and all references to this sub-formula will be inlined, leading to the situation you would have had by writing all your formulas without using this sub-formula.

Delete sub-formula

Figure 4.185. Delete sub-formula


4.4.4.7. Working with formulas - frequent scenarios

This section explains in detail some frequent scenarios when working with formulas. It gives a lot of examples, and also emphasizes some traps in which you should not fall.

Working with numbers

When you have to do some calculations, you must always keep in mind that all fields from your source and target documents are Strings, not Numbers.. To be able to make calculations, xpath (like any programming language) needs Numbers. If your values are Strings, they first have to be converted into Numbers, even if this conversion can be implicit in some cases.

Babelway recommends that you always explicitly convert your input fields with the toNumber function.. As an example, the following call will perfectly work for all values.

toNumber([yourInputField]) div 100

We can show some results for some input values.

toNumber('100')*0.1  ->  '10'
toNumber('30507')*0.1  ->  '3050.7'

When you have to convert the results of your calculations (Numbers) to Strings (as expected by the target field), it is safe to use implicit conversion. The system will automatically convert your number to its more natural representation (the one without useless zeros).

toNumber('100.00')*0.100)  ->  '10'

You only need to make an explicit conversion if you want to use another representation. For example, the following call will ensure that target number is always displayed with 2 decimals.

formatNumber(toNumber('100')*0.1, '0.00')  ->  '10.00'

Below, find some problems you could encounter should you not follow these recommendations:

  • Using xpath implicit conversions or conversions via the xpath number() function could lead to numeric problems.

    number('30507')*0.1  ->  '3050.7000000000003'
  • Display in scientific notation.

    number('1234567890')*100  ->  '1.23456789E11'

In some old mappings, you could see uses of a function named bif:cast. This function was added automatically in some cases to try to correct incorrect numbers, having the problems as described in this section. You should just check (or change) the formula so that it follows the recommendations of this section, and remove all the calls to bif:cast.

Moreover, bif:cast simply has no effect when its argument is not a Number, and it can be removed safely in all of these situations.

Changing date format

If you receive in your input document dates/times in one format, and want to write them in the output document in another format, it can be easily achieved using the changeDateTimeFormat function.

changeDateTimeFormat([yourInputField], [yourInputFormat], [yourOutputFormat])

All details about the date formats can be found on http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html.

Some examples :

changeDateTimeFormat('01/01/2015', 'dd/MM/yyyy', 'yyyyMMdd')  -> '20150101'
changeDateTimeFormat('01/01/2015 12:34:56', 'dd/MM/yyyy hh:mm:ss', 'yyyyMMddhhmmss')  -> '20150101123456'
changeDateTimeFormat('01/01/2015 12:34:56', 'dd/MM/yyyy hh:mm:ss', 'dd-MM-yyyy')  -> '01-01-2015'
changeDateTimeFormat('30/02/2015', 'dd/MM/yyyy', 'dd-MM-yyyy')  -> Error

This function can also be used to extract almost any information about a DateTime

changeDateTimeFormat('01/01/2015', 'dd/MM/yyyy', 'EEEE')  -> 'Thursday'

The list of all options usable in the format parameters can be found on http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

This function will also do the job very easily if the input can be in different formats. You just have to enumerate the possible formats, separated by a comma, in the input format.

changeDateTimeFormat('01/01/2015', 'dd/MM/yyyy,yyyyMMdd', 'yyyyMMdd')  -> '20150101'
changeDateTimeFormat('20150101', 'dd/MM/yyyy,yyyyMMdd', 'yyyyMMdd')  -> '20150101'

If you have many transformations to do, with always the same formats, it can help to define a more convenient user function, to avoid having to write the formats at every call. This is explained in detail in the sections about user functions.

convertDate('01/01/2015')  -> '20150101'
Making Date/Time calculations

As for making calculations with numbers, you have to remember that fields from input and output documents are Strings, and you will have to convert them to DateTime objects to be able to make your calculations.

You can get DateTime objects by creating them from their representation, via the parseDateTime function. You can also receive DateTime object via some methods like currentDateTime

The conversion of a DateTime to its representation can be done via the formatDateTime function.

When you have DateTime values, there are many functions allowing to make some calculations (ex: addDays )

formatDateTime(addDays(parseDateTime('2014-06-28', 'yyyy-MM-dd'), 3), 'yyyy-MM-dd') -> '2014-07-01'
Counter

The following techniques can be used if you need to implement a counter.

  1. Xpath functions

    You can use xpath formulas. Here are some examples :

    • The function position() gives you the index of the iteration in the loops. It can be used to number every row.

    • Xpath functions like count(preceding-sibling::*) allow you to count position of an element within a list of selected elements.

  2. Metadata

    You can define a metadata, and increment it at each call. It will return successfully values 0, 1, 2, 3, ...

    You can use the function nextCounterValue(counterName) to do all the job for you. It will increment the value of the metadata by 1, and return the new value.

  3. Lookup table

    The two previous techniques are simple, but will only work inside a given message. They will not work across multiple messages. If you need to implement a persistent counter, you can work with a lookup table :

    • Create a lookup table named 'counters' with two columns named 'name, value'.

    • Add an entry (mycounter, 0).

    • In your mapping, use the function incrementLookupTableValue('counters', 'name', 'value', 'mycounter'). It will automatically increment the value, and return the new value.

Getting Information From An External HTTP Ressource

Babelway offers specialized transformation functions to call external web services. This is useful to complement the message data and lookup tables with external source of information.

You can reach HTTP ressources using one of the 3 following functions: httpGet, httpPost or httpSoap. You will get a string representation of the response. Moreover, these function can be associated with xmlToXmlNode or jsonToXmlNode to get a usable tree representation of the response that can be directly used in other Xpath functions.

upper-case(jsonToXmlNode(httpGet(concat('http://www.telize.com/geoip/', IP)))//*:country) -> BELGIUM
Calling HTTP ressource

Figure 4.186. Calling HTTP ressource


Please note that the Xpath expression selecting a node in the resulting tree needs to handle namespaces by adding a *: in front of the xml name of the node, like *:country in the example above. You need to do this even if the resulting tree is not part of a namespace, like in Json processing.

Storing Json or Xml in a lookup table

Lookup tables are very versatile, they can hold up to 10 columns. Stored data can be simple but can also be structured in Json or in Xml. This feature, in combination with the power of Xpath offers you endless possibilities to store and retrieve the data you need.

The best practice is to use one column for each data you want to search on. That makes up to 9 indexes and the last column to store the Xml or Json.

Xml in lookup table

Figure 4.187. Xml in lookup table


You can use the 'Create data import channel' button of your lookup table to help you importing your data. Take a look at the xmlNodeToXml function. It will help you serializing a piece of your Xml before you store it in the content column.

xmlNodeToXml(Country) -> <Country><Code>BE</Code><Population>11008000</Population><Area>30507</Area><Name>Belgium</Name></Country>
Import Xml in lookup table

Figure 4.188. Import Xml in lookup table


Once the Xml or the Json is retrieved from the lookup table, it can be parsed with one of the following functions xmlToXmlNode or jsonToXmlNode to get a usable tree representation directly usable in other Xpath functions.

xmlToXmlNode(lookupTableValue('testXML', 'ip', 'xml', key))//*:country -> BELGIUM
Use Xml from lookup table

Figure 4.189. Use Xml from lookup table


Please note that the Xpath expression selecting a node in the resulting tree needs to handle namespaces by adding a *: in front of the xml name of the node, like *:country in the example above. You need to do this even if the resulting tree is not part of a namespace, like in Json processing.

4.4.4.8. Mapping loops

Loops from the input message must be mapped to the output if you want to map one of its enclosed fields. Otherwise the mapper cannot resolve the reference to the field since there can be more than one occurrence. The "loop mappings" tell the mapper how to deal with this multiplicity of values.

You can make loop mappings to loop or value fields.

Loop to loop

In this case, every occurence of the source loop will by default lead to the creation of an occurence of the target loop.

It is possible to change the source loop (sort, filter, ...) by just adding a formula on it. The most used functions in this context are :

  • sortLoop : This function will sort the source loop according to a given criteria. Example : sortLoop([Loop], 'Code') will sort the loop elements following the value of their field Code.

  • sortLoopNumeric : This function will sort the source loop according to a given numeric criteria

  • filterLoop : This function will filter the source loop, and only keep elements that match the given condition. Example filterLoop([Loop], 'Area>30000') will only keep the elements for which the field Area contains a value greater than 300000

You can find here a complete example, with sort and filter. The loop mapping only keeps countries with an Area>300000, and sort the loop items according to the Code field. Example file and how it is mapped is also shown.

Loop to loop mapping with filter and sort.

Figure 4.190. Loop to loop mapping with filter and sort.


Note: The filter loop function can be used multiple times in the same formula to enable the system to filter out the incoming loop based on first filter, the second filter,... and so on.

Loop to value

In this case, only one occurence of the loop will be used, as the target field doesn't allow repetition of value.

By default, the first occurence of the loop is used, but you can again change the default by using a formula. If your formula still returns a list of elements, only the first one will be used.

Note that if the source loop is empty, an empty element will be created in the out message.

Below, please find a complete example that chooses the Country with the biggest Area value. The sortLoop call will sort the list in decreasing order of Area. As this result still contains multiple entries, the first one will be automatically selected.

Loop to node mapping with sort.

Figure 4.191. Loop to node mapping with sort.


Identify loop mappings in the interface

Loop mappings are identified with an additional icon in the formula bar.

Identifying loop mappings

Figure 4.192. Identifying loop mappings


Loop instructions without this icon will not work !

You can initiate a loop mapping by dragging a (input) loop to a target node. Directly selecting a target node and typing a formula in the formula bar will only lead to the creation of value mappings, not loop mappings.

Note: If you copy the loop expression from one node and paste it to a new node then the generated formula is a value mapping and not a loop mapping, So to make sure you will have a loop mapping then you must drag and drop the input loop to the target node.

Writing xpath expressions in loop functions

All the loop functions (filterLoop, sortLoop, ...) take as second parameter a String, that will be interpreted as an xpath. This xpath will be evaluated for every element of the list, to calculate the value that will be used to sort or filter.

The current node for the evaluation of this xpath will be the node of the list itself, and you can refer it with '.'. As an example, an expression like 'Code' is completely equivalent to './Code', and refers to the xml element Code, that is a direct child of the element on which the loop applies. On the previous examples, references like 'Code' or 'Area' in the xpath work, because these names are the names of the xml elements that are direct children of the element on which the loop applies (Country).

You must also be careful of always using the names of the fields to reference them in xpath, and not the labels. Labels are just present in the interface to be clearer, but do not correspond to anything in xpath or xml. This case happens more often when using csv messages, where all the fields will have the same name ('field'), even if they can have different labels ('Name', 'Code', 'Area', ...). In this case, an xpath like 'Code' will not correspond to anything, but you may for example use a reference like 'field[2]' .

As the second parameter (the xpath) is a String, and that Strings are delimited by single quotes, writing a xpath expression that also uses single quotes can also be a little tedious: you have to double your single quotes. As an example, the expression to filter Countries to only keep the one with Code='BE' will be

filterLoop([Loop], 'Code=''BE''')
Writing a filterLoop with a quote in the condition.

Figure 4.193. Writing a filterLoop with a quote in the condition.


If you type your expression in the EasyFunctionEditor instead of the formula bar, you can type your expression normally, and the editor will make the necessary quotings for you.

Writing same filterLoop using the EasyFunctionEditor.

Figure 4.194. Writing same filterLoop using the EasyFunctionEditor.


4.4.4.9. Multi nodes mapping

Visual mapping is able to map two message definition tree structures, when they have the same fields. This is very valuable when dealing with complex and often similar XML messages like in soap messages, IDOC or UBL…

To map the 2 structures, drag-and-drop your source structure to the target structure. As you can see in the screenshot, structure nodes can only be mapped on other structure nodes, not on fields.

Structure mapping - drag-and-drop

Figure 4.195. Structure mapping - drag-and-drop


Confirm the operation.

Structure mapping - confirmation

Figure 4.196. Structure mapping - confirmation


As you can see, all the corresponding nodes have been mapped.

Structure mapping - result

Figure 4.197. Structure mapping - result


The multi-nodes mapping will work even if there are additional nodes in one of the 2 structures. These nodes will be ignored.

But the multi-nodes mapping will ignore nodes that are present multiple times in the structure. Example, if your node Country contains 2 different children named Code, no mapping will be made for fields Code, because it is not clear for the system what is the correct association.

4.4.4.10. Using or changing metadata

In drag and drop transformation you can use metadata associated with the incoming message (such as fileName, receive date, ...). You can also store whatever info in a metadata for future use.

Using metadata

Accessing metadata can be done in your formulas with the function metadata. It just takes one argument, that is the name of the metadata.

Using metadata

Figure 4.198. Using metadata


Define metadata

Defining your own metadata, and storing values into them can be done via the metadata section, on top of the target tree.

To add a new metadata, click on last entry ('...'), and choose your name.

Once the metadata is defined, you can just map value to it exactly as for other fields.

Using metadata

Figure 4.199. Using metadata


Working with object metadata

Babelway transformation supports working with object metadata. This is very useful to add a PDF or images extracted using a Zip unwrapping extra processing in an XML as a Base64 string.

Object metadata as base64

Figure 4.200. Object metadata as base64


Important note

The user defined metadata are propagated from one channel to another. This is useful in case we want to propagate the system metadata from one channel to another.

We will use the user defined metadata to store the system metadata you want to propagate between the channels.

For more information about the system metadata check this link System Metadata

4.4.4.11. Drag and Drop transformation properties

The following properties are available :

Mapping definition

This file is the definition of the visual mapping. You normally edit it via the mapping tree editor.

Xslt

This file is the xslt transformation that will be applied on the internal xml representation of your incoming message to transform it into the outgoing message. It is generated from the mapping definition file.

You can only edit this file via the mapping definition file. If you directly want to write an advanced xslt transformation, you have to use an xslt transformation instead of a visual transformation.

Xslt includes

Xslt files that will be included in the generated xslt. It allows you to define some custom xslt functions, and use them in the mapping. The uploaded file must contain all of your functions. It must looks like :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bfn="http://xmlns.babelway.com/2007/function"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:common="http://exslt.org/common"
xmlns:math="http://exslt.org/math"
xmlns:sets="http://exslt.org/sets"
xmlns:dates-and-times="http://exslt.org/dates-and-times"
xmlns:random="http://exslt.org/random"
xmlns:saxon="http://saxon.sf.net/"
>

<xsl:function name="bfn:xml-parse" >
<xsl:param name="xmlString"/>
<xsl:sequence select="saxon:parse($xmlString)"/>
</xsl:function>

</xsl:stylesheet>

Transformation mode

Allows you to use special transformation modes. The available modes are :

  • Normal : transformation reads content and metadata of the incoming message, and its result will affect content and metadata of the outgoing message.

  • Metadata only for outgoing message : only the metadata of the outgoing message will be updated. The content of the outgoing message will be the same as the input. This mode can be used in special situations where the transformation must only generate some additional metadata.

  • Metadata only for incoming message : only the metadata of the incoming message will be used, not its content. This mode can be used in special situations where the transformation only operated on the metadata of the incoming message. A dummy message in will be used instead of the incoming content.

  • Metadata only : the transformation only operates on the metadata of the incoming message, and can only update metadata of the outgoing message. Content will not be updated by the transform.

Note: If you want to extract some information from the input message and then save the extracted information in a user defined metadata, you must select the correct "Transformation mode" depending on your case.

Below is an example to show what will happen for the output message when the input message is processed by a channel whose "Message In" is of type "XML" and the "Message Out" is of type "Note Defined".

In this case the transformation will extract the status of the message from the input message and save it in a user defined metadata.

Status" field from the "Message In" in the transformation is mapped to "MessageStatus" user defined metadata in the "Message Out". Moreover, the "Transformation mode" is "Normal".

Test Channel

Figure 4.201. Test Channel


Now when the message will be processed by this channel it will be empty, as shown below:

Empty Output Message

Figure 4.202. Empty Output Message


To fix this issue, you will need to change the "Transformation mode" to be "Metadata only for outgoing message (does not change content)." to make sure that the output message is not empty.

Transformation Mode

Figure 4.203. Transformation Mode


Now when the message will be processed by this channel it will be generated properly, as shown below:

Output Message

Figure 4.204. Output Message


4.4.5. Xslt Transformation

Xslt transformation test editor enables to define transformation rules and implement transformation functions directly in Xslt language.

To specify a new XSLT transformation type or change its current type,you will go to transformation part , you may find that it is by default was chosen as visual , so to change you can click on "Reset" button at the end of the page :

Reset Transformation

Figure 4.205. Reset Transformation


Then click on the arrow of the drop down menu: Create a new transformation of type and select Xslt, and you can choose an Xslt transformation from the catalogue if found. Please refer to the Catalogue chapter for more information about catalogue use and commands.

If you want to create a copy from a Babelway template you must name this copy before accessing the text editor screen.

Xslt mapping and transformation rules can be entered directly using integrated Xslt editor as illustrated here under:

Xslt transformation editor

Figure 4.206. Xslt transformation editor


Once all your mapping, transformations and additional filters are ready, if and/or format entered, do not forget to save this transformation using the Save button.

The following (advanced) properties exist for xslt transforms:

Xslt

The xslt of the transformation. It is the same xslt that can be used via the graphical editor.

Transformation mode

Allows you to use special transformation modes. The available modes are :

  • Normal: Transformation reads content and metadata of the incoming message, and its result will affect content and metadata of the outgoing message.

  • Metadata only for outgoing message: Only the metadata of the outgoing message will be updated. The content of the outgoing message will be the same as the input. This mode can be used in special situations where the transformation must only generate some additional metadata.

  • Metadata only for incoming message: Only the metadata of the incoming message will be used, not its content. This mode can be used in special situations where the transformation only operates on the metadata of the incoming message. A dummy Message IN will be used instead of the incoming content.

  • Metadata only: Transformation only operates on the metadata of the incoming message, and can only update metadata of the outgoing message. Content will not be updated by the transformation.

4.4.6. No Transformation

The No transformation option is used when Babelway interface is used to transfer an unchanged message from one gateway to another.

If you are only transfering messages that do not require transformation from a gateway to another, for example from a mail server to an FTP server, you should use the "No transformation" transformation type.

When specifying this transformation for the first time or when changing transformation type, choose a " No transformation " from "Create a new transformation of type" drop down menu.

Note

If the formats of Message IN and OUT are not the same, using "No transformation" may return unexpected results or empty output messages.

Usually, this setting is used in combination with Message IN and OUT "Not Defined" formats in a channel that simply transfers an unchanged or unprocessed message from one gateway to another.

4.5. Notifications

This section contains all you need to manage your notifications. A simplified edition of the notifications is directly available in the channels overview, but you need to come to this section to have access to all functionnalities.

Message notifications allow you to be informed by email when a message is processed by the Babelway platform. You can choose to be notified upon:

  • Success: You are notified when message processing is fully completed, and is successful (when the message status is changed to Success).
  • Failure: You are notified when the processing of a message is failed (when the message status is changed to Error).

A special notification, named Alert notification also allows you to be informed by email when an alert is generated by the Babelway platform. This notification cannot be deleted.

You can configure notifications in detail: recipients in case of error, recipients in case of success, texts, ...

As for all other elements, notifications can be managed centrally, and reused in many channels.

4.5.1. Notifications list

The List of Notifications screen shows you all the notifications defined in your environment, even if they are not used in any channel. From here, you can easily edit them, or create new ones.

This screen is accessible by clicking on Channels menu, then Notifications sub-menu

Notifications list screen

Figure 4.207. Notifications list screen


The list can contain the following columns:

Name

The name that identifies the notification.

Description

Free description for the notification.

Success Recipients

Comma-separated list of emails to which a notification is sent when a message has been successfully processed.

Failure Recipients

Comma-separated list of emails to which a notification is sent every time the processing of a message fails.

File available Recipients

Comma-separated list of emails to which a notification is sent when message OUT is available. See notifications main section for precise conditions when each notification is sent.

Id

Technical identifier for the notification.

Created on

Channel creation date and time.

Last updated on

Channel last modification date and time.

For more information about the behavior of the grid and how to make searches, see grids section of the Help Guide.

You can click on a line to view the details of the associated notification, or edit it. See notification details.

" Create notification " action button allows you to create a new notification.

" Clean notifications " action button allows you to easily delete all the notifications that do not use. The interface just shows the list of all notifications that can be deleted (which means not used by any channel). Then, just tick the ones that you want to delete, and confirm the operation.

4.5.2. Notification detail

This page shows all the details about a notification, and gives access to all operations that can be made in notifications.

This page can be accessed from the notifications list, the Notifications tab of the channels detail page, or by following any link that refers to a notification.

The page contains the following tabs:

General

The general tab contains the signaletic information of the notification, and offers actions that act on the whole notification.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free text field that you can set and/or modify used in addition to the element name to help you identify your element usage and/or function.

Id

A unique identifier automatically set by the Babelway platform.

Created On

Date and time of element creation.

Last Updated On

Date and time of last element configuration update.

The Save action button allows you to save the changes that you have made in this tab (name and description).

The Delete action button allows you to delete the notification, but it is only accessible if the notification is not used in any channel.

Notification detail - tab General

Figure 4.208. Notification detail - tab General


Recipients

This tab allows you to determine who should receive the notification emails.

Target users

This table allows you to choose who will receive the notification, amongst all the users that can access the environment.

Additional emails

This table allows you to add other email addresses, to which notifications will also be sent.

For email addresses of your users, we recommend that you select them in "Target users", and not add them here. The advantage of placing them in "Target users" is that their email will be automatically updated when you change the signaletic of the user in the admin section, or the user will be automatically removed from the notification if you remove the access to your environment to this user.

To add an email to this list, just add the email in the input field in the last line of the table, and save. Emails are automatically removed if you untick all checkboxes in a line.

Target gateways

This table allows you to choose what Internal gateway In will receive in the notification amongst all the internal gateways that are defined in the environment.

Note that selecting an inactive gateway (not deployed in production) will prevent the environment to deploy.

Notification detail - tab Recipients

Figure 4.209. Notification detail - tab Recipients


Note: We can use the "Target gateways" to send the Message Level Response MLR received from PEPPOL Gateway Out for this channel to a second channel that for example will send this Message Level Response MLR to the sender.

The below example will show you how to configure a channel that will receive the Message Level Response MLR received from PEPPOL Gateway Out in this channel and send Message Level Response MLR to the sender.

1- Create a new channel and name it for example "Send Message Level Response MLR to the sender". You can give it any name you want.

2- Create a Gateway In of type Internal and name it MLR Response, as shown below:

Send Message Level Response MLR to the sender channel Gateway In

Figure 4.210. Send Message Level Response MLR to the sender channel Gateway In


3- Create "Message In" and "Message Out" of type "Not Defined" and a Transformation of type "No Transformation".

4- In this example, customer requested to receive the MLR Response through HTTP Client. Therefore, we have created the Gateway Out of type HTTP Client, as shown below:

Send Message Level Response MLR to the sender channel Gateway Out

Figure 4.211. Send Message Level Response MLR to the sender channel Gateway Out


5- In the current example, the name of the channel that sends the messages through PEPPOL is "Send messages to PEPPOL". Click on "Notification" and create a new notification.

6- In "Target gateways", tick "Failure" and "Success" for the Gateway In "MLR Response". With this configuration the Message Level Response MLR received from PEPPOL Gateway Out of the channel "Send messages to PEPPOL" will be send to the channel "Send Message Level Response MLR to the sender", as shown below:

Send Messages To PEPPOL Channel

Figure 4.212. Send Messages To PEPPOL Channel


Once the channel "Send messages to PEPPOL" has sent a message to the Partner, the MLR Response will be received and will be sent to the channel "Send Message Level Response MLR to the sender", then this channel will send the MLR Response to the sender.

Email

This tab allows you to configure the content of notification emails, for every type of notification. See notifications main section for precise conditions when each notification sent.

Sender

The email address 'from' of all the notification emails.

Success subject

The subject of notification emails, for "Success" notifications.

Success body

The body of notification emails,for "Success" notifications.

Failure subject

The subject of notification emails, for "Failure" notifications.

Failure body

The body of notification emails, for "Failure" notifications.

File available subject

The subject of notification emails, for "File available" notifications.

File available body

The body of notification emails,for "File available" notifications.

These subject and body fields are free text fields that you can fill in as you want. In addition you can use Metadata to customize your messages adding dynamic information such as message name, account environment and channel identification, time and type of error...

Notification detail - tab Email

Figure 4.213. Notification detail - tab Email


Related items

This tab contains quick links to many other elements related to this gateway.

Using channels

All the channels that use this element.

Connected gateways

List of gateways to which this notification sends messages.

Notification detail - tab Related items

Figure 4.214. Notification detail - tab Related items


Assign notification to Channel

In Order to assign a notification to channel you need to open the channel and then open the notifications , you can type the notification name in reuse and save time , OR create a new notification to be used by this channel.

Assign/Create notification for channel

Figure 4.215. Assign/Create notification for channel


4.6. Partners

The Partners are the entities that communicate via Babelway.

For example, when Babelway is used to transfer an invoice from Coca-Cola to Colruyt, the 2 partners involved in the communication are Coca-Cola and Colruyt. Coca-Cola is the sender, or Partner IN. Colruyt is the receiver, or Partner OUT.

Babelway allows you to :

  • Define and manage your partners, including additional infos like a description, contact information, address, ... and every other information (specific to you) that you want to store with your partners.
  • Assign automatically partners to the messages processed in your environment.
  • Extract partner infos directly from the messages processed in your environment.
  • Make searches, or get statistics based on your partner (ex: give me all the invoices sent to Colruyt).
  • Be compliant to GS1.

Partners and gateways are different concepts. The Partner is really the entity involved in the communication (typically a company), while the Gateway represents a technical way of reaching this partner (e.g. "send an email to address xxx@mypartner.com", or "Place files on ftp server of mypartner.com").

You can have multiple gateways to connect to the same partner (e.g.: invoices must be sent by email, while orders must be sent via ftp).

A simple gateway can also be used to communicate with multiple partners. For example, I could setup an Email gateway IN orders@mycompany.com that all my clients are allowed to use to send me an order. In this case, the sender (partner IN) will just be written in the order.

4.6.1. Defining partners manually

To define your partners, the easiest way is to go to the Partners section. As for all sections, you will first come to a main screen with the list of all your partners.

Partners section

Figure 4.216. Partners section


The action button Create Partner, at the bottom of the list allows you to define new partners. You just have to fill the different information. As for all other objectives, you can also use the Reuse and save time zone, at the right of the screen, to easily import partners already defined in the Babelway catalogue. See the section Reuse and save time section for more details.

Partner creation

Figure 4.217. Partner creation


The identifiers that you assign to this partner are quite important, as they will be used to identify the partners of your messages. For example, when an order will be processed, the system will see that the sender of the order is the company with TVA BE XXX. It will deduce your partner (and make the link) by finding which partner you have assigned this TVA number to. For this reason, you can not have two different partners with the same identifier. See the section Assigning partners to messages for more details.

It is up to you to organize your partners as you want. The best way is to make them really like you think, encoding how your relationship with your clients happens. Some people may for example want to have two different partners for "Carrefour Belgium" and for "Carrefour France", while others are not interested by the distinction and just want a single partner "Carrefour". And other ones would prefer different partners for every supermarket ("Carrefour Wavre", "Carrefour Bruxelles", ...). You can choose the solution that best fits your needs. To do so, you just have to list all the ids (TVA, GLN, ...) of all the companies that you want to group into this partner.

All the other fields are quite informative, and you can use them freely to store and retrieve your main information about the partner.

If you want to store other data for your partners, you can add your own fields in the Environment settings / Partners.

These custom fields will be available in the edition of the partners, or in the list, as is the case for the standard fields.

Edition of partner with user fields.

Figure 4.218. Edition of partner with user fields.


List of partners with user fields.

Figure 4.219. List of partners with user fields.


4.6.2. Assigning partners to messages

Assigning partners to the messages is automatically interesting, because it will allow you to view the partners directly involved in a message, make searches, e.g.: "give me all messages exchanged with partner X" or "make stats by partners", ... See the section Using partners for more details.

You can associate two partners with messages:

  • The Partner IN. It is the entity from which the message comes, the sender of the message.
  • The Partner OUT. It is the entity to which the message is adressed, the recipient of the message.

Partners IN and OUT in list of messages

Figure 4.220. Partners IN and OUT in list of messages


Assigning partners via gateways

The easiest way to assign partners to messages is to tell the system "All the messages that are processed by this gateway come from partner X", or "All the messages that are processed by this gateway go to partner Y".

This is the easiest way, when a specific gateway is only used to communicate with ONE partner.

To do this in the interface, you have to go to the Gateway Detail screen, in the General tab, and just choose your partner. You have to define your partners first, so that you can choose it from the dropdown menu.

Assigning partners via gateways

Figure 4.221. Assigning partners via gateways


Assigning partners via MessageDefinitions

The previous case was very easy, but is not possible when your gateway is used to communicate to multiple partners. For example, if you setup an email Gateway IN to receive orders from all your clients, you can not associate this gateway to just one partner.

In this case, the only way to know the sender of the order is to open the order, and read the sender in it.

To do this in the interface, you have to go to the structure definition of the MessageDefinition, select the fields that contain the ids of the partners (VAT, GLN, ...), and set this info in the "Semantic field" zone.

Assigning partners via MessageDefinitions

Figure 4.222. Assigning partners via MessageDefinitions


To identify partners, you just need to designate one field with one id for the partner IN, and one field with one id for the partner OUT. Anyway, the interface also allows you to flag other fields to tell the system what they contain, like the name, or the address of the partners IN and OUT. This info is not needed to identify partners (ids are enough), but it can be interesting to complete it, as it can then be used to create your partners automatically from the data contained in your messages.

Designating other fields in MessageDefinition

Figure 4.223. Designating other fields in MessageDefinition


Note

As for all other elements of the application, the changes will only apply after deployment of your environment. Changes in partners (add, delete, change of ids, ...) also need to be deployed to apply to production messages.

Conflicts during identification

Partners can be identified in four of the message processing steps. gatewayIn step (for partner IN), messageDefinitionIn step (IN and OUT), messageDefinitionOut step (IN and OUT) and gatewayOut step (OUT).

If you fill the partner info in just one of these steps, it will be enough for the system to extract the information.

Filling the information in many of these steps should not cause any problem, as the extracted info should be the same as each step. For example, there is no reason (apart from wrong configuration) for ids of the sender to be different in the source format of the message compared to the output format of the message.

Anyway, if it should happen, the message will not be set in error, and the first identified partner will be assigned to your message. A warning will also be added to the execution log of the message.

Message processing log - partner identification conflict

Figure 4.224. Message processing log - partner identification conflict


4.6.3. Using partners

Partner information can be used in many places within the application.

View or search in your messages

In the table of your messages, you can directly view the identified partners. You can also search these fields or sort them.
Partners IN and OUT in list of messages

Figure 4.225. Partners IN and OUT in list of messages


The information is also available in the screen with the detail of a message.
Partners IN and OUT in MessageDetail screen

Figure 4.226. Partners IN and OUT in MessageDetail screen


Statistics

You will soon get access to the statistics by partner IN or partner OUT (now only by channel, gateway IN or gateway OUT).

Related items

Related items allow you to navigate very quickly through the application.

Related items of partner

Figure 4.227. Related items of partner


In the processing of messages

Coming soon. The partner info is accessible via metadata. You can access and use it.

It is very useful to use in routing, to select your channels based on the sender or the receiver.

4.6.4. Be compliant to GS1.

Babelway offers all the tools needed to be compliant with GS1.

You have access to the partner Information tab, with all the info required by GS1. You also have access to the generation of all reports asked by GS1.

Partners - Information tab

Figure 4.228. Partners - Information tab


4.6.5. Automatic Population of your Partners List

The import partners page allows you to import all your partners from a CSV file.
Importing Partners From CSV - General

Figure 4.229. Importing Partners From CSV - General


CSV File

The CSV file contains the list of partners you wish to import.

The first line must contain the column headers for the values you wish to import. The file must only contain existing columns and may not include system columns such as "Environment", "Creation date", "ID"... Below is a working CSV sample:

Note

"PartnerIdentifiers";"Name";"Description"

"OTHER:123456";"Julien Inc.";"Supplies"

"OTHER:654987";"Bertrand & Co";"Mergers and Acquisitions"

"OTHER:123478";"Mathieu Square";"Music Duet"

All the other lines in the file represent a partner. If the partner identifier is known, the identified partner will be updated upon import.

Values for most columns can be written out in plain text. The following types require a specific format for babelway to interpret them properly:

  • DateTime: Accepted formats are "dd/MM/yyyy HH:mm:ss" and "yyyyMMddHHmmss" or your preferred user format (see environment preferences).

  • Date: Dates are expected in the following format: "DD/MM/YYYY" or "YYYY-MM-DD"

  • Partner Identifiers: These should be presented as a comma separated list of identifiers ("CODE:Value"). For example: "VAT:BE1234567890" or "VAT:BE1234567890,GLN:1234567890123" are valid partner identifiers.

Delimiter Character

The delimiter character separates different values in a given line.

Quote Character

Text between your "Quote Character"s will be handled as a single value/entry.

File Encoding

Encoding of your csv file.

4.7. Lookup tables

Lookup tables are tables of values, that can be accessed by transformations to replace incoming values by corresponding outgoing values (For example, when your B2B partner is using item codes that differ from your own item codes).

Lookup tables are not bound to a specific channel, but are defined at the level of your environment, and can be accessed by all transformations. It is even possible to make them available to other environments.

4.7.1. Lookup tables list

The List of lookup tables screen shows you all the lookup tables defined in your environment. From here, you can easily edit them, or create new ones.

This screen is accessible by clicking on the menu Channels, then the sub-menu Lookup tables

List of lookup tables

Figure 4.230. List of lookup tables


The list can contain the following columns:

Name

A name that identifies the lookup table.

Description

A free description for the lookup table.

Columns

The names of the columns of the lookup table (separated by commas).

Shared access key

When the lookup table is shared, its sharing access key. See lookup table details for more information.

Id

A technical identifier of the lookup table, automatically set by Babelway platform.

Created on

The date and time when the lookup table was created.

Last updated on

The date and time of the last modification of the lookup table structure.

For more information about the behavior of the grid, and how to make searches, see the grid section of the help.

You can click on an entry to view the details of the associated lookup table, or edit it. See lookup table details.

The Create lookup table action button allows you to create a new lookup table.

4.7.2. Create a lookup table

This page explains how to create a new lookup table.

Just click on the Create lookup table action button at the bottom of the lookup tables list screen.

The creation screen will ask you to choose a name and description for the table, and a name for each column that you want to use. Just leave empty the columns that you don't want to use.

Creation of lookup table

Figure 4.231. Creation of lookup table


Note: By clicking on the + icon you can add more than 10 columns in the lookup table, The maximum is 20 columns.

The lookup table structure can be updated later from the Structure tab in the lookup table detail screen.

The " Duplicate an existing lookup table " action button available at the upper section of the creation screen can be used to duplicate an existing lookup table from the current environment or from another environment you have access to.

Duplicate a lookup table

Figure 4.232. Duplicate a lookup table


4.7.3. Lookup table detail - General

This page shows you all the details about the lookup table. It can be accessed from the lookup tables list screen.

The page contains the following tabs.

General

This tab contains the signaletic information of the lookup table, and offers actions that act on the whole lookup table.

Lookup table detail - tab General

Figure 4.233. Lookup table detail - tab General


Id

A unique identifier automatically set by the Babelway platform.

Created On

Date and time of element creation.

Last Updated On

Date and time of last element configuration update.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free description for the lookup table.

Shared

If checked, the lookup table can be accessed from other environments. The other environment will just need the sharing access key to be able to access it.

Sharing access key

The key used by Babelway' system to identify the lookup table.

Replication mode

Lookup table entries are synchronized among all messaging engine servers. In a normal situation (when all servers are available and able to communicate), all entries are guaranteed to be correct, regardless where messages are processed. The 'Replication mode' parameter controls the synchronization during stress periods, like the network disconnection of one of the servers. The 'loose' mode is fault tolerant, this means that the messages processing will not be interrupted. However, there is very little chance of inaccuracy. When the reconnection occurs, the system performs consistency checks and creates an alert if an entry was modified independently by 2 messaging engine servers. The 'strict' mode guarantees the accuracy of the entries. This mode implies that message processing will fail if the entry update cannot be replicated immediately to all messaging engine servers. Use this for exact counters, like invoice number. This Default is 'loose'.

The " Save " action button allows you to save the changes you made in this tab (name, description and sharing option).

The Delete table action button allows you to delete the lookup table, but is only accessible if the lookup table is not used in any transformation.

The Duplicate table action button allows you to duplicate the structure of the lookup table.

4.7.4. Lookup table detail - Structure

This page shows you all the details about the lookup table. It can be accessed from the lookup tables list screen.

The page contains the following tabs.

Structure

This tab allows you to edit the columns of the lookup table.

Lookup table detail - tab Structure

Figure 4.234. Lookup table detail - tab Structure


4.7.5. Lookup table detail - Content

This page shows you all the details about the lookup table. It can be accessed from the lookup tables list screen.

The page contains the following tabs.

Content

This tab allows you to view and edit content of the lookup table.

Lookup table detail - tab Content

Figure 4.235. Lookup table detail - tab Content


  • To update the value of a cell, just click on it. The cell will become editable, and you will be able to change the value.
  • To add new rows, click on Add an entry. A new row will be added at the bottom of the table. You can then complete the values by updating each cell.
  • To delete rows, click on Delete at the right of the line. The row will be removed from the table.

Don't forget to Save after applying the needed changes.

The " Import data from CSV " action button allows you to import the lookup table data directly from a CSV file without having to create a channel. See Automatic Population of Lookup table from CSV

The Create data import channel action button allows you to create a channel to import data in the lookup table from an outside data source in an automatic way.

The Export data action button allows you to export existing lookup table data in CSV format.

Note: When exporting the lookup table which has more than 100000 lines (for example this lookup table has 200000 lines), the export button will only export the first 100000 lines in the lookup table.

Note: If you have a lookup table with a huge number of rows, it is theoretically impossible to delete all rows of this lookup table by using the normal delete button next to each row. It would take a lot of time to delete all rows. Therefore, we can delete all the data in the lookup table in one shot by following the below steps.

1- From the Lookup table, go to the "Content" page and click on "Import data from CSV".

Import Data From CSV

Figure 4.236. Import Data From CSV


2- Now upload the CSV file and make sure that Append is disabled. Then click on the "Import" button.

Import Page

Figure 4.237. Import Page


Note: Below is a sample from the CSV file that we have used.

	,,,,,,,,,,
	

3- The lookup table will now have one record in it. You will need to delete it manually by pressing the delete button and then saving the lookup table.

Delete Row

Figure 4.238. Delete Row


4.7.6. Lookup table detail - Related items

This page shows you all the details about the lookup table. It can be accessed from the lookup tables list screen.

The page contains the following tabs.

Related items

This tab allows you to see in which transformations the lookup table is used.

Note that this list does not contain transformations within other environments using the table as a 'shared lookup table' or transformations using the table inside custom XPath or Xslt functions.

Lookup table detail - tab Related items

Figure 4.239. Lookup table detail - tab Related items


Note: When the lookup table is used in the transformation and you changed the lookup table name when saving it you will receive a notification, That the name of the lookup table is changed and this caused the loss of the references of this lookup table in the following transformations, as shown below.

Lookup Table Name Changed Notification

Figure 4.240. Lookup Table Name Changed Notification


In this case you will need to check the transformations affected by this change and use the new lookup table name.

4.7.7. Use your lookup tables

The lookup tables are almost exclusively used in transformations, to translate incoming values to outgoing values contained in the table.

This is explained in detail in the in the help section about drag-and-drop transformations.

4.7.8. Automatic Population of Lookup table from CSV

Automatic Population of Lookup table allows you to import the lookup table data directly from a CSV file without the need to create a channel to do so.

After creation of a lookup table you can import data from a CSV file by clicking on Import data from CSV action button under the Content tab as illustrated below:

Import action button under Content tab

Figure 4.241. Import action button under Content tab


This will automatically direct you to the the following page.

Lookup Tables Data Import from CSV page

Figure 4.242. Lookup Tables Data Import from CSV page


You can upload your CSV file and select the parameters that match your CSV structure and then click on Import action button to complete the import process.

4.7.9. Automatic Population of Lookup table using Channel

Automatic Population of Lookup table allows you to import the lookup table data from outside data source.

After creation of a lookup table you can create a data import channel by clicking on Create a channel to import data in the table as illustrated below:

Create a lookup table data import Channel

Figure 4.243. Create a lookup table data import Channel


This will automatically create a data import channel in your account with predefined gateways and message definitions.

You can upload your CSV file directly from the created web gateway like the following example or you can modify the channel to meet your requirements.

Lookup Tables Data Import Channel

Figure 4.244. Lookup Tables Data Import Channel


In this example we have two fields (counterName and value).

Below, please find the CSV file:

1,1001
2,1002
3,1003
4,1004

How to create a "Message Out" of type XML to use it in the lookup table.

1- Go to the "Message Out" and create Message Out of type XML using the below XML sample:

Create the Message Out for the lookup table channel

Figure 4.245. Create the Message Out for the lookup table channel


Note: Below is the XML sample file:

<?xml version="1.0" encoding="UTF-8"?>
<csv xmlns="http://xmlns.babelway.com/2007/message-format/csv">
	<line>
		<field>a</field>
		<field>b</field>
		<field>c</field>
		<field>d</field>
		<field>e</field>
		<field>f</field>
		<field>g</field>
		<field>h</field>
		<field>i</field>
		<field>j</field>
	</line>
</csv>
		

2- Select the Loop node and remove it by clicking on "Remove this loop".

Remove the Loop under the line node

Figure 4.246. Remove the Loop under the line node


3- Select "line" node and click on "Create loop" to create a loop node above the "Line" node. This will allow to create multiple lines in the output message.

Create a Loop above the line node

Figure 4.247. Create a Loop above the line node


4- Select the "field" node and duplicate it nine times by clicking on "Duplicate".

Duplicate the field node

Figure 4.248. Duplicate the field node


5- Select the "field" node and change its "Label" to "code" in this example. The code is the name of the first column of the lookup table.

Rename the field node

Figure 4.249. Rename the field node


Note: It is not mandatory to change all the "field" node's labels but this will make it easy when mapping the "Message In" to the "Message Out" in the transformation.

4.8. Routing

Routing is used to choose which channel must process a message when different channels share the same gateway in.

Routing is done at the first step that is different for channels sharing the same gateway in. So if 2 channels use the same gateway in but different messages in, routing will take place at message in step, and determine (based on the routing rules you configured) where your message should be handled next. If both channels use the same gateway in and the same message in but different transformations, routing will take place at transformation step, to determine wich transformation should be used.

As the routing only chooses the next element of the processing (message in, transformation or gateway out), and not directly channels, it can happen that a channel has routing at multiple steps. Let's illustrate this by the following example:

Channels that need routing

Figure 4.250. Channels that need routing


  • The 2 channels share the same gateway in. A routing will be required.
  • As the 2 channels also share the same message in, no routing is required at this step.
  • When coming to transformation step, there are 2 potential transformations to be executed: a routing is required to choose between these 2 transformations.

This example will be used for all screenshots of this chapter.

Note: The routing changes don't change the status of the channel to be "Apply changes" but needs to be deployed to push the changes into production, so you should deploy your environment after any changes in the routing.

4.8.1. Routing list

The List of routings shows all the routings existing in your environment, one by line.

This screen is accessible by clicking on the Channels menu, then on the Routing sub-menu

List of routings

Figure 4.251. List of routings


The first five columns illustrate, in that order, the five main steps of the message processing. : Gateway in, Message in, Transformation, Message out and Gateway out. 3 cases are possible :

Routing list page colors

Figure 4.252. Routing list page colors


  • The background is white. This means that this step precedes the step of the routing illustrated on the line, and therefore that all channels involved in the routing share the same element for this step. The name of this element is displayed in the cell.
  • The background is dark gray. This means that this is the step for which the routing must make decisions. The number of choices is displayed in the cell. Click on the line to get more information about the elements involved and edit the rules for the decision. See routing detail.
  • The background is light gray. This means that this step follows the step of the routing, and is therefore of no interest for the routing. The cell is left empty.

The Channel columns just show you the names of all the channels that are involved in this routing. At the end of the processing, the routing decisions will have chosen one of these channels.

You can click on a line to view the details of the routing, and edit all its rules.

You can't directly create new routings. The routings will be automatically created when needed.

4.8.2. Routing detail

The detail of the routing allows you to edit all the rules to choose the next element to process.

Routing detail

Figure 4.253. Routing detail


The first part of the screen just summarizes when this routing will be used, by clearly showing which preceding steps are shared by all the channels involved in this routing.

The second part of the screen displays all the rules. There is one line by possible candidate that can be chosen by the routing. The columns of the table are:

Priority

Tells in which order the rules will be evaluated. The system first evaluates rules that have the lowest priority. The evaluation of the rules is stopped as soon as the condition of a rule is satisfied, and the system chooses the next element notified in this rule.

Metadata

Tells which metadata will be used for testing the condition. For example, in the figure, the metadata com_babelway_messaging_context_mail_subject has been selected. This means that the rule will be satisfied if the subject of the email used to receive the message matches the following expression. If you want that your condition applies on the whole message, select com_babelway_messaging_context_message. Please refer to the Metadata chapter for a list and description of all available metadata.

Condition (regular expression)

A regular expression that the selected metadata must match to satisfy the routing rule. Please refer to the Regular Expression in External References chapter in the appendices for description and reference about regular expressions.

then choose...

The element that will be chosen as next element for the processing if the rule matches.

Channels

The channels that are still reachable after having chosen the rule. If you still get multiple channels, it means that another routing will happen at a further step to choose the right channel.

As an example, the rules illustrated in the figure above can be read. :

  • If the subject of the email is "Tutorial1", then choose the transformation "Countries xml to csv" (used in Channel "Tutorial 1") as next step.
  • If the subject of the email is "Tutorial2", then choose the transformation "Countries xml to csv-1" (leading to Channel "Tutorial 2a" or "Tutorial 2b") as next step.

Using regex and xpath in the routing condition

For example, we have five channels. Four of them receive an XML message file and one of them receives an EDIFACT message file. For the EDIFACT message, we will use a regex for the routing rule and for the XML message, we will use the xpath for the routing rules.

Below is the logic for the routing rules that we want to achieve.

  • Channel 1 will receive order messages from the sender with the "1146875312911" GLN.
  • Channel 2 will receive order messages from the sender with the "2214674221322" GLN.
  • Channel 3 will receive order messages from the sender with the "3357465940233" GLN and with a test Indicator equal to 1.
  • Channel 4 will receive order messages from the sender with the "4409782460744" GLN and with a message version equal to 2.
  • Channel 5 will receive order messages from the sender with the "8426571930459" GLN.
  • The non routable messages channel will receive all order messages that didn't match any of the above routing rules.

Note: All the channels are sharing the Gateway In, and the channels ( Channel 1, Channel 2, Channel 3, Channel 4 ) are sharing the Gateway In and Message In.

Routing Rules

Figure 4.254. Routing Rules


As we can see in the above figure, we have two routing tables when we display the routing page from Channel 4 The first table is responsible for routing messages between Channel 5, Non routable message channel and Group of channels " Channel 1 and Channel 2 and Channel 3 and Channel 4 ", while the second table is responsible for routing messages between Channel 1, Channel 2, Channel 3 and Channel 4.

Note: We can see two routing tables when we check the routing from Channel 4 because all the channels are sharing the Gateway In and some of the channels are sharing the Message In only, and that is why we can see two routing tables.

Regarding the first routing table

For Channel 5 we used .*UNB.*8426571930459.*BGM\+220.* as regex expression to match all of the EDIFACT order messages received from the sender whose GLN is "8426571930459".

Note:

  • The . means match any single character.
  • The * means match any number of repeats ( Zero or more ).
  • The .* combined means match any character repeats zero or more times.
  • The \ is used to escape any regex special characters, In this case to escape the + character.

For the group of channels ( Channel 1, Channel 2, Channel 3, Channel 4 ) we used xpath:count(/EDIXml) >=1 to match all XML order messages and then in the second routing table we will route each message to its corresponding channel.

Note: To be able to use xpath in the routing rule we must use xpath: before the xpath condition.

For the Non routable messages channel we used .* as regex expression to match all order messages that didn't match any of the above routing rules.

Regarding the second routing table

For Channel 1 we used this xpath:/EDIXml/SenderID="1146875312911" to match all XML order messages received from the sender whose GLN is "1146875312911".

For Channel 2 we used this xpath:/EDIXml/SenderID="2214674221322" to match all XML order messages received from the sender whose GLN is "2214674221322".

For Channel 3 we used this xpath:/EDIXml/SenderID="3357465940233" and /EDIXml/TestIndicator=1 to match all of the XML order messages received from the sender whose GLN is "3357465940233" and with a test indicator value of 1.

For Channel 4 we used this xpath:/EDIXml/SenderID="4409782460744" and /EDIXml/Version=2 to match all XML order messages received from the sender whose GLN is "4409782460744" and with Version value of 2.

Using lookup table function in the routing condition

For some complex channels set up we can benefit from the ability to use the lookup table function in the routing condition in order to achieve the requested routing logic.

The below example shows how we can use the lookup table function in the routing condition to route the messages if they are duplicate messages then route them to the "Duplicate messages" channel, If the messages are for existing suppliers then route them to the "Receive notification messages for existing suppliers" channel, If the messages are for suppliers that don't exist in the system then route them to the "Send notification and original message that supplier doesn't exist" channel, Finally route the other messages to "No notification" channel, as shown below.

Using lookup table function in the routing condition

Figure 4.255. Using lookup table function in the routing condition


Below are the complete routing rules in order to check them.

1- xpath:not(contains('NOT_FOUND', bbw:lookupTableValue('Check duplicate messages','Reference','Reference',/Invoice/InvoiceNumber,'NOT_FOUND')))

2- xpath:not(contains('NOT_FOUND', bbw:lookupTableValue('Suppliers','ID','ID',/Invoice/SupplierID,'NOT_FOUND')))

4.8.3. Editing routings from channels section

It is also possible to edit the routing rules directly from the channel detail screen.

The edition is done exactly like in the routing detail screen. There are only a few differences, that will be explained here.

Edit routing in channel detail

Figure 4.256. Edit routing in channel detail


The main difference is that this screen is channel-centric, while the routing detail screen is routing-centric.

  • All the routings in which the channel is involved will be detailed.
  • The rules that apply to the current channel will be emphasized. They have a blue background.
Routing page selected background

Figure 4.257. Routing page selected background


Note: The routing changes don't change the status of the channel to be "Apply changes" but needs to be deployed to push the changes into production, so you should deploy your environment after any changes in the routing.

4.9. Test cases

Testing allows you to easily test channel operations to validate it before deployment. Ideally, all channels should include a few basic test cases to confirm that their configuration covers the basic use cases.

After configuring a channel, its operations should be tested. This is done by creating and running test cases. In doing this, you feed your channel with test input files and confirm that the channel produces the expected output results.

When running a channel test case, message in, transformation and message out processes are executed and tested in real conditions. Only the gateways cannot be validated since they require exchanges with external parties.

Testing tab list of existing test cases

Figure 4.258. Testing tab list of existing test cases


The testing tab displays a list of test cases defined for the selected channel. You can edit a test case by clicking on its name in the first column. Click on Add Test Case to create a new test case. Both these operations open the Edit Test Case screen described here under.

In the same table, you can select test cases by checking the text box in each line. By clicking on Run selected test cases you will trigger a run of each of these test cases. The results will later be visible in the Message Record screen described here under.

You can also delete a selection of test cases by clicking on Delete Selected.

Edit Test Case

When you create a new test case or edit an existing one, you will reach the following page:

Edit test case screen

Figure 4.259. Edit test case screen


Change Test Case Type

You can change the test case type between "Channel , Transformation" as shown below:

Change test case type

Figure 4.260. Change test case type


The following parameters can be set according to your setup:

Id

A unique identifier automatically set by the Babelway platform.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Success

Select one of following conditions for testing success:

if there is no error and it has been processed by this channel

Test is successful if no error occurred during processing, do the routing rules if routing is checked and look at the end if the Message Record is in state "DONE" and that the Message Record's channel is the one where the test case is configured.

if there is no error, the output equals the ExpectedMessageOut and it has been processed by this channel

Test is successful if no error occurred during processing, do the routing rules if routing is checked, check that the channel of the message record is the one of the test case and checks if the output file is the same as the file in the File Property "ExpectedMessageOut".

if an error occurs

Test is successful if an error occured during processing. This test is used to validate processing behavior in specific cases and check that an error is properly returned in these cases.

if there is no error and it has not been processed by this channel

Test is successful if the status of the Message Record is set to DONE but also checks if the channel of the Message Record is not the channel of the test case (meaning that the message did not generate any error and it has been routed away from the channel of the test case). This allows you to test that the routing happens as expected.

ExpectedMessageOut

Upload message that will be compared to processed message during test.

MessageIn

Upload message that will be used as input for test.

Note: The status of the message is different than the status of the test, Message status: contains the status of the message itself, Test status: contains the status of the test, based on the Success condition.

Test routing rules using test case

When we create test case to test the routing rules we will select test case type of "Channel" in order to be able to test the routing before deploying it, And we will control the success routing condition to set the status of the test to be success if the message is processed by this channel or if the message is processed by another channel in the "Success condition" section.

Success routing condition

Figure 4.261. Success routing condition


Note: The Success routing condition is the condition on the routing that must be fulfilled so that the test is considered as successful.

Add user defined metadata in the test case

We can create a user defined metadata in the test case. This is useful for example if we want to mimic a user defined metadata that is sent from the first channel to this channel. The example below shows how to create a user defined metadata in a test case to mimic the actual logic for the channel that is to receive a user defined metadata from the first channel and map this user defined metadata in the mapping (there are so many scenarios in which we can use the user defined metadata in the test case; this depends on the logic which the channel is designed for).

From the test case in the "Input" section, click on the + icon related to the "Metadata" field to generate two empty fields.

The first one, on the left, is used to define the user defined metadata name. The field on the right is used to define the user defined metadata value, as shown below after we have added the two fields' values with the proper values for testing.

Test case Metadata

Figure 4.262. Test case Metadata


Note: To make sure that the user defined metadata name is defined properly in the test case you will need to use "user-defined-property:" before the user defined metadata name which in this case is "TestMetadata", as shown above.

Now in the mapping we have used the metadata() function to get the value of this user defined metadata, as shown below:

Mapping Metadata

Figure 4.263. Mapping Metadata


The data will be generated in the output message, as shown below:

Output Metadata

Figure 4.264. Output Metadata


The ability to define a user defined metadata in the test case is very helpful in testing the channel.

Note: You can define and use the user defined metadata in the test case to test your channel based on your channel logic.

Message Record

The following message details screen is displayed upon running a test.

Message record

Figure 4.265. Message record


From here, you have access to all the message files such as in and out messages in defined format as well as processed in and out XML messages.

The Status field indicates if message processing was successful or not. Next to it, between brackets, the test result is added as Test Successful or Test failed.

Note

All existing tests will be run at channel deployment time. If at least one of them fails, deployment will be aborted.

4.9.1. Test case detail

Note

Describes all the fields and actions of all tabs.

Channel

The channel used by this test case, acccess it following the link.

Name

A name that you can set and/or modify to easily retrieve and manage your element.

Description

A free text field that you can set and/or modify used in addition to the element name to help you identify your element usage and/or function.

4.10. Certificates

The keystore is the page where you can modify the keystore specific to your account. Each Babelway account environment has its own keystore and is able to add or remove certificates without affecting other users.

A key is private information that is only known by your account environment and may not be shared with others. It holds the secret that only you can know to decrypt messages sent to you.

A certificate is public information that can be shared with others and be known by anyone. It allows them to verify that your signature could only have been generated with the key corresponding to the certificate.

Key/Certificate pairs can be self-signed but are usually generated by certificate authorities such as Thawte Consuting, Verisign Inc.,Comodo CA Limited….etc

Each certificate entry in the table below can be downloaded in various formats, or revoked. These options are available on the certificate's detail page, accessible by clicking on a table entry.

Trusted Certificates

Figure 4.266. Trusted Certificates


Your Certificates

Figure 4.267. Your Certificates


Certificate Update

Figure 4.268. Certificate Update


Certificates

This section lists all key/certificate pairs that are currently in your keystore. They are typically used to sign outgoing messages or decrypt incoming messages. In order to share the certificate with your partner, you can download the certificate by clicking on it to access its details page. Then, use the Download link. Note that the downloaded file will never include your private key and only contain your public certificate.

You can add a new key/certificate pair using a PKCS12 file under the Add new Certificate section.

Trusted certificates

This is the list of trusted certificates currently in your keystore. A trusted certificate corresponds to the public certificate of one of your partners.

You can add a new trusted certificate by using an https URL. In this case, the certificate linked to the HTTPS page will be trusted. You can also add a new trusted certificate using the certificate file provided by your partner.

In each case, you can select to trust the root of the given certificate. If you choose to do so, all certificates generated by the certificate authority will be trusted.

Note: A deployment is required after updating a certificate or adding new certificate in order to push this changes to production.

The supported certificates in the Babelway system are (DER encoded binary X.509 ".CER", Base-64 encoded X.509 ".CER", PKCS #7 Certificates ".P7B", .CRT).

To read more about Https gateway See Http Client Gateway Out

4.10.1. Certificate's Details

The certificate's details page regroups and displays all the useful information about a certificate, and gives access to several actions such as revoking the certificate, or downloading it.

Alias

An alias to easily identify the certificate.

Distinguished Name

A set of information about the certificate, used to uniquely identify it.

Serial Number

Internal parameter used to classify certificates

Expiration Date

Date after which the certificate will no longer be valid.

Several actions are available, to help you easily manage every certificate in your keystore, and share them with your partner or across applications.

Download

Download the certificate in PKCS12 format.

Download PKCS7

Download the certificate in PKCS7 format.

Download SSH

Download the certificate's public key in pub format encoded as an ssh-rsa key.

Revoke

Definitely remove a certificate from your Babelway keystore

Related items

This tab contains quick links to many other elements related to this gateway.

Using channels

All the channels that use this element.

Using gateways

All the Gateways that use this certificate (by default, and depending on the trust level setting, https gateways trust the certificates present in you keystore).

Connected Message Definition (through extra-processing)

List of message definitions that have an extra-processing related to this certificate.

4.10.2. Trust new certificate

To trust the new certificate in your environment follow the below steps.

1-From "Certificate" page click on the "Trust new certificate" button, as shown below.

Certificate page

Figure 4.269. Certificate page


2-Provide the Alias for your certificate then you can select to Trust the URL or upload the certificate file, as shown below.

Trust new certificate page regarding URL

Figure 4.270. Trust new certificate page regarding URL


Trust new certificate page regarding upload certificate

Figure 4.271. Trust new certificate page regarding upload certificate


Now the certificate will be displayed in the "Trusted certificates" tab, as shown below.

Trusted certificates

Figure 4.272. Trusted certificates


Note: A deployment is required after updating a certificate or adding new certificate in order to push this changes to production.

The supported certificates in the Babelway system are (DER encoded binary X.509 ".CER", Base-64 encoded X.509 ".CER", PKCS #7 Certificates ".P7B", .CRT).

Alias

An alias that you can set to easily identify your certificate.

Certificate

Upload or give the location of the certificate when you trust.

Trust root certificate

Indicate if you want to trust certificates issued by the provider of the selected certificate.

4.10.3. Add a certificate

1-From "Certificate" page click on the "Add key certificate" button, as shown below.

Add key certificate

Figure 4.273. Add key certificate


2-Provide the Alias for your certificate then upload the Pkcs12 file and provide its corresponding password, as shown below.

Add certificate page

Figure 4.274. Add certificate page


Now the certificate will be displayed in the "Your certificates" tab.

Note: A deployment is required after updating a certificate or adding new certificate in order to push this changes to production.

Alias

An alias that you can set to easily identify your certificate.

Pkcs12 file

Upload your Pkcs12 file.

Pkcs12 password

The password required to use your Pkcs12 file.

4.10.4. Certificate Update

This page allows you to replace one certificate by another existing certificate on selected gateway(s) or message definition(s). Note that it only updates the properties of the gateways/message definitions that reference the certificate and it requires a deploy to be effective.

First, choose the certificate type ('Trusted certificates' or 'My certificates')

Certificate type

The type of certificate to update

Depending on the certificate type option, some parameters are displayed.

The following parameters are available for 'Trusted certificates' option:

Trusted certificate to update

The trusted certificate to update

New trusted certificate

The new trusted certificate to be set on selected gateway(s) or message definition(s)

The following parameters are available for 'My certificates' option:

My certificate to update

My certificate to update

New certificate

The new certificate to be set on selected gateway(s) or message definition(s)

Keep old certificate

Whenever possible, for parameters supporting multiple certificates, keep the old certificate instead of overwriting it.

After having selected the gateway(s) and/or the message definitions you want to update, the following action is available:

Update

Update the selected gateway(s) and/or message definition(s) properties with the new certificate

4.11. Extra processings

An extra processing is an additional operation that must be applied on all messages.

Some examples are: extract a message from a zip file, sign a message, reject a message if it is a duplicate, ...

The extra processings can take place before of after each of the 5 main operations applied to messages in Babelway (gateway in, message in, transformation, message out and gateway out).

The extra processings of an element can be accessed via the tab "Extra processings" of the screen that details the element.

Extra processings

Figure 4.275. Extra processings


To add an extra processing, just click on Add extra processing. It will open a popup like shown in the following screenshot, where you can just click on the desired extra processing to add it. Don't forget to save.

Extra processings

Figure 4.276. Extra processings


If you use multiple extra processings on the same element, they will be executed in a predefined order, that you cannot choose. The extra processings are always displayed in the order of execution (first displayed extra processing if also the first one to be executed). For example, in the screenshot above, zip unwrapping will be executed before replacement based on regular expressions.

4.11.1. Extra processings on gateway IN

Zip unwrapping

This extra-processing allows to extract multiple files from a zip, and to process each of those files separately.

The parameters are :

File name pattern

Pattern (regular expression) for the file name in the zip of the files that will be extracted.

Note: This extra processing is not executed while resubmitting a message and the message should be received again via the Gateway IN in order to be unwrapped.

X12 splitting

This extra-processing allows to split an X12 interchange and to process each of the transaction files separately.

If the linked message definition requests a 997 acknowledgment, the system will send a single message containing the acknowlegment for all transactions in the incoming interchange.

The parameters are:

Input Charset

Charset to use to decode the file.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the message created for the transactions.

Note: This extra processing is not executed while resubmitting a message and the message should be received again via the Gateway IN in order to be splitted.

Edifact splitting

This extra-processing allows to split an Edifact message and to process each of the transactions separately.

The parameters are:

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the message created for the transactions.

Note: This extra processing is not executed while resubmitting a message and the message should be received again via the Gateway IN in order to be splitted.

Automatically close errors

This extra-processing allows to define criteria to automatically close an error that occurs during the Gateway IN step.

The parameters are :

Error message patterns

The patterns that will be tested against the error message.

If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed).

Message identifier

This extra processing analyses the incoming message, and associates the following metadatas to it:

universal_router_type

The type of document, like 'ORDERS', 'INVOIC', 'DESADV', ...

universal_router_format

The format of the message, like 'EDIFACT', 'X12', 'IDOC', ...

universal_router_version

The version of the message format. For example, for EDIFACT, version can be '96A', '01A', ...

universal_router_sender

The identification of the sender of the message

universal_router_receiver

The identification of the receiver of the message

universal_router_key

The intergration of the five previous fields, separated by '_'. The goal of this field is to simplify the writing or routing rules, or of keys of messages, that want to use all of the above fields.

Note: For example, When we have "Message In" of type X12 and we receive multiple input messages with different encoding then we can use the universal router encoding {universal_router_encoding} system metadata in the "Input Charset" from the "Properties" of the X12 "Message In" to generate the correct encoding for each received input message with different encoding, as shown below.

Using universal router encoding in the "Input Charset" of X12 "Message In"

Figure 4.277. Using universal router encoding in the "Input Charset" of X12 "Message In"


Note: The metadata universal_router_encoding is added thanks to the extra processing Message identifier.

The metadata will typically be used by a following routing. As an example, suppose that you receive orders in different formats with the same gateway. This extra processing can be used to identify the following formats: EDIFACT, X12, IDOC (xml or flat file), RND, VDA, cXML, UBL. This information can then be used to route the message to the correct message definition.

Parameters :

Custom identifier

This extra processing can take a custom identifiers XML file definition to import custom extractor.

The XML is defined as followed :

<?xml version="1.0" encoding="UTF-8"?>
<Identifiers>
	<Identifier>
		<IdentifyByRegex length="10000" encoding="UTF8"><![CDATA[<\?xml.*<cbc:UBLVersionID>(.*)<\/cbc:UBLVersionID>.*]]></IdentifyByRegex>
		<Format>UBL_CUSTOM_$1</Format>
		<Version>$1</Version>
		<Sender>
			<Xpath><![CDATA[/Invoice/AccountingSupplierParty/Party/PartyIdentification/ID/text()]]></Xpath>
		</Sender>
		<Receiver>
			<Xpath><![CDATA[/Invoice/AccountingCustomerParty/Party/PartyIdentification/ID/text()]]></Xpath>
		</Receiver>
		<Type>
			<Regex>
				<Expression><![CDATA[<\?xml (version)="1\.0" encoding="UTF-8"\?>\n<\?xml-stylesheet type="text\/xsl" href=".*" \?>\n<([A-Za-z]*) xmlns:.*>.*<cec]]></Expression>
				<Value>$1-$2</Value>
			</Regex>
		</Type>
	</Identifier>
	<Identifier>
		<IdentifyByRegex length="900" encoding="UTF8"><![CDATA[CUSTOM(ISA)\|([0-9]+).*GS\|IN\|([0-9]+)\|([0-9]+)]]></IdentifyByRegex>
		<Format>$1_$2</Format>
		<Version>$2</Version>
		<Sender>$3</Sender>
		<Receiver>$4</Receiver>
		<Type>ISA_HARCODED</Type>
	</Identifier>
</Identifiers>
		

XML tags :

IdentifyByRegex

This XML tag represents the regular expression used to identify a specific message. It takes two attributes: 'length', which is the number of bytes of the original message that we need to use for identification (try to use the smallest one possible to increase performance if you have long messages) and 'encoding', which is the encoding of the messages that you will send.

Format,Version,Type,Sender,Receiver

These are the 5 values that we want to extract from our message. Under those tags, you will find three extraction types, as described below.

Extractor types :

Regex

This xml tag takes two children tags : 'Expression' which represents the regular expression matching the values you want to extract. Use parentheses in the regex to create matching group. And 'Value' that will use the matching groups from the Expression to create a value. Use '$1' to insert matching group 1, $2 for matching group 2, etc...

Xpath

You can extract value with an Xpath expression (if the message in input is an XML of course). Just write the xpath expression in the xml content.

Value

You can put a hardcoded value directly within the parent tag. $i can be used to add a matching element from the identifying pattern (IdentifyByRegex tag)

This is another example of how to identify a CSV file

This is a sample of the CSV file

SenderID,ReceiverID,MessageKey,DocumentType , DocumentNumber , Date , Time, ItemNumber, ItemDescription, ItemQuantity, ItemPrice
8431598762018,2139854706451,1ae187a1-afe7-108e-9343-37971a38b936,InvoiceDocument,17052017,0205,01,Item Description 1,3,15.75
8431598762018,2139854706451,108e9343-e187-e933-71a3-187a1afe7108,InvoiceDocument,17052017,0205,02,Item Description 2,1,75
8431598762018,2139854706451,71a3187a-43e1-7a1a-ae18-97a57c17423a,InvoiceDocument,17052017,0205,03,Item Description 3,5,5.5
8431598762018,2139854706451,aae1848c-7618-a0c1-f941-37971a38b936,InvoiceDocument,17052017,0205,04,Item Description 4,7,17
8431598762018,2139854706451,0ca57c1f-c7ff-4952-c5af-12a0c1f941a3,InvoiceDocument,17052017,0205,05,Item Description 5,2,7
		

Below are the positions of the (Sender, Receiver, Type) that we will extract from the CSV file and use to create the Custom Identifier file.

The UniversalRouterSender will be extracted from the second row, first column.

The UniversalRouterReceiver will be extracted from the second row, second column.

The Type will search for "InvoiceDocument" in the CSV file.

The XML is defined as followed :

<?xml version="1.0" encoding="UTF-8"?>
<Identifiers>
	<Identifier>
		<IdentifyByRegex length="10000" encoding="UTF8"><![CDATA[(?i)\s?SenderID\s?,\s?ReceiverID\s?,\s?MessageKey\s?,\s?DocumentType\s?]]></IdentifyByRegex>
		<Format>CSV</Format>
		<Version>CSV-1.0</Version>
		<Sender>
		<Regex>
			<Expression><![CDATA[(?i).*?\n(.*?),]]></Expression>
			<Value>$1</Value>
		</Regex>
		</Sender>
		<Receiver>
		<Regex>
			<Expression><![CDATA[(?i).*?\n(.*?),(.*?),]]></Expression>
			<Value>$2</Value>
		</Regex>
		</Receiver>
		<Type>
			<Regex>
				<Expression><![CDATA[(?i)(\s?(InvoiceDocument)\s?,)]]></Expression>
				<Value>INVOICE</Value>
			</Regex>
		</Type>
	</Identifier>
</Identifiers>
		

Below is a print screen of the "contextOut.xml" file from the CSV file processed by the channel that has this Custom Identifier file showing the extracted information saved in the universal router metadatas.

Universal Router Metadatas

Figure 4.278. Universal Router Metadatas


Note: To be able to get the value from an XML file containing a namespace, you will need to use the *: for the prefix in the XML path when using the xpath for the Custom Identifier file.

For example, below is the path to use if you want to get the value in the field "cbc:ID" from the below input message and save it in the "Type" for the custom identifier file.

Input Message With Namespace

Figure 4.279. Input Message With Namespace


The path is /*:Invoice/*:ID

The Path

Figure 4.280. The Path


Note: This extra processing is not executed while running a test case.

Delay execution

Allow to pause execution for some minutes before processing the message.

The parameters are :

Minutes to wait

The number of minutes that the system must wait before processing the message.

Note: This extra processing is not executed while resubmitting a message and the message should be received again via the Gateway IN in order to be delayed.

Note: This extra processing is not executed while running a test case.

4.11.2. Extra processings on message definition IN

Save input file

Allows you to save your input file as a metadata, for future use as explained in the next steps.

The parameters are :

Metadata

The metadata in which you want to be saved in the input file.

Duplicate incoming message

Allows to duplicate the incoming message, and inject it into another channel.

The parameters are :

Step

When the incoming message must be duplicated in the process of the original message. If Duplicating the message later, the message will not be duplicated if the message fails some validation.

Target gateways

The gateways to which the duplicated message will be sent.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

Note: This extra processing is not executed while running a test case.

Zip unwrapping

Allows you to extract your input file from a zip. It also allows you to save other files of the zip to be reused, in the next steps.

As an example, suppose that your channel is designed to process xml orders. However, instead of directly receiving the xml order from your partner, you receive a zip file that containing the expected file order.xml, and also a file order.pdf. You can just extract your order.xml file by using this extra processing with the pattern 'order.xml'. If you need it for later use, you can also save the pdf file for future use (reuse in your transformation, reinclude it in archive in message out, ...)

The parameters are :

File name pattern

Pattern (regular expression) for the file name in the zip of the file that will become your input message. First match is used.

Other files to save

Allows you to save other files of the zip for future use. For every file that you want to save, you have to specify the pattern of the file name in the zip and the name of the metadata in which you want to save the content. If one pattern matches multiple files, it is possible to save them all if you guarantee to generate a different metadata name for each. This can be achieved by using the capturing groups of the regex in the metadata names. Ex: if your pattern is (.*\.csv) and your metadata name is attachment-$1, processing with files file1.csv and file2.csv will result in two metadata as follows attachment-file1.csv and attachment-file2.csv .

Pdf unwrapping

Allows you to extract your input file from a pdf. It also allows you to save other files of the pdf to be reused in the next steps.

As an example, suppose that your channel is designed to process xml orders. But instead of directly receiving the xml order from your partner, you receive a pdf file, with your xml order included as a pdf attachment. You can extract your order.xml file by using this extra processing with the pattern 'order.xml'.

The parameters are :

File name pattern

Pattern (regular expression) for the file name in the pdf of the file that will become your input message. First match is used.

Password

Password, if any, to open the pdf file.

Other files to save

Allows you to save other files of the pdf for future use. For every file that you want to save, you have to specify the pattern of the name of the pdf attachment (first match) and the name of the metadata in which you want to save the content.

S/MIME unwrapping

Allows you to extract your input file from a S/MIME envelop. It also allows you to save other files of the pdf to be reused, in the next steps.

The parameters are :

File name pattern

Pattern (regular expression) for the file name in the S/MIME of the file that will become your input message. First match is used.

Other files to save

Allows you to save other attachments of the S/MIME envelop for future use. For every file that you want to save, you have to specify the pattern of the name of the pdf attachment (first match), and the name of the metadata in which you want to save the content.

Signature key alias

The alias of the key (in the keystore of your environment) that will be used to check the signature.

Verify signature

Enables or disables the check of the signature.

PGP unwrapping

Allows to decrypt a file encrypted using PGP.

PGP supports message authentication and integrity checking. The latter is used to detect whether a message has been altered since it was completed (the message integrity property) and the former to determine whether it was actually sent by the person or entity claimed to be the sender (a digital signature). Because the content is encrypted, any changes in the message will result in failure of the decryption with the appropriate key. The sender uses PGP to create a digital signature for the message with either the RSA or DSA algorithms. To do so, PGP computes a hash (also called a message digest) from the plaintext and then creates the digital signature from that hash using the sender's private key.

The parameters are :

PGP Private Key

Private key to be used to decrypt the message. Babelway supports RSA and El Gamal encryption keys

Password

Password to access the private key.

Validation of Xml Signature.

Allows you to validate the Xml Signature.

The parameters are :

Signature verification certificate

Select certificate for data or go to certificates store.

Replacement based on regular-expressions.

Allows you to make a global search and apply regular-expression replacements on your input file, before it is analyzed.

You can define more than one pair of regular-expressions to find & replace pattern.

The parameters are :

Replacements

List of regular expressions and replacement patterns that will be applied on your document for every match.

Remove ASCII Control characters (except line feed)

Allows you to remove ASCII Control characters from input file.

Characters removed are : [x00-x09]|[x0B-x0C]|[x0E-x0F]|[x10-x1F]|x7F

Message identifier

This extra processing analyses the incoming message, and associates the following metadata to it:

universal_router_type

The type of document, like 'ORDERS', 'INVOIC', 'DESADV', ...

universal_router_format

The format of the message, like 'EDIFACT', 'X12', 'IDOC', ...

universal_router_version

The version of the message format. For example, for EDIFACT, the version can be '96A', '01A', ...

universal_router_sender

The identification of the sender of the message

universal_router_receiver

The identification of the receiver of the message

universal_router_key

The intergration of the five previous fields, separated by '_'. The goal of this field is to simplify the writing of routing rules, or of keys of messages, that want to use all of the above fields.

The metadata will typically be used by a following routing. As an example, suppose that you receive orders in different formats with the same gateway. This extra processing can be used to identify the following formats: EDIFACT, X12, IDOC (xml or flat file), RND, VDA, cXML, UBL. This information can then be used to route the message to the correct message definition.

Parameters :

Custom identifier

This extra processing can take a custom identifiers XML file definition to import custom extractor.

The XML is defined as followed :

<?xml version="1.0" encoding="UTF-8"?>
<Identifiers>
	<Identifier>
		<IdentifyByRegex length="10000" encoding="UTF8"><![CDATA[<\?xml.*<cbc:UBLVersionID>(.*)<\/cbc:UBLVersionID>.*]]></IdentifyByRegex>
		<Format>UBL_CUSTOM_$1</Format>
		<Version>$1</Version>
		<Sender>
			<Xpath><![CDATA[/Invoice/AccountingSupplierParty/Party/PartyIdentification/ID/text()]]></Xpath>
		</Sender>
		<Receiver>
			<Xpath><![CDATA[/Invoice/AccountingCustomerParty/Party/PartyIdentification/ID/text()]]></Xpath>
		</Receiver>
		<Type>
			<Regex>
				<Expression><![CDATA[<\?xml (version)="1\.0" encoding="UTF-8"\?>\n<\?xml-stylesheet type="text\/xsl" href=".*" \?>\n<([A-Za-z]*) xmlns:.*>.*<cec]]></Expression>
				<Value>$1-$2</Value>
			</Regex>
		</Type>
	</Identifier>
	<Identifier>
		<IdentifyByRegex length="900" encoding="UTF8"><![CDATA[CUSTOM(ISA)\|([0-9]+).*GS\|IN\|([0-9]+)\|([0-9]+)]]></IdentifyByRegex>
		<Format>$1_$2</Format>
		<Version>$2</Version>
		<Sender>$3</Sender>
		<Receiver>$4</Receiver>
		<Type>ISA_HARCODED</Type>
	</Identifier>
</Identifiers>
		

This is another example on how to identify CSV file.

This is a sample of the CSV file

SenderID,ReceiverID,MessageKey,DocumentType , DocumentNumber , Date , Time, ItemNumber, ItemDescription, ItemQuantity, ItemPrice
8431598762018,2139854706451,1ae187a1-afe7-108e-9343-37971a38b936,InvoiceDocument,17052017,0205,01,Item Description 1,3,15.75
8431598762018,2139854706451,108e9343-e187-e933-71a3-187a1afe7108,InvoiceDocument,17052017,0205,02,Item Description 2,1,75
8431598762018,2139854706451,71a3187a-43e1-7a1a-ae18-97a57c17423a,InvoiceDocument,17052017,0205,03,Item Description 3,5,5.5
8431598762018,2139854706451,aae1848c-7618-a0c1-f941-37971a38b936,InvoiceDocument,17052017,0205,04,Item Description 4,7,17
8431598762018,2139854706451,0ca57c1f-c7ff-4952-c5af-12a0c1f941a3,InvoiceDocument,17052017,0205,05,Item Description 5,2,7
		

Below are the positions of the (Sender, Receiver, Type) that we will extract from the CSV and will use to create the Custom Identifier file.

The UniversalRouterSender will be extracted from the second row, first column.

The UniversalRouterReceiver will be extracted from the second row, second column.

The Type will search for "InvoiceDocument" in the CSV file.

The XML is defined as followed :

<?xml version="1.0" encoding="UTF-8"?>
<Identifiers>
	<Identifier>
		<IdentifyByRegex length="10000" encoding="UTF8"><![CDATA[(\?i)\s\?SenderID\s\?,\s\?ReceiverID\s\?,\s\?MessageKey\s?,\s\?DocumentType\s\?]]></IdentifyByRegex>
		<Format>UBL_CUSTOM_$1</Format>
		<Version>$1</Version>
		<Sender>
			<Expression><![CDATA[(\?i).*\?\n(.*\?),]]></Expression>
			<Value>$1</Value>
		</Sender>
		<Receiver>
			<Expression><![CDATA[(\?i).*\?\n(.*\?),(.*\?),]]></Expression>
			<Value>$2</Value>
		</Receiver>
		<Type>
			<Regex>
				<Expression><![CDATA[(\?i)(\s\?(InvoiceDocument)\s\?,)]]></Expression>
				<Value>INVOICE</Value>
			</Regex>
		</Type>
	</Identifier>
</Identifiers>
		

Below is a print screen from the "contextOut.xml" file from the CSV processed message showing the extracted information saved in the universal router metadatas.

Universal Router Metadatas

Figure 4.281. Universal Router Metadatas


Note: To be able to get the value from an XML file containing a namespace, you will need to use the *: for the prefix in the XML path when using the xpath for the Custom Identifier file.

For example, below is the path to use if you want to get the value in the field "cbc:ID" from the below input message and save it under "Type" for the custom identifier file.

Input Message With Namespace

Figure 4.282. Input Message With Namespace


The path is /*:Invoice/*:ID

The Path

Figure 4.283. The Path


Note: This extra processing is not executed while running a test case.

Save human readable PDF

Allows to save a human readable PDF version as a metadata, for future use in the next steps. This is only available for Edifact and X12 messages.

The parameters are :

Metadata

The metadata in which you want to be saved in the input file.

Trustweaver processing

Calls upon Trustweaver to process your message. See http://www.trustweaver.com for more informations.

The parameters are :

Trustweaver environment

The Trustweaver environment that is targeted by the process.

Client authentication key alias

The alias of the key (in the keystore of your environment) that will be used to authenticate to Trustweaver.

Country code

The TrustWeaver code of the country for which the Trustweaver process will be done.

Document format

The TrustWeaver format of the document for which the Trustweaver process will be done.

Signature format

The TrustWeaver format of the signature for which the Trustweaver process will be done.

Tax Id XPath

The XPath that targets the tax id in the xml payload and that will be used for the Trustweaver process.

Validation Outcome code pattern

A pattern designating the validation outcomes that are accepted.

Error if process fails

If the TrustWeaver process fails, the message will be put in error.

Note: For a complete list for the Trustweaver system metadata and more information about the system metadata check this link System Metadata

Note: This extra processing is not executed while running a test case.

Xslt transformer

Applies an xslt to correct your message. It is applied on the internal xml representation of the message (after the message has been analysed and converted).

Be aware that the message resulting from your transformation must conform with the message definition (tree structure).

The parameters are :

Xslt

The transformation that must be applied.

Document extractor

Allows you to extract any information in the input message to be able to view it directly in the monitor page.

As an example, suppose that you want to extract some information from the input message to be able to view it directly in the monitor page.

First, create the "Document type" you want to use from "Admin / Envirnment settings / Document types"

Based on the information you want to store, you will need to create its corresponding document type, as shown below.

Document types

Figure 4.284. Document types


Note: For more information about the Document types you can check this link Document types.

Then, create this extra processing in the "Message In" and after that click on "Edit" to map the fields you want to extract, as shown below.

Extra processings

Figure 4.285. Extra processings


After that, begin mapping the fields from the input message you want to extract to the fields in this document type, as shown below.

Mapping

Figure 4.286. Mapping


To be able to view the extracted information, go to monitoring and then based on the "name of the document you used" ("orders" in this case), click on it to view the extracted information, as shown below.

Monitoring

Figure 4.287. Monitoring


Note: In order for the new document type to be displayed in the Monitoring page after using it in it's corresponding channel or channels you will need to deploy your environment in order to push this changes to production and the new document will be displayed in the Monitoring page, as shown below.

Deploy your environment

Figure 4.288. Deploy your environment


Automatically close errors

This extra-processing allows to define criteria to automatically close an error that occurs during the message definition IN step.

The parameters are :

Error message patterns

The patterns that will be tested against the error message.

If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed).

4.11.3. Extra processings on Transformation

Automatically retry transformation on error

This extra-processing allows to define criteria to automatically retry a transformation if an error occurs.

The parameters are :

Error message patterns

The patterns that will be tested against the error message.

Retry strategy

Allows you to determine the time interval that needs to be used for the retries.

Email Recipients

Address to which an email will be sent if a retry is scheduled. You can add a comma separated list of recipients or a metadata.

Email Subject

Email message subject. You can use metadata.

Email body type

[text/plain , text/html] default is text/plain.

Email body

Email message Body. You can use metadata.

Automatically close errors

This extra-processing allows to define criteria to automatically close errors.

The field "Error message patterns" is a regex pattern and/or patterns that will be tested against the error message.

If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed), as shown below.

Error Message Patterns

Figure 4.289. Error Message Patterns


Error message patterns

The patterns that will be tested against the error message. If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed).

4.11.4. Extra processings on message definition OUT

Xslt transformer

Applies an xslt to correct your message. It is applied on the internal xml representation of the message (before the message is converted to the output format).

Be aware that the output of your transformation must be compatible with the internal representation of Babelway for this message format.

The parameters are :

Xslt

The transformation that must be applied.

Document extractor

Allows you to extract any information in the output message to be able to view it directly in the monitor page.

As an example, suppose that you want to extract some information from the output message to be able to view it directly in the monitor page.

First, create the "Document type" you want to use from "Admin / Envirnment settings / Document types".

Based on the information you want to store, you will need to create its corresponding document type, as shown below.

Document types

Figure 4.290. Document types


Note: For more information about the Document types you can check this link Document types.

Then, create this extra processing in the "Message Out" and after that click on "Edit" to map the fields you want to extract, as shown below.

Extra processings

Figure 4.291. Extra processings


After that, begin mapping the fields from the input message you want to extract to the fields in this document type, as shown below.

Mapping

Figure 4.292. Mapping


To be able to view the extracted information, go to monitoring and then based on the "name of the document you used" ("orders" in this case), click on it to view the extracted information, as shown below.

Monitoring

Figure 4.293. Monitoring


Note: In order for the new document type to be displayed in the Monitoring page after using it in it's corresponding channel or channels you will need to deploy your environment in order to push this changes to production and the new document will be displayed in the Monitoring page, as shown below.

Deploy your environment

Figure 4.294. Deploy your environment


Line delimiter converter

Converts all line delimiters to the line delimiter that you choose. The original file can have its line delimiters in any style (Unix, Windows, Mac).

The parameters are:

Line delimiter

The line delimiter that you want to use in your output file.

Note: The line delimiter for Unix / OSX is \n, The line delimiter for Windows is \r\n, The line delimiter for Mac is \r.

Xml Signer

Signs an Xml.

The parameters are:

Key alias

Alias of the key (in your keystore) that will be used to sign the Xml.

Digest method

The digest method that will be used during the signature of the Xml.

Signature Method

The signature method that will be used to sign the Xml.

Signature transformation

The transformation that will be used to sign the Xml.

You have the choice between an inclusive Canonicalization or an enveloped signature.

Xpath to the target node's URI

The Xpath that will allow the extraction of the URI of the root node of the subtree that needs to be signed. If not defined, the whole xml document will be signed.

Pdf wrapping

Allows you to create a pdf that will contain your output file in attachment.

The parameters are:

Pdf from template

The template that will be used to create and contain the pdf. There are 4 possibilities:

  • You directly provide a pdf file. This pdf file will be used as it is, and the extra processing will just add the requested pdf attachments.

  • You provide an xhtml template for the pdf. This template will be converted into a pdf. This option can be useful if you want to use some metadata in your pdf template (current date, ...).

  • In the parameter 'Pdf from metadata', You provide the name of a metadata containing the pdf you want to use. This metadata must have been populated earlier in the process of the message.

  • You don't provide any file. A default (empty) pdf template will be used. This option can for example be useful if the pdfWrapper is only used to benefit from the pdf digitial signature functionnality.

Pdf from metadata

The name of the metadata containing the pdf. This metadata must have been populated earlier in the process of the message, for instance by extracting it from a zip file.

File name

The name that your output file will have in the pdf.

File description

The description that your output file will have in the pdf.

Attachments

Other files that must be added to the pdf. For each individual file, you will have to state the name that the file will have in the pdf, and the name of the metadata that contains the content.

Pdf resizer

Allows you to resize an output pdf.

The parameters are:

Page size

The page size requested for the new pdf (A4, A5, LETTER, ...). The default is A4.

Offset X

Specifies the zone in the input pdf that will be copied to the output pdf. The default is 0.

Offset Y

Specifies the zone in the input pdf that will be copied to the output pdf. The default is 0.

Position X

Specifies where the zone copied from the input pdf will be placed on the page in the output pdf.

Position Y

Specifies where the zone copied from the input pdf will be placed on the page in the output pdf.

Scale X

Specifies the zoom ratio that must be applied when copying requested zones from the input to the output pdf. The default is 1.

Scale Y

Specifies the zoom ratio that must be applied when copying requested zones from the input to the output pdf. The default is 1.

Pdf Letterhead

Allows you to set a letterhead to your output pdf file.

The parameters are:

Letterhead pdf

The pdf file that contains the letterhead.

Page order

When the letterhead pdf contains multiple pages, it tells you which page of the letterhead must be used for every page of the output pdf file. The possible values are described hereafter. For every value, we also show as an example the result of the association for an output pdf file that would contain 5 pages (1, 2, 3, 4 and 5) and a letterhead pdf that would contain 2 pages (A, B).

  • Match forward. Repeat last page. Starting from the first page, all pages of the two pdfs are used together. If the output pdf has more pages than the letterhead model, the last page of the letterhead is used for all the subsequent pages. In our example, it would give the following result : 1:A, 2:B, 3:B, 4:B, 5:B.

  • Match backward. Repeat first page. starting from the last page, all pages of the two pdfs are used together. If output pdf has more pages that the letterhead model, the first page of the letterhead is used for all the previous pages. In our example, it would give the following result : 1:A, 2:A, 3:A, 4:A, 5:B.

  • Repeat all pages. All pages of the letterhead are repeated until the end of the output pdf. In our example, the following result would be: 1:A, 2:B, 3:A, 4:B, 5:A.

Pdf Appendix

Allows you to add extra pages to your output pdf file.

The parameters are:

Pdf to add

The pdf file that wil be appended at the end of the existing pdf.

Add attachments to a pdf

Allows you to add attachments to your output pdf file.

The parameters are:

Files to add

The attachments that must be added to the pdf. For every attachment, you have to state the name that the file will have in the pdf, and the name of the metadata that contains the content.

PdfA converter

Transforms a pdf to make it PDFA1B compliant.

Pdf signer

Allows you to sign your output pdf file.

The parameters are:

Key alias

Alias of the key (in your keystore) that will be used to sign the pdf.

Pdf password

The password of your pdf (if your pdf is secured by a password).

Reason

Text that will be associated to the signature.

Show signature ?

Allows you to add an image to your pdf to show the signature.

Signature lower left X

Position (lower left X) where the signature image will be displayed. Only if you choose to show the signature.

Signature lower left Y

Position (lower left Y) where the signature image will be displayed. Only if you choose to show the signature.

Signature upper right X

Position (upper right X) where the signature image will be displayed. Only if you choose to show the signature.

Signature upper right Y

Position (upper right Y) where the signature image will be displayed. Only if you choose to show the signature.

Signature image

Image used to show the signature. Only if you choose to show the signature.

Timestamp method

Allows you to timestamp your output pdf.

Timestamp authority url

If you choose the external as timestamp method, the url to be called for the timestamping.

Timestamp authority login

If you choose the external as timestamp method, the optional login to use for the call.

Timestamp authority password

If you choose the external as timestamp method, the optional password to use for the call.

Zip wrapping

Allows you to wrap your output file from a zip. It also allows you to add other files in the zip.

The parameters are:

File name

The name that your output file will have in the zip.

Other files

Other files that must be added to the zip. Metadata = Pattern to match the metadata containing the file to attach. Filename = name of the file in the zip. If one pattern matches multiple files, it is possible to put them all, if you guarantee to generate a different filename name for each one. This can be achieved by using the capturing groups of the regex in the filename. Ex: if your metadata pattern is attachment-(.*) and your filename is \1, processing with two metadata attachment-file1.csv and attachment-file2.csv will result in files, file1.csv and file2.csv.

PGP wrapping

Allows you to encrypt a file using PGP.

PGP supports message authentication and integrity checking. The latter is used to detect whether a message has been altered since it was completed (the message integrity property) and the former to determine whether it was actually sent by the person or entity claimed to be the sender (a digital signature). Because the content is encrypted, any changes in the message will result in failure of the decryption with the appropriate key. The sender uses PGP to create a digital signature for the message with either the RSA or DSA algorithms. To do so, PGP computes a hash (also called a message digest) from the plaintext and then creates the digital signature from that hash using the sender's private key.

The parameters are:

PGP public Key

Public key to be used to encrypt the message. Babelway supports RSA and El Gamal encryption keys.

Output in ascii

If checked, the PGP output follows the Ascii armored format. If not, the output is in binary.

ASCII armored format is a binary-to-textual encoding converter. ASCII armored format is a feature of a type of encryption called pretty good privacy (PGP). ASCII armor involves encasing encrypted messaging in ASCII so that they can be sent in a standard messaging format such as email.

S/MIME wrapping

Allows you to wrap your output message in a S/MIME envelop.

The parameters are:

File name

The name that your output file will have in the S/MIME envelop.

Content type

The content type that will be associated to your output file in the S/MIME envelop.

Signature key alias

The alias of the key (in the keystore of your environment) that will be used to generate the signature.

Partner key alias

The alias (in the keystore of your environment) of your partner's certificate. It will be used to crypt the S/MIME message. If left empty, the message will not be crypted.

Replacement based on regular-expressions.

Allows you to make a global search and apply regular-expression replacements on your output file.

You can define more than one pair of regular-expressions, find & replace pattern.

The parameters are:

Replacements

List of regular expressions and replacement patterns that will be applied on your document for every match.

Create messages from metadata

Allows you to create new messages, with content from current metadata.

The parameters are:

Target gateways

The gateways to which the new message will be sent.

Metadata and names

Metadata containing content for messages to create. Metadata = Pattern to match the metadata that contains the contents for new messages. Filename = fileName of the new messages. If one pattern matches multiple metadata, a new message will be generated for each metadata. You can use the capturing groups of the regex in the filename. E.g.: if your metadata pattern is attachment-(.*) and your filename is \1, processing with two metadata attachment-file1.csv and attachment-file2.csv will result 2 new messages files file1.csv and file2.csv.

User Metadata Transfer Strategy

The strategy that will be used to transfer the user metadata to the new message created in the connected gateways.

Note: This extra processing is not executed while running a test case.

Message Validation (Deprecated)

Allow you to validate a message against a metadata.

The parameters are:

Fail on error

Create an error if the message is not valid.

Set status on error

If 'Fail on error' is not selected, this puts the message in error without creating a ticket.

Metadata name

Name of the metadata containing the expected result.

Regex to ignore

List of regular expressions to ignore.

Date to ignore

List of date format expressions to ignore. Dates are expressed using the regular java format like : yyyyMMddhhmmss.

Automatically close errors

This extra-processing allows to define criteria to automatically close an error that occurs during the message definition OUT step.

The parameters are :

Error message patterns

The patterns that will be tested against the error message.

If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed).

4.11.5. Extra processings on gateway OUT

Delay execution

Allows to pause the execution for some minutes before delivering the message.

The parameters are :

Minutes to wait

The number of minutes that the system must wait before delivering the message.

Note: This extra processing is not executed while running a test case.

Automatically close errors

This extra-processing allows to define criteria to automatically close an error that occurs during the Gateway OUT step.

The parameters are :

Error message patterns

The patterns that will be tested against the error message.

If the error message matches at least one of the patterns, the status of the message will automatically be set to Error(closed).

4.12. Metadata

Metadata are data that are associated with the processing of the message, on top of the processed input and output files.

For example, metadata can be the date and time when the message was received, the channel that processed the message, information about the sender of the message, ... The complete list of system metadata can be found here.

Metadata is useful to customize your output messages or notifications. See below some usage examples.

It is also possible that you define your own metadata. See Using or changing metadata

4.12.1. Metadata usage

This page shows you some examples of locations in the application where metadata can be used.

Changing value assigned to a system metadata in drag and drop transformation

See details in Using or changing metadata.

Using metadata to customize messages and file names

You can use system or user defined metadata in your output gateways and email notification configuration. The metadata values can be used to name output files sent through output gateways or as part of a notification email subject and or body. The metadata used may even be different for success or failure messages as shown in the figures below.

System metatada are referenced using syntax {com_babelway_messaging_context_***}. A list of available system metadata with returned variables and examples is available in the System Metadata appendix.

System metadata used to customize notification emails

Figure 4.295. System metadata used to customize notification emails


System metadata used to customize file names

Figure 4.296. System metadata used to customize file names


User defined metatada are referenced using syntax {user-defined-property:your_metadata} where your_metadata is the name of the user defined metadata you want to reference to as illustrated in the following example, where the earlier user defined metadata is used as a name for the file sent as email attachment.

User defined metadata used to customize attachment name

Figure 4.297. User defined metadata used to customize attachment name


Concatenate values from a loop in a metadata

If you want to concatenate multiples values from a loop in a single metadata such as a message reference or a user defined metadata, you have 2 options:

1. Use a full custom xpath:

  • Do not map any loop.

  • Create an Xpath custom expression such as:

string-join (YOUR_XPATH, 'YOUR_SEPARATOR')

Where YOUR_XPATH is the path to all the elements you want to concat such as:

/ediroot/interchange/group/transaction/loop/segment[@Id='NAD' and element[@Id='NAD01'] = 
'BY']/element[@Id='NAD02']/subelement[@Sequence='1']

or

/csv/line/field1

Or drag a repeated element (such as the above mentioned line) on the custom function. All field1 elements under the repeated element will be concatenated and separated by the given separator.

$arg1/field1

YOUR_SEPARATOR is the separator between two elements of the list such as ' - ' for example.

2. Use the functions get-metadata and set-metadata

  • Map the loops to the output metadata

  • Create an Xpath custom expression with the following expression:

    metadata-util:put($MSG,'com_babelway_messaging_context_message_reference', bfn:concat
    ('YOUR_PREFIX', 'YOUR_SEPARATOR', 'YOUR_SUFFIX', metadata-util:get($MSG,
    'com_babelway_messaging_context_message_reference'), $arg1))

    Where

    • YOUR_PREFIX is the prefix added at the beginning of the result, e.g.: ' here is the list of value: '

    • YOUR_SEPARATOR is the separator added between the different elements, e.g.: ' '

    • YOUR_SUFFIX is the suffix added at the end of the result e.g.: [i ' '[/i]

  • Drop the value of the element to the expression (= $arg1 )

  • Map the expression to the metadata

4.12.2. System Metadata

System metadata is metadata that is defined in the system and contains useful information relating to the message being processed. See the Metadata chapter for reference and examples of use.

Table 4.1. List of System Metadata

CodeNameDescriptionExample
{com_babelway_messaging_context_message}Message context  
{com_babelway_messaging_context_accountId}Account IDThe ID of the account that has the processing Hub.25010
{com_babelway_messaging_context_hubId}Hub IDThe ID of the account environment that processed the message.25030
{com_babelway_messaging_context_channelId}Channel IDThe ID of the account environment that processed the message.26885
{com_babelway_messaging_context_receiveDay}Receive DayThe day on which the message was delivered by the system.20090503
{com_babelway_messaging_context_receiveTime}Receive TimeThe time at which the message was delivered by the system.20090503-163446
{com_babelway_messaging_context_receiveTime_extended}Receive Time extendedThe extended receive time.20090503-163446-968
{com_babelway_messaging_context_message_reference}Message referenceA reference for the message.ABNAmroFunds_AAA.xls
{com_babelway_messaging_context_client_reference}Client referenceA reference for the client. 
{com_babelway_messaging_context_in_filename}Input file nameThe name of the input file.ABNAmroFunds_AAA.xls
{com_babelway_messaging_context_in_filename_no_extension}Input file nameThe name of the input file with no extension.ABNAmroFunds_AAA
{com_babelway_messaging_context_out_filename}Output file nameThe name of the output file.20090430_ABNAMROLUX_MMF.xls
{com_babelway_messaging_context_out_fileContent}Output file content  
{com_babelway_messaging_context_mail_from}The sender email addressThe email address from which the message was sent.no-reply@babelway.net
{com_babelway_messaging_context_mail_to}The receiver email addressThe email address to which the message was sent.fund-x@babelway.net
{com_babelway_messaging_context_mail_subject}Email message subjectThe subject of the email message received by the system.FW: Abnamrofunds_AAA.xls - MMF - 20090430
{com_babelway_messaging_context_mail_body}Mail body javax.mail.internet. MimeMultipart@13dc44a
{com_babelway_messaging_context_mail_send_date}Mail sending dateThe sending date of the email message.1241422103000
{com_babelway_messaging_context_as2_receive_date}AS2 message receive dateThe receiving date of the AS2 message.1241504709696
{com_babelway_messaging_context_as2_send_date}AS2 send dateThe sending date of the email message. 
{com_babelway_messaging_context_as2_from}AS2 from addressThe AS2 sender address.C4NETBE
{com_babelway_messaging_context_as2_to}AS2 to addressThe AS2 receiver address.BABELWAY_AS2_25010
{com_babelway_messaging_context_as2_message_id}AS2 message IDThe ID of the AS2 message.d19bc8_1210d8ea134_-45ec @C4NETBE_host
{com_babelway_messaging_context_in_user}Input userThe username used to send the message (such as the ftp login name or sender email address).-ftp login: 'fc-invoice'

Important note

The system metadata are not propagated from one channel to another.

We will store the system metadata in a user defined metadata to be able to propagate it from one channel to another.

The user defined metadata are propagated from one channel to another.

For more information about the user defined metadata check this link: user defined metadata

4.13. Change Log

Each time you click on the "save" button in a component, a revision is created, that keeps track of all the changes done. This allows to know the state of your components at any given point in time. The Revert function uses those revisions in order to restore the version of a component at a given point in time.

The change log can be viewed for the whole environment, or per element.

4.13.1. Environment change Log

Each time you click on the "save" button in a component, a revision is created. This allows you to know the state of your components at any given point in time. The Revert function uses those revisions in order to go back in time and put your components at a given revision.

List of revisions

To view the list of revisions click on Change Log in the menu below Channels

The list of revisions is displayed as illustrated below:

list of revisions

Figure 4.298. list of revisions


The revisions are listed from the latest to the oldest. So your last modification is displayed at the top of the list.

By definition, the last revision corresponds to the last time you clicked on "save'. So by definition, there would be no difference between the current version of your components and the last time you clicked on save.

All the revisions below the first are old states of your components. There is a timestamp (which represents when you clicked on 'save'), the user who clicked on 'save' and a small description limited to the components (i.e. channel, message in, message out, transformation, test, ...) that have been modified.

4.13.2. Elements change Log

Each time you click on the "save" button in a component, a revision is created. This allows you to know the sate of your components at any given point in time. The revert function allows you to restore the configuration of an element at a given point in time.

List of revisions

A change log is available for all channel components: gateways, message definitions, partners, transformations... To view the list of revisions go into your component and select the Change Log tab.

The list of revisions is displayed as illustrated below:

list of revisions

Figure 4.299. list of revisions


Note: Babelway saves the Change Log only for one year.

The revisions are ordered from the most recent to the oldest change. So your last modification is displayed at the top of the list.

Thus, the latest revision represents the current state of your component.

All the revisions below the first are old states of your component. The list includes the moment at which the changes were saved and the user who applied the change.

When you select a revision, you get a more detailed description of what was modified. In this case (message definition) we know settings on this message definition:

list of revisions

Figure 4.300. list of revisions


If you now click on "Revert to", Babelway will attempt to restore the component to its state at that point in time. The restore can fail if dependent components are no longer compatible with this state (for example, reverting to a state of the message definition which would break an associated transformation). To guarantee a more consistent revert, you can use the environment revert accessible in your channel change log.

Note: If you made a change and you want to revert it back, You will need to select the previous revision and press the "Revert to" button.

Revert to

Figure 4.301. Revert to


4.14. Reuse and save time

The reuse and save time zone allows you, when you need to configure some element, to fully configure it in just one click, by reusing elements that have been previously defined.

In this zone, the system will always try to make the suggestions that are the most relevant to your usage and to the context (what you have already selected, other elements of the channel, ...). These suggestions can be of different types:

  • Element from the Babelway catalogue. The Babelway catalogue contains many message definitions or gateways used by main retailers. These elements are ready to use, and can simply be copied to your environment.
  • Elements that you already defined in your environment. You will be able to use them, or duplicate them in just one click.
  • Elements that are in other environments to which you have access.
  • Examples that are useful to make your first steps and test the application.
  • Suggestions. In some cases, we can deduce what you need from what you already did. For example, MessageDefinitions can in some situations be deduced from the gateway you selected.

Reuse with different types of suggestions.

Figure 4.302. Reuse with different types of suggestions.


This zone is available when you want to create an element ( gateway creation, MessageDefinition creation, transformation creation, channel creation or partner creation) and in the Channel Detail screen.

4.14.1. Search and Reuse

To filter the elements, you simply need to type your criteria in the search bar, at the top of the zone. In the following example, only entries that match "Colruyt" will be returned.

Reuse search.

Figure 4.303. Reuse search.


If you use multiple words, like 'Colruyt Order', all the word will be searched separately. Only entries that contain all the words will be returned.

If you specify a given type in the creation form, search will also be limited to elements of this type. In the following example, only invoices of type EDIFACT will be returned.

Reuse search.

Figure 4.304. Reuse search.


By default, only the first 5 entries by category will be returned. If you want to view more, you can use the More button to view the full list and have access to a more advanced search.

Reuse search - more

Figure 4.305. Reuse search - more


Reuse search - more results

Figure 4.306. Reuse search - more results


When you have found the element that you want to use, just click on it.

Reuse search - more results

Figure 4.307. Reuse search - more results


4.14.2. Using the Babelway catalogue

The catalogue is a large repository of elements predefined by Babelway. These elements are ready to use, and you can just copy them into your environment and use them.

The catalogue contains many message definitions or gateways used by main retailers, ... Before thinking to define the message definitions or gateways for your partner, always check if it is not already defined in our catalogue!

Catalogue items.

Figure 4.308. Catalogue items.


4.14.3. Using or duplicating elements that you already defined

In the results section " You already defined ", you will find elements that you have already defined in your current environment, and be able to use them again.

Reuse - already defined elements.

Figure 4.309. Reuse - already defined elements.


If you are creating a new item ( in gateway creation screen, in MessageDefinition creation screen, in transformation creation, screen, in channel creation screen, ...), reusing an existing element means duplicating it.

Reuse - element duplicated.

Figure 4.310. Reuse - element duplicated.


If you are in the Channel Detail screen, and it is the first time you use this element, the element will just be assigned to the channel.

Reuse - element set in channel.

Figure 4.311. Reuse - element set in channel.


If you are in the Channel Detail screen, and the selected element is already used in other channels, you will get the option of duplicating or sharing it.

Reuse - element set in channel.

Figure 4.312. Reuse - element set in channel.


4.14.4. Accessing elements from other environments.

You can also access and reuse elements from other environments you are allowed to access.

These elements are not returned by default by the pertinence algorithm. To use them, you will always have to use the advanced search (click on More ).

Use element from another env - Click on More

Figure 4.313. Use element from another env - Click on More


Use element from another env - Choose environment

Figure 4.314. Use element from another env - Choose environment


4.14.5. Using examples or suggestions

When you are making your first steps with the application, you will have access to some examples. These examples are ideal to be able to setup a first channel in a few seconds, and being able to test the application.

Use element from another env - Click on More

Figure 4.315. Use element from another env - Click on More


The application can also make suggestions based on the other elements present in your channel.

In the following example, a gateway IN of type MessageRecord has already been set to the current channel. The application will automatically suggest only one MessageDefinition to use, because it knows the format of files generated by this gateway.

Use element from another env - Click on More

Figure 4.316. Use element from another env - Click on More


Chapter 5. Admin

This section explains what can be found under the admin section menu. Note: Deployment should be done after saving changes to ensure that all changes are pushed to production.

5.1. Personal data

Manage and edit your personal information such as username, name, email address, password...
My Profile

Figure 5.1. My Profile


The following information is displayed:

Username

The username you entered at registration time (cannot be modified).

Email

Your email address. If you change it, an email will be sent to this email address to verify it.

First name

Your first name (optional, can be modified).

Last name

Your last name (optional, can be modified).

Phone

Your telephone number (optional, can be modified).

After your registration, an email is sent to your email address in order to verify it. You have 7 days to click on the verification link. After that, your user will be blocked. A reminder is displayed when you log in and open Admin page.

Email address verification reminder

Figure 5.2. Email address verification reminder


Commands

Save

Save your modifications.

Edit password

Enables you to change your password.

Verify email address

An email will be sent to your email address in order to verify it

Select, enter or change parameter values then click on Save to save your changes or on Back to return to the previous screen without saving your changes.

Click on the Change Password command to open the following screen and change your account password.

Enter your old and new passwords, confirm your new password then click on Save to save your new password or click on   Cancel to return to the previous screen without saving your changes.

Edit screen

Figure 5.3. Edit screen


5.2. Environment settings

An account environment contains a collection of one or more channels that are managed together.

In this section, you can change settings that affect your whole environment. You can also create additional environments if required.

5.2.1. General

The General tab allows you to view or change how your account and environment are identified.

If you have multiple environments, it is important to name them correctly, to ease the comprehension of the content of each of them.

Environment settings - General

Figure 5.4. Environment settings - General


Account name

The name of your account. By default, this name includes your login name.

Account Password Policy

The password policy defines the security level used for the authentication of all the users having access to this account.

The following policies exist:

  • Regular: The user password must have a length not less than 6 characters.
  • Strong: The user password must contain a mix of UPPER-CASE and lower-case characters as well as numbers, and have a length not less than 8 characters. A mandatatory password renewal is enforced at least every 90 days. Each new password should differ from the previously used ones.

Only the Babelway administrators can modify this setting.

Environment name

The name of the current environment. By default, this name is "Environment X" (X is the count of environments in your account).

Id

A unique identifier for your environment, automatically set by the Babelway platform.

5.2.2. Messages

This tab allows you to view and change the parameters of your environment that affect how the messages are processed.

Environment settings - Messages

Figure 5.5. Environment settings - Messages


Message Storage Duration

How long the messages processed in this environment will be kept. The possible values are 15 days, 1 month, 3 months, 1 year or 10 years for legal documents that must be kept longer. The value set here is a default value at environment level, and will only be used if a more specific value is not set at channel level.

Messaging Engine

This parameter defines on which "Messaging Engine" an environment is running. A Messaging Engine groups the different components processing and storing messages. This leverages Babelway multi cloud architecture allowing to load balance operations on several infrastructures.

IP addresses

This parameter defines the IPs of components of the "Messaging Engine" on which an environment is running.

Use Secure Chain

Defines if the environment is using the Babelway Secure Chain mechanism. The secure chain is a key part of Babelway's legal archiving solution.

Special Data Privacy

If true, only users with an explicit right on the environment have access to the content of the messages and user management. This prevents Babelway support to see the content of messages.

SLA Capacity

1 or more, is a measure of the processing capacity associated to the account environment. It defines the maximum number of messages (in 10kB chunk) that can be processed per minute.(Service Level Agreement)

5.2.3. Partners

This tab allows you to add specific fields to the Partner model. See the Partners section for a full explanation about partners.

The fields that you add here will be available in add or edit a Partner, or in the list of Partners.

Thanks to this,in the Partners sections you can also have all the fields that are specific to your business, or important for you but non-standard.

Environment settings - Partners

Figure 5.6. Environment settings - Partners


For every field, you can choose its name and its type.

The type is important, as it helps the application validate the data that you encode, and eases the manipulation of the data. For example :

  • If you tell the application the possible values that a String may contain (when the field can only have a known set of acceptable values), the interface will offer you a dropdown menu for selecting the values, this guarantees that you can not enter another value in error.

  • If you choose an Integer type, you will be guaranteed to have only numbers in the field, and the interface will sort the values numerically (ex: 1, 2, 10) instead of alphabetically (1, 10, 2).

5.2.4. Document types

Documents allow you to have a business view on the processed messages.

In this tab, you can configure which documents you want to use, and configure the fields that you want to have, or how the interface must display them.

Environment settings - DocumentTypes

Figure 5.7. Environment settings - DocumentTypes


The following parameters are available :

Name

The name of the document. Please note that this name will be used as an identifier to identify the DocumentType, and is therefore independent of the language, but you will be able to define labels for this DocumentType in every language (see parameter Labels).

Keep duration

How long the documents must be kept.

Fields

All the fields that you want to have for this DocumentType.

For every field, you can choose its name and its type.

The type is important, as it helps the application validate the data that you encode, and eases the manipulation of the data. For example :

  • If you tell the application the possible values that a String may contain (when the field can only have a known set of acceptable values), the interface will offer you a dropdown menu for selecting the values, this guarantees that you can not enter another value in error.

  • If you choose an Integer type, you will be guaranteed to have only numbers in the field, and the interface will sort the values numerically (e.g.: 1, 2, 10) instead of alphabetically (1, 10, 2).

A special field UniqueKey can be used as a user identifier for the Document. It can be used in extractors to indicate that multiple extractions concern the same logical document, and result in updates instead of creating a new document.

You can also personalize how the interface will display your DocumentTypes.

Menu section

By default, if you leave this field empty, all Documents will be displayed in the Monitoring section, with one menu entry by DocumentType.

By using this parameter, you can group multiple DocumentTypes in just one menu section. The DocumentTypes will then be displayed as tabs in this menu section.

To do this, simply add an id for the menu section. All the DocumentTypes with the same id will be grouped together.

Labels

This parameter allows you to load labels that must be used, in any language, to display data related to this DocumentType.

To do this, you must load a zip file containing a properties file (with all labels) for every language. Files in the zip must be named documents_[language].properties, or documents.properties for texts to use by default.

By clicking on the link "Download file pattern", you can easily get an example file for the properties files, with all the correct keys already defined.

Document Type labels

Figure 5.8. Document Type labels


List default columns

Names of the columns that must be displayed by default in the list of documents, separated by commas. The names must be the name of a field. 'id', 'creationMoment', 'lastUpdateMoment', 'keepUntil' are also accepted to show the corresponding columns.

If you leave this field blank, the default is to display the columns for all of your fields, and also id and creationMoment.

The order of elements in the list has no importance.

List default search

The criteria, on document creationMoment field, that will be applied by default when users come to the table of this DocumentType.

If you choose for shorter values, the searches will be faster. For this reason, it is often better to choose short values, because users almost always access only recent documents, and let them change the criteria on the rare occasions when the users want to access old documents.

List operators

The operators that will be applied for searches in the table. The expected format is a semicolon separated list of items of the form [fieldName]:[operators]. [operators] is a comme separated list of operators to display. Possible operators are 'eq' (equals), 'lt' (less than), 'le' (less or equal), 'gt' (greather than), 'ge' (greather or equal) or 'cn' (contains). Example of value : 'field1:eq,cn;field2:eq'.

Detail columns

How the fields must be displayed in the page with the details of a document.

The value must have the form [Section1]field1,field2[Section2]field4,field3... For better readability, newLines are also accepted before every section.

If you leave this field blank, the default is to display all the possible fields.

5.2.5. Do I need one or several account environments ?

Channel elements are very flexible and can be copied from one environment to another as long as the user has access to both environments. Here is some advice for organising work in Babelway if you plan to use more than a few channels.

You can create a new environment by clicking on "create new environment", and confirm.

Create environments according to your business

If you manage many channels, you may want to group them together to easily manage them. For example, you may create a different environment for each of your customers to manage them separately. Or you may create a specific environment dedicated to testing and another one for production.

Create environments according to your user rights

Users rights can be limited to a specific account environment so you may create different environments to limit user access to a specific set of channels and messages.

Using a test environment for transformation development

Before starting, let's mention that Babelway is managing a single multi-tenant platform. From a Babelway perspective all environments and messages are "production".

However a customer can decide to organise himself in a traditional multi-environment setting.

Create a "test environment" in your account and use it to develop messages and transformation. Once you are ready to use it, then "promote" to production by simply replacing the element in your production environment. When importing the element in the production environment, give it a name including a version indicator. e.g.: Invoice flatefile My ERP v1.23 or Invoice Carrefour 96A 200900416. All previous "production" versions will therefore remain available, allowing you to revert changes if required.

For this model to work properly, it is important to do all modifications in the "test environment". There is no need to keep a copy of the "promoted" version in the test environment. Should you need to work on an old release, simply copy it back from the production environment.

It is also a best practice to include all the production channels in your test environment. This way you will be able to test your routing rules and metadata substitution in the gateways. Note that you can use a different type of gateway to make your life simple, for instance use an email or a web gateway instead of a AS2 gateway.

Service provider

There are 3 valid set-ups for a service provider to use Babelway:

  • One account per client

  • One environment per client in a single account

  • One single account/environment

The key differences between these is the billing and the possibility to give access to end customers. If each end customer should receive their Babelway invoice in full transparency, go for one account per client.Anyway, the best practice for the service provider still is to create a test environment in one of these accounts or in his own. If each client should get individual online access to channels and messages but the service provider takes care of the overall Babelway invoice, go for one environment per client in a single account. If the service provider provides full outsourcing service to its customers, without giving them any visibility on Babelway, go for one single account/environment.

Anyway the best practice for the service provider is still to create a test environment in one of these accounts or in his own.

5.3. Billing

This screen displays a table showing the details of the billing run. The details will depend on the price plan you have chosen. For instance, if you are on a Babelway BUSSINESS account, the billing runs once a month, at the anniversary of your account creation. Each month, new lines will be added for monthly fee, the extra volume, extra channels and so on.

Billing details

Figure 5.9. Billing details


5.4. Users

The table lists all your users.

If you are administrator of the current account, you will see all the users that have access to at least one environment of the account. If you are not administrator of the current account, you will only see the users that have an explicit access to the current environment.

Your users

Figure 5.10. Your users


To manage a given user, you can open its detailed view by clicking on it.

Add a user

Click on Add a User to add a new user in any role for your account as described in the Add a User chapter.

5.4.1. Add a User

Add a new user and select their role.

From this screen, you can add and invite a new user and select their role on any of your account environments.

Add a user

Figure 5.11. Add a user


To add a new user, enter their email address and select their role (one of the 3 available ones described above, "no access" is not available).

If the role is restricted to an environment (channel manager or web gateway user), you should select the environment the new user will be added to otherwise the drop-down list is not available.

Email

The email address to send the invitation to..

Environment Access Level

The access rights given to the new user for the current environment.

Partner Data Accesses

For user with a "Portal User" access to an environment, you can define accesses to the data of partners. One partner data access is a right ("Read" or "Manage") on one specific partner. Both rights give read access to the runtime data related to the partner. With a "Manage" right, the user will be able to delegate its access and to manage portal users with access to the partner.

Invitation Text

You can change the Invitation Text if you want. This message will be sent to the new user to request acceptance and activate this option.

Information Note

The following text is automatically added at the end of the mail.

Preferred Language

Babelway's interface will be set in this language when your new user logs into the application.

Click on Back command to cancel and go back to previous screen. Click on Send to send this email and invite the new user.

Note

The new user will be added with his role after accepting this invitation. He activates it by clicking on the link included in the email within three days following the invitation's date of sending.

5.4.2. Create a User

Create a new user and grant him rights.

From this screen, you can create a user from scratch.

Create a user

Figure 5.12. Create a user


Note: This feature is enabled for specific environments.

There are two ways to grant access to your environment or partner. One is by inviting your user to join your environment (see Add a User ). The other is to create a user from scratch: providing him directly with an account, appropriate accesses and an initial password. If the password policy of your account is strong, your newly created user will have to change his password upon first login.

User Name

This is the username the user will use to log into Babelway.

Password

The new user's password.

Password Confirmation

Confirm the password entered above.

First Name

The user's first name.

Last Name

The user's last name.

Preferred Language

The user's preferred language.

User's Email

The user's email.

Environment Access Level

The access rights of the user for the current environment.

Partner Data Accesses

For users with a "Portal User" access to an environment, you can define accesses to the data of partners. One partner data access is a right ("Read" or "Manage") on one specific partner. Both rights give read access to the runtime data related to the partner. With a "Manage" right, the user will be able to delegate its access and to manage portal users with access to the partner.

Click on Create User to create your new user.

5.4.3. User detail

Manage and edit the details about one of your users.
User detail

Figure 5.13. User detail


Id

A unique identifier automatically set by Babelway platform.

Created on

Date and time of creation.

Username

The username chosen at registration time.

First name

The first name of the user.

Last name

The last name of the user.

Email

The email address of the user.

Language

Language. The interface is displayed in the chosen language. Please note that only English is fully supported, and that other languages are in development, and supported on a best-effort basis. It can happen that you still have some messages in English in one of the other languages.

Phone

The telephone number of the user.

Last password update

The date and time of the last update of the password.

Last login

The last login date, time and location.

Failed login count

The number of failed login that occured since the last successful one.

Blocked until

The date and time until which the user is blocked.

5.4.4. User rights

Manage and edit the rights of a user across different environments.
Username pop-up window

Figure 5.14. Username pop-up window


This overlay allows you to define the user rights cross environment. Each row correspond to one environment. And each columns corresponds to an Environment Access Level.

If you set the Portal user right, you'll have a small plus that will appear allowing you to set the partners.

The checkbox 'select all' allows you to set the same Environment Access Level to a user for all environments available within your account.

Environment Access Level

The access rights of the user for the current environment.

Partner Data Accesses

For users with a "Portal User" access to an environment, you can define accesses to the data of partners. One partner data access is a right ("Read" or "Manage") on one specific partner. Both rights give read access to the runtime data related to the partner. With a "Manage" right, the user will be able to delegate its access and to manage portal users with access to the partner.

Five different Environment access levels are available. They are described hereafter:

Account Administrator (Full access)

Has full rights over the account (yourself by default).

Channel Manager

Has full rights over alerts/messages/channels functions, but cannot access admin information (user rights, billing). This type of access is for people who will manage and maintain channels.

Monitoring

Can view and operate messages or alerts, but can not change the configuration of channels. This type of access is for people who monitor the system.

Portal user

Portal user will only see documents (invoices, orders, ...) related to some partners. This role is typically for people from another company than the owner of the account, and who should only be able to see documents related to this company.

No Access

Has no access to your environment, but you can switch to another role without sending an invitation.

Note:

  • If you have one environment in your account and you decide to set the "Environment Access Level" for a user to "No Access", this user will be removed from the "Your users" page. If you want to add this user again, you will have to send an invitation email to this user.

  • If you have more than one environment in your account and you decide to set the "Environment Access Level" for a user to "No Access" for the first environment while this user has access to another environment of the same account, their access level will mention "No access" for the first environment in the "Your users" page. You can change the "Environment Access Level" for this user to another role without sending an invitation email.

5.4.5. Reset User Password

Reset a portal user's password.
Reset portal user password

Figure 5.15. Reset portal user password


This screen is only accessible when managing a portal user whose email isn't set. For such users, this form is the only way to reset their password.

You may set the password of your portal user. If your environment is set to use a strong password policy, the user will have to change this password upon next login.

Username

The username of the user.

First name

The first name of the user.

Last name

The last name of the user.

New Password

The user's new password.

Confirm New Password

Confirmation of the new password.

Chapter 6. Miscellanous

This chapter contains some more information, not closely related to the web interface.

6.1. B2B Integration Project Management

When you set up a channel to tranfer data between your system and the external system of your B2B partner, you must agree on a way to transfer this data. This activity is a project, possibly involving multiple parties: your company, your B2B partner, your and their IT integrator, etc.

So, before starting any implementation, even in a test configuration, Babelway recommends that you follow a project management process such as this one:

  1. Agree on project terms

    You and your B2B partner should agree on the purpose of collaboration and data to be transferred. This part should also include the possible financial terms. Some exchanges may even require the writing of contracts.

  2. Write specifications

    Together with your B2B partner, you should write technical specifications about what is going to be transferred and how (gateway types and configuration, message formats required, mandatory information included in messages, validation processes, test cases definition for project acceptance...)

  3. Plan and execute work

    Configure and test your channels to meet agreed specifications. The planning should include when your partner must have resources available, for example for testing and for acceptance phases.

  4. Production and acceptance tests

    Once the development and tests are completed, the system is used in production for a trial period. If adjustements are required, they should be implemented as soon as possible. Once all issues are solved and the trial period is finished, the system can be fully used in production.

Here is a short checklist of items that will be required during development and that should be agreed between both parties and included in the specifications:

At account level:

  • Details of users who will have access and their respective roles.

  • Details of settings including volumes of transactions, price package, expected concurrent volume...

For each channel:

  • Details of gateways in and out including external system details, usernames, passwords, certificates... Details of test environments of external partners prior to moving to production, if relevant.

  • Details of messages in and out formats. Both parties should provide several examples of each in and out message types.

  • Details of message transformation rules, possible value mappings, exceptions, mandatory and optional fields...

  • Details of routing rules, if relevant.

  • Details of in and out message validation rules, if any.

  • Details of messages, channels and any other items naming conventions.

  • Details of user notifications (success and/or errors).

  • Detailed test plan, including acceptance criteria.

6.2. DNS load-balancing

Hosting and redundancy

Babelway infrastructure is hosted externally. Babelway has agreements with 2 hosting providers:

  • Combell, a recognised Belgian hosting company. Combell uses several physical premises in Belgium. Premises have been audited by an independent consultant mandated by Babelway.

  • Amazon, a recognized International company and cloud inventor. Babelway subscribes to the Amazon Web Service (AWS) allowing Babelway access to virtual servers "on-demand". The servers are physically located in Ireland and other locations around the world.

Babelway has contracted reliable partners on strict terms and has installed redundancy between its 2 data centres to maximise availability and reliability. In the event of downtime of one of the 2 data centres, Babelway can switch all data traffic to the other data centre. Current limitation of the redundancy are:

  • SelfService application (human access to user hubs) are only active on one data center. In case of unavailability of this infrastructure, messaging services can continue but human tracking or maintenance is not available. A manual process allows Babelway to switch the SelfService application to the other infrastructure.

  • Gateways to external systems based on physical IP addressing would also be interrupted. We recommend that users use a URL locator instead of IP addressing wherever possible.

DNS load-balancing and fail-over

Babelway always maintains the configuration of the 2 data centres in sync. All customer configurations are deployed concurrently on both infrastructures. The load balancing and the fail-over between data centres are performed at the DNS level. The messaging engines deployed in the 2 data centres have the ability to work in complete autonomy in both active / active or active / passive modes. This mechanism is used by Babelway for fail-over as well as scalability needs.

To fully leverage the Babelway fail-over mechanism, traffic with Babelway gateways is based on DNS (logical addressing) and accepts traffic with each of the public IP address published by Babelway.

For outbound traffic, Babelway guarantees that all traffic will be issued from one of its public IP addresses.

For inbound traffic, Babelway guarantees that all DNS entries for public services, like ftp.babelway.net, ws.babelway.net or as2.babelway.net will be resolved to one or several of its public IP addresses. At any time, DNS will be resolved to 2, 3 or 4 servers. A client's software connecting to Babelway should be able to fail-over to the next IP should a server be unreachable (like all browsers do). Babelway reserves the right to change these allocations.

Taulia special infrastructure: Taulia has a very specific setup, where from the beginning Babelway decided to have for each region (US and EU) 2 full infrastructure, one active and one passive (8 servers = 2 regions * 2 actives and 2 passives).The 2 passives were never activated but the ip are reserved and the configuration is maintained.

6.3. Message size limits

Messages in Babelway

Messages are basic processing units in Babelway. The system deals with all of them in the same way regardless of their type or size. To ensure maximum service availability, fairness among users and reduce system ressources utilization, we limit each message's size to 100MB, except:

  • Gateway EMAIL: 10MB

Messages that do not respect these limits will be rejected and put in error.

Calculating a message's size

Messages are different from files. They contain additional execution data, user defined metadata, and other additional content through extra processings like signatures, duplicates of the inbound message or other messages. All this data affects the message's final size, which can turn out to be a lot larger than the initial file size. To estimate your message size, add to the file's base size the size of every binary metadata you define (additional messages, other elements from zip file, element fetched from the web via web calls, etc). Every extra-processing saving the message data as a metadata (like the Message Definition IN "Save input file" extra processing) also increases the size, adding to the message the weight of the file. You shouldn't worry about message sizes unless your files often reach tens of MB.

Units used

There exists a lot of confusion about the value in bytes of 1MB. Two definitions exist, one in base 10 (1 MB = 1 000 000 bytes) and one in base 2 (1 MB = 1024 * 1024 bytes = 1 048 576 bytes). Babelway uses the later in all the limits.

6.4. Security Management

SOC2 type 2

Babelway has put in place an Information Security Management System (ISMS) compliant with ISO27001 guidelines. Babelway’s policy regarding security can be consulted online at http://www.babelway.com/security-policy. The system ensures processes are in place to meet the policy’s objectives.

Babelway complies with the SOC2 Type 2 norm since 2013 and is yearly audited by KPMG (and formerly by Deloitte).

TLS 1.0 decommissioning plan

Babelway is taking the protection of customers' data very seriously. In order to maintain these highest security standards and promote security practices, Babelway occasionally needs to make security improvements and deprecate older encryption protocols. Here is our plan to remove support for TLS 1.0 and TLS 1.1 and provide TLS 1.2 as the default encryption protocol.

TLS (Transport Layer Security) is a cryptographic protocol used to establish a secure communication channel between two systems. It is used in Babelway to access the SelfService application as well as for the gateway using HTTP as their underlying protocols. see https://en.wikipedia.org/wiki/Transport_Layer_Security.

The plan is aligned with the TLS 1.0 sunset requirement for PCI-DSS compliance:

  • Phase 1: As of July 15, 2017, Babelway will support TLS 1.2 in addition to TLS 1.1 and TLS 1.0 on the SelfService application and Babelway API on www.babelway.net as well as for all gateways using a TLS protocols, including AS2, PEPPOL, HTTP, SOAP, REST, FTPS, OFTP2.

  • Phase 2: As of January 1, 2018, Babelway will no longer support TLS 1.0 over HTTPS on the SelfService application and Babelway API on www.babelway.net. Any older browser or API clients that do not support TLS 1.1 or TLS 1.2 will no longer work. The minimum version of browsers are Google Chrome 22 (June 2012), Firefox 23 (August 2013), Internet Explorer 11 (June 2013).

    In order to test your implementation, you are welcome to use external tools such as https://www.howsmyssl.com/

    .
  • Phase 3: As of July 1, 2018, Babelway will no longer support TLS 1.0 and TLS 1.1 for all gateways using a TLS protocols, including AS2, PEPPOL, HTTP, SOAP, REST, FTPS, OFTP2. Any client applications not supporting TLS 1.2 will no longer work.

    Below, please find the list of supported cipher suites:

    • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
    • TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
    • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
    • TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
    • TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
    • TLS_RSA_WITH_AES_128_CBC_SHA
    • TLS_RSA_WITH_AES_128_CBC_SHA256
    • TLS_RSA_WITH_AES_256_CBC_SHA256

    Babelway will also update the restrictions on algorithms applied to TLS handshaking and certification paths processing.

    The following algorithms will be disabled for TLS handshaking:

    • SSLv3
    • TLSv1
    • TLSv1.1
    • RC4
    • MD5withRSA
    • DH with key size < 1024
    • EC with key size < 224
    • DES40 CBC
    • RC4 40

    The following algorithms must not be used during certification path processing.

    • MD2
    • MD5
    • RSA with key size < 1024
    • DSA with key size < 1024
    • EC with key size < 224

    It means that no signature algorithm involving MD2, MD5 will be used to verify a certificate. And the use of certificates with RSA/DSA key size less than 1024 bits in length or with EC key size less than 224 is restricted.

If you have any questions, please don’t hesitate to contact support@babelway.net

6.5. External References

Regex or regular expression

Regular expressions provide a concise and flexible means for identifying strings of text of interest, such as particular characters, words, or patterns. A regular expression, or a regex, is written in a formal language that can be interpreted by a regular expression processor, a program that examines text and identifies parts that match the provided specification.

Among other sources, you can find a description and a help about Regex on the following website http://www.regular-expressions.info/.

XML

XML (Extensible Markup Language) is a set of rules for encoding documents electronically. It is defined in the XML 1.0 Specification produced by the W3C and several other open standards. XML’s design goals emphasize simplicity, generality, and usability over the Internet. It is a textual data format.

Although XML design focuses on documents, it is widely used for the representation of arbitrary data structures, for example in EDI transactions. There are a variety of programming interfaces which software developers may use to access XML data. XML has become a wide-used file format.

Among other sources, you can find a description, help and tutorial about XML language on W3Schools website at http://www.w3schools.com/xml/default.asp.

Xslt

XSL Transformations (XSLT) is a declarative XML-based language used for the transformation of XML documents into other XML documents. The original document is not changed and a new document is created based on the content of the original one.

XSLT is also used to translate XML messages between different XML schemas, or to make changes to documents within the scope of a single schema, for example by removing the parts of a message that are not needed.

Among other sources, you can find a description, help and tutorial about Xslt language on W3Schools website at https://www.w3schools.com/xml/xsl_intro.asp.

XPath

XPath, the XML Path Language, is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML document.

Among other sources, you can find a description, help and tutorial about XPatch language on W3Schools website at http://www.w3schools.com/xml/xpath_intro.asp.

EDIFACT

United Nations/Electronic Data Interchange For Administration, Commerce and Transport (UN/EDIFACT) is the international EDI standard developed under the United Nations.

Among other sources, you can find a description, help and tutorial about EDIFACT on the official website at http://www.unece.org/trade/untdid/welcome.html.

X12

ASC X12, chartered by the American National Standards Institute (ANSI) in 1979, develops EDI standards for national and global markets.

Among other sources, you can find a description, help and tutorial about X12 on the official website at http://www.x12.org.

Odette

Odette is a pan-European collaboration and services platform working for the entire automotive network. They bring together supply chain professionals and technology experts to create standards, develop best practices and provide services which support logistics management, e-business communications and engineering data exchange throughout the world.

Among other sources, you can find a description, help about Odette on the official website at http://www.odette.org/html/home.htm.

AS2

AS2 is one of the most popular methods for transporting data, especially EDI data, securely and reliably over the Internet. It essentially involves two computers – a client and a server – connecting in a point-to-point manner via the web. AS2 creates an “envelope” for the EDI data, allowing it to be sent securely – using digital certificates and encryption – over the Internet.

Among other sources, you can find a description, help and tutorial about AS2 on the following website : http://www.as2basics.co.uk/index.htm.

OFTP

OFTP is now used by most major European Motor Manufacturers and their suppliers. It is also used by the chemical industry, white goods manufacturers and is currently being adopted by other sectors such as banking.

Among other sources, you can find a description, help about OFTP on the official website at http://oftp.net/US/default.htm.

FTP

The File Transfer Protocol (FTP) is a standard network protocol used for the transfer of computer files between a client and a server on a computer network.

Among other sources, you can find a description, help about FTP on Wikipedia website at https://en.wikipedia.org/wiki/File_Transfer_Protocol.

6.6. Rest API

The Rest API provides for third party software developers a way to access the Babelway data (catalogue entries, user's channels, user's tickets, user's messages) and integrate them in their own application.

Software developers can easily interact directly with Babelway from within your application. The API is based on the REST protocol, using the JSON and XML formats.

6.6.1. Introduction

URLs

All the requests to access the REST api have the form https://www.babelway.net/SelfService3/rest/v2/hub-{hubId}/{action}.{format}?{parameters}, where

hubId

The id of your environment. It can be found in the Environment settings section, under the Admin menu.

format

The format in which you want to receive the answer. It must be 'json' or 'xml'. All actions support the 2 formats.

action and parameters

The name and parameters of the action you want to call. See below for all available actions and parameters.

Authentication

All the requests require authentication.

The API currently supports the HTTP Basic Authentication.

It is also possible to provide the credentials via the 2 extra parameters userName and pwd

The Babelway Rest API is to be used on a HTTPS (SSL/TLS) connection in order to encrypt the credentials.

Representations

All timestamps should be formatted as the number of milliseconds since January 1, 1970 (midnight UTC/GMT).

Babelway Database optimization

The Babelway Database is optimized in order to have very fast access to all recent messages (received in the last 7 days) and the older messages are archived.

To have a fast response when making API calls to the Babelway system, it is best to add a criteria like "Received in the last 7 days" or something like "Every day".

6.6.2. Available actions

The following methods are available in the api:

6.6.2.1. tickets

This action allows to list all the tickets, optionally filtered by some search criteria.

Parameters

description

A keyword to filter the tickets by. It will search within the description.

status

The status of ticket. The accepted values are OPEN and CLOSED.

severity

The severity of the ticket. The accepted values are HIGH, MEDIUM, LOW and INFO.

since

Returns tickets created after the given timestamp.

before

Returns tickets created before the given timestamp.

type

The type of ticket, one in the following list.

The following values are accepted : _0_MONITORING, _1_MESSAGE_PROCESSING_ISSUES, _1_1_UNIDENTIFIED_SOURCE, _1_2_UNIDENTIFIED_MESSAGE_IN, _1_3_UNIDENTIFIED_CHANNEL, _1_4_MESSAGE_VALIDATION_ISSUE, _1_5_FAILED_DELIVERY, _1_6_PLANNED_CLEANING_OF_UNATTENDED_MESSAGES, _2_HUB_ISSUES, _2_1_STORAGE_CAPACITY_REACHED, _2_2_PLANNED_MAINTENANCE_UNAVAILABILITY, _2_3_NEW_FUNCTIONALITY_AVAILABLE, _3_ACCOUNT_ISSUES, _3_1_CREDIT_LIMIT_REACHED, _3_2_UNPAID_INVOICE, _3_3_CREDIT_LIMIT_NEAR_REACHED, _3_4_VAT_CHANGED, _4_CHANNEL_MANAGEMENT_ISSUE, _4_1_MAINTENANCE_WARNING_OF_A_LINKED_CHANNEL, _4_2_PLANNED_DELETION_OF_UNUSED_CHANNELS, _4_3_DOCUMENTATION_OF_A_CHANNEL, _4_4_CERTIFICATE_EXPIRATION, _5_USER_MANAGEMENT_ISSUE, _5_1_FAILED_CONNECTION_ATTEMPTS, _5_2_FIRST_CONNECTION_FROM_INVITEE, _5_3_PLANNED_CLEANING_OF_DORMANT_USERS, _5_4_INVITATION_EXPIRED

start

An integer to set the first result. By default, the value is at 0. The API returns 25 results per query. To get the 25 following ones, it should be 25, then 50, then 75, ...

Examples
  • Get tickets with severity MEDIUM in environment 12345 in JSON format

    https://www.babelway.net/SelfService3/rest/v2/hub-12345/tickets.json?severity=MEDIUM

    [
    	{
    		"ticket":222577,
    		"hub":12345,
    		"type":"_0_MONITORING",
    		"severity":"MEDIUM",
    		"status":"OPEN",
    		"summary":"Ftp ser