Babelway B2B Integration Platform Documentation

Size: px
Start display at page:

Download "Babelway B2B Integration Platform Documentation"

Transcription

1 Babelway B2B Integration Platform Documentation

2 Self-service help Babelway B2B Integration Platform Documentation Copyright 2012 Babelway

3 Table of Contents 1. Introduction - Babelway concept Generalities Login and registration Page structure Finding help Grids Filters Monitoring Messages Messages list Message details Resubmitting a Message Resubmit multiple messages Download messages as a zip file Verify a message integrity Alerts Alerts list Alert details All possible alerts types Statistics Status statistics Time evolution statistics Traffic shape statistics Overview list Creation of a new Channel Channel detail Deployment Delete a Channel Duplicate a Channel Gateways Gateways list Creation of a gateway Gateway detail Gateway types Message definitions Message definitions list Creation of a message definition Message definition detail Update the message definition tree Message definitions formats Transformations Transformations list Creation of a transformation Transformation detail Drag and Drop Transformation Viewing and selecting mapping rules ii

4 Babelway Help Guide Nodes mapping Edit formula Understanding functions User-defined functions Sub-formulas Working with formulas - frequent scenarios Mapping loops Multi nodes mapping Using or changing metadata Drag and Drop transformation properties Xslt Transformation No Transformation Notifications Notifications list Notification detail Partners Defining partners manually Assigning partners to messages Creating your partners from messages Using partnerss Be compliant to GS Lookup tables Lookup tables list Create a lookup table Lookup table detail Use your lookup tables Automatic Population of Lookup table from CSV Automatic Population of Lookup table using Channel Routing Routings list Routings detail Edition of routings from channels section Test cases Test case detail Certificates Trust new certificate Add a certificate Extra processings Extra processings on gateway IN Extra processings on message definition IN Extra processings on message definition OUT Metadata Metadata usage System Metadata Change Log Environment change Log Change detail Elements change Log Reuse and save time Search and Reuse Using the Babelway catalogue Using or duplicating elements that you already defined iii

5 Babelway Help Guide Accessing elements from other environments Using examples or suggestions Admin Personal data Environment settings General Messages Partners Do I need one or several account environments? Billing Buy Credits Users Add a User Miscelleanous B2B Integration Project Management DNS load-balancing External References Rest API Introduction Available actions tickets ticket deleteticket messages message channels gateways messagedefinitions transformations catalogue Code samples BabelInvoice BabelInvoice Solution Install BabelInvoice for PDFCreator Using BabelInvoice for Stand alone BabelInvoice Setting Verify yourself the chain iv

6 1 Introduction - Babelway concept Babelway is a B2B integration Software-as-a-Service. Babelway provides data translation software and B2B communication gateways organised in a full-service proposition. Babelway services are fully available ondemand via a web-browser. There is no software or hardware to buy and maintain in-house, but yet 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. The following video is a good introduction to the application. 1

7 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 Login and registration To access the application, just go the the url https://www.babelway.net/. Figure 2.1. Login page If you are already a registered user, just fill in your login and password in the left part of the screen. If you are not yet a registered user, enter your 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. 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 address you used to register your account in Babelway. The system will then send 2

8 Generalities you an containing a link to a secure page allowing you to reset your password. Note that if you have register several user with the same address, the system will offer you to choose the one you want to change Page structure All the pages of the application have the following elements (see figure) : Figure 2.2. Page structure The goal of the top bar is to show you in which environment you are working. The following informations are available : 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 help menu. See help for more details. A logout button. The menu allows you to go to the different parts of the application Home just allows you to return to the welcome page of the application. You'll find in the Monitoring section all the functionnalities needed to follow and manage all the messages processed by the system, once the flow of messages is defined. 3

9 Generalities In the section, you'll be able to define how the messages must 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 feedback button allows you to easily contact Babelway. It is also described in more details in the help section Finding help In the interface, you can use many methods to get help. Most of this help is available via the help menu, right of the top bar. Figure 2.3. Page structure Page introduction. In the begin of every page, a short text gives you contextual help about the page. Figure 2.4. Page introduction If you don't want to see it anymore, just close it by clicking the cross upper-right of this zone, and this zone won't be displayed anymore for all the following pages. Only a small image will remain, in place of the cross, that will allow you to make it appear again if you want. In many places of the application, inline help is available. It is notices by the icon. To see the help, just put your mouse on the icon. 4

10 Generalities Figure 2.5. Inline help Reference manual. This manual, available via the help menu. Babel academy. A training given by an expert user of Babelway. Click in the help menu to access. Support. If you have any question, don't hesitate to ask to We'll answer you very rapidly. The link is also accessible via the help menu. Tutorial. The tutorial is a good way to learn the basics of the interface. You can launch the tutorial by clicking on the tutorial entry in the help menu. Feedback. At any time, if you experienced a problem, or just have some feedback or suggestion about the interface, you can send it to us by clicking the feedback button, bottom-right of the interface. Figure 2.6. Feedback 2.4. Grids In many pages of the application, grids of data are displayed. The grids are very powerful, and have many options, that are described here. 5

11 Generalities The grids are always displayed as in the following figure. Figure 2.7. Grids The headers contains the title of the column. On most columns, you can just 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 noticed by the icon You can resize columns by clicking on the separation between two columns, and dragging the icon to the wanted size. You can also reorder columns by just 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 put 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 asked data. The zone with the number of data tells you how many records have matched your criteria, and which part of these 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 display by default all the next tables with this number of records. The action buttons allow you 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. 6

12 Generalities Filters In all grids, the filter bar allows you to filter easily the displayed data. The filters that are available depends on the type of the data in this column. If you uses multiple criteria, the system will display the data that satisfies ALL the criteria. You can also reset all the criteria in one click with the "Reset filters" buttton 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 for all the data that contains the criteria. Figure 2.8. Textual filter Types with a limited number of possible values. When all the values of type can be enumerated, you will have a dropdown showing all the possible values. The system will search for all the data that have (exactly) this value in this column. Figure 2.9. Filter on a date Dates and times 7

13 Generalities You will have a dropdown allowing you to choose amongst several common periods ("Last 24 hours", "Last 7 days", "Last month",...) Figure Filter on a closed type If you have more unusual needs, you can select the "Custom" value. A popup will then be available where you will be able to choose any time interval. 8

14 Generalities Figure Custom filter on a date, gateways, message definitions, transformations,... For all columns referring to one of the elements of your environment, you will have a text-field (with autocomplete). The following values can be used in the field : =<id> : the system will filter on the element that have this precise id. =<name> : the system will filter on the elements that have (exactly) this name. <name> : the system will filter on the elements whose name contains the criteria. Figure Filter on a channel Ids For the columns containing the id of an element, you will have a text field. The following values can be used in the field : <id> : the system will filter on the element that have this precise id. Comma separated list of ids : the system will filter on the elements that have one of these ids. 9

15 Generalities Figure Filter on an id Other numeric values For the numeric columns, you will have a text field. The following values can be used in the field : N : the system will filter on the elements that have exactly this value N in this column. <N : the system will filter on the elements whose value is (stricly) smaller than N. <=N : the system will filter on the elements whose value is smaller than, or equal to N. >N : the system will filter on the elements whose value is (stricly) greather than N. >=N : the system will filter on the elements whose value is greather than, or equal to tn. Comma separated list of any criteria above : all the criteria will be applied. Figure Filter on a numeric column 10

16 3 Monitoring The monitoring section of the application contains all the stuff that allows 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 functionnalities are: Search in 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 stats on the messages. Note The items in the previous list should link to the section that details the functionnality Messages A message encapsulates all the informations about the processing of an input file of data by the Babelway systems. The message contains the following information : The incoming file: the file received by the Babelway from the source external system. The outgoing file: the file sent by the Babelway to the target external system. The status of the processing: was the file correctly processed or was it in error? It it still being processed? Various dates about the processing: when was the input file received, when was the output sent,... Informations about how the message was received or sent Messages list The list of messages allows you to browse and search all messages processed by the Babelway systems. To access this screen, just click on the Monitoring menu item. The Messages sub-menu item is auitomatically selected. 11

17 Monitoring Figure 3.1. List of messages Many informations about the messages can be directly displayed in the grid. The detailed explanation of each possible information can be found in message 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 message line to access its all the details about the message, and be able to make actions on it Message details The message details screens shows you all the details about the processing of a message by the Babelway systems. It also allows you to make all needed actions on this message. You can access it by clicking on a line in the messages list screen, or just by clicking on it every time a reference to a message is displayed. 12

18 Monitoring Figure 3.2. Message details screen The following informations can be available on a message: Created On Date and time of element creation. Status Message status, can be either In Progress, Success (waiting ack), Success, Error or Error (closed). The status Error (closed) allows to mark messages in error, so that you can know very easily which error still requires management, and which has already been closed. 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. Message In 13

19 Monitoring Incoming file, as received by the source external system. Click on the file name to open it. Click on the lock to display the Security info. Message Out Outgoing file, as sent to the target external system. In case of processing error, this file may be unavailable if messaging engine was enable to generate it. Click on the file name to open it. Click on the lock to display the Security info. 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 differenciated from the Status field, that just 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, that will cause the test to be considered as 'failed' if not fulfilled. Date In The date and time when the incoming file was received by Babelway system from external source system. Date Out The date and time when the outgoing file was sent by Babelway system to external target system. Keep until The date and time until which the message will be kept in the Babelway system. You can parametrize the keep duration for your whole environment or by channel. 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 input file. Key A uuid that uniquely identifies a Message. Reference Message reference or file name. Acknowledgment Reference Message that tells that the target external system has correctly received the output file. Acknowledgment timestamp Date and time of the acknowledgment. Gateway in message key Specific communication-level identifier from the gateway in Gateway in message status Specific communication-level informations from the gateway in, like related id's or addressing information 14

20 Monitoring of partner systems Gateway out message key Specific communication-level identifier from the gateway out Gateway out message status Specific communication-level informations from the gateway out, like related id's or addressing information of partner systems Size of incoming message Incoming message size (in bytes). Size of outcoming message Outgoing message size (in bytes). The section Internal files also gives you access to internal data about the processing of the message. Theses infos can be useful to investigate some problem, or to understand the behaviour of the system. Here is the complete list of possible files. Message XML In Incoming message after xml conversion and before processing. Message XML Out Outgoing message in xml format after conversion and before conversion to output format. Context Additional list of properties and log of processes applied during message processing. MDN In The MDN (Message Delivery Notification) that was sent to the caller, to prove that Babelway has received the message. MDN Out The MDN (Message Delivery Notification) that was received from the receiver of the message, to prove that Babelway has correctly submitted the message to its destination. 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. Click on Back action to go back to List of Messages screen. 15

21 Monitoring 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 test message and of outgoing message that will be used as expected message out 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 this issue is solved, go to the list of message, 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 due to the message itself. You can just correct the input file, upload it and resubmit the processing. You can access this screen from the message details screen, or from the alert details screen. Figure 3.3. Resubmit message screen The Message in allows you to view or change the file that will be processed. The Send to allows you to specify which channel or gateway must process the message Same channel: the message will be processed by the channel that processed the original message. The name of the channel is displayed under brackets. This option could not be available if the channel that processed the message doesn't exist anymore. Channel: the message will be processed by the specific channel you select. This can be for example very useful if the error in the processing is due to the message having been processed by a wrong channel (see routing rules). Same gateway in: the message will be injected in the system as if it was received by the same gateway as the original channel. This option could not be available if the gateway that received the message doesn't exist anymore. Gateway in: the message will be injected in the system as if it was received by the gateway that you select. Within the advanced 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. 16

22 Monitoring Once all parameters are setup up according to your preferences, click on the Send command to effectively maunch the reprocessing. You will be immediately redirected to the screen that shows the details of the reprocessed message 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. Figure 3.4. Selecting multiple messages for resubmit The function works the same way as the resubmit message function. The difference is that you process here many messages. Figure 3.5. Resubmit multiple messages screen The messages field show you the number of messages that you selected, and that will be reprocessed if you continue. If this number is not correct, please click on back and change your search. The send to field allows you to specify which channel or gateway must process the messages, and works exactly as for resubmit message. Once all parameters are correct, click on Resubmit to launch the resubmission of all the messages. 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 so that the resubmit can go to the end. Leaving this screen is equivalent to click on Stop. 17

23 Monitoring Figure 3.6. Resubmit multiple messages in progress 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. The test messages will be automatically excluded from the selection. Figure 3.7. Selecting multiple messages for download A message will inform you that a zip file will be created and that you will receive an with instructions to 18

24 Monitoring download it. Figure 3.8. Resulting Message The you will received will look as follow. Figure sample The zip file will contain received and generated files related to messages and a "messagerecords.csv" file that contain the list of downloaded messages. 19

25 Monitoring Figure Zip file content Some limits are implemented : Only one download is possible at a time. Your zip files will be deleted after 7 days. You can request a download of 1000 messages maximum. If you need to download more messages, don't hesitate to call the support team. If the resulting zip file is bigger than 200MB, the will not contain a link to the zip file but you will be asked to call the support team to find a better way to get your file Verify a message integrity Babelway keeps a secure chain of all messages, allowing to prove that a given message went through Babelway at a given time and is unaltered. Each message that goes through a channel is hashed (using SHA-512) and added to the "secure chain". It's called a chain because when we add a message, we also hash a string that is composed of the current message and information from the previous message. It is called secure because when we hash each new entry using information from the previous message, we make it impossible to modify an entry of the chain without having to alter all the hashes that have been computed after that message has been added to the chain In order to make sure that the chain is never modified, Babelway Team, regularly (several times a week) signs and timestamp an element of the chain. The signature is done using Belgium electronic identity card (eid) that uses another guarantee located in the offices of the Belgian government. The timestamp is done using a external public TSA (Timestamp Authority). This guarantees that Babelway is able to prove that a message was processed by our system, even if the message is not stored anymore in Babelway archive (only the hash and the detached signature are kept). This gives you all the garanties of confidentiality, Babelway does not keep messages if you don't want to, as well as guarantee of origin, integrity and timestamping for all messages processed in each account. You can access the digest of the message, and see when it was signed and certified, by clicking on the lock after the message files in the message details screen. 20

26 Monitoring Figure Signature info Note adresse of the verification page : https://www.babelway.net/selfservice3/securechainsearch.html should have a link from outside of the application. If someone receives a message from Babelway or from an that looks like a Babelway and would like to verify that it was indeed processed by given Babelway account (i.e. it is not a fake), he can use the chain search functionnality. The chain search allows you to upload the file you have received in the previous screen and then click on the "List" button ; it will show you information about the message like when and in which account it has been processed using the secure chain. On top of that, it will show you the previous and next timestamp of that chain element (the timestamp are the marks that Babelway team signs everyday using his ID card). Figure Secure Chain Search If a message has been processed twice, it will be shown 2 entries in the result. 21

27 Monitoring Figure Secure Chain Search Result It is a way to prove two things: The integrity of the message (it has not been modified) The authenticity of origin (it was processed in the given account as each account environment has its own certificate that is not shared with other account environment). The difference between the secure chain search and usual message search is that 1- Its a public page (anybody can check, even people that don't have a Babelway account as receivers are not automatically Babelway users) 2- The message search is limited to 3 months if the long term archive option is not activated. The secure chain search is unlimited in time (but gives less information if the message itself is not archived) Alerts An alert is a signal sent by the Babelway system to inform you that something abnormal has happened. For example, most common type of alert is to inform you when the processing of a message failed. All alerts should normally be handled by an human. Once the problem is solved, the alert should be deleted (or at least closed). You'll be warned in the WelcomePage if you have opened alerts. 22

28 Monitoring 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. Figure 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 Alert details The alert details displays all the information about an alert, and allows to take the necessary actions to solve the problem. Figure Detail of an alert Severity The seriousness of the issue, it can be High, Medium, Low or Info. 23

29 Monitoring 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 opened 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. Comments Enable you to add comments about the issue. It may be useful to keep track of actions already taken to solvge the problem. Related messages When applicable, gives you a direct link to the message(s) that caused the problem. Related channels When applicable, gives you a direct link to the channel(s) related to the problem. Attachments Enable you to download attachments available from the system. For example : the negative acknowledgment from AS2 gateway. 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 The action Resubmit linked message is a shortcut to resubmit easily the message linked to the ticket All possible alerts types This page describes all possible alert types. The types should also be grouped from a logocal way. Note Explanations to be completed. General monitoring... Message Processing Issue... 24

30 Monitoring 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 ot a Change in a Linked Channel... Planned Deletion of Unused... Documentation of a Channel... 25

31 Monitoring User Management Issue... Failed Connection Attempts... First Connection of new New User... Planned Deletion of Inactive Users... Invitation Expired Statistics The Statistics section allows you to view some aggregated data about your environment and your messages. These data can be displayed in graphics or in table Status statistics This screen allows you to have some aggregated view about 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 that the data is aggregated by channel, gateway in or gateway out. The resulting graphic will display one horizontal bar for each aggregated element (channel, gateway in or gateway out). This bar will be splitted following the status of the messages. The total count will also be displayed. 26

32 Monitoring Figure Status by channel In the graphic, you can click on the legend to hide or show some status. This is very useful to clearly see the few errors amongst the many Success messages. Figure Status by channel, Success messages are hidden. You can also click directly on the bars in the graph to go to the messages lists screen, with the correct search criteria filled to see exactly these messages. The refresh action button allows you to refresh the data. The Switch to data action button allows you to switch to the grid display of the number. It can be specially 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. 27

33 Monitoring Figure Messages stats Time evolution statistics This screen allows you to have see the evolution of the messages processed over time. This statistics counts 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 graphics : counts of messages, sizes of messages or both. You can also select the granularity of the graphics. Aggregate data by one month means that there will be one point or one bar on the graphic by month. You can also select to display the graphic in lines or in bars. Please note the following points : Graphics in lines are zoomable. You can just drag with your mouse on the graphic over the wanted period. Double-click anywhere on the graph to return to the full view. If you display both message counts and messages sizes, this option will only apply to messages counts. Messages sizes will always be displayed in line. 28

34 Monitoring Figure Count and sizes of messages by month. 29

35 Monitoring Figure Zoom in line graphic Traffic shape statistics This graphic shows you the graphic shape over one days, or over one week. The Type of graphic option allows you to choose between : Traffic shape over one day: to see the repartition of your messages amongst the 24 hours of the day. 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 repartition of your messages amongst the one week. 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 1 week, 4 weeks, 1 month,... Please note that only the messages that are currently visible in your interface will be counted, and not message that have been deleted. 30

36 Monitoring Figure Traffic shape over owe week 31

37 Monitoring Figure Traffic shape over owe day 32

38 4 This section of the application contains all the stuff needed to configure how the messages must be processed by the Babelway systems. The different sub-menu items contains the different building blocks available to make it work Overview This section gives you the high-level view of how the messages are processed by the Babelway systems. In Babelway words, the messages are processed by. A channel defines all the 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. It's 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, , OFTP, SFTP, X400 or web upload. The message in precisely describes the structure of the incoming message. The transformation tells Babelway 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 s 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. Another important concept is the concept 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, until you're satisfied with the new setup, and want the changes to take effect for the production messages. At this time, you have to deploy your environment, so that the new setup is migrated to the servers that handle your production messages.. 33

39 list The List of screen shows you all the channels defined in your environment, and is the starting point for editing them, create new ones or deploy to the production systems. Figure 4.1. 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 Tells if the channel is now running in the production system (value top bar ), or not (value Off ). See deployment for more details. Next deployment Tells which kind of change will be applied to the production systems at next deployment. Possible values are No change, Start, Stop or Apply changes. See deployment for more details. Enabled Tells if the channel is Enabled ) or Disabled. See deployment for more details. 34

40 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 uniqely identifies 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 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 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 channel. 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. 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 Channel detail 35

41 All the information required to configure a channel is displayed here, splitted in 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, notifications, routing rules, and finally testing. 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. Message storage duration How long the message processed by this channel will be kept. This value can also be set at environment level. Status Status ON means that the channel is currently running in the production systems. Status OFF means the channel is NOT currently running in the production systems. Next deployment action Tells what wil happen with this channel at next deployment. 'ApplyChanges' 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 wil be done about this channel at next deployment. 36

42 It displays informations about date and times where the channel was created or last updated. You can also precisely see and control the informations about the deployment of this channel (fields Status, Next deployment and Enabled? ). All the informations avout these 3 fields and the associated commands can be found in the deployment section. The Delete action allows you to delete your channel. The Duplicate action allows you to duplicate your channel. Gateway In 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, , OFTP, SFTP, X400 or web upload. You can find all informations 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 informations 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 informations 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 informations 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 informations about how to define and configure gateways in the gateways chapter. Notifications For each individual channel, you may configure automatic notifications that send s 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. You can find all informations about how to define and configure notifications in the notifications chapter. Routing 37

43 The routing allows you to define which channel must process a message, when multiple channels use the same gateway in. You can find all informations 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 informations about how to define and configure gateways in the test cases chapter. Related Items Figure 4.4. Related Items That tab gives 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 based on this channel Other channels with same gateway IN Display the channels using the current channel's gateway In Other channels with same message definition IN Display the channels using the current channel's message In Other channels with same message definition OUT Display the channels using the current channel's message Out Other channels with same gateway OUT Display the channels using the current channel's gateway Out Previous channels (within this environment) Channel from which the current channel receive messages. 38

