Ramp Systems Interchange: User Guide
Ramp Systems Interchange: User Guide
User Guide
This document contains information for all levels of EDI Developers using the Ramp Interchange
Software
Ramp Interchange Consulting team
Version 2.0.0
Contents
Accessing the Interchange Client .................................................................................................................. 4
Design........................................................................................................................................................ 6
System ....................................................................................................................................................... 6
Components .............................................................................................................................................. 7
Trading Partners............................................................................................................................................ 9
Adapters ...................................................................................................................................................... 16
Disk .......................................................................................................................................................... 16
FTP ........................................................................................................................................................... 17
AS2 .......................................................................................................................................................... 19
Database ................................................................................................................................................. 21
POP3 .................................................................................................................................................... 23
SMTP ................................................................................................................................................... 24
Email.................................................................................................................................................... 25
Mapping ...................................................................................................................................................... 26
Trim (Left to Length), (Right To Length), Trim Space, Trim Left Space ............................................... 37
Orchestrations ........................................................................................................................................ 40
Schedules ................................................................................................................................................ 42
Messages..................................................................................................................................................... 50
Database Messages................................................................................................................................. 50
XML ......................................................................................................................................................... 59
Execution................................................................................................................................................. 79
Logging .................................................................................................................................................... 79
Branch ......................................................................................................................................................... 85
Rules ............................................................................................................................................................ 86
Spinner ........................................................................................................................................................ 90
Extensions ................................................................................................................................................... 96
Print ............................................................................................................................................................. 99
The default username is SYSADMIN and the default password is CHANGE. Server will in most cases be
set to LOCAL
System
System allows access to system settings, logging and document tracking as well as the ability to
manually execute objects
o System Setup
System Settings – Access to general settings used by the Ramp application.
System Alerts – The user can enable system alerts notifying users of issues. This
requires an interface to an email server.
System Keys
System Codes – allows for customization of certain drop-down menus in the
Ramp client
o System Security
Used to set customized usernames and passwords.
Currently Ramp does NOT track activity by specific users
Components
Components provides access to objects and setups previously created and allows users to create
and edit individual objects for use later in a setup.
o Trading Partners – used for defining EDI Trading Partners
o Resources
Database Connections
Defines databases the Ramp environment may need to connect to
Connections are made utilizing JDBC drivers with syntax being specific
to the type of database required. Here are some examples.
o MSSQL: jdbc:jtds:sqlserver://LOCALHOST:1433/RAMP
o Oracle: jdbc:oracle:thin:@192.120.201.5:1522:TESTA11
o DB2: jdbc:db2://192.168.3.40:50000/SANDBOX
o ODBC: JDBC:ODBC:DSNNAME where DSNNAME is a System DSN
residing on the Ramp server. Note that even though ODBC
connection screens in Windows will store the username and
password, that information is required in the Ramp connection
setup for the connection to work correctly.
Ports defined in the examples are the default ports used by the
database platforms referenced. If a non-standard port is used, the
connection string should be adjusted accordingly
While IPs are referenced in some examples, DNS names are supported
System Certificate – generates self-signed certificates and stores public
certificate files received from other customers or partners.
o Adapters
Allows the user to define new adapters or change setups on existing adapters.
The screens are customized by option selected. For example, the FTP adapter
screen only shows FTP options whereas the Disk adapter screen only shows disk
options.
Certain options on each screen are greyed out depending on whether it’s a data
pull or data push
o Messages – used for defining the layouts to be used. The message layouts must match
what partner is sending or expecting. There is no generic message layout for any
document in Ramp.
o Translation
While this is not required initially if one is just testing a document internally as Ramp would just
populate these values with NULL, it will be required when the time comes to exchange data with the
other partner in testing or production.
When creating a trading partner, go to the Components screen and select Trading Partners under Setup.
If you have an existing trading partner to use, you can select Search to locate it. If it doesn’t exist, you
can select New
Main
o Name - this is where the user-friendly name of a trading partner can be defined
The certificate must have the file extension .cer if it is a Trading Partner certificate
Generating a Certificate
Ramp is a self-signing application and has the ability to create its own certificates. Like with a partner’s
certificate, there may be only one certificate per Trading Partner entry
To generate a certificate, the end user must be running the application directly on the physical server
where Ramp is located. The user may also, in the case of a Windows installation, be required to select
the option Run As Administrator when executing the Ramp Interchange Client
Certain applications validate entries in these fields and some values may not be acceptable to
other trading partners. For example, for Country, US (if in the United States) is preferable to
USA.
By default, each certificate is only valid for a year but that may be modified. If the request is to
have a 10 year certificate, adding a 0 to the end of the value will accomplish this. Some partners
however have restrictions on how long a cert may be valid for. A partner may not accept a 10
year certificate and may require a certificate that is only valid for 4 years. Such requirements
will need to be kept in mind when generating certificates and it may require an organization to
have more than one certificate if established customers are using a certificate with a longer
term.
If replacing the certificate, right click and select Import after deleting the existing certificate. The same
Alias may be used if desired. If the correct certificate is installed however there are decryption errors,
the Ramp service can be reset to see if it clears the issue
The adapter screen options will vary depending on what type is selected and whether the data is being
pulled in or pushed out of Ramp.
Ramp supports multiple types of connections (of which there can be several of each type) and this
documentation will cover the most common options. Please contact Ramp Support for additional
information on any adapter not covered here.
Disk
Disk adapters are the most basic
FTP
Ramp does not have an FTP server, but an FTP adapter can be used to interact with an FTP server
external to the Ramp application.
Ramp supports multiple AS2 connections and determines the connections by the IDs used.
In an AS2 environment, certificates are utilized to secure the data. Each side provides their public key
while retaining their private key. Certificates are associated at the Trading Partner level and may not be
the trading partner that the transmission is assigned to. For example, a partner may utilize a 3rd party to
send/receive their data (such as a VAN) but have their own EDI IDs. The EDI ids would be assigned via a
Message Process before the data reaches the adapter with the adapter having a different trading
partner which has the certificate required.
Name: Assigned by the end user to identify the object. In this instance, it is recommended that
the message name and database connection be factored into creating a meaningful name as
there may be multiple connections to the same database
Description: A non-mandatory field which can be used to provide additional information
Action: What the adapter should do. This should factor in the associated message
o Read – any action that pulls data from the database
o Write – any action that inserts data into the database
Execution Option and Path to SQL File: This option is active on a Write and determines whether
Ramp should act against the specific database or if it should Generate SQL and Save to File. The
latter option can be used in the instance of troubleshooting if an error is being reported and the
cause is unclear or if the end user is testing but doesn’t want to create records. Path to SQL File
should contain the full path and filename of where Ramp should generate this data if the
Generate option is selected. Please note that if a file is specified, this file will be appended to
each time the adapter is executed.
Commit Option
o Auto Commit – the default option
o Commit on Message – Commit on each message in a document
o Commit on Document – Commit on the Document regardless of how many messages
o Commit on Session – Commit once the communication session has concluded
Database Message: The message to be used with the adapter
Database Resource: The database connection to be used.
POP3
Email adapters work with either a POP3 or SMTP adapter and extend the functionality of each
In an Email adapter setup, the options for POP3 or SMTP are enabled depending on whether the Action
is set to RECEIVE or SEND. Using the option Content Disposition, the end user can either set the adapter
as INLINE (meaning the data is viewable in the email) or ATTACHMENT (meaning the data is generated
as an attachment in the email)
Name: Assigned by the end user to identify the object. It’s recommended that the name be
relevant to the purpose of the map so it’s clear what it’s for
Description: A non-mandatory field which can be used to provide additional information
Source Message Type – the type of data that will be fed into the map. Depending on which
option is selected, this will control what the end user sees on the next field
Source Message Name – This allows the end user to select a message that is already defined,
sorted by type. If Flat File Message was selected as the previous option, only Flat File messages
will be shown. If the requested message is not already defined, select New to create it. If the
message exists but needs review, select Edit.
o This allows the user to define how the data will initially come inbound to Ramp, whether
it be from a customer or an internal system
Destination Message Type – the type of data that the map is expected to generate. As with
Source Message Type, the option selected will control what the end user sees on the next field
Destination Message Name – This allows the end user to select a message that is already
defined, sorted by type.
o This allows the user to define how the data will be generated outbound from Ramp,
whether it be from a customer or an internal system
Note that the option Map Components is greyed out. This is because the map cannot be defined until
Ramp knows the type and message for each
The message types and names have been set so Map Components is now enabled. Once this tab is
clicked the following screen will appear.
The source message is on the left and the destination message is on the right. The grey workspace in
the center is where the end user will define how to convert the data.
To start, locate the field on the source data that you wish to start with and select it. This will
automatically create a line on the map. For example, assume W0502 in the EDI needs to map to Order
Number. First W0502 is selected
Then select Order Number on the opposite side to complete the link
Default Values
There may be instances where the values needed for the destination message do not exist on the source
or the end user wishes to default a value should the source value not exist.
Right click on an existing line and select New. If one doesn’t already exist, select the field from the
destination message to start the line
For a Static value, enter the value in the Default Value field. This will be a static value that Ramp will use
regardless of the data on the source. Please note that since Ramp will initially be looking to complete
the line, the end user should repeat selecting the New option after adding the value. Click on the new
line then select the option from the left. Click on the line again and select the option from the right.
This will restore the automatic mapping and allow for the other line to just have a Destination
Parameter and Value with no source value
For a Default value, select the source value then select the destination value. Enter the Default value in
the Default Value field. Ramp will interpret this as if the data exists on the source, use the source data
else use the default value. Since the line is being modified in addition to the automatic mapping,
following the steps after creating a static value to reset the mapping may be needed.
There are additional options available by right clicking on the workspace in the map
Delete – Removes a single line from the map. Bulk deletion is currently not supported so each
line to be deleted will need to be removed one at a time
Insert – Allows the end user to add a line at any part of the map. Select the line where the new
line should go to add
Ramp Systems Interchange Users Guide 28 | P a g e
Move Up and Move Down – these options allow the lines to be moved as needed. The order of
the lines in the map may assist in troubleshooting however Ramp uses the destination message
to determine how the final output should be laid out, not the order of the lines in the map
Comment Line and Activate Line – There may be instances where a line is mapped but shouldn’t
actually map the data. This may be due to troubleshooting or possibly a change request where
a field change needs to occur. When a line is commented, it turns yellow and Ramp ignores it
when executing the map. Activate Line is only available on a line that has been commented out
and restores the line functionality.
Map Functions
There might be an instance where some additional data manipulation is required in a map and a simple
one to one mapping does not suffice. Map functions allow the end user to do this and the following are
some examples of how to implement this useful feature.
A function can be used in more than one map even if the orchestrations are running in parallel. The
results are restricted to the map they are running so any lookups will stay with the setups they are
running in. It’s recommended functions have a meaningful name but also a generic name unless the
function will only be for that setup.
To create a new function or add an existing function, select the option from the upper left portion of the
map
The input parameter is Position 1 with the value incrementing for any additional Input parameters. The
parameter is assigned ? on the SQL statement. There must be a one to one ratio for Input parameters to
? symbols. If VendorSKU is being passed more than once, it must have multiple ? indicating each
location in the SQL that it’s being passed.
The output parameter is also in Position 1 as it’s the first Output returned. If multiple fields are being
pulled by the SQL statement then there would be multiple Output parameters.
SQL functions cannot return more than one row of data otherwise they may error so the SQL should be
designed to limit the output to one row of data.
A SQL Function can have multiple steps in case additional calculations are needed with values from each
step either being standalone or passed to the next step.
For example, assume for illustration purposes that a default SKU should be inserted if the Warehouse
SKU doesn’t exist. While this technically could be done in one step, this simple example is solely to
illustrate the functionality
Step 2 could also hypothetically have been a completely separate lookup with the values from Step 1
and 2 being passed to a Step 3. Even though the parameter WhseSKU was passed as an input to Step 2,
it is also available for mapping if needed.
Input parameter would be defined as needed and if there are no input parameters, one should still be
defined to trigger the procedure
Unlike a SQL function where the output parameters start at position 1 and increment, the stored
procedure output parameters start at position 2. Each output parameter from the stored procedure will
need to be defined regardless of whether it will be used on the map.
While most functionality may be handled by using SQL, Ramp has built in functions to handle certain
operations.
Using the following with either Append or Prepend will fix the length of the value
If the counter generates the value of 9 and the option is set to Append, then it will return 9000000000.
If the value is 99999 then the value returned will be 9999900000 and so on. If the function is set to
Prepend, then the values would be 0000000009 and 0000099999 respectively.
If one value is a specific value not in the source data (such as dividing or multiplying by 100), use the
field Value next to Name to define the static value. Data Type next to Name also may need to be
modified to indicate a numeric value vs a string
Multiple math operations of different types cannot be combined in the same step using this method. A
SQL function is recommended in those cases.
Round Up
Round Down
Set Precision Round Up
Set Precision Round Down
Set Precision Truncate
In the following screen, value will be rounded up or down depending on the Type selected. Factor
indicates the number of decimal places.
Trim (Left to Length), (Right To Length), Trim Space, Trim Left Space
These options can be used to remove spaces and trim an input value down to a specific length
Current Date/Time
This is the only function that does not have an input parameter. It is designed to generate the current
system date and time and return that to the end user.
To map, take the value(s) from the source that will be sent to the function and map to the input
parameter
Then take the output parameter from the Source menu and map that to the destination field. Review
the example below
In this example, W0105 at the detail level was mapped to Vendor SKU in Sample SQL Function.
WhseSku appears as an Input and Output Parameter as it’s the output of Step 1 but also the Input of
Step 2.
In the case of a function with multiple steps, the initial inputs and final outputs are usually mapped. A
parameter would also be mapped if it is needed on an intermediary step that but isn’t passed on a prior
step.
To Export, first click on the record to export then select Export. If the record is not selected, Ramp will
return a popup indicating “Please Select a Record to Export”. Once Export is selected, the end user may
select a path and filename to save the file. It’s recommended the file name indicate the name and type
of an object. The file extension used for these objects is .RDO (for Ramp Database Object) and may be
added afterwards if not selected on the export. This export may then be sent to Ramp Support if
needed or reimported to any Ramp setup. Before reimporting, be sure that the object in question
doesn’t already exist as Ramp will overwrite all settings related to an object. If for example, a map is
being reimported the source and destination messages will also be reimported along with any functions
or other settings on the map. If other objects use these, a reimport may also affect those setups.
To Import, select Import and then select file to import. The user must be in the relevant menu to do the
import as a Map Object cannot be imported into a Database Message screen. Ramp will return an error
if the wrong association is made and will note in the error the type of object that is being imported. This
should assist the user in selecting the correct object.
The “Start Shape” feeds data into the setup. To define the Start shape, double click on the Start Shape.
The default option is Automatic, meaning not yet defined OR fed by another Orchestration or setup.
Setting it to use an adapter may be set by selecting the drop-down arrow
Once Adapter Type is set, Adapter Name is filtered based on Adapter Type. For example, if AS2 is
selected, only AS2 adapters defined in the system are shown. The user can also choose to create a new
adapter if one does not already exist.
Please note the Start shape will not show all adapters as it filters out those that send data. Only those
that are setup to receive data are shown on this screen. If creating a new adapter, it is recommended
that the type be included in the name (such as Test Disk Read) as the adapter shape doesn’t change
based on type after creation.
Additional instructions are set by dragging objects from the Design screen onto the workspace. Each
object has a red arrowhead. The arrowhead should be dragged to the next object in the sequence using
the mouse and then released. When the arrowhead turns from red to green, that means the objects are
connected.
Please note the arrowhead must be dragged to the object to connect it. The object cannot be backed
into the arrowhead to make the connection. Even if the objects appear to be touching, if the arrowhead
is not green, they are not connected.
Objects should be connected in the order that they will be executed and not all objects are required for
each setup. An Orchestration at a minimum must have a Start and a Finish shape so a user may save a
work in progress by adding a Finish shape to it. If a setup does not have a Finish shape, it may not
properly save.
In the example above, the Start shape is associated with a disk read. This pulls data into the
Orchestration and passes it through the map. The output from the map is returned to a disk location
followed by a Finish shape advising Ramp that all steps in the job have been completed.
Please note that objects may be used in multiple orchestrations and deleting them from an
orchestration will not delete it from Ramp. If the object is deleted from any menus, that will delete the
object permanently and the deletion cannot be undone. Great care should be taken before
permanently deleting any object as if another setup uses that object, Ramp will encounter performance
issues when the other setup attempts to locate the now deleted object. If an object was deleted in
error, it should be recreated with all settings including the same name that the previous object had. If
the end user had exported the object out of Ramp prior to deletion, the object may be reimported.
Schedules
A schedule allows a setup to run unattended at an interval of the end users choosing. Data is logged as
if it was run manually so the user has access to logging in case any review is needed
There are three ways to define and set a schedule. Two of them are illustrated below
Name: Assigned by the end user to identify the object. It’s recommended that the name of the
schedule reflect its purpose such as “Run Every 30 Minutes”
Description: A non-mandatory field which can be used to provide additional information
Run Time
o Batch – Time Window: Allows the end user to indicate specific start and end times with
a specific “sleep time” in between runs.
o Batch – 24 Hour: Indicates to run all day with a specific “sleep time” in between runs.
o Fixed Time – Daily
o Fixed Time – Weekly
o Fixed Time Monthly
Interval (in Seconds) – Indicates a sleep time in seconds. For example, if the job should run
every 30 minutes then it would be 60 seconds x 30 minutes which would result in 1800 seconds
as a sleep time. Please note the sleep time should be a reasonable time which would allow
Ramp to process data if it finds it. Setting a sleep time to anything lower than 5 minutes may
cause performances issues.
Days To Run – at least one day must be selected before the schedule is enabled. The end user
may select Monday – Friday, Monday – Sunday or another combination of days. Failure to
select a value before enabling the schedule may cause performance issues.
If the Schedule option is set to Fixed, some of the options will change
Activating a Schedule
Once a schedule has been defined to an object, it must be enabled if the schedule is not already set to
Enabled. Please note schedules are independent of any objects in the system so the same may be
associated with multiple objects. It may be enabled for one but not another.
The scheduler inside of Ramp must then be refreshed to ensure the schedule is activated. To do this, a
full reset of Ramp is NOT required. Select SystemSystem ManagerManage System. The following
box should then appear
Select Stop to stop the current scheduler then refresh to refresh all settings and finally select Start to
restart it. When stopping the scheduler, ensure the status returned is Stopped. If the reset returns an
error message indicating that the scheduler cannot be stopped, it’s most likely due to job still running in
the background and the end user should give a few minutes to allow for completion. If this doesn’t
clear, then stop and restart the Ramp Service on the server. Restarting the service automatically
refreshes the scheduler and only takes a few moments. A full restart of the machine is not required.
Restarting the scheduler is preferred to restarting the service as it normally allows any jobs in process to
complete.
If the schedule does not need to be come active until the next day, no action is needed as Ramp
automatically resets it’s scheduler at midnight.
Ramp Systems Interchange Users Guide 46 | P a g e
Database Resources
Before interfacing with a database, a resource object must be created in Ramp to tell Ramp how to
connect to it.
To do so, select Components from the lower left-hand corner, then Resources from the blue area
followed by Database Connections. If you have not created a new database connection yet, right click
and select New. Otherwise Search should be used to pull up all existing database connections at which
point the user can select one and either Edit or Delete it.
If the user selects New, they will see a screen like on the left side of the image. Otherwise, an existing
one will show up as on the right side of the image.
Database URL indicates the connection string to connect to the database. It will vary depending on
which database platform the user is interfacing with however it requires the use of the
JDBC syntax. The example above is for Microsoft SQL Server
Once the information has been entered, it may be validated using the Test Connection option
If the test is successful, the box on the right-hand screen will appear. If there is an issue, a box will
appear indicating what might be the issue
A connection can be created and saved without being tested. The testing option allows for validation of
the connection but the step is not required.
Database Messages
Database Messages indicate how Ramp should interact with the database once it connects. To create a
Message, the user should select Components from the lower left followed by Messages and then
Database from the blue area. If the user is already in the components submenu, there is no need to
reselect Components
When setting up a new Message, the user should first provide the name of the object. It should be a
descriptive name that indicates what the object will do (ex: Sales Order Select). The Description field is
not required.
If the user selects New, they will see a screen like the following. Type has been selected in this image to
show the various options available
Insert – Singular or Multi-table insert into a database. If doing an insert into more than one
table, they can only exist in the same database. The user cannot use the same database
message to insert into multiple tables in different databases.
Insert or Update – check to see if the record exists and act accordingly. A message key is
required for this functionality to work
Insert if Not Exists – Similar to Insert or Update except that it only acts if the record does not
exist.
Update
Delete
Stored Procedure – calls a specific stored procedure as designated by the user. Like with inserts,
being used in a database message with multiple types, the stored procedure must exist in the
database the other objects are referencing
A Database Resource is normally not required prior to creating the Message however it is useful in
setting up the message as the user can utilize the Database Component Builder to assist in setup. It also
has the added benefit of helping the user test the connection to ensure no issues
To activate the Database Component Builder, the user should select Edit – Database Component Builder
from the Database Message screen
If the Database Component Builder will be used, any settings already in place on the Database Message
(except for the name) will be overridden.
If the User has SQL they already have defined and wish to use that instead, they can copy the SQL into
the Select portion of the database message screen and select Build Component Parameters
When the user selects either Database Component Builder or Build Component Parameters, the
following screen appears
If the user selects OK, the client may initially appear to have frozen while the connection is established.
If Build Component Parameters was selected, the system does not proceed past this step once it
validates the SQL and creates parameters.
With the Database Component Builder, once the connection is made, the system pulls a copy of the
schema that the login has rights to. Depending on the network resources and size of the database, it
may take a few minutes to retrieve the data initially. Once this has been done once, the system should
cache this information so the user doesn’t need to keep waiting if they rerun the builder.
If the connection errors, the user can retry by modifying settings in the screen. These settings however
will not update the Database Resource so once any issues are resolved, the user should go back to the
Database Resource screen to make any corrections.
Once the connection is established, a screen will appear like the following
Under Database Component Type, select what type of Database Message is required
Once both have been selected, the user can either select Move All (recommended for single table) or
drag and drop individual fields from left to right (recommended when one or two fields are required or
in conjunction with a Move All if doing a multi-table select). If doing a select and a multi-table select is
required, select an additional object then repeat the process before selecting OK. Otherwise select OK.
If doing an “Insert if Not Exists” or “Insert Or Update”, the system will key off either a singular or
multiple value to check to see if the value exists in the database before proceeding. Those values can be
selected by selecting the specific parameter(s) from the Parameter list and change Type from Input –
Normal to Type Input – Message Key.
Here’s an example of a multi-table insert with a message key and Insert if Not Exists set
Here’s an example of a Single Table Select followed by an example of a Multi Table Select
Also, note that the parameters are of type “Output” on the Select as they are values returned to Ramp
whereas on the Insert it is type “Input” as it’s being inserted into the database. In the case of a Select,
there should be one parameter per field being returned on the SQL. For example, if the select is
returning 26 fields, the number of parameters should also equal 26.
If the user needs to edit the statement to add or subtract fields, the parameter list can either be
manually modified or the user can run Build Component Parameters to reset the list to reference the
most current number of fields.
In the instance of a Stored Procedure, there will be Input AND Output values depending on whether
data is being fed into the Stored Procedure or if it’s just being called. The following is an example of a
Stored Procedure in a database message. Note this is the same DB message from the Multi Table insert
however it’s a different step
Parameter Type Input indicates the value(s) to be passed in. These can come from a Map Object or they
can be hardcoded (as shown above). In this case, the hardcoded value is GEN_PDETAIL_LINE_ID
Output indicates the value to be returned. There should be one output parameter per field returned.
Component Map
When doing a database insert it may be necessary to generate a key value that then gets passed to the
associated parts of the message – for example a primary key on a header record that must also be
placed in the detail records
The component map tab then specifies what field this value should be inserted into at each step of the
insert
Ramp can utilize a sample message as a template to create the desired message layout.
The left screenshot would be if the user accepts the existing option. The second screenshot
requires the user to select the option from Repeating Node Type. The user must then key in the
Attribute name to use as that does not auto populate. An example of when a user might use the
latter is below
10. The user would then break the data out into components as needed – for example breaking up
the data into Header and Detail information. For reference purposes the user can highlight the
first row then scroll down to the XPATH to confirm where in the layout Ramp is referencing.
Because a flat file is user defined, the user must explicitly state all positions that could appear in the file
regardless of whether they are being mapped.
When creating a flat file, the first screen has the following options
The Name field can be edited to replace DEFAULT with an alternate value or it may be left as is. In a
single format flat file, changing the value is not required however in a multiline multiformat flat file, it’s
required.
Right click under Data Elements to add the number of positions required and field names. The option
Add Multiple allows for adding of multiple fields at one time. Please note that Ramp requires a name
for each field before it will allow the profile to be saved so if multiple fields exist in the file, it may be
helpful to add them in batches of 5 or 10 in case it needs to be saved and revisited later.
If the source data has column headers, a sample file can be used to automatically create these values.
Name
Address
Address
City
State
It will need to be entered into Ramp as something similar to the following to ensure each field name is
unique:
Name
AddressOne
AddressTwo
City
State
If the fields are entered and duplicate fields exist, Ramp will place a red bar on the field that appears to
be the issue and show a message indicating the field in error
Please note that Ramp considers the start position in a file to be position 0, not position 1. It would also
be helpful to obtain from a third party a positional text editor as such editors report the rows and field
positions in a data set. There may be instances where a specification for a positional file does not match
the actual data provided and a positional editor can assist in narrowing down the cause.
Each line would need to be defined separately with each field defined
In the first component, the name was changed from DEFAULT to Header as it was more descriptive
The OrderNumber field was also changed to Normal – Message Key telling Ramp there is a new order
each time this value changes. Ramp only validates that the value changes, not that Ramp has or has not
already processed it. If the OrderNumber repeats in the file, it will repeat in the destination. It is up to
the partner to ensure quality data is passed.
Because X12 follows a standard in regards to how the documents are identified, read and processed,
Ramp automatically understands how to process the data and has the standards preloaded to assist in
setup
In the first tab, the user should define the following. What is selected on this screen determines what is
shown on the following screens.
Name: Unless your organization is defining the requirements for partners to send to you, it’s
recommended that a layout be created for each partner.
o Tip: Putting the name followed by the document number groups setups for each partner
together in the message list
Description: This is for the user’s own reference and is not used by Ramp
Standard: Either X, U, or VICS.
o Tip: If unsure of what the standard is, leave it as X. It may be changed later
Version: 4010 is selected by default. If another version is needed but not loaded, contact Ramp
Support
Transaction Set: The user may select the document number from the drop down or may start
typing the document number to fast track to the document required.
While the user does have the ability to manually create lines, the use of the X12 Message builder is the
suggested approach.
Choose X12 EDI Segments – This allows the user to define the initial layout. If a layout already
exists and this is selected, it will replace the existing layout
Add X12 EDI Segments – This allows the user to update an existing layout, in the event of a
change
On the left are all the possible segments that could exist in a 940, which was selected on the previous
screen. Click on each segment that is required and select Add to move it over to the right-hand column
Multiple source segments may be selected by holding down the Ctrl key and using the mouse. There is
no “Move All” on this screen because only the segments that will be received should be selected.
Note that lines such as ISA, GS, ST, ST, GE and IEA do not appear on this list. That is because they are EDI
Control segments that appear in every EDI document and as such are added by default.
If the segment list doesn’t match what you need, select Cancel and go back to the previous tab to
ensure the correct document number was set
Segments are listed in the order that they appear in the standard and at times there can be more than
one instance of the same segment. Use a specification or sample document as a guide to ensure the
correct segments are selected.
In the example for fictional company Scuba, the N9 and G62 lines repeat however in the EDI layout they
only need to be defined once for now
If after creating the EDI layout, it’s determined a segment was not selected, select Add from the Edit
menu and then select the segment(s) required. Once that is done, the initial view of the EDI layout may
change and it may appear that it’s not loading correctly. That is because the screen resorts by position
number where as the original screen sorted by Segment Type and Position Number.
Once you have selected all the required segments, select OK. A screen like the following should appear
Now, as indicated earlier, the N9 and G62 segments repeat. For values in these fields to be properly
captured for mapping purposes, qualifiers must be set.
Qualifiers are needed when the data repeats and the Qualifying position (which varies by segment)
changes the business meaning of the data.
G62*68*20181219~
G62*10*20181206~
G62*01*20181219~
Some companies may send the same segment multiple times with different qualifiers but only one or
two may be needed by the recipient. In that instance, only the required qualifiers should be defined. All
others can be ignored.
To add qualifiers, highlight the segment then highlight the element to be qualified
To add qualifiers, type in the first qualifier and then select Add&New and continue to add as many as are
needed. Once all qualifiers are added for that segment, select OK. If Add&New is accidentally selected,
just select Cancel and all qualifiers previously added will remain.
If an error was made on any qualifier or to review what qualifiers have been added, select X12 Qualifiers
from the X12 Message screen. Qualifiers may be edited, deleted and added on this screen.
Note if you add qualifiers on this screen, be sure to select the correct loop id and Segment Type else
Ramp will not be able to match up the qualifiers to the segments.
When viewing the X12 Profile on the Mapping Screen, the layout with no qualifiers defined appears on
the left. The same layout with qualifiers defined appears on the right
Ramp handles this document by having the user define one instance of each segment that could appear
then the Level structure. For example, if TD1 (Weight and Pieces) appears at the Shipment and Order
levels, it only would be defined once in the X12 layout initially
In the mapping tool, this layout would appear like the image on the left without HL qualifiers defined
and on the right with HL qualifiers defined.
It’s available as part of the source message should the end user require a value from it. On the outbound
message, it may be mapped to if the end user needs to override a value on the trading partner when
generating the document, such as if the value in ISA11 must be replaced with a non-standard value
To manually execute a setup, right click on it and select the desired option from the popup box
The user may make modifications to the job by selecting Edit OR by closing the screen and going
to File then Open Orchestration.
o If an Orchestration is being modified while Manage Orchestrations is open, the Manage
Orchestration screen should be closed and reopened before running that Orchestration
as the Manage Orchestration screen will execute based on how the setups were built
when the screen was opened.
o Selecting Edit from the Manage Orchestrations screen when modifying a job will update
it to have the most current information on an Orchestration.
Enable and Disable are only used if the job has a schedule attached. Selecting Disable does not
prevent the job from being run manually.
Once the user selects Execute
o If a popup appears, that may indicate an issue with the setup
o If the screen appears to hang for a brief period, it could indicate either a large data set
or setup issue
o If the box disappears, that means the job completed without error. It does not
necessarily mean that the desired output has been achieved
Logging
To check the status of a setup after execution, the user should select System Monitor followed by
Execution Logs then Orchestration Log. Once the screen appears the user can either right click and
Ramp Systems Interchange Users Guide 79 | P a g e
select all activity or add filters. It’s recommended initially that no filters be set until the user has
confirmed activity on the system.
Once activity is returned, a screen like the following will be returned. In the example, a specific job and
time frame was selected. All entries within the specific time period are returned along with indications
of when they ran (Start Time) and time completed (End Time)
The user may right click on a specific entry for more information.
The following is an example of what the user might see when selecting View Documents. The first tab
indicates data fed into Ramp and the second tab indicates output returned. By right clicking on the
Document entry, the user may view the input or output in Ramp.
The user also has an option this screen to retry the document.
In addition to the Orchestration Logs, Ramp provides document tracking broken down by document
type and direction
Inbound Document Tracking refers to data coming inbound to Ramp whether it be from a customer or
from a system internal to your organization
Outbound Document Tracking refers to all outputs created by Ramp whether they are destined for a
customer or are being sent inbound to internal systems.
The view will vary depending on the data type selected. For example, an X12 layout will appears
follows. Please note that due the number of columns in the X12 view, two screenshots are used.
If the user is doing a search based on flat files, the screen will appear as follows
If the document is an X12 document, the fields Sending Trading Partner and Receiving Trading Partner
will be filled in with the user defined Trading Partner name.
If they are blank then either the trading partner is not yet setup or the values used do not match what
was actually received.
The first is the number of Branches. The minimum number is two however there is a maximum set of
100. A Branch shape can also connect to another Branch shape which may assist if there may be
additional paths to select.
The second option is Continue When Branch Errors. The purpose of this option is to instruct Ramp if it
should proceed if an exception occurs. For example, if the system is reading a database message to
generate a file and the output errors, does the end user wish to mark the records so they aren’t
reprocessed.
If for example, the end user selects two Branches, the icon on the left is what will appear. The end user
can then use their mouse to split the arrow into the two Branch options. Note that while the middle
icon has 1 on the top and 2 on the bottom, the third icon has the reverse. In either case, branch 1 will
be executed before branch 2
Main – indicates name of Rule and for some types provides additional commands to run
Rule Parameters – value to check for
Rule Output – value to check against
Rules can only check for one condition at a time so if multiple conditions need to be checked, a rule
shape should route to another rule shape.
Unlike other objects, Rules have multiple arrows when created. There is an arrow for each potential
output along with one designated as “Not Matched” meaning the data did not meet any of the
conditions in the check. This allows the user to control what happens to data that doesn’t meet the
conditions being checked. In those instances the data can be routed to a rule, sent using an adapter or
even dropped by routing to a Finish shape.
The following are a few examples of ways a Rule shape may be utilized.
The Rule Parameters tab indicates that the document property of File Name should be checked and the
Rule Output tab indicates the values to check for.
Note that as the Position value under Rule Parameters is 1, the position value for Rule Output is also 1
In the first tab, the user is defining a specific SQL command to use. Please note for this specific example,
the SQL is being run against the data being passed to it and as a result the data set must be the output
of a database select or stored procedure.
Alternatively, the user could use SQL that checks a database for a specific record or condition passing a
value from the source data.
In the SQL defined, the ? symbol is used as a placeholder to indicate where the parameter value should
be passed in.
On the third tab the user indicates what output value to check for
Spinners should be placed after the Start Shape at the beginning of the Orchestration
1. File Spinner – An example of where this might be used is if you have a Start Shape with an FTP
receives 5 files. Instead of passing all files to next step, for example a map, it sends one file at a
time thru the entirety of the rest of the Orchestration, then comes back and gets the next file. It
can be modified to allow continuation on error.
2. Message Spinner – In this example, any number of files are passed. Ramp reads all of them into
messages. If you had one 940 file with 10 orders, Ramp sees that as one file with 10 messages.
It would send each message one at a time thru the rest of the orchestration, same as above.
There are multiple options available and the following are some of the more common uses
Please note the Sequence numbers could change based on the number of options specified in the
message process (as multiple options can be set in the same Message Process
To add any step to a Message Process, right click and select New then select the relevant options on the
right
Sequence: 1
Action: Set Document Property
Source Type: Static Value
Property Name: Sending Trading Partner
Value: This value will be the user friendly Trading Partner Name which appears as the first column when
selecting the Trading Partners lookup screen
Ramp Systems Interchange Users Guide 92 | P a g e
Trading partner assignments are done in pairs so repeat the process for the Destination or Receiving
Trading partner.
Sequence: 2
Action: Set Document Property
Source Type: Static Value
Property Name: Receiving Trading Partner
Value: This value will be the user friendly Trading Partner Name which appears as the first column when
selecting the Trading Partners lookup screen
The first option when formatting the file name should be Set File Name. Append To File Name and
Prepend to File Name will not work correctly if there is not an initial file name
Sequence: 1
Action: Set File Name
Source Type: Static Value
Value: PARTNERNAME_
There are multiple ways to set a unique value and below are some examples
Sequence: 2
Action: Append to File Name
Source Type: Current Time in Milliseconds
OR
Sequence: 2
Action: Append to File Name
Source Type: Sequential Number
Value: The value that the sequential number should start at. Please note this doesn’t reset to zero on
each run but can be edited to have a specific start value
Length: This may be used to set a specific length for the sequential value. For example, if Length is 5 and
Sequential value is 1, the value would appear as 00001
OR
Sequence: 2
Action: Append to File Name
Source Type: Current Date (Set Mask)
Sequence: 3
Action: Append to File Name
Source Type: Static Value
Value: .EDI
On inbound this value can be set however on outbound, the option Generate Document Data must
precede it as Ramp must have a physical file (vs a file in memory) in order to do the search on
For Value, the format should be the value that is being searched for followed by /? followed by the value
to replace it with
For example, a request to replace the value N9A with the value N9 would be formatted as follows
Embedded Extension
In this example, a Custom Class object was added to Ramp Interchange by Ramp Support to handle a
condition that the base code could not or to simplify a process that the base code might have needed
more steps to run. For more information on Custom Classes, please contact Ramp Support.
External Program
In this example, an external executable is called
The parameters tab uses a mixture of Static values and a value from the query to complete the setup
Database User Name – the name of the login for the Ramp environment. The user ramp must
be a database owner on the Ramp database with full rights to it
Database Password – the password to access the Ramp database. This is not the same login as
the Ramp client
Database URL – connection information on where the database is located
Web Server Port – what port the built in web server is listening on. This can be changed if
needed
Client Request Port – what port the Ramp client should connect to the Ramp server on
External IP Address – if AS2 is utilized, this value is required to be a value other than
UNDEFINED. It should represent the external IP or DNS address that AS2 will come in on. Only
one value can be declared here
Web Server Path – Path to the built in web server for Ramp
Users can archive source input and output as part of their orchestrations or trading partner setups if a
file was created.
While the amount of time can be adjusted as needed, please note it will affect the size of the Ramp
database and amount of available disk space. Setting the value too high might negatively impact
performance. If it is found the settings need to be lowered, they should be adjusted and the Ramp
service will then need to be restarted. At that point, Ramp will do automatic cleanup which may
temporarily impact performance depending on how significant the difference in settings was.
There can be multiple alerts defined in the Ramp environment and access to an SMTP server is required.
If the specific option is selected, Alert Components is then enabled. The end user will need to right click
and select New, then specific the Object Type and Object Name to be monitored
System Codes
System Codes shows the available options for some of the screens in Ramp. The following groupings are
available
This table may be edited by the user to add options that may not exist. To add a value, right click and
select New then enter the required information
List Name – the grouping associated with the entry. It cannot be a new name and must match
an existing list
Code – the value to be added
Description- a user defined description of what value has been added. For example, delimiters
appear on the list as the name of the delimiter followed by the character.
Deleting values is not recommended unless a value was added in error. Please contact Ramp Support if
the wrong values were deleted and the user is unsure how to add them back correctly.
Objects are sorted alphabetically on the menus so if you have multiple documents for a partner, you
may want to add the customer name followed by the document set or type
Special characters especially reserve SQL server characters should not be used as this will potentially
create errors. All objects are stored in the database and accessed via the front end so a special
character may throw an error when attempting to retrieve an object. If this occurs, please contact Ramp
Support for further guidance
X12 856
o BSN*03 (Date)
o BSN*04 (Time)
o HL*01 (Segment Loop Counter)
o CTT*01 (Number of Line Items)
X12 945
o LX*01 (Sequential Loop Counter)
o W03*01 (Total Items Shipped)
If mapping a document where the parameter names in the source and destination maps are close, Auto
Map can be selected. Ramp will attempt to match the source parameters to the destination
parameters, filling in rows on the map. It may require editing afterwards however depending on the
names of the parameter it may assist in mapping.
For example, setup an orchestration with a disk adapter that reads from an invalid drive letter or is not
properly formatted in the path (ex X:\ or C:\\pathdoesnotexist)
jdbc:oracle:thin:@127.0.0.1:1521:dbname
jdbc:jtds:sqlserver://127.0.0.1:1433/dbname
jdbc:db2://127.0.0.1:50000/dbname
jdbc:postgresql://127.0.0.1:5432/dbname
ODBC
o as400:
o jdbc:odbc:dbname_SYS_DSN (replace dbname_SYS_DSN with the name of the DSN)
o Please note that even if the user id and password were used to set up the DSN it must
still be entered in Ramp
o The DSN must exist as a system DSN on the Ramp server
o JDBC drivers are more stable than ODBC drivers so ODBC is not preferred. This option
should only be used if a JDBC connection format is not available for the resource.
The counter will start at 1 and continue to increment by one for each document generated. By default,
the same control number counter will be used for all outbound documents including EDI 997 Functional
Acknowledgements.
If it was ever requested to change the control number, edit the value in X12 Control tab for the trading
partner. If the value doesn’t already exist, right click and Select New if a specific starting number should
be used. If the value does exist and the counter just needs to be changed, edit the entry to the starting
value – 1. So if the previous value was 5 and the next document created should be 500, the value should
be edited to 499.
Deleting the entry in the X12 Control tab will reset the counter back to 1.
There may be an instance where its requested to have separate control number counters by document
type, in this example a 944 and 945. If the entry for ALL already exists, modify the first line and then add
a second line. Please note that the functional group for each document type must be specified.
To have Ramp do this by default when creating the counters initially, set Control Number Share Mode
on the X12 settings tab to “Do Not Share Across Transactions”
In the examples below the same value is used for ISA and GS. Please note that Ramp does support
instances where the values are not the same. In that case, edit the counter to have a different value for
ISA and GS after the first documents are created and Ramp will use those for that point forward.
Ramp Systems Interchange Users Guide 108 | P a g e
X12 Control where the same counter is used for all documents