44 Following channels (within this environment) 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 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 the changes 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. Its is not possible do deploy changes of only one channel. Keep also in mind that any server, mail adress, etc. defined in incoming and outgoing gateways are only created during deployment. A new incoming address for example will not be available and any mail sent to that address will generate an error before deployment. You can access the deployment screen from the list of channels, or from the general tab of the channel detail screen. In all the screens that deals with deployment, the 3 following concepts are used: Status The status tells if a channel is currently deployed in production ( On ) or not ( Off ). Enabled are normally enabled, and all channels are deployed in production every time you deploy. But it is possible to disable a channel, so that this channel is completely ignored in all operations related to deployment. A disabled channel is almost like a deleted channel, except that you keep it for later use (by enabling it again). Disabling a channel can also be useful if you want to deploy your environment, but have some channels that are under development, and not yet ready to be promoted to production. Next deployment The next deployment field shows what will happen with the channel during next deployment. The possible values are: No Change: channel will not be impacted by next deployment. It can be because the channel is disabled, or because the channel is enabled, but has not changed since the last deployment. Start: channel is currently not deployed, but will be after next deployment. Apply Changes: channel is currently activated and modifications will be applied at deployment. Stop: channel is currently deployed, but will be undeployed at next deployment. Before the deployment really take 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: 39

45 Figure 4.5. 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 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 advanced options 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, that means that are not referenced by other channels or transformations. 40

46 Figure 4.6. Delete a channel 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 advanced options, 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. Figure 4.7. 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 Gateways 41

47 This section contains all the stuff 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 functionnalities. 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 are used to specify the way incoming messages are communicated from the source external system to Babelway. Gateway out are 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, , Http. To browse the full list of available gateways, see our catalogue, or consult the different gateway types Gateways list The List of Gateways screen shows you all the gateways 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 menu, then the sub-menu Gateways Figure 4.8. List of gateways The list can contain the following columns: Name A name that identifies the channel. Description A free description for the channel. Direction 42

48 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 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 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 mean not used in any channel). You'll just have to tick the ones that you want to be deleted, and confirm the operation. Figure 4.9. Clean gateways 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, you have first to select the type of gateway that you want to use ( , FTP, AS2, HTTP,...). 43

49 Figure Gateway creation - Type choice. Then you need to fill the parameters of the gateway and click on Create gateway. The parameters depends on the type of gateway selected. You can find detailed explanation of every gateway type in the section on GatewayTypes.. Figure Gateway creation - Parameters for Figure Gateway creation - Parameters for FtpClient 44

50 After having clicked on Create gateway, you get the confirmation that the gateway is correctly created, or detailed error message if your parameters are not correct. Figure Gateway creation - Confirmation Figure Gateway creation - Error Reuse an existing gateway. The other solution is to select an existing gateway from the "Reuse and save time" zone. Figure Gateway creation - Reuse 45

51 Figure Gateway creation - Reuse confirmation When you are in the section, and you reuse a gateway that is already used in other channels, you will have the choice to share the gateway, or to make a copy. Figure Gateway creation - Share or copy More details can be found in the Reuse and save time section 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. 46

52 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 element name to help you identify your element usage and/or function. Id A unique identifier automatically set by 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 like 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 notification from which this gateway receives messages. 47

53 Messages processed by this gateway A link that shows you the message list filtered to show messages processed by this gateway. Change Log This tabs shows you all the history of changes on this gateway, and allows you to revert to a past version. For more details, see the change log section Gateway types Here is the list of all gateway types used in the application, with some more information about their specificities, or their specific parameters. Gateway In Gateway: Incoming messages are attached to messages and sent to a specific Babelway address and processed as soon as they arrive. FTP Client Gateway: Incoming messages are polled and retrieved from a remote ftp server using login and password. SFTP Client Gateway: Incoming messages are polled and retrieved from a remote sftp server using login and password. FTP Server Gateway: Incoming messages are transferred to a Babelway specific Ftp server and processed as soon as they arrive. SFTP Server Gateway: Incoming messages are transferred to a Babelway specific sftp server and processed as soon as they arrive. AS2 Gateway: A communication standard largely used in retail environment to secure communications over Internet. Internal Gateway: A gateway used to transfer messages between 2 channels within Babelway. Lookup table Gateway: used to create a message using values present in a lookup table. Message record Gateway: used to create a message using message records processed by the platform. OFTP Server Gateway: Incoming messages are transferred to a Babelway specific OFTP server and processed as soon as they arrive. OFTP Client Gateway: Incoming messages are polled and retrieved from a remote OFTP server using login and password. Http Client Gateway: Incoming messages are polled and retrieved from a remote Http server. Http Gateway: Incoming messages are transferred to a Babelway specific Http server and processed as soon as they arrive. Rest Gateway: Allows to implement a REST api. X.400 Gateway: Incoming messages are transferred to a Babelway specific X.400 server and processed as soon as they arrive. 48

54 Scheduler Gateway: Create new messages based on time triggers. NFS Gateway: 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 a SAP server and processed as soon as they arrive. Dropbox Gateway: Incoming messages are polled from a Dropbox account. Certione Gateway: Incoming messages are polled from a Certione account. Tradeshift Gateway: Incoming messages are polled from a Tradeshift account. E-conomic Gateway In: Incoming messages are pushed to Babelway from a E-conomic account and processed as soon as they arrive. VAN Gateway In: Incoming messages are polled from ECGrid VAN. OpenPEPPOL Gateway In: Incoming messages are received from the OpenPEPPOL network. RosettaNet Gateway In: Incoming messages are received from a RosettaNet server. Gateway Out Gateway Out: With an Gateway Out, outgoing messages are attached to an and sent to a specific address. FTP Client Gateway: With a Ftp Client Out Gateway, outgoing messages are transferred to an external Ftp server. SFTP Client Gateway: With a SFTP Client Out Gateway, outgoing messages are transferred to an external SFTP server. FTP Server Gateway:With a Ftp Server Out Gateway, outgoing messages are available from a Babelway FTP server. SFTP Server Gateway:With a Sftp Server Out Gateway, outgoing messages are available from a Babelway SFTP server. AS2 Gateway: A communication standard largely used in retail environment to secure communications over Internet. Internal Gateway: The internal gateways in / out are used to transfer messages between 2 channels inside the same Babelway environment. Null Gateway: The outgoing messages are not sent anywhere. Splitter Gateway: A gateway used to split your messages and pass them to other gateways. Aggregator Gateway Out: The aggregator allows to merge messages into one larger file. The resulting messages is forwarded to an other channel in the same environment. Lookup table Gateway: used to fill a lookup table automatically from a message. OFTP server Gateway: With a OFTP Server Out Gateway, outgoing messages are available from a Babelway 49

55 OFTP server. OFTP Client Gateway: With a OFTP Client Out Gateway, outgoing messages are transferred to an external OFTP server. HTTP out Gateway: With a HTTP out Gateway, outgoing messages are available from a Babelway HTTP server. Http Client Out Gateway: With an Http Client Out Gateway, outgoing messages are send using a Http connection. Soap Client Out Gateway: With an Soap Client Out Gateway, outgoing messages are sent using a SOAP call. eprior Soap Client Out Gateway: With eprior Soap Client Out Gateway, outgoing messages are sent using a SOAP call to Belgian eprior/mercurius platform. X.400 Gateway Out: With a X.400 Gateway, outgoing messages are sent to a specific trading partner address using a X.400 network. NFS Gateway: Outgoing messages are pushed from Babelway to a NFS server. SAP Gateway Out: Outgoing messages are pushed from Babelway to a SAP server. Dropbox Gateway: Outgoing messages are pushed from Babelway to a Dropbox account. Exact Postbox Gateway: Outgoing messages are pushed from Babelway to a Exact POSTBOX account. Tradeshift Gateway: Outgoing messages are pushed from Babelway to a Tradeshift account. Billtrust Gateway: Outgoing messages are pushed from Babelway to a Billtrust API. VAN Gateway Out: Outgoing messages are pushed from Babelway to ECGrid VAN. OpenPEPPOL Gateway Out: Outgoing messages are sent to the OpenPEPPOL network. RosettaNet Gateway Out: Outgoing messages are sent to a RosettaNet server. Gateway In gateway in allows to receive incoming messages sent to a specific Babelway address, as attachments. The messages are processed as soon as they arrive. The specific parameters are : address The address to which the incoming messages are sent as attachment.if the address already exists, you will have to enter a new address. Remember that this address will only be created at channel deployment. Ftp Client Gateway In With a Ftp Client In Gateway, incoming messages are transferred from an external Ftp server. Babelway polls files from this server at regular intervals. The specific parameters are : 50

56 Server External ftp server address where Babelway should fetch messages, eg 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 ftpserver client. Directory Directory where files are to be fetched on the server. File suffix The file suffix used to filter files to import (note: add the dot, eg. '.esbin'). 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. 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. Polling interval Interval of time in seconds between checks for new messages. Cron expression Cron expression. Allows to define complex time expression 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 For more information, please refer to the page: When a message is transferred to the ftp server, it is processed immediately then the original file is removed from the server. Ftp Server Gateway In With a Ftp Server In Gateway, incoming messages are received on a Babelway specific ftp server and pro51

57 cessed as soon as they arrive. The specific parameters are : Server Babelway ftp server set as "ftp.babelway.net" 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 parameters. Babelway FTP gateways are supporting FTP and FTPS (Explicit mode) on port 21. It also support FTPS (Implicit mode) on port 990. SFTP Client Gateway In With a 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 parameters 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 suffix The file suffix used to filter files to import (note: add the dot, eg. '.esbin'). If left empty, all files will be transferred. Polling interval Interval of time in seconds between checks for new messages. Cron expression 52

58 Cron expression. Allows to define complex time expression 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 For more information, please refer to the page: 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. 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. 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 parameters are: Server Babelway SFTP server default value is 'sftp.babelway.net'. 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. In that case, 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 a RSA format (OpenSSH, Putty or DER). If you don t already have a pub53

59 lic/private key, you can generate one using ssh-keygen from OpenSSH : C:\cygwin\bin>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:(...) AS2 Gateway With an AS2 Gateway, incoming messages are received using an AS2 connection. Incoming files are processed as soon as they are received. 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 parameters 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 your AS2 parameters. You should download it, complete 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 8 times. Retry interval Interval of time before trying to send message again (in seconds). Default is 1800 (30 minutes). After channel deployment, your AS2 connection will be available to receive messages. 54

60 To report AS2 parameters to the other party, click on GenericAS2Specifications.doc command to download a Word file including all parameters values required to establish AS2 communication. In this file, you should change Identity field to match the To field value (see above) as automatically attributed by Babelway interface, this value follows " BABELWAY_AS2_xxxxx " form. Once this parameter has been changed to match your settings, you can send the file to the other party to give him all parameters he will require to establish a communication with your channel. 55

61 56

62 Figure GenericAS2Specifications Word file example 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 parameters are: Partner SSID 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 : O X0B5SHARED. Please call support if you want to use a different one. My SFID An SFID is automatically assigned to your Environment : O X0B5xxxxxx. Please call support if you want to use a different one. My password The value of the password is 'BABELWAY'. OFTP documentation File containing your OFTP parameters. It should be completed as detailed hereafter before being sent to your OFTP partner for configuration of their system side. Use compression Compresses the messages. 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 57

63 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 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 for TCP connections. Default is 1024 Server configuration Local server configuration. Leave empty for the shared Babelway OFTP. Contact support for special needs. 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 parameters. If you require a custom SSID / SFID / PASSWORD, please send a request to 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 parameters are: Partner SSID The OFTP ID provided by your partner. Partner SFID 58

64 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 : O X0B5SHARED. Please call support if you want to use a different one. My SFID An SFID is automatically assigned to your Environment : O X0B5xxxxxx. Please call support if you want to use a different one. My password The value of the password is 'BABELWAY'. OFTP documentation File containing your OFTP parameters. It should be completed as detailed hereafter before being sent to your OFTP partner for configuration of his system side. 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 : or , 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. Polling interval define the polling interval in seconds 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

65 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 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 for TCP connections. Default is 1024 Server configuration Local server configuration. Use 1 for the shared Babelway OFTP. Contact support for special needs. 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 parameters. If you require a custom SSID / SFID / PASSWORD, please send a request to 60

66 When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server. Http In Gateway 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 contains the final result of the execution of the messages. If the messages generates more than one messages, the response will contains 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 parameters are: Username Login or username to access the service. Password Password associated with previous username. HTTP Post URL using the HTTP Post protocols. SOAP Url using the SOAP Post protocols. WSDL1 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. HttpClient The Http Client allows to periodically retrieve the content of the Http response to a specific URL Url Url to call to create message. Username Username used for BASIC authentication. Password Password used for BASIC authentication. 1 https://ws.babelway.net/ws/soapin?wsdl 61

67 Http headers You can add specific http header. 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'. Cron expression Cron expression. Allows to define complex time expression 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 For more information, please refer to the page: Rest In Gateway 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 a 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 parameters 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) Allowed credentials. A list of user names/passwords 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 parameters 'user' and 'password' or http headers 'user' and 'password'. Url patterns Optional. If filled, the requested uri will be checked again these patterns, and will be refused it it doesn't match at least one pattern. You can also prefix the pattern with 'PRE:', 'POST:', 'PUT:',... if you want that this pattern is only accessible via one specific http method. Here is an example of message in that is generated by this gateway. <?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> 62

68 <param1>be</param1> <myparam>myvalue</youpie> </parameters> </restrequest> X.400 Gateway In With a X.400 In Gateway, allows to receive message from X.400 networks. Your trading partners can reach you via your private X.400 address. The specific parameters 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 /C=WW/A=400NET/P=BABELWAY/S=HUB 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. Scheduler in Gateway The Scheduler in Gateway allows to create a message based on a time trigger. The specific parameters 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 need, use the Cron Expression property instead. Cron expression Cron expression. Allows to define complex time expression 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 : For more information, please refer to the following page: 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). Internal Gateway In The internal gateway in / out are used to transfer messages between 2 channels within the same account environment. There is no parameter 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 gateway out for other 63

69 channels configuration without requiring a channel deployment. Lookup table Gateway In This gateway allows to create a messages from the content of a lookup table. The messages created is a XML document. It uses the same format as the XML CVS 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 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 to define complex time expression like every weekday night at 23:00 (0 23? * 64

70 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 : For more information, please refer to the following page: Message record Gateway The Message record Gateway is used to export message records processed by the platform. Criteria List of selection criteria that can be used to query for message records. Cron expression Cron expression. Allows to define complex time expression 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 : For more information, please refer to the following page: NFS Gateway 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 uid 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 65

71 prevent that a file is transferred twice. 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 : 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). Figure 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. 66

72 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 4 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 4 Babelway public IP addresses and the SAP server. Please send a request to The Port number used to contact the SAP system range from 3300 to 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". 67

73 Figure RFC destination Create a "Ports in IDoc processing" (transaction we21) in the "Transactional RFC" with the name "BABELWAY". 68

74 Figure 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". 69

75 Figure Sap Partner Profiles 70

76 Figure 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 here2. 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" 2 71

77 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. Figure 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, 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 72

78 the sap router syntax details here: /H/SAP_ROUTER/S/3300/H/SAP_SERVER/S/3300 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 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 parameters 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 /Applications/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. 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 73

79 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 : Gateway CertiONE This gateway allows to retreive files directly from an account on the Baseware / Certipost CertiONE Bizmail. Username Username of your CertiONE account. Password Password of your CertiONE account. Only not downloaded yet Check this if you only want to get the files not yet downloaded (for which download has not been confirmed). Confirm download Confirm the download to avoid retrieving the file in the next run. Only uncheck this during the development/teting phase. Sender Specify a pattern on the sender to filter the files you want to download. Leave empty to take all senders. Cron expression By default, the gateway will regularly poll the messages from your CertiONE account, so that they come into Babelway a short time (less than 10 minutes) after they have been placed in your CertiONE 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 : Tradeshift In Gateway This gateway allows to retrieve files directly from an account on Tradeshift. The document retrieved will be marked as 'processed-by-babelway' in Tradeshift. API URL URL Prefix to call Tradeshift API. Default is https://api.tradeshift.com/tradeshift/rest/ 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. 74

80 Stag Specify where the document should be retrieved from. Values are 'inbox', outbox, 'inbox,outbox'. Default is 'inbox'. Type type of document to retrieve. Values are 'invoice', 'invoice,creditnote'. Default is 'invoice'. Fetch metadata Check to retreive the document metadatas and th connection properties. 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 : 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 parameters 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=n3m3tymmqngwttso7dnr7f3rgonx lzwkeeneil2uwo0=&role=superuser. CVR Reference Reference to Central Business Register (CVR). Only invoice documents with this reference will be retrieved by Babelway. Frequency Number of seconds between two 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 Cron expression. Allows to define complex time expression 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 : For more information, please refer to the following page: VAN In Gateway This gateway allows to retrieve files that targeting specific trading partners on ECGrid VAN. 75

81 ECGrid trading partners Your Identifier / Qualifier pairs on VANs. All messages specifying these Id/Qual 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). OpenPEPPOL In Gateway This gateway allows to receive files from the OpenPEPPOL network. Identifier Scheme The identification of the identification scheme. Most of the time this will be a national VAT number or a GLN. Identifier Value The value identifying the company in the given identification scheme. This id will be registred in the SML, along the registered documents. Registered Documents List of documents accepted by this gateway and registred in the SML. Message Level Response Using this option you can decide to send MLR directly after message reception RosettaNet In Gateway 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. Decryption certificate Select encryption certificate or go to certificates store. Signature verification certificate Select signature certificate or go to certificates store. Gateway Out With an Gateway Out, outgoing messages are attached to an and sent to a specific address. The specific parameters are: To Recipients address to which messages will be sent (destination). You can add a comma separated list of recipients or a metadata. Cc Recipients destination CC address.you can add a comma separated list of recipients or a metadata. Bcc Recipients 76

82 destination Bcc address.you can add a comma separated list of recipients or a metadata. Sending Address address from which messages will appear to be sent. Replies will be sent to that address. Secure If checked, the message is signed using the transfer certificate. The sending address should be where XXXXX is your account environment id. Track using web beacon If checked, a web beacon (an image containing a unique link) will be in the footer of the . When the image is loaded for the first time, it will report it as an acknowledgement of the reception of the message. Subject message subject. Body type [text/plain, text/html] default is text/plain body message Body. HTML codes < and > must be escaped. See for an online tool. Send message as attachment Should the message be sent as attachment or not. Attachment name Attachment file name. Send message as a link Add a download link in the message body. When the link is first clicked, it will "acknowledge" the message. 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 . 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. Ftp Client Gateway Out With a Ftp Client Out Gateway, outgoing messages are transferred to an external Ftp server. 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. 77

83 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 ftpserver client. Directory Directory where outgoing files will be stored on the server. Filename Filename of the outgoing message. Work 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 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 parameters are: Server Babelway ftp server set as "ftp.babelway.net" 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. 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 parameters. 78

84 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 parameters are: Server Babelway ftp server set by default as "sftp.babelway.net" 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. 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 parameters 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). Directory Directory where outgoing files will be stored on the server. 79

85 Filename Filename of the outgoing message. Work 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 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. OFTP client Gateway out With an OFTP Client out Gateway, outgoing messages are transferred to an external OFTP server. The specific parameters 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 : O X0B5SHARED. Please call support if you want to use a different one. My SFID An SFID is automatically assigned to your Environment : O X0B5xxxxx 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. OFTP documentation File containing your OFTP parameters. It should be completed as detailed hereafter before being sent to your OFTP partner for configuration of their system side. 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 : or , 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. 80

86 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. 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 81

87 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 for TCP connections. Default is 1024 Server configuration Local server configuration. Use 1 for the shared Babelway OFTP. Contact support for special needs. 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 parameters. If you require a custom SSID / SFID / PASSWORD, please send a request to When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server. OFTP Server Gateway out With an OFtp server Gateway out, outgoing messages are available from a Babelway OFTP server. The specific parameters 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 : O X0B5SHARED. Please call support if you want to use a different one. My SFID An SFID is automatically assigned to your Environment : O X0B5xxxxxx 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'. 82

88 Filename Filename of the outgoing message. OFTP documentation File containing your OFTP parameters. It should be completed as detailed hereafter before being sent to your OFTP partner for configuration of their system side. Use compression Compresses the messages. 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 83

89 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 for TCP connections. Default is 1024 Server configuration Local server configuration. Use 1 for the shared Babelway OFTP. Contact support for special needs. 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 parameters. If you require a custom SSID / SFID / PASSWORD, please send a request to When a message is transferred to the Oftp server, it is processed immediately then the original file is removed from the server. AS2 Gateway With an AS2 Gateway, outgoing messages are transmitted using an AS2 connection. 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 suppor- 84

90 ted 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 your AS2 parameters. You should download it, complete 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 parter (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 parter (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). 85

91 To report AS2 parameters to the other party, click on GenericAS2Specifications.doc command to download a Word file including all parameters values required to establish AS2 communication. In this file, you should change Identity field to match the To field value (see above) as automatically attributed by Babelway interface, this value follows " BABELWAY_AS2_xxxxx " form. Once this parameter has been changed to match your settings, you can send the file to the other party to give them all parameters they will require to establish a communication with your channel. 86

92 87

93 Figure GenericAS2Specifications Word file example Http Client Out Gateway 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 parameters 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. 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'. Number of retries Number of times the gateway will try to contact the server before putting the message in ERROR. Default is 1. Filename Filename of the outgoing message. Timeout Timeout for connection in milliseconds. Must be between and 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. Message mime part Name given to the mime part containing the actual message. This is also equivalent to the FORM parameter when a POST if done from a web browser. Extra mime parts Extra parts to inlude in the message. Name is the PART name (FORM parameter) and the value is the name 88

94 of a metadata containg the PART content. In case of a binary content, the name of the metadata will also be used as the 'filename' of the PART. 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, OAUTH2 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. Oauth bearer If OAUTH2 authentication is used, this allows select the OATH bearer token to use. After channel deployment, your connection will be available to send messages. Soap Client Out Gateway 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 parameters 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. 89

95 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. Note that the error 500 is accepted to allow the to push SOAP Fault to the next channel. The default is '200,201,202,204,205,500'. 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'. Number of retries Number of times the gateway will try to contact the server before putting the message in ERROR. Default is 1. Filename Filename of the outgoing message. Http Method You can specify the http method to call. The default is POST. Timeout Timeout for connection in milliseconds. Must be between and 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. 90

96 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 Soap Client Out Gateway With eprior Soap Client Out Gateway, outgoing messages are sent using a SOAP call to Belgian eprior/ Mercurius platform. The specific parameters are: eprior Url eprior service address. Connected gateway Select zero, one or several gateways to receive the response from the http server. Response filename You can specify a filename that will be associated with the server response. Default is 'attachment'. Http Out Gateway With a HTTP out Gateway, outgoing messages are available from a Babelway HTTP server. The specific parameters are: Username Login or username to access the service. Password Password associated with the username. 91

97 SOAP Url using the SOAP Post protocol. WSDL3 HTTP Post URL using the HTTP Post protocol. Content encoding How to encode the content After channel deployment, your connection will be available to send messages. 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 /C=WW/A=400NET/P=BABELWAY/S=HUB 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 3 https://ws.babelway.net/ws/soapout?wsdl 92

98 Request a X.400 message delivery notification 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 parameters are: Conected 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. Response Filename Filename of the Response message. 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 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. 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 parameters 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. Filename Filename of the parent message. 93

99 Response filename Filename of the split message. Header expression Regex expression to create a header added to each split message Expression XPath or RegEx expression to select the content of the split message. [\n](?=ee) which means split when seeing line return and then EE 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. Xslt Optional Xslt to perform on 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 a 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 metadatas defined in the first of the aggregated messages are passed in the context of the aggregated message. The specific parameters are: Connected gateways 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. Optionaly 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. Group by Optional. Enables to generate different aggregated files grouping incoming messages based on the value of 94

100 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. Frequency Frequency in seconds. Default is 300 (5 minutes). Cron expression Cron expression. Allows to define complex time expression 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 : For more information, please refer to the following page: Input filename Filename of the message OUT of the channel that serves as input to the aggregator, by default this is the same as the message in. 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, to ensure 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. NFS Gateway 95

101 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 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. Lookup Table Out Gateway The lookup table gateway is used to fill a lookup table automatically from a message. 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 criteria 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 parameters are : SAP client 96

102 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, 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 to upload your messages into a Dropbox account. The specific parameters 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 /Applications/Babelway/. Exact Out Gateway 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 Out Gateway This gateway allows to send files directly to an account on Tradeshift. 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 distatch the document to someone else account. API URL URL Prefix to call Tradeshift API. Default is https://api.tradeshift.com/tradeshift/rest/ 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. 97

103 Secret The Tradeshift token secret to use. Use Babelway application in Tradeshift to retrieve this value. Document Profile The Tradeshift document profile. Country The country used by Tradeshift to find the business partner. Company Name The company name used by Tradeshift to find the business partner. The adress 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. Van The van id used by Tradeshift to find the business partner. Billtrust Out Gateway With an BilltrustOut Gateway, outgoing messages are sent to Billtrust API. All the user defined metadatas defined in the messages are passed in the context of the new message. The specific parameters 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. 98

104 Response filename You can specify a filename that will be associated with the server response. Default is 'attachment'. Filename Filename of the outgoing message. Timeout Timeout for connection in milliseconds. Must be between and 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 Out Gateway This gateway allows to send files directly to ECGrid VAN. The VAN gateway routes the message to its destination based on the Identifier / Qualifier pair as determined in the X12 or Edifact data. The specific parameters are: Filename Filename of the outgoing message. OpenPEPPOL Out Gateway This gateway allows to send files to the OpenPEPPOL network. SMP url (TEST only) URL of the SMP server of the receiver. This is used to bypass lookup in the OpenPEPPOL SML registries. Use this for test purpose only. Receiver address (TEST only) URL of the AS2 server of the receiver. This is used to bypass lookup in the OpenPEPPOL SML/SMP registries. Use this for test purpose only. Receiver id (TEST only) AS2 ID the receiver. This is used to bypass lookup in the OpenPEPPOL SML/SMP registries. Use this for test purpose only. Receiver certificate (TEST only) AS2 certificate of the receiver. This is used to bypass lookup in the OpenPEPPOL SML/SMP registries. Use this for test purpose only. 99

105 RosettaNet Out Gateway This gateway allows to send RosettaNet complient PIP message to an other 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 Attachements 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 Message definitions This section contains all the stuff 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 functionnalities. 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 Message definitions list The List of Message definitions screen shows you all the message defitnions 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 menu, then the sub-menu Message definitions The list can contain the following columns: Name A name that identifies the channel. Description A free description for the channel. 100

106 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 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 MessageDefinition. To create a MessageDefinition, you have first to select the type of gateway that you want to use (CSV, XML, Edifact,...). Figure MessageDefinition creation - Type choice. 101

107 Then you need to follow the instructions on the screen. The parameters depends on the type of MessageDefinition selected. You can find detailed explanation of every type in the section on MessageDefinition formats.. Figure MessageDefinition creation - CSV. Figure MessageDefinition creation - XML (step 1). Figure MessageDefinition creation - XML (step 2). Reuse an existing MessageDefinition. The other solution is to select an existing MessageDefinition from the "Reuse and save time" zone. 102

108 Figure MessageDefinition creation - Reuse Figure Gateway creation - Reuse confirmation 103

109 When you are in the 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. Figure Gateway creation - Share or copy More details can be found in the Reuse and save time section 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 signaletic 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 element name to help you identify your element usage and/or function. Id A unique identifier automatically set by Babelway platform. Created On Date and time of element creation. 104

110 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 informations about the message definition tree. Don't forget to save when you're finished with your changes. Properties The properties are the parameters of the message definition, and allows to configure all the options of the message definition, depending of its type. See message definitions types section for the description of every parameter, type by type. Extra processings The extra processings allows you to configure additional processings that must be applied on the messages. Some examples are extracting the file from a zip file, or signing the output file. See extra processings 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 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. 105

111 Figure 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 used to use 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. 106

112 Figure 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 in the corresponding xml. represents an element in the corresponding xml, that contains a fixed static value. represents an attribute in the corresponding xml. represents a attribute in the corresponding xml, that contains a fixed static value. 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 node. They do not have any correspondance in the messages, but are used to tell additional information to the Babelway platform, like the fact that some elements can be repeated, or 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. 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 107

113 properties of the node, or make actions on it to change the structure of the tree (delete, duplicate,...). Figure 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. Default value Only for message definition OUT. The default value will be used in the message out for this field if no 108

114 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 probbaly 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). Search On the top of the left panel, a search bar allows you to find easily nodes in big documents. 109

115 Figure Search To search nodes, just type part of the name that you search. 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 110

116 Figure 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: 111

117 Figure 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 others. 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. 112

118 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, ,bbb,def, ,ccc,ghi, Here is the message tree for this CSV: Figure 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 manu113

119 ally group those relevant nodes using one of the following grouping type: Group By: groups together all nodes having the same value as the Grouping value. Group Adjacent: groups together all nodes having 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 right-clicking on the loop node in the message tree in the in or out message tab durint channel editing. Figure Loop parameters The grouping value is an XPath expression identifying the grouping pattern. By right 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 ). 114

120 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 Figure Default message tree In this example, we have a loop of lines defining an item to dispatch, where each line has the truck id where the item is stored. We could regroup this loop of lines by TruckId so we can loop on all trucks and then loop inside each truck on 115

121 all 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). Figure Regroup this loop We now have a loop on all trucks and a sub loop on all item in a truck. Figure Sub loop 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. 116

122 Figure Message definitions formats This list shows main message formats supported by the application. CSV EDIFACT Odette X12 XML Excel PDF based on XHTML template Flat-file Multirecord Tradacom Json Rest SAP Idoc flat file Generic Not Defined 117

123 UBL RosettaNet 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. 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 C 06/13/2008,LU ,HSBC GIF EMERGING EUROPE EQUITY,AC,EUR,15.088,15.088,15.924, , The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Delimiter character The character that is used to separate the fields in the csv. It can be a comma, colon, semicolon, 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 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. Edifact 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 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. As Babelway supports all EDI transaction sets of the EDIFACT standard, you can use any of them in your own 118

124 gateway setup. Babelway supports all following EDIFACT documents: APERAK, AUTHOR, AVLREQ, AVLRSP, BALANC, BANSTA, BAPLIE, BERMAN, BMISRM, BOPBNK, BOPCUS, BOPDIR, BOPINF, BUSCRD, CALINF, CASINT, CASRES, CHACCO, CLASET, CNTCND, COACSU, COARRI, CODECO, CODENO, COEDOR, COHAOR, COLREQ, COMDIS, CONAPW, CONDPV, CONDRA, CONDRO, CONEST, CONITT, CONPVA, CONQVA, CONRPW, CONTEN, CONWQD, COPARN, COPAYM, COPINO, COPRAR, COREOR, COSTCO, COSTOR, CREADV, CREEXT, CREMUL, CUSCAR, CUSDEC, CUSEXP, CUSPED, CUSREP, CUSRES, DAPLOS, DEBADV, DEBMUL, DEBREC, DELFOR, DELJIT, DESADV, DESTIM, DGRECA, DIRDEB, DIRDEF, DMRDEF, DMSTAT, DOCADV, DOCAMA, DOCAMI, DOCAMR, DOCAPP, DOCARE, DOCINF, ENTREC, FINCAN, FINPAY, FINSTA, GENRAL, GESMES, HANMOV, ICASRP, ICSOLI, IFCSUM, IFTCCA, IFTDGN, IFTFCC, IFTICL, IFTMAN, IFTMBC, IFTMBF, IFTMBP, IFTMCA, IFTMCS, IFTMIN, IFTRIN, IFTSAI, IFTSTA, IFTSTQ, IHCEBI, IHCLME, IMPDEF, INFCON, INFENT, INSDES, INSPRE, INSREQ, INSRPT, INVOIC, INVRPT, IPPOAD, IPPOMO, ISENDS, ITRRPT, JAPRES, JINFDE, JOBAPP, JOBCON, JOBMOD, JOBOFF, JUPREQ, LEDGER, LREACT, LRECLM, MEDPID, MEDPRE, MEDREQ, MEDRPT, MEDRUC, MEQPOS, MOVINS, MSCONS, ORDCHG, ORDERS, ORDRSP, OSTENQ, OSTRPT, PARTIN, PASREQ, PASRSP, PAXLST, PAYDUC, PAYEXT, PAYMUL, PAYORD, PRICAT, PRIHIS, PROCST, PRODAT, PRODEX, PROINQ, PROSRV, PROTAP, PRPAID, QALITY, QUOTES, RDRMES, REBORD, RECADV, RECALC, RECECO, RECLAM, RECORD, REGENT, RELIST, REMADV, REPREM, REQDOC, REQOTE, RESETT, RESMSG, RESREQ, RESRSP, RETACC, RETANN, RETINS, RPCALL, SAFHAZ, SANCRT, SKDREQ, SKDUPD, SLSFCT, SLSRPT, SOCADE, SSIMOD, SSRECH, SSREGW, STATAC, STLRPT, SUPCOT, SUPMAN, SUPRES, TANSTA, TAXCON, TIQREQ, TIQRSP, TPFREP, TSDUPD, TUPREQ, TUPRSP, UTILMD, UTILTS, VATDEC, VESDEP, WASDIS, WKGRDC, WKGRRE File sample Following is a sample EDIFACT file. UNA:+.? ' UNB+UNOC:3+000eanpimgest:14+000eanatelier: :41: : :41: UNH+1+DESADV:D:01B:UN:EAN007' BGM ' DTM+137: :203' DTM+17: :203' DTM+2: :203' DTM+171: :102' NAD+BY+000eanatelier::9++LATELIER+Chausse de Lige 477+JAMBES BE' NAD+SU+000eanpimgest::9++PmiGest+Parc Scientifique Cralys+LES ISNES BE' TDT+1++30' CPS+1' PAC+2+:52+201::9' CPS+2+1' PAC+1+:52+201::9' MEA+PD+AAC+KGM:0' MEA+PD+T+KGM:0' PCI+33E' GIN+BJ+p00001' PCI+34E' GIN+SRV ' The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 119

125 Edi Template (Only available for Edifact Out) The template is used by the EdiWriter in order to define the proper layout of the edifact and follows the syntax of the template. skip UNA (Only available for Edifact Out) Check this to skip the UNA section in EDIFACT. Edifact security version (Only available for Edifact Out) Edifact security version. keyalias (Only available for Edifact Out) keyalias. Output charset Charset to use to encode the file. Input charset Charset to use to decode the file. Sample An example of Edifact file handled by this message definition. How to add a new segment to an existing Edifact message definition: 1-Go to the Message In/Out Tab: I)Go to the properties, by clicking on the properties link at the bottom of the page. Figure Message tree II)Download the message definition on your local machine. 120

126 Figure Message properties 2-Create a temporary new channel. 3-In messageout (or messagein based on the existing message type) tab, create a new Edifact MessageDefinition with a message containing the segment you want to add. 4-Download the New MessageDefinition (As shown in previous steps). 5-Locate the new segment in the MessageDefinition XML file. 6-Copy it to the MessageDefinition of the existing Edifact message at the same place maintaining the order of segments. Figure message definition xml 7-Remove all UID values of the copied part. 8-Replace the existing Message Definition with the updated version (Using Choose file in front of message Definition). 121

127 Figure Message definition details 9-Click Save button 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 communications 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 Following is a sample ODETTE file. UNB+UNOA:1+1111:OD+2222:OD : KANBAN' UNH+1+KANBAN:2::OD' MID :0001' CDT+::::::2474' BDT ' CSG I' ARD ' KDE+: :1648' ARD ' KDE+: :2057' UNT+10+1' UNZ+1+888' The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this 122

128 structure via the graphical editor (tree) of the interface. 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 Charset to use to encode the file. Input Charset Charset to use to decode the file. Sample An example of ODETTE file handled by this message definition. How to add a new segment to an existing Odette message definition 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. Babelway supports all following X12 documents: Order Series (ORD), Materials Handling Series (MAT), Tax Services Series (TAX), Warehousing Series (WAR), Financial Series (FIN), Government Series (GOV), Manufacturing Series (MAN), Delivery Series (DEL), Engineering Management and Contract Series (ENG), Insurance/Health Series (INS), Miscellaneous ANSI X12 Transactions Series (MIS), Mortgage Series (MOR), Product Services Series (PSS), Quality and Safety Series (QSS), Student Information Series (STU), Transportation (Air and Motor Series (TAM) - Ocean Series (TOS), Rail Series (TRS),Automotive Series (TAS) File sample Following is a sample X12 file. ISA*00* *00* *ZZ*SENDERISA *ZZ*RECEIVERISA GS*IN*SENDERDEPT* * *1548*000001*X*004010~ ST*810* ~ BIG* *00027**A ~ N1*ST*CHOCOLATE IMPORT*9* ~ N3*1000 N. NORTH HIGHWAY~ N4*NEW YORK*NY*10310~ N1*BT*RETAILER INC.*9* ~ N3*P.O. BOX 0000~ N4*LAKE*VA*20120~ N1*RE*FOODSELLER*9*12345QQQQ~ N3*P.O. BOX ~ N4*FAIRFAX*VA*94978~ ITD*01*3*1**15**16~ FOB*PP~ IT1**16*CA*12.34**UA* ~ PID*F****BELGIUM CHOCOLATE~ IT1**13*CA*12.34**UA* ~ PID*F****SWISS CHOCOLATE~ TDS*35786~ CAD*****FREEFORM~ *960807*1548*U*00401* *0* 123

129 ISS*29*CA~ CTT*2~ SE*22* ~ GE*1*000001~ IEA*1* ~ The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Edi Template (Only available for X12 Out) The template is used by the EdiWriter in order to define the proper layout of the X12 and follows the syntax of the template. Output Charset Charset to use to encode the file. Input Charset Charset to use to decode the file. Sample An example of X12 file handled by this message definition. XML XML stands for extensible Markup Language and is a very common type of files. File sample Following is a sample XML file. <?xml version="1.0"?> <Document> <SenderID> </SenderID> <ReceiverID> </ReceiverID> <DocumentDate> </DocumentDate> <DocumentNumber>VK </DocumentNumber> <TestIndicator>P</TestIndicator> <DocumentLanguage>NL</DocumentLanguage> <Version>1.1/Food</Version> <Invoice> <MessageReferenceNumber>VK </MessageReferenceNumber> <InvoiceHeader> <MessageType>INV</MessageType> <MessageNumber>VK </MessageNumber> <MessageFunction>ORI</MessageFunction> <InvoiceCurrency>EUR</InvoiceCurrency> <Dates> <InvoiceDate> </InvoiceDate> <AccountingValueDate> </AccountingValueDate> <DeliveryDate> </DeliveryDate> <OrderDate> </OrderDate> </Dates> </InvoiceHeader> <InvoiceDetail> <InvoiceItem> <ItemType>GDS</ItemType> <LineItemNumber>1</LineItemNumber> <EANArticleNumber> </EANArticleNumber> 124

130 </InvoiceItem> </InvoiceDetail> </Invoice> </Document> The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 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. If you want to create and XML message definition, we advise you to provide an 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 Following is a sample Excel file having headers at the first row of the Excel sheet. Figure Excel Sample file 125

131 The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 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 removes 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 first sheet of workbook is considered. ExcelTemplate (Only available for Excel Out) The template is used by the ExcelWriter in order to define the proper layout and formats of the generated Excel. Headers Select if first row contains field headers. Encoding Charset to use to encode/decode the file. Sample An example of Excel file handled by this message definition. File sample Babelway excel wizard only support the excel files with extention ".XLS" So if the excel file you are intended to use has an extension ".XLSX", you will have to change the excel extention to ".XLS" before uploading it in the excel wizard. Here is the procedure. *Excel file extention changement procedures, 1-Open you excel file with extension ".XLSX" and the press "save as". 126

132 Figure Press save as 2-Open "Save As type" drop down menu and choose the extension XLS and press save. Figure Save file with a new extension 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 following screen will be displayed. Wizard screen When you create a new message format, you must first configure it using the following wizard. 127

133 Figure PDF Wizard screen An PDF messsage can only be set up using a template file in XHTML format. Select your template file using the Browse... button next to the XHTML file, then click on the Upload command. File sample Following 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"/> { size: A4; margin: 3cm 1.5cm 2cm 1.5cm; border: none; padding: 1em; ""; "Page " counter(page) " on " 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"> </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 128

134 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 xht <br/> <br/> For specific print css options, see for all css o <br/> <br/> <h2>barcode Integration</h2> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="ean13"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="ean8"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="upca"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="upce"> </bar <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="codabar">a <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="code39"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="code39_extended">12 <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="code128"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="code128_ucc"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="code128_raw"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="ean8"> <br/> <barcode style="display: inline-block; width: 300px; height: 200px;" type="postnet"> <br/> <div id="footer"> Footer line#1<br/>footer line#2 </div> </body> </html> Edit screen 129

135 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". Figure PDF Edit screen The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 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. 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 preserve if you upload a other 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 a other 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. Additionaly, 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. 130

136 See Message Definition to change show/hide parameter and edit the element label. PDF/x conformance specify weither or not you want to comply with PDF/A format. This is mainly used for long term archiving. Embedded content and font can simply be added as file properties of the message. Barcode integration Creation of barcode respecting the following standards: EAN13, EAN8, UPCA, UPCE, SUPP2, SUPP5, POSTNET, PLANET, CODE128, CODE128_UCC, CODE128_RAW, CODABAR, CODE39, CODE39_EXTENDED See xhtml example above for reference. 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 mr file? The mr file is a multirecord definition file which is used by the Self-Service MultiRecord wizard to generate the corresponding message definition and also to build the corresponding servingxml resource file. How to build mr file? (1) Specify if the message is a delimited or a fixed-length. For fixed-length messages, the mr file header will look like this: <multirecord name="mymultirecord" type="fixed-length" linedelimited="true" recorddelimiter="\r\n" quot For the delimited messages the mr file header will look like this: <multirecord name="mymultirecord" type="delimited" fielddelimiter="," recorddelimiter="\r\n" quotesymb * 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. * linedelimited specify if the system use a record delimiter. If set to false, record will be based on the sum of the fields lenght for fixed length or the number of fields for delimited multirecords. * trim specify if the white spaces in the begining and the end of the fields should be removed. * fielddelimiter, only used whith a delimited message, defines the field delimiter. * quotesymbol-character is the character used to quote a field (often ") * quotesymbol-escapesequence is the sequence that will display the quote symbol character in a quoted field (often \") Hint: 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 win- 131

137 dows compliant file and let you change the delimiter from the advanced properties later on. (2) The second step is to write the message records definitions You should specify the name for the record and for each of its field. Each record should have at least one field with a static value which will be 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 that the field has a static value that will never change By default all first fields with a static value are used to identify a record. But, you can also manually defines which fields must be used to identify a record using the identifier paramter. <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, will be used to identify the record. The default (without identifier=true) would only use 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 a fixed-length message have variable length identifier per records, 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 records that have longer identifier, add as many as smaller field needed to unambiguously identify each record. For example if we have a message where AAAAA, 111 and 2222 are identifier like in the following: AAAAA contentcontent anothercontent this and that The following definition is not valid since the fielda is bigger than field1 and moreover, fielda also overlaps with field2 <record name="record1"> <field name="fielda" width="5" value="aaaaa" identifier="true"/> <field name="fieldb" width="15" /> <field name="fieldc" width="17" /> </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="20" /> </record> 132

138 It should be replaced by: <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="15" /> <field name="fieldc" width="17" /> </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="20" /> </record> We had to split the fielda in two in order to have one fielda with the length 3 (the same as field1) with another fielda with the remaining length 2. Then the field2 (length 4) was also bigger than the second fielda (length 2) so we also need to split it in two field2 of length 2. All corresponding identifier have now the same length (3 and 2) and there is no overlap between them. It is also possible to add 4 extra parameters label, description, justify & padcharacters to each field <field name="myfield" label="my Field" description="my field description" justify="right" padcharacter * label and description are used to display the message tree * justify can be center, left or right * padcharacter is the character used to fill empty space in the field width (3) The last step is to 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 parameter with either a 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 at the message. 133

139 Sample multirecord fixed-length message HH00123 AB HH00045 CDE R1one 100 R1two 101 R1four 103 FF3 Sample multirecord definition file <?xml version="1.0" encoding="utf-8"?> <multirecord name="mymultirecord" type="fixed-length" recorddelimiter="\r\n" quotesymbol-character="&q <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> The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Output Charset Output charset to use to encode the file. Input Charset Input charset to use 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 134

140 An example of Multirecord file handled by this message definition. Flat File Message Format File sample Following is a sample Flat file. EE DD DD The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 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. ServingXml The ServingXml code file. Sample An example of FLATFILE handled by this message definition. TRADACOM Message Format Tradacoms 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 135

141 File sample Following is a sample TRADACOM invoice file. STX=ANAA:1+501xxxxxxxxxx:name+501xxxxxxxxxx:NAME SERVICES (U.K.)LTD : INVTES' MHD=1+INVFIL:9' TYP=0700+INVOICES' SDT=501xxxxxxxxxx:053752CF01STDD+Tenprl Fnsrjnl Sbbqfreivpr+221 UvyyunyyRoad:Yvfohea:Co. Antrim:N.Irel CDT=501xxxxxxxxx+NAMESERVICES (U.K.) LTD.+Cnexynaqf Pbheg:OvezvatunzTerng Cnex:Ehorel:Birmingham:OG45 FIL= ' FDT= ' MTR=7' MHD=2+INVOIC:9' CLO= : ++PNEEVPX GOLF CLUB:ABEGU ROAD:PNEEVPX SRETHF::OG388YC' IRF= M ' ODD=1+:: :040302' ILD=1+1+:8408++: :2500:KG Z+0+++SILVERSIDE 1-5 KG' STL=1+Z ' TLR= ' MTR=8' MHD=3+VATTLR:9' VRS=1+Z ' MTR=3' MHD=4+INVTLR:9' TOT= ' MTR=3' MHD=5+RSGRSG:2' RSG= xxxxxxxxxx' MTR=3' END=5' The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Output Charset Charset to use to encode/decode the file. Input Charset Charset to use to encode/decode the file. Sample An example of TRADACOM file handled by this message definition. 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. The JSON format is often used for serializing and transmitting structured data for web applications. The following properties are available : 136

142 Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Sample A 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 following screen will be displayed. File sample Following is a sample JSON file. { "id": "0001", "type": "donut", "name": "Cake", "ppu": 0.55, "batters": { "batter": [ { { { { "id": "id": "id": "id": "1001", "1002", "1003", "1004", "type": "type": "type": "type": "Regular" }, "Chocolate" }, "Blueberry" }, "Devil's Food" } ] }, "topping": [ { { { { { { { "id": "id": "id": "id": "id": "id": "id": "5001", "5002", "5005", "5007", "5006", "5003", "5004", "type": "type": "type": "type": "type": "type": "type": "None" }, "Glazed" }, "Sugar" }, "Powdered Sugar" }, "Chocolate with Sprinkles" }, "Chocolate" }, "Maple" } ] } 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 : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. 137

143 CSV delimiter character When generating csvs, the character that is used to separate the fields. Quote character When generating csvs, the character that is used to quote the specials character. Headers Tells if the csv files must begin with a line that contains headers of the columns. So that they can be used 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 will be used when asking for csv output format. If the tree has at least 2 levels (besides the root node), the first level tags will be mapped into lines of the csv, and the second level into columns. If the tree has only one level, fields will be mapped to columns. If you use a csv with headers, headers will be automatically calculated based on the element names of the first row. You can find here 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 formats. 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 Following is a sample SAP IDOC file. BEGIN_RECORD_SECTION BEGIN_CONTROL_RECORD BEGIN_FIELDS NAME TABNAM 138

144 TEXT TYPE LENGTH FIELD_POS CHARACTER_FIRST CHARACTER_LAST Name of external structure CHARACTER NAME TEXT TYPE LENGTH FIELD_POS CHARACTER_FIRST CHARACTER_LAST MANDT Client CHARACTER NAME TEXT TYPE LENGTH FIELD_POS CHARACTER_FIRST CHARACTER_LAST DOCNUM IDoc number CHARACTER NAME DOCREL... The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Idoc parser The Idoc parser. Output Charset Charset to use to encode the file. Input Charset Charset to use to decode the file. Sample An example of SAP IDOC file handled by this message definition. Not Defined Message Format Not Defined message format is used when in and out message format does not need to be defined because no processing will be performed on it and no change is required. (for format not natively supported by Babelway): advanced users have the option to upload programmatic code that provides support to proprietary messages formats, such as specific binary ERP format (for example idoc of SAP...) If message in format is "Not defined", so should be out message otherwise output may return unexpected results or 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 different one. 139

145 Message definition Dummy message definition. Output Character Set Charset to use to encode the file. Leave empty to keep the file as is. Input Character Set Charset to use to decode the file. Leave empty to keep the file as is. 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 : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Output Charset Charset to use to encode the file. Input Charset Charset to use to decode the file. ConverterClass The ConverterClass that is used to parse the file. Sample An example of the file handled by this message definition. 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 Following is a sample UBL file. <?xml version="1.0" encoding="utf-8"?> <Catalogue xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:commonaggregatecomponents-2" xmlns: <cbc:ublversionid>2.1</cbc:ublversionid> <cbc:customizationid>urn:www.cenbii.eu:transaction:biicoretrdm019:ver2.0:extended:urn:www.pepp <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> </cbc:issuedate> <cbc:versionid>1</cbc:versionid> <cac:validityperiod> <cbc:startdate> </cbc:startdate> <cbc:enddate> </cbc:enddate> </cac:validityperiod> <cac:referencedcontract> <cbc:id>3299-8ra</cbc:id> <cbc:contracttype>framework</cbc:contracttype> </cac:referencedcontract> 140

146 <cac:providerparty> <cac:partyidentification> <cbc:id schemeid="gln"> </cbc:id> </cac:partyidentification> <cac:partyname> <cbc:name>office AS</cbc:Name> </cac:partyname> </cac:providerparty> <cac:receiverparty> <cbc:endpointid schemeid="no:orgnr"> </cbc:endpointid> <cac:partyidentification> <cbc:id schemeid="no:orgnr"> </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:d... The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. Sample An example of valid UBL file 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 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 in scope. 141

147 The following properties are available : Message definition A file that contains the structure of the fields in the message definition. We recommend that you edit this structure via the graphical editor (tree) of the interface. RosettaNet process type The message definition will represent a PIP action or a RNIF signal. Please select it in the list Transformations This sections covers all the stuff that is related to the transformations. Transformations are used to convert a message in into a message out. It contains all the rules on which fields must be mapped on which ones, including optional calculations, conversions, formatting,... The Babelway application supports 3 ways of defining a transformation. Most of transformations can be defined using Drag and Drop Transformation editor. Alternatively, you can write your transformation directly in standard Xslt format using Xslt Transformation editor. Additionally, in some specific case when no transformation is required, you can select a No Transformation template 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 menu, then the sub-menu Transformations 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 in used as input of the transformation. Message out The message in produced as output of the transformation. Created on The date and time when the channel was created. 142

148 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 gateways 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 : Visual mapping Xslt mapping No transformation Figure Gateway creation - Reuse confirmation Transformation detail General The general tab contains the signaletic 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 143

149 A free text field that you can set and/or modify used in addition to element name to help you identify your element usage and/or function. Id A unique identifier automatically set by Babelway platform. Created On Date and time of element creation. Last Updated On Date and time of last element configuration update. Mapping / xslt Following of the type of the 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 for defining transformation with the visual editor. See Xslt Transformation for defining 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 tabs shows you all the history of changes on this gateway, and allows you to revert to a past version. For more details, see the change log section 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 in the following zones: The top bar will allow you to edit all of your formulas, when a mapping rule is selected. In other circumstances, it will just guide you with contextual help. 144

150 The left pane displays the structure of your source message. The right pane displays the structure of your target message. At the bottom of the component, you have links for global actions (save the mapping, or run a test case). Figure 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 Viewing and selecting mapping rules. An icon (chain mark) shows you 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 will be 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 section about how to edit formulas. 145

151 Figure Visual editor when a mapping is selected. The lines will let you see immediately all the involved nodes, even when they are combined in a formula. Figure Visual editor when a mapping is selected (multiple inputs). Click on field mapped more than once. If you click on a field that is used in more than one mapping rule, the system will show you all the mappings rules, and ask you to choose the one you want to edit. 146

152 Figure Mapping choice. By putting your mouse on one of the mapping lines, you see all details of the given mapping. To select it and be able to edit it, just click on the line. Figure Mapping choice (highlighted). Click on not mapped field. If you click on a field that is not used in the mapping, you will just be notified of it, and will have the possibility to initiate a new mapping rule for this field. Figure Selection of not mapped field. 147

153 Iterate through mappings.. It is also possible to iterate through all mappings thank to the arrows at the top right of the target tree zone. Figure Mapping iteration. Starting from the currently selected node in the target tree (or top of the tree is no node is selected), the right arrow will find the next mapped node, and select it. In the same way, left arrow will find and select the previous mapped node 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, that say that the target field must be filled with the value that was in the source field. You can then update the formula : see section about how to edit formulas. When you are dragging your source field, all compatible target fields are highlighted. Figure New mapping (drag-and-drop) Formula bar The other method is to select your target field, then start typing your formula in the formula bar (see section about how to edit formulas ). When you need source fields in your formula, you can just drag-and-drop then in 148

154 the formula bar. Figure New mapping (via formula bar) Edit formula Formula bar By default, when you just make your mappings by drag-and-dropping your source fields to the corresponding target fields, the values are associated without any transformation. You can use the formula bar (at top of the component) to pick formulas, that will transform the input values, or combine multiple values together. Figure 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. The only differences to pure xpath formula are : You can refer to source fields by just drag-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 The Easy Function Editor can help you writing your formulas. It opens in two situations : 149

155 When you write a function call in the formula bar. The Easy function Editor will open automatically, and show you help about the function you are using. If you open it by clicking on the "Easy Function Editor" link, at the right of the formula bar. In any case, the help will depend on the cursor position, and show you help about the function that is called 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 the changes that you make in the editor panel will be automatically (and immediately) reflected in the formula bar, and vice-versa. When you are entering the name of a function, the formula editor will just show you all the functions in the library that match the prefix you just typed. You can select the proposal by just clicking on it. 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 : to select the currently highlighted proposal. Down arrow : to select the next proposal. Up arrow : to select the previous proposal. Escape : hide the function editor. Figure Formula bar - choosing your function. When you are filling the parameters of a function, the formula editor will show you all the documentation about the function (description, examples,...), and allow you to pick easily the parameters. Figure Formula bar - filling parameters. Whenever possible, you will receive in the function editor additional help to be able to fill easily the function 150

156 parameters. In the following example, using a lookup table, the editor will allow you to select your lookup table and its columns in dropdown, whose content depend of your environment. Figure Formula bar - filling parameters. The inline help describes many functions, and will help you for picking parameters for all of them. These functions should cover most of your needs. If you should not find what you search, or if the help of a function is not clear, do not hesitate to ask to our support 151

157 Figure Formula bar - functions list. Colorisation of the formulas To ease the reading and the detection of errors in the formulas, formulas are colorized. Figure Colorisation 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 is syntaxically correct (a valid xpath expression), you can click the validate icon at the end the formula bar. 152

158 Figure Validate formula. If the formula is correct, the icon will become green. Figure Validate formula - OK. If not, it will become red, and a summary of the error will be made available if you put your mouse on the icon. Figure Validate formula - KO. The validation is also accessible by just pressing the Enter key. Deleting a formula If you want to delete a formula, so that the target node is not mapped anymore, you can : Empty the formula. Click on the X icon at the end of the formula bar. Figure Reset formula 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 inputs (the parameters), and computes an output value (the result). Functions can be written for any calculation you can think to. They will be identified by their name, and you have to know which parameters they expect to be able to call them. A function can be called in a formula by just typing the function name, an opening parenthese, the parameters (separated by commas), and a closing parenthese. You can find some examples below : 153

159 max(3,5) -> 5 min(3,5) -> 3 lower-case('babelway') -> 'babelway' concat('first ', 'example') -> 'First example' string-length('babelway') -> 8 changedatetimeformat(' ', 'yyyy-mm-dd', 'yyyymmdd') -> ' ' Function elements The Babelway inline help will give you immediate access to all elements that describe the function. Figure 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 could find on the Internet about this Internet function is valid. Babelway : This function is a Babelway-specific extension to xsl. You have to read Babelway inline help to know about this function, or call our support if you need more info. User : This function have 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). 154

160 5. The parameters section shows all information about the parameters of the function. a. The name of the parameter. It is just one word that should make you understand the parameter. b. The picker for the value for this parameter. You can type there your value. c. 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. d. Type of the parameters (see following section for more information about types), and indication if this parameter is mandatory (the default) or not. e. More info to help you understand this parameter, and how you have to fill it. 6. The examples shows you some function calls to the function, with the result. It should finish making clear 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 a xpath expression, to 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 dragand-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 a Integer constant into a 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 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/ :25:17.645'. As for Dates, you can not write directly DateTime constants in a 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 modelize the format of a DateTime. Besides of being a String, it must comply to the same requirements as DateFormat, that are fully described in 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 155

161 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. 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. Node. A single xml elements. This type will be used to modelize single xml node from your source document or from an additional xml source. To fill it, you should drag-and-drop a simple node to the field or to use a xpath expression referring to a single Node. NodeList. A list of xml elements. This type will be used to modelize list of nodes in your source document. To fill it, you should drag-and-drop a loop node to the field. Object. Object is a special value meaning that anything is accepted. You can use there Strings, Integers, Dates,... To illustrate the importance of types, just let 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(' ', 'yyyy-mm-dd', 'yyyymmdd') formatdatetime will take the input date by just taking one DateTime parameter. formatdatetime(currentdatetime(), 'yyyymmdd') formatdatetime(parsedatetime(' ', 'yyyy-mm-dd'), 'yyyymmdd') If you just want to change the format of a date contained in one of your source fields, changedatetimeformat looks 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 following calls would just be WRONG : formatdatetime(' ', 'yyyymmdd') // formatdatetime expects a DateTime as first parameter, n changedatetimeformat(currentdate(), 'yyyy-mm-dd', 'yyyymmdd') // changedatetimeformat expects a St 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. 156

162 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 specialisation of 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')=' 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. Figure 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. 157

163 Figure Defining user function (2) All the concepts are the same as the one displayed for the already existing functions. See section about standard functions for 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 descriptions are 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 infos about the parameters of the function. a. 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. b. Type of the parameter. c. Description of the parameter. 4. The result sections 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. 158

164 Figure Defining user function (2) Sub-formulas Sub-formulas are parts of formulas, that you can name and reuse later. Sub-formulas are another way of simplify 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 part of long formulas across different formulas. If you need to change this part, you will only have to change it once, and all using formulas 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]== [DeliveryTime] = formatdatetime(adddays(parsedatetime([yourdate], 'yyyymmddhhmm'), if ([producttype]== By using a sub-formula, you could factorize the common part, and just let the outer formulas deal with selection of date or time in complex formula. [DeliveryDate] = formatdatetime([deliverydatetime], 'dd/mm/yyyy') [DeliveryTime] = formatdatetime([deliverydatetime]), 'hh:mm:ss') [DeliveryDateTime] = adddays(parsedatetime([yourdate], 'yyyymmddhhmm'), if ([producttype]==1 [produ 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 [producttype]==2) then 3 else 2 Execution 159

165 The result of the execution of the formulas will always be exactly the same if you factorize some parts in subformulas or not. Using sub-formulas is a way of writing your formula easier, but is always completely equivalent to the fully expanded formula. To illustrate, let's take the following complete formula, whose result will be '0 1' concat(next-counter-value('invoice'), ' ', next-counter-value('invoice')) If you decide to write it using a sub-formula, the result will still be exactly the same : '0 1', because nextcounter-value will still be evaluated twice, exactly like in the previous formula. concat([mysubformula], ' ', [mysubformula]) [mysubformula] = next-counter-value('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. Figure Create sub-formula (1) Figure Create sub-formula (2) Define a sub-formula Sub-formulas can be defined the same way as any other output field. See sections about how to map nodes, or how to edit formulas for more details. 160

166 Figure 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". Figure Use a sub-formula In your formulas, sub-formulas references can be easily recognized : they are drawn like references to input fields, but with a purple text. Figure 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". 161

167 Figure 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. Figure Delete sub-formula Working with formulas - frequent scenarios This section explains in details some frequent scenarios, when you work with formula. 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 String, not Numbers. To be able to make calculations, xpath (like any programming language) needs Numbers. If your values are String, they have to be converted first to Numbers, even is this conversion can be implicit in some cases. Babelway recommends that you always convert explicitly your input fields with the tonumber function. As an example, the following call will perfectly work for all values. tonumber([yourinputfield])/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 162

168 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' If you do not follow there recommendations, here are some problems you could encounter : Using xpath implicit conversions or conversions via the xpath number() function could lead to numeric problems. number('30507')*0.1 -> ' ' Display in scientific notation. number(' ')*100 -> ' E11' 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. Also, bif:cast has just no effect when its argument was 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]) Some examples : changedatetimeformat('01/01/2015', 'dd/mm/yyyy', 'yyyymmdd') -> ' ' changedatetimeformat('01/01/ :34:56', 'dd/mm/yyyy hh:mm:ss', 'yyyymmddhhmmss') -> ' changedatetimeformat('01/01/ :34:56', 'dd/mm/yyyy hh:mm:ss', 'dd-mm-yyyy') -> ' ' 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 tp://docs.oracle.com/javase/6/docs/api/java/text/simpledateformat.html can be found on ht- 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') -> ' ' changedatetimeformat(' ', 'dd/mm/yyyy,yyyymmdd', 'yyyymmdd') -> ' ' 163

169 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 details in the sections about user functions. convertdate('01/01/2015') -> ' ' 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 that allows to make some calculations (ex: adddays ) formatdatetime(adddays(parsedatetime(' ', 'yyyy-mm-dd'), 4), 'yyyy-mm-dd') -> ' ' 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 164

170 Babelway offers specialized transformation functions to call external web services. This is be useful to complement the message data and lookup tables with external source of information. You can reach HTTP ressources using one of the following 3 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 Figure Calling HTTP ressource Please note that Xpath expression selecting node in the resulting tree needs handle namespaces by adding a *: in front of the xml nome 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 versatiles, they can hold up to 10 columns. Stored data can be simple but they 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. 165

171 Figure Xml in lookup table You can use a 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> </Population><Area>30507</Area><N Figure Import Xml in lookup table Once the Xml or the Json is retrieved from the lookup table, it can 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 Figure Use Xml from lookup table Please note that Xpath expression selecting node in the resulting tree needs handle namespaces by adding a *: in front of the xml nome 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 Mapping loops 166

172 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 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. 167

173 Figure Loop to loop mapping with filter and sort. 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. You can find here 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. 168

174 Figure Loop to node mapping with sort. 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''') 169

175 Figure 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. Figure Writing same filterloop using the EasyFunctionEditor Multi nodes mapping Visual mapping is able to map two message definition tree structures, when they have the same fields. This is a 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. 170

176 Figure Structure mapping - drag-and-drop Confirm the operation. Figure Structure mapping - confirmation As you can see, all the corresponding nodes have been mapped. Figure 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 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. 171

177 Figure 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 defined, you can just map value to it exactly as for other fields. Figure 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 a XML as a Base64 string. 172

178 Figure Object metadata as base 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 want to write directly advanced xslt transformation, you have to use a 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. 173

179 Metadata only for outgoing message : only the metadata of the outgoing message will be updated. The content of the outgoing message wil be the same is 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 Xslt Transformation Xslt transformation test editor enables to define transformation rules and implement transformation functions directly in Xslt language. When specifying transformation for the first time or when changing transformation type, click on Open catalogue command and choose an Xslt transformation from catalogue. Please refer to The Catalogue chapter for more informations about catalogue use and commands. If you 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 hereunder. Figure Xslt transformation editor Once all your mapping and transformations are ready and additional filter, if and/or format entered, do not forget to save this transformation with Save button. The following (advanced) properties exist for xslt transforms. Xslt the xslt of the transform. 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. 174

180 Metadata only for outgoing message : only the metadata of the outgoing message will be updated. The content of the outgoing message wil be the same is 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 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 one gateway to another one, for example from a mail server to an FTP serve, you should use the "No transformation" transformation. When specifying this transformation for the first time or when changing transformation type, click on Open catalogue command and choose an No transformation transformation from catalogue. Please refer to Catalogue chapter for more informations about catalogue use and commands. Note If message in and out formats are not the same, using this no transformation setting may return unexpected results or empty out message. Usually, this setting is used in combination with in and out Not Defined Message Formats in a channel that simply transfers an unchanged and unprocessed message from one gateway to another different one Notifications This section contains all the stuff needed 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. Notifications allows you to be informed by when a message is processed by the Babelway platform. A special notification, named Alert notification also allows you to be informed by when an alert is generated by the Babelway platform. This notification can not be deleted. You can configure notifications in details : 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 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. 175

181 This screen is accessible by clicking on the menu, then the sub-menu Notifications Figure Notifications list screen The list can contain the following columns: Name A name that identifies the notification. Description A free description for the notification. Success Recipients A comma-separated list of s to which a notification will be sent every time a message is successfully processed. Failure Recipients A comma-separated list of s to which a notification will be sent every time the processing of a message fails. Id A technical identifier for the notification. 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 notification, or edit it. See notification details. The Create notification action button allows you to create a new notification. The Clean notifications action button allows you to very easily delete all the notifications that are not used. The interface will just show you the list of all notifications that are deletable (this mean not used in any channel). You'll just have to tick the ones that you want to be deleted, and confirm the operation Notification detail This page shows all the details about a notification, and gives access to all operations that can be made on notifications. 176

182 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 element name to help you identify your element usage and/or function. Id A unique identifier automatically set by 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 save the changes that you have made in this tab (name and description). The Delete action button allows you to delete the notification, but is only accessible if the notification is not used in any channel. Figure Notification detail - tab General Recipients 177

183 This tab allows you to configure to who the notifications s will be sent. Target users This table allows you to choose who will receive the notification, amongst all the users that can access the environment. Additional s This table allows you to add other addresses, to which notifications will also be sent. For 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 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 removes accesses to your environment to this user. To add an to this list, just add the in the input field in the last line of the table, and save. s 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 the notification, amonst all the internal gateway in defined in the environment. Note that selecting a inactive gateway (not deployed in production) will prevent the environment to deploy. Figure Notification detail - tab Recipients This tab allows you to configure the notification s. Sender The address 'from' of all the notifications s. Success subject The subject of notifications s, when a message is successfully processed. Success body The body of notifications s, when a message is successfully processed. Failure subject 178

184 The subject of notifications s, when the processing of a message fails. Failure body The body of notifications s, when the processing of a message fails. These subject and body fields are free text fields that you can fill 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... Figure Notification detail - tab 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. 179

185 Figure Notification detail - tab Related items 4.6. Partners The Partners are the entities that communicate via Babelway. For example, when Babelway is used to tranfer 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, of 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 searchs, 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 Partners is really the entity involved in the communication (typically a company), while Gateways represent a technical way of reaching this partner (eg "send an to address or "Place files on ftp server of mypartner.com"). You can have multiple gateways to connect to the same partner (ex: invoices must be sent by , while orders must be sent via ftp). A simple gateway can also be used to communicate with multiple partners. As example, i could setup gateway IN that all of 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 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 first screen with the list of all your partners. 180

186 Figure 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 informations. As for all other objects, you can also use the Reuse and save time zone, at the right of the screen, to import easily partners already defined in the Babelway catalogue. See section Reuse and save time section for more details. Figure 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 to which partner you have assigned this TVA number. For this reason, you also can not have two different partners with the same identifier. See section Assigning partners to messages for more details. It is up to you organize your partners as you want. The best way it make them really like you think, encoding how your relationship with your clients happens. Some people may for example want to have two different 181

187 partners for "Carrefour Belgium" and for "Carrefour France", while another is not interested by the distinction and just wants a single partner "Carrefour". A third one could be interested by different partners for every supermarket ("Carrefour Wavre", "Carrefour Bruxelles",...). You can choose the solution that best fits the way you think. 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. These custom fields wil be available in the edition of the partners, or in the list, as for the standrad fields. Figure Edition of partner with user fields. 182

188 Figure List of partners with user fields Assigning partners to messages Assigning partners to the messages automatically is interesting, because it will allow to view directly partners involved in a message, make search on it ("give me all messages exahcnaged with partner X"), make stats by partners,... See 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. Figure 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 use case, when a specific gateway is only used to communicate with ONE partner. To make this in the interface, you have to go to the GatewayDetail 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. 183

189 Figure 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 Gateway IN to receive orders from all of your clients, you can not associate this gateway to just one partner. In this case, the only way to known 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 definition of the structure of the MessageDefinition, select the fields that contains the ids of the partners (VAT, GLN,...), and set this info in the "Semantic field" zone. 184

190 Figure 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 to flag other fields to tell the system what they contains, like the name, or the address of the partners IN and OUT. These infos are not needed to identify partners (ids are enough), but it can be interesting to fill them, as they can then be used to create your partners automatically from the data contained in your messages. See section Create your partners from messages for more details. 185

191 Figure 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 There are four steps of the processing of the message where partners can be identified : gatewayin step (for partner IN), messagedefinitionin step (IN and OUT), messagedefinitionout step (IN and OUT) and gatewayout step (OUT). If you fill the partner infos 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 also not cause any problem, as the extracted info should be the same as each step. For example, there is no reason (apart wrong configuration), when ids of the sender would be different in the source format of the message than in 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. Figure Message processing log - partner identification conflict Creating your partners from messages It is also possible to analyse a set of messages to extract/create automatically your partners. 186

192 The procedure is the following Verify that you have to you have told the system which fields of your messages contains the partner informations. Select the messages that you want to analyze, and click on Extract partners from these messages Figure Extract partners from messages - messages selection Confirm Figure Extract partners from messages - confirmation The system will extract all possible partners, and show you found informations. Select the partners you want to create, and click on Create selected partners Figure Extract partners from messages - select partners to create 187

193 Figure Extract partners from messages - Confirmation of creation Using partnerss Partners infos can be used in many places of the application View or search in your messages In the grid of your messages, you can directly view the identified partners. You can also search or sort on these fields. Figure Partners IN and OUT in list of messages The infos are also available in the screen with the detail of a message. 188

194 Figure Partners IN and OUT in MessageDetail screen Statistics 189

195 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 allows you to navigate very quickly through the application Figure Related items of partner In the processing of messages Coming soon. The partners infos are accessible via metadata. You can access and use them. It is very useful to use in routing, to select your channels based on the sender or the receiver Be compliant to GS1. Babelway offers all the tools needed to be compliant with GS1. If you need this, contact our support to activate the option in your environment. You will have access to a new partner tab GS1, with all the infos required by GS1. You will also have access to the generation of all reports asked by GS1. 190

196 Figure Partners - GS1 tab 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 different items codes than your own items 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 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. 191

197 This screen is accessible by clicking on the menu, then the sub-menu Lookup tables Figure 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 structure of the lookup table. 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 Create a lookup table This page allows you to create a new lookup table. Just click on Create lookup table action button at the bottom of the lookup tables list screen. The creation screen just asks 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. 192

198 Figure Creation of lookup table The lookup table structure can be updated later from Structure tab in the lookup table detail screen. The Duplicate an existing lookup table action button available at upper section of creation screen can be used to duplicate an existing lookup table from the current environment or from another environment you have access to. Figure Creation of lookup table 193

199 Lookup table detail This page shows 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. Figure Lookup table detail - tab General Id A unique identifier automatically set by 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. 194

200 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 normal situation (when all servers are available and able to communicate), all entries are guarantee 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 a very little chance of inaccuracy. When the re-connections 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 exactness 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 save the changes that you have 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 lookup table, with an option let you choose wheather to duplicate only table structure or table structure and table content. Figure Lookup table detail - duplicate table Structure This tab allows you to edit the columns of the lookup table. 195

201 Figure Lookup table detail - tab Structur Content This tab allows you to view and edit content of the lookup table. Figure 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. 196

202 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 CSV file without the need to create a channel to do that. 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 outside data source in automatic way. The Export data action button allows you to export existing lookup table data in CSV format. 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. Figure Lookup table detail - tab Related items 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 details in the help section about drag-and-drop transformations Automatic Population of Lookup table from CSV Automatic Population of Lookup table allow you to import the lookup table data directly from CSV file without the need to create a channel to do that. After creation of a lookup table you can import data from CSV file by click on Import data from CSV action button under Content tab as illustrated below: 197

203 Figure Import action button under Content tab This will automatically direct you to the the following page. Figure 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 Automatic Population of Lookup table using Channel Automatic Population of Lookup table allow you to import the lookup table data from outside data source. After creation of lookup table you can create data import channel by click on Create a channel to import data in the table as illustrated below: 198

204 Figure 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 meets your requirements. Figure Lookup Tables Data Import Channel 199

205 In this example we have two fields (countername and value) And this the uploaded CSV file 1,1001 2,1002 3,1003 4, Routing Routing is used to choose which channel must process a message, when different channels share the same gateway in. Routing is done at first step that is different for the channels. So if 2 channels use the same gateway in but different messages in, routing will take place at message in step, and define rules to choose which message in must be chosen. If both channels use the same gateway in and the same message in but different transformations, routing will take place at transformation step, and choose 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: Figure that need routing The 3 channels share the same gateway in. A routing will be required. As the 3 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 first routing is required to choose between these 2 transformations. If second transformation is chosen ("Countries xml to csv-1""), a second routing wil be required when coming to gateway out step, because there are again two candidates ("Smtp out" and "Smtp out-1"). This example will be used for all screenshots of this chapter Routings list 200

206 The List of routings shows all the routings existing in your environment, one by line. This screen is accessible by clicking on the menu, then the sub-menu Routing Figure List of routings The first five columns illustrate, in order, the five main steps of the processing of the messages : Gateway in, Message in, Transformation, Message out and Gateway out. 3 cases are possible : 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 details about the involved elements and the 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 the its rules. You can't directly create new routings. The routings will be automatically created when needed Routings detail The detail of the routing allows you to edit all the rules to choose the next element to process. Figure Routing detail 201

207 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 evaluated rules that have the lower 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 noticed 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 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 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 Regular Expression in External References chapter in 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. The channels that area 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 decide between them. As example, the rules illustrated in the figure before can be read : If the subject of the is "Tutorial1", then choose the transformation "Countries xml to csv" (used in Channel "Tutorial 1") as next step. If the subject of the is "Tutorial2", then choose the transformation "Countries xml to csv-1" (leading to Channel "Tutorial 2a" or "Tutorial 2b") as next step Edition of 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. 202

208 Figure 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 applies to the current channel will be emphasized. They have a blue background Test cases Testing enables easy channel operation test and validation before channel deployment. A minimum of testing is mandatory in order to validate a channel. After a channel configuration, its operation should be tested. This is done by creating and running test cases, that is feeding the channel with test input files and checking corresponding output results after processing. During a test case running, message in, transformation and message out processes are executed and tested in real conditions. Only both in and out gateway cannot be validated that way as they require external operations not managed by Babelway interface. 203

209 Figure Testing tab list of existing test cases At opening, testing tab displays a list of test cases defined for the selected channel. An existing test cases can be edited by clicking on its name in first column. A new test case can be created by clicking on Create Test Case command. Both these operations open the Edit Test Case screen described hereunder. In the same table, clicking on Run command in middle column will manually run selected test case and display test results in Message Record screen described hereunder. The boxes that are checked in the third column select test cases will be deleted by clicking on Delete Selected command. Edit Test Case When you create a new test case or edit an existing one, following screen will be displayed: Figure Edit test case screen 204

210 Following parameters can be set according to your setup: Id A unique identifier automatically set by 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 Warning Ajouter la description des properties??? Message Record As a result of running a test, following message record screen is displayed. Click on More details command to see all information. 205

211 Figure Message record From here you have access to all 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 Test case detail Note Describe 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 element name to help you identify your element usage and/or function Certificates 206

212 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 share 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 You can Edit Keystore by clicking on "Keystore edit" on Certificates page You can download the certificates or revoke them as illustrated below Figure Manage Keystore Certificates Certificates This section lists all pair of key and certificates that are currently in you keystore. Those 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 using the Download link. Note that the downloaded file will never include your private key and only contain your public certificate. You can add new pair of key/certificate 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. 207

213 You can add a new trusted certificate either 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. To read more about Https gateway See HttpClientOut Gateway Trust new certificate Note Describe all the fields and actions of all tabs. Alias An alias that you can set to easily identify your certificate. Certificate Upload or give the location of the certificate you when to trust. Trust root certificate Indicate if you want to trust certificates issued by the provider of the selected certificate Add a certificate Note Describe all the fields and actions of all tabs. 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 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 every of the 5 main operations that are followed by messages within Babelway plaform (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. 208

214 Figure 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 wanted extra processing to add it. Don't forget to save. Figure Extra processings 209

215 If you use multiple extra processings on the same element, they will be executed in a predefined order, that you can not 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 relacement based on regular expression Extra processings on gateway IN Message identifier This extra processing analyses the incoming message, and associate 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 concatenation 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. 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. This information can then be used to route the message to the correct message definition. This extra processing doesn't take any parameter Extra processings on message definition IN Save input file Allows to save your input file as a metadata, for future use in the next steps. The parameters are : Metadata The metadata in which you want that the input file is saved. Duplicate incoming message Allows to duplicate the incoming message, and inject it into another channel. 210

216 The parameters are : Step When the incoming message must be duplicated in the process of the original message. Duplicating the message later allows that the message is not duplicated if the message fails some validation. Target gateways The gateways to which the mduplicate message will be sent. Zip unwrapping Allows to extract your input file from a zip. It also allows 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. But instead of directly receiving the xml order from your partner, you receive a zip file, that contains 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 attachment-file1.csv and attachment-file2.csv. Pdf unwrapping Allows to extract your input file from a pdf. It also allows 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. 211

217 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 to extract your input file from a S/MIME envelop. It also allows 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. The parameters are : PGP private Key Private key to be used to decrypt the message. Password Password to access the private key. Replacement based on regular-expressions. Allows 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-expression find & replace pattern. The parameters are : Replacements List of regular expressions and replacement patterns that will be applied on your document for every match. Message identifier 212

218 This extra processing analyses the incoming message, and associate 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 concatenation 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. 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. This information can then be used to route the message to the correct message definition. This extra processing doesn't take any parameter. Xslt transformer Applies a xslt to correct your message. It is applied on the internal xml representation of the message (after the message have been analysed and converted). Pay attention 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 Extra processings on message definition OUT Xslt transformer Applies a 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). Pay attention that the output of your transformation must be compatible with the internal representation of Babelway for this message format. The parameters are : 213

219 Xslt The transformation that must be applied. 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 be used in your output file. Pdf wrapping Allows 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 the container pdf. You have here 4 possibilities : You provide directly a pdf file. This pdf file will be used as is, and the extra processing will just add the asked 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 be have bee 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 just used to benefit from the pdf digitial signature functionnality. Pdf from metadata The name of the metadata containing the pdf. This metadata must be 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 every of them, you have to tell the name that the file will have in the pdf, and the name of the metadata that contains the content. Pdf resizer Allows to resize an output pdf. The parameters are : 214

220 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 to zone copied from the input pdf will be placed on the page in the output pdf. Position Y Specifies where to zone copied from the input pdf will be placed on the page in the output pdf. Scale X Specifies the zoom ration that must be applied when copying asked zones from the input to the output pdf. The default is 1. Scale Y Specifies the zoom ration that must be applied when copying asked zones from the input to the output pdf. The default is 1. Pdf Letterhead Allows to set letterhead on 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, tells which page of the letterhead must be used for every page of the output pdf file. The possible values are described hereunder. For every value, we also show as an example the result of the association for a 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 pdf are used together. If output pdf has more pages that 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 pdf 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 till the end of the output pdf. In our example, it would give the following result : 1:A, 2:B, 3:A, 4:B, 5:A. Pdf Appendix Allows to add extra pages to your output pdf file. 215

221 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 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 of them, you have to tell 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 to sign your output pdf file. The parameters are : Key alias Alias (in your keystore) of the key that will be used to sign the pdf. Reason Text that will be associated to the signature. Show signature? Allows to add an image in 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 signature. Signature lower left Y Position (lower left Y) where the signature image will be displayed. Only if you choose to show signature. Signature upper right X Position (upper right X) where the signature image will be displayed. Only if you choose to show signature. Signature upper right Y Position (upper right Y) where the signature image will be displayed. Only if you choose to show signature. Signature image Image used to show the signature. Only if you choose to show signature. Timestamp method Allows to timestamp your output pdf. Timestamp authority url 216

222 If you choose external as timestamp method, the url to be called for the timestamping. Timestamp authority login If you choose external as timestamp method, the optional login to use for the call. Timestamp authority password If you choose external as timestamp method, the optional password to use for the call. Zip wrapping Allows to wrap your output file from a zip. It also allows 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 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. PGP wrapping Allows to encrypt a file using PGP. The parameters are : PGP public Key Public key to be used to encrypt the message. S/MIME wrapping Allows 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 the certificate of your partner. It will be used to crypt the S/MIME message. If left empty, the message will not be crypted. 217

223 Replacement based on regular-expressions. Allows to make a global search and apply regular-expression replacements on your output file. You can define more than one pair of regular-expression 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 to create new messages, with content from current metadata. The parameters are : Target gateways The gateways to which the new messages message will be sent. Metadata and names Metadata containing content for messages to create. Metadata = Pattern to match metadata containing the contents for new messages. Filename = filename of the new messages. If one pattern matches multiple metadata, a nexw message will be generated for every of these metadara. You can use 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 2 new messages files file1.csv and file2.csv. Message Validation Allow 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 put the message in error without creating a ticket. Metadata name Name of the metadata containing the expected result. Regex to ignore List of regular expression to ignore. Date to ignore List of date format expression to ignore. Dates are expressed using the regular java format like : yyyymmddhhmmss. Message Unwrapper (Deprecated) 218

224 Allow to extract message from zip or pdf The parameters are : Unzip Extract the message from a zip container. Pdf attachment Extract the message from an attachment in a pdf container. Parse pdf Create an XML from extracted pdf Message Regular expression to extract the message Extra metadata Regular expression to extract an extra file and store it in a metadata. Extra metadata encoding encoding of the extra metadata Extra metadata name Metadata name to use. Default is same as the real name. Save Original as same the original message in a metadata with this name. Save extracted as same the unzip / unpdf message in a metadata with this name. Other attachments regular expression to save other attachments Metadata Metadata are data that are associated with the processing of the message, besides of the processed input and output files. For example, some metadata are the date and time when the message was received, the channel that processes the message, informations 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 drag-and-drop transformation details 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 219

225 See details in drag-and-drop transformation. Using metadata to customize messages and file names You can use system or user defined metadata in your output gateways and notification configuration. The metadata values can be used to name output files sent through output gateways. or as part of a notification subject and or body. The metadata used may even be different for success or failure messages as shown in following figures. System metatada are referenced using syntax {com_babelway_messaging_context_***}. A list of available system metadata with returned variables and examples is available in System Metadata appendix. Figure System metadata used to customize notification s 220

226 Figure 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 your user defined metadata you want to reference as illustrated in the following example where the earlier user defined metadata is used as a name for the file sent as attachment. 221

227 Figure 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 a Xpath custom expression such as: string-join (YOUR_XPATH, 'YOUR_SEPARATOR') Where YOUR_XPATH is the path to all the element you want to concat such as: and = or /csv/line/field1 222

228 Or drag a repeated element (such as the line hereover) 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 a 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, ex: ' here is the list of value: ' YOUR_SEPARATOR is the separator added between the different elements, ex: ' ' YOUR_SUFFIX is the suffix added at the end of the result ex: [i ' '[/i] Drop the value of the element to the expression (= $arg1 ) Map the expression to the metadata System Metadata System metadata is metadata that are defined in the system and have useful information relating to message being processed. See Metadata chapter for reference and examples of use. Table 4.1. List of System Metadata Code Name {com_babelway_ saging_context _message} mes- Message context {com_babelway_ saging_context _accountid} mes- Account ID Description Example The ID of the account which has the processing Hub. {com_babelway_ mes- Hub ID saging_context _hubid} The ID of the account en vironment which processed the message {com_babelway_ saging_context _channelid} mes- Channel ID The ID of the channel which is used in processing the message. {com_babelway_ mes- Receive Day The day in which the

229 Code Name saging_context _receiveday} {com_babelway_ saging_context _receivetime} Description Example message was delivered by the system. mes- Receive Time The time in which the message was delivered by the system. {com_babelway_ mes- Receive Time extended saging_context _receivetime_extended} The extended time. receive {com_babelway_ mes- Message reference saging_context _message_reference} A reference for the mes- ABNAmrosage Funds_AAA.xls {com_babelway_ saging_context _client_reference} mes- Client reference A reference for the client {com_babelway_ saging_context _in_filename} mes- Input file name The name of the input file ABNAmroFunds_AAA.xls {com_babelway_ saging_context _in_filename _no_extension} mes- Input file name The name of the input file ABNAmroFunds_AAA with no extension. {com_babelway_ saging_context _out_filename} mes- Output file name The name of the output _ABNAMROL file UX _MMF.xls {com_babelway_ saging_context _out_filecontent} mes- Output file content {com_babelway_ saging_context _mail_from} mes- The sender address The address from which the message was sent. {com_babelway_ mes- The receiver ad- The address to saging_context _mail_to} dress which the message was sent. {com_babelway_ saging_context _mail_subject} mes- message subject The subject the FW: Abnamromessage received by the funds_aaa.xls - MMF system {com_babelway_ saging_context _mail_body} mes- Mail body {com_babelway_ saging_context _mail_send_date} mes- Mail sending date {com_babelway_ mes- AS2 message receive date The receive date of the javax.mail.internet. The sending date of the message. 224

230 Code Name saging_context _as2_receive_date} Description Example AS2 message. {com_babelway_ saging_context _as2_send_date} mes- AS2 send date The sending date of the AS2 message. {com_babelway_ saging_context _as2_from} mes- AS2 from address The AS2 sender address. C4NETBE {com_babelway_ mes- AS2 to address saging_context _as2_to} The AS2 receiver ad- BABELdress. WAY_AS2_25010 {com_babelway_ saging_context _as2_message_id} The ID of the AS2 mes- d19bc8_1210d8ea134_-4 sage. mes- AS2 message ID {com_babelway_ mes- Input user saging_context _in_user} The username from -ftp login: 'fc-invoice' which the message was sent (such as the ftp login name or sender address) Change Log Each time you push 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 go back in time and put your components at a given revision. The change log can be viewed for the whole environment, or by element Environment change Log Each time you push 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 The list of revisions is displayed as illustrated below: 225

231 Figure list of revisions The revisions are listed from the latest to the olds. 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 above the first are old states of your components. There is a timestamp (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. By clicking on one of those revisions, you will see a detailed list about what will happen at revert. This basically corresponds to a diff between the current state of your components and the state you've chosen to revert to Change detail Each time you push 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. The revisions details page is illustrated below: 226

232 Figure revisions details When you've chosen a revision to go back to, your components will be modified. The list at that point only tells you what will happen. (properties will be changes, elements will be deleted/created) in order to get in the exact same state at the revision you had chosen. A new revision will be created corresponding to the revert. So if you had a component A and a component B. You delete the component B. You can use the revert to go back to the point before you had deleted component B. But the granularity is limited. If you had a component A and a component B. You delete B. Then you create a component C. If you realize that deleting B was a mistake, you can go back at the time before you deleted B. Reverting to that point will delete component C and recreate component B. There is no way to get component B while keeping component C,You can see that as if you were in Word, a component is a paragraph and you use the "Undo" (Ctrl-Z) function. If you changed multiple paragraphs, you cannot undo a paragraph, you can only undo at the document level. Note Revert function is an advanced function, use it with care Elements change Log Note Explain here that is it possible to view the element change log in a tab of gateway MD transformation detail screen. Explain the infos, how to revert,... This page will be linked from these screens Reuse and save time The reuse and save time zone allows you, when you need to configure some element, to make all the configuration 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, depending on the whole known 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 element are ready to use, and can just 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 chich 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. 227

233 Figure 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 ChannelDetail screen Search and Reuse To filter the elements, you just 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. Figure Reuse search. If you use multiple words, like 'Colruyt Order', all the word will be searched separately. Only entries that contains all of 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. 228

234 Figure Reuse search. By default, only first 5 entries by category will be returned. If you want to view more, you can use the More action to view the full list, and have access to more advanced search. Figure Reuse search - more 229

235 Figure Reuse search - more results When you have found the element that you want to use, just click on it. Figure Reuse search - more results 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 that it is not already defined in our 230

236 catalogue! Figure Catalogue items Using or duplicating elements that you already defined. In the section of the results names You already defined, you will find elements that you have already defined in your current environment, and be able to use them again. Figure 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. 231

237 Figure Reuse - element duplicated. If you are in the ChannelDetail screen, and it is the first time you use this element, the element will just be assigned to the channel. Figure Reuse - element set in channel. If you are in the ChannelDetail screen, and the selected element is already used in other channels, you will get the option of duplicating or sharing it. 232

238 Figure Reuse - element set in channel 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 ). Figure Use element from another env - Click on More Figure Use element from another env - Choose environment 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. Figure Use element from another env - Click on More The application can also make you suggestions, based on the other elements present in your channel. 233

239 In the following example, a gateway IN of type MessageRecord has already been set to the current channel. The application will automatically suggest you just one MessageDefinition to use, because it knows the format of files generated by this gateway. Figure Use element from another env - Click on More 234

240 5 Admin In this chapter, we must explain that can be found under the admin section menu Personal data Manage and edit your personal information such as username, name, address, password... Figure 5.1. My Profile The following information is displayed: Username The username you entered at registration time (cannot be modified). The address you entered at registration time (cannot be modified). 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). 235

241 Admin Commands Save Save your modifications. Edit password Enable you to change your password. Select, enter or change parameters values then click on Save to save your changes or on Back to go back to previous screen without saving changes. Click on Change Password command to open following screen and change your account password. Enter old and new passwords, confirm new password then click on Change Password to save your new password or on Back to go back to previous screen without saving change. Figure 5.2. 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 General The General tab allows you to view or change how your account and environment is identified. If you have multiple environments, it is important to name them correctly, to ease the comprehension of the content of each of them. 236

242 Admin Figure 5.3. Environment settings - General Account name The name of your account. By default, this name includes your login name. 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 Babelway platform Messages This tab allows you to view and change the parameters of your environment that affect how the message are processed. Figure 5.4. Environment settings - Messages Message Storage Duration How long the messages processed in this environment will be kept. The possible values are 1 month, 3 237

243 Admin months, 1 year or 10 years for legal documents that must be kept longer. The value setted 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 parameters 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. Use Secure Chain Defines if the environment is using Babelway Secure Chain mechanism. The secure chain is a key part of Babelway 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) Partners This tab allows you to add specific fields to the Partner model. See Partners section for full explanation about partners. The fields that you add here will be available when add or edit a Partner, or in the list of Partners. Thanks to this, you can also have in the Partners sections all the fields that are specific to your business, or important for you but non-standard. 238

244 Admin Figure 5.5. Environment settings - Partners For every field, you can choose its name and its type. The type is important, as it helps the application validates the data that you encode, and eases the manipulation of the data. For example : If you tells 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 dropdowns for picking the values, and guarantee that you can not enter by error another value. 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) 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 environment. 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. ex: Invoice flatefile My ERP v1.23 or Invoice Carrefour 96A All the previous "production" version will therefore remain available allowing you to revert changes if you need it. 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. Would 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 239

245 Admin 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 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. 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 Billing Buy additional units, credits or services. This screen displays a table display the details of the billing run. The details will depend on the price plan you are on. For instance if you are on a Babelway BUSSINESS account, the billing runs once a month, at the anniversary of you account creation. Each month, new lines will be added for monthly fee, the extra volume, extra channels and so on. 240

246 Admin Figure 5.6. Billing details Current credit balance Number of units left in your account. A negative number means that you already exceeded your limit. A ticket (and its related mail) is always generated before the limit is reached to warn you that you should buy new units. Price plan This environment price plan for Babelway services and message processing Buy Credits Buy additional units, credits or services. According to your current price plan, you can buy or subscribe to additional services and credits. Enter the desired quantity for items then click on Next command and proceed to invoice and payment screens as described hereunder, or click on Back command to cancel order and go back to previous screen. Purchasing process and invoicing 241

247 Admin Figure 5.7. Buy credits 2/3 Enter all required personnal information for your account, company, contact, and references then click on Next command to proceed to last step as described hereunder, or click on Back command to cancel and go back to previous screen. 242

248 Admin Figure 5.8. Buy units 3/3 Check your order summary then click on Confirm command to confirm and send your order, or click on Back command to cancel and go back to previous screen Users Manage and edit users and users access to your account. The table lists all users who have a right on your environments. There are three different roles available that are described here: Account Administrator Has full rights over the account (yourself by default). Channel Manager Has full rights over alerts/messages/channels functions, but cannot access account information, subscription parameters, and other user rights. This type of access is for people who will manage and maintain channels, without being allowed to view and change specific account information. Monitoring Can upload/download messages from specific webpage of the account. Cannot view or access anything else than messages from/to that webpage. This type of access is for people who will manually upload/download 243

249 Admin message files. No Access Has no access to your environment, but you can switch to another role without sending an invitation. Figure 5.9. 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 Add a User Add a new user and select his role. From this screen, you can add and invite a new user and select his role on any of your account environments. Figure Add a user To add a new user, enter his address and select his role (one of the 3 available ones described above, "no 244

250 Admin 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 this drop-down list is not available. The address to send the invitation. Role The rights given to the new user. Invitation text You can change the Invitation Text if you want. This message will be send to the new user to ask him to accept and activate this option. Click on Back command to cancel and go back to previous screen. Click on Send to send this and invite the new user. Note The new user will be added with his role after he accepts this invitation and activates it by clicking on the link included in the mail in the three days following your invitation sending. 245

251 6 Miscelleanous This chapter contains some more stuff, not closely related to the web interface 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 these 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 to 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, messages 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 ressource 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 sould be agreed between both sides 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: 246

252 Miscelleanous Details of gateways in and out including external systems 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 sides should provide several examples of each in and out message types. Details of message transformation rules, possible values mapping, exception, 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 users notifications (success and/or errors). Detailed test plan including acceptance criteria 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) offering whereby Babelway has access to virtual servers "on-demand". Servers are physically located in the IRELAND and other locations around the world. To maximise availability and reliability, not only has Babelway contracted on strict terms with reliable partners but it has also installed redundancy between its 2 data centres. 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 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 engine 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 failover as well as scalability needs. To fully leverage Babelway fail-over mechanism, traffic with Babelway gateways be based on DNS (logical 247

253 Miscelleanous addressing) and accept 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 these IP addresses. For inbound traffic, Babelway garrantees 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 these IP addresses. At any time, DNS will resolved to 2, 3 or 4 servers. Clients software connecting to Babelway should be able to fail-over to the next IP in case of a server is unreachable (like all Browsers do). Babelway reserves itself the right to changes these allocations 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 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 wide-used file format. Among other sources, you can find a description, help and tutorial about XML language on W3Schools website at 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 original one. XSLT is also used to translate XML messages between different XML schemas, or to make changes to docu- 248

254 Miscelleanous ments 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 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 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 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 Odette 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 AS2 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 AS2 on the following website : OFTP ASC X12, chartered by the American National Standards Institute (ANSI) in 1979, develops EDI standards for national and global markets. 249

255 Miscelleanous Among other sources, you can find a description, help and tutorial about X12 on the official website at FTP 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 Rest API The Rest API provides for third party software developers a way to access the Babelway data (catalogue entries, user's channel, user's tickets, user's messages) and integrate them inside of their own application. For software developers, it is way to easily interact with Babelway directly from within your application. The API is based on the REST protocol, using the JSON and XML formats Introduction URLs All the requests to access the REST api have the form tps://www.babelway.net/selfservice3/rest/v2/hub-{hubid}/{action}.{format}?{parameters}, where ht- 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 Authentication1. 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 the first of January 1970 (midnight

256 Miscelleanous UTC/GMT) Available actions The following methods are available in the api: tickets List and search tickets ticket Get all the informations about a ticket deleteticket Delete a ticket messages List and search messages message Get all the informations about a message channels List and search channels gateways List and search gateways messagedefinitions List and search message definitions transformations List and search transformations catalogue Search in the catalogue tickets This actions allows to list all the tickets, optionnaly 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 ticket. The accepted values are HIGH, MEDIUM, LOW and INFO. since Returns tickets created after the given timestamp. 251

257 Miscelleanous 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 next one, it should be 25, then 50, then 75,... Examples Get tickets with severity MEDIUM in environment 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 server : ftp:\/\/ftp.server.com\/input DOWN", "description": "Ftp server (ftp:\/\/ftp.server.com\/input) became DOWN at 07\/02\/2011 "creationmoment": , "key":"aa3a19d7-14f4-4f66-819b-e044eb24b273" } ] Get opened tickets in environment in XML format https://www.babelway.net/selfservice3/rest/v2/hub-12345/tickets.xml?status=open <collection> <ticket> <ticket>222577</ticket> <hub>12345</hub> <type>_0_monitoring</type> 252

258 Miscelleanous <severity>medium</severity> <status>open</status> <summary>ftp server : ftp://ftp.server.com/input DOWN</summary> <description>ftp server (ftp://ftp.server.com/input) became DOWN at 07/02/ :46:3 <creationmoment> </creationmoment> <key>aa3a19d7-14f4-4f66-819b-e044eb24b273</key> </ticket> </collection> ticket This action allows to get all the informations about a ticket. Parameters key the ticket key as found by listing messages Examples Get the details for the ticket with key 'aa3a19d7-14f4-4f66-819b-e044eb24b273' in JSON format https://www.babelway.net/selfservice/rest/v1/hub-12345/ticket.json?key=aa3a19d7-14f4-4f66-819b-e044eb24 b273 { "ticket":222577, "hub":12345, "type":"_0_monitoring", "severity":"medium", "status":"open", "summary":"ftp server : ftp:\/\/ftp.server.com\/input DOWN", "description": "Ftp server (ftp:\/\/ftp.server.com\/input) became DOWN at 07\/02\/ :46:3 "creationmoment": , "key":"aa3a19d7-14f4-4f66-819b-e044eb24b273" } deleteticket This action allows to delete a ticket. It returns true if ticket have been found and deleted, or false otherwise. Parameters key the ticket key Examples Delete the ticket with key 'aa3a19d7-14f4-4f66-819b-e044eb24b273' in JSON format ht253

259 Miscelleanous tps://www.babelway.net/selfservice/rest/v1/hub-12345/deleteticket.json?key=aa3a19d7-14f4-4f66-819b-e0 44eb24b273 "true" messages Search and list messages. Parameters Parameters can be added to filter the query key A message key channel a string search in the channel name since Returns messages created after the given timestamp (number of milliseconds since the first of January 1970, midnight UTC/GMT) before Returns messages created before the given timestamp (number of milliseconds since the first of January 1970, midnight UTC/GMT) gatewayin a string search in the gateway in name gatewayout a string search in the gateway out name maxinsize the maximum size of the incoming message (in bytes) mininsize the minimum size of the incoming message (in bytes) errordescription a string search within the error description ref the message reference status The status of the message. The accepted values are IN_PROGRESS, WAITING_ACK, DONE, ERROR and CLOSED. type The type of ticket. The accepted values are REGULAR and TEST. 254

260 Miscelleanous 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 next one, it should be 25, then 50, then 75,... Examples Get regular messages that ended up in success in JSON format in environment https://www.babelway.net/selfservice3/rest/v2/hub-12345/messages.json?status=done&type=regular [ { "message": , "hub":26112, "creationmoment": , "key":"5914d53b-cb ad0d-42a2af8d487c", "test":"false", "testcase":0, "status":"done", "channel":{"id":66264,"name":"channel2","type":"channel","subtype":"channel"}, "gatewayin":{"id":66292,"name":" bertrand2","type":"gateway","subtype":"gateway_in "gatewayout":{"id":64080,"name":" ","type":"gateway","subtype":"gateway_out_smtp_o "reference":"brol.csv", "longterm":"false", "acknowledgmentmoment":null, "acknowledgmentreference":null, "errordescription":null, "receivemoment": , "gatewayinmoment": , "gatewayoutmoment": , "gatewayinmessagestatus":"received from using Smtp In server", "gatewayoutmessagekey":null }, { "message": , "hub":26112, "creationmoment": , "key":"4c a93-4d67-b7ac-6c45f ", "test":"false", "testcase":0, "status":"done", "channel":{"id":66264,"name":"channel2","type":"channel","subtype":"channel"}, "gatewayin":{"id":66292,"name":" bertrand2", "type":"gateway","subtype":"gateway_in_smtp_in"}, "gatewayout":{"id":64080,"name":" ","type":"gateway","subtype":"gateway_out_smtp_o "reference":"brol.csv", "longterm":"false", "acknowledgmentmoment":null, "acknowledgmentreference":null, "errordescription":null, "receivemoment": , "gatewayinmoment": , "gatewayoutmoment": , "gatewayinmessagestatus":"received from using Smtp In server", "gatewayoutmessagekey":null } ] message 255

261 Miscelleanous Gets all the informations about a message Parameters key the message key. Examples Get the details for the message with key '5914d53b-cb ad0d-42a2af8d487c' in XML format https://www.babelway.net/selfservice3/rest/v2/hub-26112/message.xml?key=5914d53b-cb ad0d-42a2 af8d487c <messagerecord> <message> </message> <hub>26112</hub> <creationmoment> </creationmoment> <key>5914d53b-cb ad0d-42a2af8d487c</key> <test>false</test> <testcase>0</testcase> <status>done</status> <channel> <id>66264</id> <name>channel2</name> <type>channel</type> <subtype>channel</subtype> </channel> <gatewayin> <id>66292</id> <name> bertrand2</name> <type>gateway</type> <subtype>gateway_in_smtp_in</subtype> </gatewayin> <gatewayout> <id>64080</id> <name> </name> <type>gateway</type> <subtype>gateway_out_smtp_out</subtype> </gatewayout> <reference>brol.csv</reference> <longterm>false</longterm> <acknowledgmentmoment/> <acknowledgmentreference/> <errordescription/> <receivemoment> </receivemoment> <gatewayinmoment> </gatewayinmoment> <gatewayoutmoment> </gatewayoutmoment> <gatewayinmessagestatus>received from using Smtp In server</gatewayinmessagestat <gatewayoutmessagekey/> </messagerecord> channels You can search and list channels for a given environment. Parameters 256

262 Miscelleanous name A string search on the channel name description a string search on the channel description since Returns messages created after the given timestamp (number of milliseconds since the first of January 1970, midnight UTC/GMT) before Returns messages created before the given timestamp. deployed 'true' or 'false' : returns channels that are deployed or not (i.e. in production). If not set, the API returns all channels regardless of their deployed state. 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 next one, it should be 25, then 50, then 75,... Examples List the channels of environment in JSON format https://www.babelway.net/selfservice3/rest/v2/hub-12345/channels.json [ { "id":66264, "hub":26112, "creationmoment": , "lastupdatemoment": , "name":"channel2", "description":"second test...", "gatewayin":{"id":66292,"name":" bertrand2","type":"gateway","subtype":"gateway_in "gatewayout":{"id":64080,"name":" ","type":"gateway","subtype":"gateway_out_smtp_o "messagedefinitionin":{"id":66268,"name":"simplecsv","type":"messagedefinition","subty "messagedefinitionout":{"id":66270,"name":"simplecsv","type":"messagedefinition","subt "transformation":{"id":107807,"name":"k","type":"transformation","subtype":"visual"}, "active":"false", "deployed":"true", "nextdeploymentaction":"desactivate" }, { "id":106823, "hub":26112,"creationmoment": , "lastupdatemoment": , "name":"dgfh", "description":null, "gatewayin":null, "gatewayout":{"id":106825,"name":"dfg","type":"gateway","subtype":"gateway_out_oftp2_s "messagedefinitionin":{"id":66268,"name":"simplecsv","type":"messagedefinition","subty "messagedefinitionout":{"id":66270,"name":"simplecsv","type":"messagedefinition","subt "transformation":{"id":106919,"name":"sdf","type":"transformation","subtype":"visual"} "active":"false", "deployed":"false", "nextdeploymentaction":"nochange" } ] 257

263 Miscelleanous List deployed channels in environment in XML format https://www.babelway.net/selfservice3/rest/v2/hub-26112/channels.xml?deployed=true <?xml version="1.0" encoding="utf-8" standalone="yes"?> <collection> <channel> <id>66264</id> <hub>26112</hub> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <name>channel2</name> <description>second test...</description> <gatewayin> <id>66292</id> <name> bertrand2</name> <type>gateway</type> <subtype>gateway_in_smtp_in</subtype> </gatewayin> <gatewayout> <id>64080</id> <name> </name> <type>gateway</type> <subtype>gateway_out_smtp_out</subtype> </gatewayout> <messagedefinitionin> <id>66268</id> <name>simplecsv</name> <type>messagedefinition</type> <subtype>csv</subtype> </messagedefinitionin> <messagedefinitionout> <id>66270</id> <name>simplecsv</name> <type>messagedefinition</type> <subtype>csv</subtype> </messagedefinitionout> <transformation> <id>107807</id> <name>k</name> <type>transformation</type> <subtype>visual</subtype> </transformation> <active>false</active> <deployed>true</deployed> <nextdeploymentaction>desactivate</nextdeploymentaction> </channel> </collection> gateways Search and list gateways for a given environment. Parameters name A string search on the channel name description a string search on the channel description 258

264 Miscelleanous since Returns only gateways created after the given timestamp. before Returns only gateways created before the given timestamp. direction Returns only the gateways with the specified direction : IN or OUT. type Returns only the gateways with the specified type. 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 next one, it should be 25, then 50, then 75,... Examples List all the gateways of environment in XML format https://www.babelway.net/selfservice3/rest/v2/hub-26112/gateways.xml <collection> <gateway> <id>106825</id> <type>gateway_out_oftp2_server_out</type> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <name>dfg</name><description/> <hub>26112</hub> </gateway> <gateway> <id>66292</id> <type>gateway_in_smtp_in</type> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <name> bertrand2</name> <description> s from ><hub>26112</hub> </gateway> </collection> List all the OUT gateways of environment in JSON format https://www.babelway.net/selfservice3/rest/v2/hub-26112/gateways.json?direction=in [ { "id":66292, "type":"gateway_in_smtp_in", "creationmoment": , "lastupdatemoment": , "name":" bertrand2", "description":" s from "hub":26112 } ] 259

265 Miscelleanous messagedefinitions Search and list message definitions for a given environment. Parameters name A string search on the channel name description a string search on the channel description since Returns only gateways created after the given timestamp. before Returns only gateways created before the given timestamp. direction Returns only the gateways with the specified direction : IN or OUT. type Returns only the gateways with the specified type. 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 next one, it should be 25, then 50, then 75,... Examples List all the messages definitions IN of environment in JSON format https://www.babelway.net/selfservice3/rest/v2/hub-26112/messagedefinitions.json?direction=in [ { "id":106869, "direction":"in", "type":"csv", "creationmoment": , "lastupdatemoment": , "name":"myorder", "description":null, "hub":26112 } ] transformations Search and list transformations for a given environment. Parameters name 260

266 Miscelleanous A string search on the channel name description a string search on the channel description since Returns only gateways created after the given timestamp. before Returns only gateways created before the given timestamp. 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 next one, it should be 25, then 50, then 75,... Examples List all the transformations of environment in XML format https://www.babelway.net/selfservice3/rest/v2/hub-26112/transformations.xml <collection> <transformation> <id>106919</id> <name>simpletransformation</name> <description/><type>visual</type> <messagedefinitionin> <id>66268</id> <name>simplecsv</name> <type>messagedefinition</type> <subtype>csv</subtype> </messagedefinitionin> <messagedefinitionout> <id>66270</id> <name>simplecsv</name> <type>messagedefinition</type> <subtype>csv</subtype> </messagedefinitionout> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <hub>26112</hub> </transformation> </collection> catalogue Search and list catalogue items Parameters q a query string (not case-sensitive) 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 next one, it should be 25, then 50, then 75,

267 Miscelleanous Examples Get catalogue items with the tags 'belgium' and 'as2' in JSON https://www.babelway.net/selfservice3/rest/v2/hub-26112/catalogue.xml?q=belgium%20as2 <collection> <gateway> <id>28786</id> <type>gateway_in_as2_in</type> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <name>as2 Delhaize</name> <description>as2 parameters to exchange files with Delhaize. </description> <hub>25037</hub> </gateway> <gateway> <id>33967</id> <type>gateway_in_as2_in</type> <creationmoment> </creationmoment> <lastupdatemoment> </lastupdatemoment> <name>as2 Cora (Belux)</name> <description>as2 Connection to be used in order to receive messages from Cora (Belux). <hub>25037</hub> </gateway> </collection> Code samples Here are examples written in different programming language to show how to use the Babelway REST API within your application. These are just starting points to build upon. Java Download the last 25 messages in ERROR. It requires using Apache Commons httpclient2, codec3 and logging4 for HTTP calls and SAX for XML parsing import java.io.bufferedreader; import java.io.inputstream; import java.io.inputstreamreader; import javax.xml.parsers.saxparser; import javax.xml.parsers.saxparserfactory; import import import import import import import org.apache.commons.httpclient.httpclient; org.apache.commons.httpclient.usernamepasswordcredentials; org.apache.commons.httpclient.auth.authscope; org.apache.commons.httpclient.methods.getmethod; org.xml.sax.attributes; org.xml.sax.saxexception; org.xml.sax.helpers.defaulthandler; public class RESTClient { public static void main(string[] args) throws Exception { String baseurl = "https://www.babelway.net/selfservice/rest/v1/";

268 Miscelleanous Long myhub = 0L; // You can find this on the My Account page String user = "";// the username you use to connect to Babelway String pwd = ""; // the password you use to connect to Babelway // Download the last 25 messages in ERROR String request = baseurl + "hub-" + myhub + "/messages.xml?status=error"; HttpClient client = new HttpClient(); client.getstate().setcredentials(authscope.any_realm, "www.babelway.net", new UsernamePasswordCreden GetMethod method = new GetMethod(request); // Send the request int statuscode = client.executemethod(method); // read the result if (statuscode == 200) { InputStream rstream = null; rstream = method.getresponsebodyasstream(); BufferedReader br = new BufferedReader(new InputStreamReader(rstream)); SAXParser sxp = SAXParserFactory.newInstance().newSAXParser(); sxp.parse(rstream, new SaxHandler()); } } private static final class SaxHandler extends DefaultHandler { // invoked when document-parsing is started: public void startdocument() throws SAXException { System.out.println("Document processing started"); } // notifies about finish of parsing: public void enddocument() throws SAXException { System.out.println("Document processing finished"); } // we enter to element 'qname': public void startelement(string uri, String localname, String qname, Attributes attrs) throws SAXException { // Do your processing System.out.println("Element " + qname); } // we leave element 'qname' without any actions: public void endelement(string uri, String localname, String qname) throws SAXException { // do nothing; } } } C# using using using using System; System.Text; System.Net; System.IO; namespace RESTClient { class Program { static void Main(string[] args) { string baseurl = "https://www.babelway.net/selfservice/rest/v1/"; long myhub = 0; // You can find this on the My Account page String user = "";// the username you use to connect to Babelway String pwd = ""; // the password you use to connect to Babelway 263

269 Miscelleanous // Download the last 25 messages in ERROR String request = baseurl + "hub-" + myhub + "/messages.xml?status=error"; HttpWebRequest webrequest = WebRequest.Create(request) as HttpWebRequest; // Add authentication to request webrequest.credentials = new NetworkCredential(user, pwd); // Get Response HttpWebResponse response = webrequest.getresponse() as HttpWebResponse; // Read the result if (webrequest.haveresponse == true && response!= null) { // Get the response stream StreamReader reader = new StreamReader(response.GetResponseStream()); // Console application output Console.WriteLine(reader.ReadToEnd()); } } } } Python This code snipet requires Python 2.6 or newer. No extra modules are required import json import urllib2 base_url = "https://www.babelway.net/selfservice/rest/v1/"; my_hub = 0 #You can find this on the My Account page user = "" #the username you use to connect to Babelway pwd = "" #the password you use to connect to Babelway request = "%shub-%s/messages.json" %(base_url, my_hub) # Create a pwd manager that handles any realm (default realm) pwd_manager = urllib2.httppasswordmgrwithdefaultrealm() # Create the authentication handler, add the login/pwd to it auth_handler = urllib2.httpbasicauthhandler(pwd_manager) auth_handler.add_password(none, request, user, pwd) # Build the URL Opener opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) # Read and parse the JSON response try: f = urllib2.urlopen(request) print json.load(f) except urllib2.httperror as e: print e PHP This code snippet requires PHP version or newer. No extra modules are required. <? $base_url = "https://www.babelway.net/selfservice/rest/v1/"; 264

270 Miscelleanous $my_hub = 0; // You can find this on the My Account page : $user = ""; // the username you use to connect to Babelway $pwd = ""; // the password you use to connect to Babelway // Download all your tickets for the month of July 2010 $from = mktime(0, 0, 0, 7, 1, 2010); $to = mktime(23, 59, 59, 7, 31, 2010); // Generate the URL for the tickets: $url = $base_url. "hub-". $my_hub. "/messages.json?since=". $from. "&before=". $to; // Make the REST query $context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'header' => sprintf("authorization: Basic %s\r\n", base64_encode($user.':'.$pwd))."\r\n", 'timeout' => 5, ), )); $content = file_get_contents($url, false, $context); // Decode the JSON $data = json_decode($content); // Display them echo '<pre>'; print_r($data); echo '</pre>';?> 6.5. BabelInvoice BabelInvoice Solution BabelInvoice is a solution to send secure electronic invoices. BabelInvoice leverages Babelway's B2B integration in the cloud. The sender BabelInvoice enables you to forget the paper invoice all together. It works as a regular printer: the sender 'prints' the invoice on the BabelInvoice printer. The invoice is then automatically sent to the receiver through Babelway. As the sender of the invoice, you receive an copy of the invoice sent to your customer. Store it on your computer and keep a back-up for safety. This invoice is signed with an advanced signature using the accredited system of Babelway. This method guarantees the authenticity and the integrity of the invoice. At any time in the future, you can certify and demonstrate the authenticity and the integrity of the invoice. The receiver Your customers receive an with your invoice as a PDF attachment. They can store and print it without the need to subscribe to Babelway or any other system. The electronic signature generated by Babelway makes the invoice authentic and unalterable. The e-invoice The PDF invoice looks exactly the same as the invoice that would have been printed using your usual printer. 265

271 Miscelleanous Pictures, logos, fonts, etc. are kept. BabelInvoice also transfers XML information to Babelway. This enables you to extend BabelInvoice to send any other formats to enable automatic integration, via any protocol, with accounting software. The signature The signature used to sign your invoice is uniquely attached to you. No other Babelway user can sign with this unique signature. The first time a customer receives an invoice from you, the signature will appear with a yellow question mark. Figure 6.1. yellow-questionmark This is to request his attention that this document comes with a signature that is not recognized yet. To accept your signature, your customer must click on the yellow question mark and include your signature in the list of trusted signatures. Next time, your customer will receive an invoice with a green OK sign (V) to indicate that the invoice is signed by a trusted person. Figure 6.2. green-v Note The advanced signature complies with the definition of Directive 1999/93/CE of the European Parliament and the Council of 13 December Archiving Babelway stores invoices for 3 months (unless you ask otherwise). Archive security elements (guaranteeing the authenticity and the integrity of your invoices) are kept by Babelway for at least 12 years. This enables, at any future time, to legally prove that an invoice has been sent through the sender's account at a specific time. Legal requirements In Belgium (our country), the law requires that you get explicit approval from your customers to send them electronic invoices. Sending an is the most widely accepted method for electronic invoices. Legal re- 266

272 Miscelleanous quirements may change from country to country, you should seek legal advice if you are unsure Install BabelInvoice for PDFCreator To Install up your BabelInvoice you should follow these steps. Pre Requirements BabelInvoice for PDFCreator require the following software 1-.Net framework 3 or above. 2- PDFCreator version or above. If you didn t install the required software before running the installation the setup will detect the missing requirement and download it after confirming that is your choice. Installation 1-After clicking on the exe file you will see welcome screen, click on "Next". Figure 6.3. BabelInvoice Setup Wlcom Screen 267

273 Miscelleanous 2-the setup will check the required software and inform you if any missing software, click on "OK" to download and install it or cancel the setup and install it from any other location. Figure 6.4. BabelInvoice Missing Software Dialog If you chose to download the required software the download screen will appear and download will start immediately. Figure 6.5. BabelInvoice Download Screen 268

274 Miscelleanous After finishing download you should install software with you requirement. 3- Select the destination folder you want to install application in it and click "Next". Figure 6.6. BabelInvoice Select Install Location 4-setup will install the files to the selected destination. 269

275 Miscelleanous Figure 6.7. BabelInvoice Installation Process 5-Application needs to create new printer on PDFCreator printer, click "Next" to create it. 270

276 Miscelleanous Figure 6.8. BabelInvoice Add Printer 6-Click on Finish to complete the setup process 271

277 Miscelleanous Figure 6.9. BabelInvoice Finish Setup 7-After finishing the setup process you need to verify that the created printer is assigned properly with the right profile to allow BabelInvoice work properly. Open PDFCreator printers screen from PDFCreator->Printer->Printers. Make sure that printer "BabelInvoice (PDFCreator)" assigned to the profile "BabelInvoice". 272

278 Miscelleanous Figure Assign the printer with the profile 8-you can use the BabelInvoice for PDFCreator by printing the documents with the created printer. 273

279 Miscelleanous Figure BabelInvoice Printing Document After printing the document you will see the main screen of BabelInvoice application type the required parameter and send the document. 274

280 Miscelleanous Figure BabelInvoice Form Using BabelInvoice for Stand alone BabelInvoice for Standalone version designed for use by command prompt. After installing the package you can use it by calling the BabelInvoice.exe with the following parameters 275

281 Miscelleanous Figure BabelInvoice for Standalone -Help Show list of available commands. "Input File" The invoice file path. -User="UserName" Set the FTP User (OPTIONAL). -M"%metadata name%"="%value%" Add metadata to metadata.xml (OPTIONAL). -Silent Don t show any error messages and write the error details in the log file and return exit code (OPTIONAL). -Settings Open the settings form (OPTIONAL). -Config Sets the configuration folder path (create if not exists), (OPTIONAL) default folder is Application Data folder BabelInvoice Setting To set up your BabelInvoice you should follow these steps. 1- Babelway Registration If you don't have an account yet, please register on 276

282 Miscelleanous 2- Babelway Channel Import You should Import the BabelInvoice Channel to your Babelway Account If you don t have a channel yet, please import the BabelInvoice to your hub by Click on this link 3- Configure FTP gateway in You only need to set username and password for the input ftp gateway in, you will need these parameters in the BabelInvoice application. Don't forget to save after setting the username and password. Figure BabelInvoice FTP In To read more about ftp server gateway configuration click here 4- Activate and deploy the channel First activate the channel you've just imported by clicking on the "activate channel" button on the top right of the screen. Then deploy by clicking on "Deploy channels" at the bottom of the list of channels. Figure BabelInvoice activate channel 277

283 Miscelleanous Figure BabelInvoice deploy channel To read more about Activate and deploy a Channel click here 5- Configure BabelInvoice application The first time you'll use the BabelInvoice application, the setting screen will appear. It will let you configure the application with your parameters. 278

284 Miscelleanous Figure BabelInvoice Settings 6.6. Verify yourself the chain 279

Table of Contents. Welcome... 2. Login... 3. Password Assistance... 4. Self Registration... 5. Secure Mail... 7. Compose... 8. Drafts...

Table of Contents. Welcome... 2. Login... 3. Password Assistance... 4. Self Registration... 5. Secure Mail... 7. Compose... 8. Drafts... Table of Contents Welcome... 2 Login... 3 Password Assistance... 4 Self Registration... 5 Secure Mail... 7 Compose... 8 Drafts... 10 Outbox... 11 Sent Items... 12 View Package Details... 12 File Manager...

More information

Corporate Telephony Toolbar User Guide

Corporate Telephony Toolbar User Guide Corporate Telephony Toolbar User Guide 1 Table of Contents 1 Introduction...6 1.1 About Corporate Telephony Toolbar... 6 1.2 About This Guide... 6 1.3 Accessing The Toolbar... 6 1.4 First Time Login...

More information

CUSTOMER PORTAL USER GUIDE FEBRUARY 2007

CUSTOMER PORTAL USER GUIDE FEBRUARY 2007 CUSTOMER PORTAL USER GUIDE FEBRUARY 2007 CONTENTS INTRODUCTION 1. Access to the system 2. Case Management 2.1 Create a case 2.2 Review & Access existing cases 2.3 Update a Case 2.4 Resolve and Close a

More information

Webmail Instruction Guide

Webmail Instruction Guide Webmail Instruction Guide This document is setup to guide your through the use of the many features of our Webmail system. You may either visit www.safeaccess.com or webmail.safeaccess.com to login with

More information

Hosted VoIP Phone System. Admin Portal User Guide for. Call Center Administration

Hosted VoIP Phone System. Admin Portal User Guide for. Call Center Administration Hosted VoIP Phone System Admin Portal User Guide for Call Center Administration Contents Table of Figures... 4 1 About this Guide... 6 2 Accessing the Hosted VoIP Phone System Administration Portal...

More information

One step login. Solutions:

One step login. Solutions: Many Lotus customers use Lotus messaging and/or applications on Windows and manage Microsoft server/client environment via Microsoft Active Directory. There are two important business requirements in this

More information

Strategic Asset Tracking System User Guide

Strategic Asset Tracking System User Guide Strategic Asset Tracking System User Guide Contents 1 Overview 2 Web Application 2.1 Logging In 2.2 Navigation 2.3 Assets 2.3.1 Favorites 2.3.3 Purchasing 2.3.4 User Fields 2.3.5 History 2.3.6 Import Data

More information

Cloud. Hosted Exchange Administration Manual

Cloud. Hosted Exchange Administration Manual Cloud Hosted Exchange Administration Manual Table of Contents Table of Contents... 1 Table of Figures... 4 1 Preface... 6 2 Telesystem Hosted Exchange Administrative Portal... 7 3 Hosted Exchange Service...

More information

Using Webmail. Technical Manual: User Guide. Document Updated: 1/07. The Webmail Window. Displaying and Hiding the Full Header.

Using Webmail. Technical Manual: User Guide. Document Updated: 1/07. The Webmail Window. Displaying and Hiding the Full Header. Using Webmail Technical Manual: User Guide The Webmail Window To save an attachment: 1. Click once on the attachment name. Or, if there are multiple attachments, click the Save icon to save all attachments

More information

Results CRM 2012 User Manual

Results CRM 2012 User Manual Results CRM 2012 User Manual A Guide to Using Results CRM Standard, Results CRM Plus, & Results CRM Business Suite Table of Contents Installation Instructions... 1 Single User & Evaluation Installation

More information

User's Guide. Product Version: 2.5.0 Publication Date: 7/25/2011

User's Guide. Product Version: 2.5.0 Publication Date: 7/25/2011 User's Guide Product Version: 2.5.0 Publication Date: 7/25/2011 Copyright 2009-2011, LINOMA SOFTWARE LINOMA SOFTWARE is a division of LINOMA GROUP, Inc. Contents GoAnywhere Services Welcome 6 Getting Started

More information

Integrated Accounting System for Mac OS X

Integrated Accounting System for Mac OS X Integrated Accounting System for Mac OS X Program version: 6.3 110401 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard Accounts is a powerful accounting system for Mac OS X. Text in square

More information

Infoview XIR3. User Guide. 1 of 20

Infoview XIR3. User Guide. 1 of 20 Infoview XIR3 User Guide 1 of 20 1. WHAT IS INFOVIEW?...3 2. LOGGING IN TO INFOVIEW...4 3. NAVIGATING THE INFOVIEW ENVIRONMENT...5 3.1. Home Page... 5 3.2. The Header Panel... 5 3.3. Workspace Panel...

More information

Avaya Network Configuration Manager User Guide

Avaya Network Configuration Manager User Guide Avaya Network Configuration Manager User Guide May 2004 Avaya Network Configuration Manager User Guide Copyright Avaya Inc. 2004 ALL RIGHTS RESERVED The products, specifications, and other technical information

More information

DarwiNet Client Level

DarwiNet Client Level DarwiNet Client Level Table Of Contents Welcome to the Help area for your online payroll system.... 1 Getting Started... 3 Welcome to the Help area for your online payroll system.... 3 Logging In... 4

More information

Using Webmail. Document Updated: 11/10. Technical Manual: User Guide. The Webmail Window. Logging In to Webmail. Displaying and Hiding the Full Header

Using Webmail. Document Updated: 11/10. Technical Manual: User Guide. The Webmail Window. Logging In to Webmail. Displaying and Hiding the Full Header Using Webmail Technical Manual: User Guide Webmail is supported in the following browsers: Windows Internet Explorer 6, Internet Explorer 7, Firefox 2, and Firefox 3 Mac OSX Safari 2, Safari 3, Firefox

More information

Integrated Invoicing and Debt Management System for Mac OS X

Integrated Invoicing and Debt Management System for Mac OS X Integrated Invoicing and Debt Management System for Mac OS X Program version: 6.3 110401 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard Invoicing is a powerful invoicing and debt management

More information

efiletexas.gov Review Queue User Guide

efiletexas.gov Review Queue User Guide efiletexas.gov Review Queue User Guide EFS-TF-200-3194 v.4 February 2014 Copyright and Confidentiality Copyright 2014 Tyler Technologies, Inc. All rights reserved. All documentation, source programs, object

More information

Forms Printer User Guide

Forms Printer User Guide Forms Printer User Guide Version 10.51 for Dynamics GP 10 Forms Printer Build Version: 10.51.102 System Requirements Microsoft Dynamics GP 10 SP2 or greater Microsoft SQL Server 2005 or Higher Reporting

More information

SonicWALL SSL VPN 3.5: Virtual Assist

SonicWALL SSL VPN 3.5: Virtual Assist SonicWALL SSL VPN 3.5: Virtual Assist Document Scope This document describes how to use the SonicWALL Virtual Assist add-on for SonicWALL SSL VPN security appliances. This document contains the following

More information

NYS OCFS CMS Contractor Manual

NYS OCFS CMS Contractor Manual NYS OCFS CMS Contractor Manual C O N T E N T S CHAPTER 1... 1-1 Chapter 1: Introduction to the Contract Management System... 1-2 CHAPTER 2... 2-1 Accessing the Contract Management System... 2-2 Shortcuts

More information

Novell ZENworks Asset Management 7.5

Novell ZENworks Asset Management 7.5 Novell ZENworks Asset Management 7.5 w w w. n o v e l l. c o m October 2006 USING THE WEB CONSOLE Table Of Contents Getting Started with ZENworks Asset Management Web Console... 1 How to Get Started...

More information

2/24/2010 ClassApps.com

2/24/2010 ClassApps.com SelectSurvey.NET Training Manual This document is intended to be a simple visual guide for non technical users to help with basic survey creation, management and deployment. 2/24/2010 ClassApps.com Getting

More information

Fixes for CrossTec ResQDesk

Fixes for CrossTec ResQDesk Fixes for CrossTec ResQDesk Fixes in CrossTec ResQDesk 5.00.0006 December 2, 2014 Resolved issue where the list of Operators on Category was not saving correctly when adding multiple Operators. Fixed issue

More information

SonicWALL GMS Custom Reports

SonicWALL GMS Custom Reports SonicWALL GMS Custom Reports Document Scope This document describes how to configure and use the SonicWALL GMS 6.0 Custom Reports feature. This document contains the following sections: Feature Overview

More information

Managing User Accounts and User Groups

Managing User Accounts and User Groups Managing User Accounts and User Groups Contents Managing User Accounts and User Groups...2 About User Accounts and User Groups... 2 Managing User Groups...3 Adding User Groups... 3 Managing Group Membership...

More information

AT&T Voice DNA User Guide

AT&T Voice DNA User Guide AT&T Voice DNA User Guide Page 1 Table of Contents GET STARTED... 4 Log In... 5 About the User Dashboard... 9 Manage Personal Profile... 15 Manage Messages... 17 View and Use Call Logs... 22 Search the

More information

IT Service Desk Manual Ver. 2.0. Document Prepared By: IT Department. Page 1 of 12

IT Service Desk Manual Ver. 2.0. Document Prepared By: IT Department. Page 1 of 12 Document Prepared By: Page 1 of 12 INDEX 1. Introduction. 3 2. Home Page..... 4 2.1 My Request Summary..... 4 2.2 Announcement....... 5 2.3 Submit your Request...... 5 2.4 Report a Problem...... 6 2.5

More information

Unified Communicator Advanced Training Handout

Unified Communicator Advanced Training Handout Unified Communicator Advanced Training Handout About Unified Communicator Advanced (UCA) Video Summary (must have access to the internet for this to launch) http://www.mitel.tv/videos/mitel_unified_communicator_advanced_na

More information

Table of Contents INTRODUCTION... 2 HOME PAGE... 3. Announcements... 7 Personalize & Change Password... 8 Reminders... 9 SERVICE CATALOG...

Table of Contents INTRODUCTION... 2 HOME PAGE... 3. Announcements... 7 Personalize & Change Password... 8 Reminders... 9 SERVICE CATALOG... Table of Contents INTRODUCTION... 2 HOME PAGE... 3 Announcements... 7 Personalize & Change Password... 8 Reminders... 9 SERVICE CATALOG... 11 Raising a Service Request... 12 Edit the Service Request...

More information

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System

More information

email-lead Grabber Business 2010 User Guide

email-lead Grabber Business 2010 User Guide email-lead Grabber Business 2010 User Guide Copyright and Trademark Information in this documentation is subject to change without notice. The software described in this manual is furnished under a license

More information

Applicant Tracking System Job Aids. Prepared by:

Applicant Tracking System Job Aids. Prepared by: Applicant Tracking System Job Aids Prepared by: Contents System Navigation and My Setup Information for Users... 1 Creating Requisitions... 4 Duplicating Requisitions... 6 Requesting an Approval... 7 Viewing

More information

Set Up and Maintain Customer Support Tools

Set Up and Maintain Customer Support Tools Set Up and Maintain Customer Support Tools Salesforce, Winter 16 @salesforcedocs Last updated: December 10, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered

More information

Council of Ontario Universities. COFO Online Reporting System. User Manual

Council of Ontario Universities. COFO Online Reporting System. User Manual Council of Ontario Universities COFO Online Reporting System User Manual Updated September 2014 Page 1 Updated September 2014 Page 2 Table of Contents 1. Security... 5 Security Roles Defined in the Application...

More information

User Guide for YB Admin Centre

User Guide for YB Admin Centre User Guide for YB Admin Centre www.ybtracking.com General Overview The Back-Office system is designed to provide a single-point of control for Iridium-based tracking devices. The system can support a multitude

More information

Decision Support AITS University Administration. Web Intelligence Rich Client 4.1 User Guide

Decision Support AITS University Administration. Web Intelligence Rich Client 4.1 User Guide Decision Support AITS University Administration Web Intelligence Rich Client 4.1 User Guide 2 P age Web Intelligence 4.1 User Guide Web Intelligence 4.1 User Guide Contents Getting Started in Web Intelligence

More information

WatchDox Administrator's Guide. Application Version 3.7.5

WatchDox Administrator's Guide. Application Version 3.7.5 Application Version 3.7.5 Confidentiality This document contains confidential material that is proprietary WatchDox. The information and ideas herein may not be disclosed to any unauthorized individuals

More information

Integrated Point of Sales System for Mac OS X

Integrated Point of Sales System for Mac OS X Integrated Point of Sales System for Mac OS X Program version: 6.3.22 110401 2012 HansaWorld Ireland Limited, Dublin, Ireland Preface Standard POS is a powerful point of sales system for small shops and

More information

ithenticate User Manual

ithenticate User Manual ithenticate User Manual Updated November 20, 2009 Contents Introduction 4 New Users 4 Logging In 4 Resetting Your Password 5 Changing Your Password or Username 6 The ithenticate Account Homepage 7 Main

More information

Integrated Accounting System for Mac OS X and Windows

Integrated Accounting System for Mac OS X and Windows Integrated Accounting System for Mac OS X and Windows Program version: 6.2 110111 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Books by HansaWorld is a powerful accounting system for the Mac

More information

1. Manage your Group. 1. Log on to the CampusGroups platform.

1. Manage your Group. 1. Log on to the CampusGroups platform. 1 1. Manage your Group 1. Log on to the CampusGroups platform. 2. Upon logging in, select your club from the Groups drop-down (next to the Home icon) and click on the Manage button next to the group of

More information

Network Probe User Guide

Network Probe User Guide Network Probe User Guide Network Probe User Guide Table of Contents 1. Introduction...1 2. Installation...2 Windows installation...2 Linux installation...3 Mac installation...4 License key...5 Deployment...5

More information

The Power Loader GUI

The Power Loader GUI The Power Loader GUI (212) 405.1010 info@1010data.com Follow: @1010data www.1010data.com The Power Loader GUI Contents 2 Contents Pre-Load To-Do List... 3 Login to Power Loader... 4 Upload Data Files to

More information

Case Management Implementation Guide

Case Management Implementation Guide Case Management Implementation Guide Salesforce, Summer 15 @salesforcedocs Last updated: June 30, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Table of Contents INTRODUCTION...2 HOME PAGE...3. Announcements... 6 Personalize... 7 Reminders... 9 Recent Items... 11 SERVICE CATALOG...

Table of Contents INTRODUCTION...2 HOME PAGE...3. Announcements... 6 Personalize... 7 Reminders... 9 Recent Items... 11 SERVICE CATALOG... Table of Contents INTRODUCTION...2 HOME PAGE...3 Announcements... 6 Personalize... 7 Reminders... 9 Recent Items... 11 SERVICE CATALOG...12 REQUEST...14 Request List View... 15 Creating a New Incident...

More information

Application. 1.1 About This Tutorial. 1.1.1 Tutorial Requirements. 1.1.2 Provided Files

Application. 1.1 About This Tutorial. 1.1.1 Tutorial Requirements. 1.1.2 Provided Files About This Tutorial 1Creating an End-to-End HL7 Over MLLP Application 1.1 About This Tutorial 1.1.1 Tutorial Requirements 1.1.2 Provided Files This tutorial takes you through the steps of creating an end-to-end

More information

Call Recorder User Guide

Call Recorder User Guide Call Recorder User Guide User Types The Call Recorder application includes a web based user interface. You must have the proper credentials to access the interface. There are two types of users of the

More information

USER GUIDE for Salesforce

USER GUIDE for Salesforce for Salesforce USER GUIDE Contents 3 Introduction to Backupify 5 Quick-start guide 6 Administration 6 Logging in 6 Administrative dashboard 7 General settings 8 Account settings 9 Add services 9 Contact

More information

Nessus Enterprise Cloud User Guide. October 2, 2014 (Revision 9)

Nessus Enterprise Cloud User Guide. October 2, 2014 (Revision 9) Nessus Enterprise Cloud User Guide October 2, 2014 (Revision 9) Table of Contents Introduction... 3 Nessus Enterprise Cloud... 3 Subscription and Activation... 3 Multi Scanner Support... 4 Customer Scanning

More information

Personal Call Manager User Guide. BCM Business Communications Manager

Personal Call Manager User Guide. BCM Business Communications Manager Personal Call Manager User Guide BCM Business Communications Manager Document Status: Standard Document Version: 04.01 Document Number: NN40010-104 Date: August 2008 Copyright Nortel Networks 2005 2008

More information

Salesforce Customer Portal Implementation Guide

Salesforce Customer Portal Implementation Guide Salesforce Customer Portal Implementation Guide Salesforce, Winter 16 @salesforcedocs Last updated: December 10, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered

More information

Email -- Reading and Printing Email

Email -- Reading and Printing Email Email -- Reading and Printing Email Checking for New Email By default, webmail checks for new email automatically. If you want to manually check for new email, click the Check Email button. Or, click the

More information

Secure Web Appliance. SSL Intercept

Secure Web Appliance. SSL Intercept Secure Web Appliance SSL Intercept Table of Contents 1. Introduction... 1 1.1. About CYAN Secure Web Appliance... 1 1.2. About SSL Intercept... 1 1.3. About this Manual... 1 1.3.1. Document Conventions...

More information

Business Insight Report Authoring Getting Started Guide

Business Insight Report Authoring Getting Started Guide Business Insight Report Authoring Getting Started Guide Version: 6.6 Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software,

More information

ithenticate User Manual

ithenticate User Manual ithenticate User Manual Version: 2.0.2 Updated March 16, 2012 Contents Introduction 4 New Users 4 Logging In 4 Resetting Your Password 5 Changing Your Password or Username 6 The ithenticate Account Homepage

More information

ACHieve Access 4.3 User Guide for Corporate Customers

ACHieve Access 4.3 User Guide for Corporate Customers ACHieve Access 4.3 User Guide for Corporate Customers January 2015 Citizens Bank 1 February 2015 Table of Contents SECTION 1: OVERVIEW... 4 Chapter 1: Introduction... 5 How to Use This Manual... 5 Overview

More information

1) Important browser information New 2) Why is my browser so slow? 3) How can I view more than one screen without the other disappearing?

1) Important browser information New 2) Why is my browser so slow? 3) How can I view more than one screen without the other disappearing? Known/Unresolved issues: Browser Scan to e-mail Creating Help Desk tickets for the scan-to-email issue is no longer necessary. A member of MIS will follow up with each office to determine scan-to-email

More information

IBM. Implementing SMTP and POP3 Scenarios with WebSphere Business Integration Connect. Author: Ronan Dalton

IBM. Implementing SMTP and POP3 Scenarios with WebSphere Business Integration Connect. Author: Ronan Dalton IBM Implementing SMTP and POP3 Scenarios with WebSphere Business Integration Connect Author: Ronan Dalton Table of Contents Section 1. Introduction... 2 Section 2. Download, Install and Configure ArGoSoft

More information

CONFIGURATION MANUAL FILE TRANSFER DAEMON. Version 3.7 - June 2014

CONFIGURATION MANUAL FILE TRANSFER DAEMON. Version 3.7 - June 2014 CONFIGURATION MANUAL FILE TRANSFER DAEMON Version 3.7 - June 2014 CONFIGURATION MANUAL IP2Archive 1.4 File Transfer Daemon 3.7 Copyright EVS Broadcast Equipment SA Copyright 2003-2014. All rights reserved.

More information

USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM

USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM USERS MANUAL FOR OWL A DOCUMENT REPOSITORY SYSTEM User Manual Table of Contents Introducing OWL...3 Starting to use Owl...4 The Logging in page...4 Using the browser...6 Folder structure...6 Title Bar...6

More information

Telephony Toolbar Corporate. User Guide

Telephony Toolbar Corporate. User Guide Telephony Toolbar Corporate User Guide Release 7.1 March 2011 Table of Contents 1 About This Guide...7 1.1 Open Telephony Toolbar - Corporate... 7 1.2 First Time Login... 8 1.3 Subsequent Use... 11 2 Using

More information

TRUSTWAVE VULNERABILITY MANAGEMENT USER GUIDE

TRUSTWAVE VULNERABILITY MANAGEMENT USER GUIDE .trust TRUSTWAVE VULNERABILITY MANAGEMENT USER GUIDE 2007 Table of Contents Introducing Trustwave Vulnerability Management 3 1 Logging In and Accessing Scans 4 1.1 Portal Navigation and Utility Functions...

More information

Supply Chain Finance WinFinance

Supply Chain Finance WinFinance Supply Chain Finance WinFinance Customer User Guide Westpac Banking Corporation 2009 This document is copyright protected. Apart from any fair dealing for the purpose of private study, research criticism

More information

MultiSite Manager. User Guide

MultiSite Manager. User Guide MultiSite Manager User Guide Contents 1. Getting Started... 2 Opening the MultiSite Manager... 2 Navigating MultiSite Manager... 2 2. The All Sites tabs... 3 All Sites... 3 Reports... 4 Licenses... 5 3.

More information

History Explorer. View and Export Logged Print Job Information WHITE PAPER

History Explorer. View and Export Logged Print Job Information WHITE PAPER History Explorer View and Export Logged Print Job Information WHITE PAPER Contents Overview 3 Logging Information to the System Database 4 Logging Print Job Information from BarTender Designer 4 Logging

More information

TriCore Secure Web Email Gateway User Guide 1

TriCore Secure Web Email Gateway User Guide 1 TriCore Secure Web Email Gateway User Guide This document provides information about TriCore Secure Web Email Gateway. This document is for users who are authorized to send and receive encrypted email

More information

Host Excellence. Client Helpdesk. Version 1.0

Host Excellence. Client Helpdesk. Version 1.0 Host Excellence Client Helpdesk Version 1.0 1 Table of Contents 1 Accessing the Helpdesk... 3 2 What Is A Helpdesk Ticket?... 3 3 Ticket Overview... 3 3.1 Ticket Status... 4 3.2 Ticket Category... 4 3.3

More information

Plugin for Microsoft Dynamics CRM 2013-2015 For On Premise and Online Deployments. User Guide v. 2.3 April 2015

Plugin for Microsoft Dynamics CRM 2013-2015 For On Premise and Online Deployments. User Guide v. 2.3 April 2015 Plugin for Microsoft Dynamics CRM 2013-2015 For On Premise and Online Deployments User Guide v. 2.3 April 2015 Contents 1. Introduction... 3 1.1. What s new in 2.3?... 3 2. Installation and configuration...

More information

Web Mail Guide... Error! Bookmark not defined. 1 Introduction to Web Mail... 4. 2 Your Web Mail Home Page... 5. 3 Using the Inbox...

Web Mail Guide... Error! Bookmark not defined. 1 Introduction to Web Mail... 4. 2 Your Web Mail Home Page... 5. 3 Using the Inbox... Powered by Table of Contents Web Mail Guide... Error! Bookmark not defined. 1 Introduction to Web Mail... 4 1.1 Requirements... 4 1.2 Recommendations for using Web Mail... 4 1.3 Accessing your Web Mail...

More information

Web Mail Classic Web Mail

Web Mail Classic Web Mail April 14 Web Mail Classic Web Mail Version 2.2 Table of Contents 1 Technical Requirements... 4 2 Accessing your Web Mail... 4 3 Web Mail Features... 5 3.1 Home... 5 3.1.1 Mailbox Summary... 5 3.1.2 Announcements...

More information

NHSP:Online. Uploading Agency Rates. NHSP:Online. Agency Rates Admin V2.2 Issued December 2012 Page 1 of 31

NHSP:Online. Uploading Agency Rates. NHSP:Online. Agency Rates Admin V2.2 Issued December 2012 Page 1 of 31 Uploading Agency Rates Page 1 of 31 Contents Page 1.0 Getting Started...3 2.0 Notifications...6 3.0 Downloading a Blank Template...7 4.0 Filling out your rates template...8 5.0 Uploading your completed

More information

TeamViewer 9 Manual Management Console

TeamViewer 9 Manual Management Console TeamViewer 9 Manual Management Console Rev 9.2-07/2014 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Table of Contents 1 About the TeamViewer Management Console... 4 1.1 About the

More information

mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users Inside the Box

mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users Inside the Box mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users The mysensors wireless products referenced in this Quick Start Guide have been tested to comply with

More information

WHAT S NEW IN OUTLOOK 2010 & HOW TO CUSTOMIZE IT

WHAT S NEW IN OUTLOOK 2010 & HOW TO CUSTOMIZE IT WHAT S NEW IN OUTLOOK 2010 & HOW TO CUSTOMIZE IT THE RIBBON... 2 CONTEXTUAL TABS... 4 THE FILE TAB... 4 DIALOG BOXES... 5 MINIMIZING THE RIBBON... 5 CUSTOMIZING THE RIBBON... 6 CUSTOMIZING THE QUICK ACCESS

More information

ERP guide and questions

ERP guide and questions Scandiweb ERP guide and questions Sometimes client asks you a short questions - how much would cost integration of customers ERP? And sometimes they provide some data on objects to be imported e.g. products,

More information

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1

Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 Simply Accounting Intelligence Tips and Tricks Booklet Vol. 1 1 Contents Accessing the SAI reports... 3 Running, Copying and Pasting reports... 4 Creating and linking a report... 5 Auto e-mailing reports...

More information

WebSphere Business Monitor V6.2 KPI history and prediction lab

WebSphere Business Monitor V6.2 KPI history and prediction lab Copyright IBM Corporation 2009 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 6.2 LAB EXERCISE WebSphere Business Monitor V6.2 KPI history and prediction lab What this exercise is about... 1 Lab requirements...

More information

Case Management Implementation Guide

Case Management Implementation Guide Case Management Implementation Guide Salesforce, Winter 16 @salesforcedocs Last updated: October 30, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

emarketing Manual- Creating a New Email

emarketing Manual- Creating a New Email emarketing Manual- Creating a New Email Create a new email: You can create a new email by clicking the button labeled Create New Email located at the top of the main page. Once you click this button, a

More information

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see

More information

Getting Started Guide

Getting Started Guide Getting Started Guide Mulberry IMAP Internet Mail Client Versions 3.0 & 3.1 Cyrusoft International, Inc. Suite 780 The Design Center 5001 Baum Blvd. Pittsburgh PA 15213 USA Tel: +1 412 605 0499 Fax: +1

More information

/ 1. Online Banking User Guide SouthStateBank.com / (800) 277-2175

/ 1. Online Banking User Guide SouthStateBank.com / (800) 277-2175 / 1 Online Banking User Guide SouthStateBank.com / (800) 277-2175 Welcome Thank you for using South State s Online Banking. Whether you are a first time user or an existing user, this guide will walk you

More information

Institution/Department Administrator Manual

Institution/Department Administrator Manual ETS Major Field Tests Institution/Department Administrator Manual Updated: December 2010 Table of Contents 1.0 WELCOME... 1 1.1 INTRODUCTION... 1 1.2 COMPUTER HARDWARE AND SOFTWARE REQUIREMENTS... 1 2.0

More information

MiVoice Integration for Salesforce

MiVoice Integration for Salesforce MiVoice Integration for Salesforce USER GUIDE MiVoice Integration for Salesforce User Guide, Version 1, April 2014. Part number 58014124 Mitel is a registered trademark of Mitel Networks Corporation. Salesforce

More information

Web Hosting Getting Started Guide

Web Hosting Getting Started Guide Web Hosting Getting Started Guide This guide describes: - Hosting Terms and Definitions - How to sync a domain with your hosting account - How to change your domain s nameservers - How to use FTP to upload

More information

Richmond Systems. Self Service Portal

Richmond Systems. Self Service Portal Richmond Systems Self Service Portal Contents Introduction... 4 Product Overview... 4 What s New... 4 Configuring the Self Service Portal... 6 Web Admin... 6 Launching the Web Admin Application... 6 Setup

More information

SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE

SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE SuccessFactors, Inc. 4401 Wilson Boulevard, Suite 400 Arlington, VA 22203 Tel: (703) 678-0000 www.successfactors.com Confidential and Proprietary For

More information

Auditing manual. Archive Manager. Publication Date: November, 2015

Auditing manual. Archive Manager. Publication Date: November, 2015 Archive Manager Publication Date: November, 2015 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this software,

More information

Using Webmail. Document Updated: 9/08. Technical Manual: User Guide. The Webmail Window. Displaying and Hiding the Full Header.

Using Webmail. Document Updated: 9/08. Technical Manual: User Guide. The Webmail Window. Displaying and Hiding the Full Header. Using Webmail Technical Manual: User Guide Webmail is supported in the following browsers: Windows Internet Explorer 6, Internet Explorer 7, Firefox 2, and Firefox 3 Mac OSX Safari 2, Safari 3, Firefox

More information

Time & Attendance Supervisor Basics for ADP Workforce Now. Automatic Data Processing, LLC ES Canada

Time & Attendance Supervisor Basics for ADP Workforce Now. Automatic Data Processing, LLC ES Canada Time & Attendance Supervisor Basics for ADP Workforce Now Automatic Data Processing, LLC ES Canada ADP s Trademarks The ADP Logo, ADP, ADP Workforce Now and IN THE BUSINESS OF YOUR SUCCESS are registered

More information

Refer to the Integration Guides for the Connect solution and the Web Service API for integration instructions and issues.

Refer to the Integration Guides for the Connect solution and the Web Service API for integration instructions and issues. Contents 1 Introduction 4 2 Processing Transactions 5 2.1 Transaction Terminology 5 2.2 Using Your Web Browser as a Virtual Point of Sale Machine 6 2.2.1 Processing Sale transactions 6 2.2.2 Selecting

More information

Colligo Email Manager 6.0. Offline Mode - User Guide

Colligo Email Manager 6.0. Offline Mode - User Guide 6.0 Offline Mode - User Guide Contents Colligo Email Manager 1 Key Features 1 Benefits 1 Installing and Activating Colligo Email Manager 2 Checking for Updates 3 Updating Your License Key 3 Managing SharePoint

More information

CORE K-Nect Web Portal

CORE K-Nect Web Portal CORE K-Nect Web Portal Training October 2015 KIOSK Information Systems www.kiosk.com October 2015 Table of Contents Table of Contents 1 Getting Started 2 Logging In 2 Your Account Settings 3 My Profile

More information

POINT OF SALES SYSTEM (POSS) USER MANUAL

POINT OF SALES SYSTEM (POSS) USER MANUAL Page 1 of 24 POINT OF SALES SYSTEM (POSS) USER MANUAL System Name : POSI-RAD System Release Version No. : V4.0 Total pages including this covering : 23 Page 2 of 24 Table of Contents 1 INTRODUCTION...

More information

Lenovo Online Data Backup User Guide Version 1.8.14

Lenovo Online Data Backup User Guide Version 1.8.14 Lenovo Online Data Backup User Guide Version 1.8.14 Contents Chapter 1: Installing Lenovo Online Data Backup...5 Downloading the Lenovo Online Data Backup Client...5 Installing the Lenovo Online Data

More information