Information and Assistance

Copyright 2017 Cleo. All rights reserved. Cleo is a trademark of Cleo. Cleo EEI is a registered trademark of Cleo.

Contact Technical Support and Software Assistance

Cleo can be reached at the following locations.

For questions on... | Contact
Product installation and usage questions | 1-866-444-CLEO (2536) International - +1 815-282-7894 Email: PAsupport@cleo.com
Professional Services Project assistance Questions about product licenses or delivery | Cleo Customer Account Manager 1-(888)-334-3986 1-(570)-628-5500


Introduction to EDI

Before installing and using Cleo EDI Integrator (EEI), you should have a basic understanding of the Electronic Data Interchange (EDI) process and the use of EDI standards.

EDI Basics

Electronic Data Interchange is the transmission, in a standard syntax, of unambiguous information between two (or more) independent organizations. EDI can be thought of as a common “language” used to transfer information from one computer to another without changing either computer’s internal database.

Standards are formats for EDI documents that specify where information goes within a document.

To use EDI, you and your trading partner must follow the same rules to format data so you both know how to find particular pieces of information. Standards are the rules that ensure everyone who is participating in EDI is speaking the same language. Your industry and trading partners determine which EDI standards are used.

Without a standard format, every document type for every trading partner would require custom programming.

While a translation from the user’s database to and from the standard formats is required, this translation need only be set up once.

EDI Standards

The most common standards in the U.S. are ANSI X12, also called ASC X12 or just X12. ANSI is developed by the American National Standards Institute.

Regions outside the U.S, such as Europe and Asia, most often use EDIFACT, or Electronic Data Interchange For Administration Commerce and Transport, which was developed under the United Nations.

Another standard you may encounter is TRADACOMS, which is primarily used in the UK.

All three have different message IDs and envelopes, and each uses a different, though similar, syntax.

Communications

The data transportation method is determined by various factors, such as cost, security, and compliance with your trading partner.

Once you take into account all of your trading partners and their requirements, you will likely end up using a mix of data transport methods. (Such as AS2, FTP SSL, and FTP, etc.)

VANs

A Value Added Network, or VAN, is a private network provider hired by a company to receive and send EDI data, and/or provide other network services.

A VAN is a go-between for trading partners, allowing you to send data to a single location in lieu of dealing with multiple trading partner connections. Data files are sent to the VAN, which stores the file in an electronic mailbox. The receiver can then pick up the files (sent by multiple trading partners) from their (single) mailbox.

When an EDI document passes through two VANs to get to its final destination, the connection is called an interconnect.

Using EDI

To use EDI, you and your trading partner must agree on:

  • the standards to be used.
  • the documents to be exchanged.
  • each document's mapping specifications.
  • a communications protocol (FTP, etc.) either directly or through a third-party network.

Determine where in your database the corresponding information is (or will be) stored and match those fields with the elements in the agreed-upon standards. This process is called data mapping.

For documents you are sending, EEI uses the mapping to translate your data into the standard format and send it to your trading partner. Documents you receive are translated from the standard format into the format specified for your database.

Terminology

A business document, such as a purchase order or invoice, is called a transaction set in ANSI X12 terminology and a message in UN/EDIFACT terminology.

Each document consists of a list of segments which can be thought of as records. Mandatory segments must be used in each document. Optional segments are available for use according to an agreement between trading partners.

Each segment consists of a list of elements, which can be thought of as fields in a record. Like segments, elements can be mandatory or optional, or their use can be conditional. Conditional elements are dependent on the use of other elements in the segment.

There are three element types:

  • A simple element contains a single data element value.
  • A composite element is a data element containing two or more component elements.
  • A component element is a simple data element which is a subordinate position in a composite data element.

EDI Messages

There are many different document types, and many are industry-specific. The document "names" vary depending on the standards you use. For example, the message designation for a purchase order is "850" in X12 and "Orders" in EDIFACT. Others include:
  • Invoice: 810 (X12); Invoic (EDIFACT)
  • Motor Carrier Load Tender: 204 (X12)
  • Ship Notice/Manifest: 856 (X12)
  • Dispatch Advice Message: Desadv
  • Delivery Schedule Message: Delfor

Envelopes

An electronic envelope consists of codes that mark the boundaries of electronic documents. The electronic envelope contains the document. To transmit EDI transaction sets to trading partners, you must enclose the transaction sets in electronic envelopes.

An electronic envelope can have three layers.
  • The first layer is the transaction set envelope which contains a document.
  • The second layer is the functional group envelope which contains groups of like documents.
  • The third layer is the interchange envelope which contains all documents for a specific trading partner.
The interchange envelope is the outermost layer and encloses the first two layers. It also identifies the sender and receiver information.

The functional group is mandatory for ANSI X12 documents and optional for both EDIFACT and TRADACOMS documents

  • Wrapped and Non-Wrapped EDI
    EDI can appear as either fixed-length wrapped EDI or variable-length non-wrapped EDI.
  • EDI Envelopes
    EDI data is enclosed in enveloping layers that give information about the message(s) they contain.


Wrapped and Non-Wrapped EDI

EDI can appear as either fixed-length wrapped EDI or variable-length non-wrapped EDI.

Wrapped EDI

A wrapped transmission/connection indicates that there could be multiple segments per record. If the end of the record is reached before the end of a segment, that segment is continued (or “wrapped”) to the next record.

Wrapped EDI records are always of the same record length – they cannot be of variable record length.

If EDI receives a wrapped transmission file, it unwraps it during processing, creating non-wrapped EDI. (The original wrapped EDI is still available for viewing.)

An example of wrapped EDI is:

Non-Wrapped EDI

A non-wrapped transmission/connection indicates that there is only one segment per record.

Non-wrapped data are also produced when Cleo EEI processes a wrapped transmission file.

An example of non-wrapped EDI is:

Parent topic: Introduction to EDI


EDI Envelopes

EDI data is enclosed in enveloping layers that give information about the message(s) they contain.

There are three levels of enveloping. Each successive envelope is a subset of the previous level of enveloping. Each envelope contains a header and a trailer segment.

  • Level 1: Interchange envelope - The outermost envelope identifies the sender and receiver. This envelope contains all documents transmitted from one sender to one receiver. The interchange envelope contains one or more functional groups. An interchange envelope is identified by the ISA/IEA segments in ANSI X12. It's identified by the UNB/UNZ segments in UN/EDIFACT and the STX/END segments in TRADACOMS.
  • Level 2: Functional group envelope - Each functional group contains at least one transaction set. Documents of the same type are bundled into their own groups. For example, all purchase orders are in one group, and all invoices are in another. A functional group envelope is identified by the GS/GE in ANSI X12. It's identified by the UNG/UNE segments in UN/EDIFACT and the BAT/EOB segments in TRADACOMS.
  • Level 3: Transaction set envelope - Each transaction set holds one complete message (document). For example, each purchase order will have its own transaction set envelope. Each document must have a transaction set envelope identified by the ST/SE segments in ANSI X12. It's identified by the UNH/UNT segments in UN/EDIFACT and the MHD/MTR segments in TRADACOMS.

All interchanges are then combined to create the transmission/connection file, which contains one or more interchanges designated for delivery.

Although equivalent envelope segments exist for both standards, the layouts of these envelopes differ widely between standards. Cleo also supports Cleo-format proprietary envelopes for non-enveloped proprietary data.

ISA Envelope

The ISA segment identifies the sender and receiver of a document, the date and time the document was sent, and the standards used.

The elements for the ISA (Interchange) envelope segment are:
  • ISA01 - Authorization information qualifier
  • ISA02 - Authorization information
  • ISA03 - Security information qualifier
  • ISA04 - Security information
  • ISA05 - Interchange ID qualifier
  • ISA06 - Interchange sender ID
  • ISA07 - Interchange ID qualifier
  • ISA08 - Interchange receiver ID
  • ISA09 - Interchange date
  • ISA10 - Interchange time
  • ISA11 - Interchange control standards identifier ID or the repetition separator if using standards 4040 and above
  • ISA12 - Interchange control version number
  • ISA13 - Interchange control number
  • ISA14 - Acknowledgment requested
  • ISA15 - Test indicator
  • ISA16 - Component element separator
The elements for the IEA (Interchange Control Trailer) envelope segment are:
  • IEA01 - Number of included functional groups
  • IEA02 - Interchange control number

GS Envelope

The GS segment is used primarily for identifying the type of documents found in the group, and the standard and version being used.

The elements for the GS (Functional Group Header) envelope segment are:
  • GS01 - Functional identifier code
  • GS02 - Application sender’s code
  • GS03 - Application receiver’s code
  • GS04 - Date
  • GS05 - Time
  • GS06 - Group control number
  • GS07 - Responsible agency code
  • GS08 - Version/Release/Industry identifier code
The elements for the GE (Functional Group Trailer) envelope segment are:
  • GE01 - Number of transaction sets included
  • GE02 - Group control number

ST Envelope

The ST segment is used to identify the individual document type. Each document has its own document envelope.

The elements for the ST (Transaction Set Header) envelope segment are:
  • ST01 - Transaction set identifier code
  • ST02 - Transaction set control number
The elements for the SE (Transaction Set Trailer) envelope segment are:
  • SE01 - Number of included segments
  • SE02 - Transaction set control number

Use in EEI

Values for these elements are entered directly into EEI's Trading partner details 1 panel when you set up your trading partner information.

Parent topic: Introduction to EDI


Introduction to Cleo EEI

Cleo EDI Integrator for i (EEI) is a high-performance data transformation management system. All programs use the library list for both program and data objects, allowing for flexibility in setting up multiple libraries (environments) for testing, training, and production, and for implementing individual or departmental security constraints.

Overview of System Operation

The operation of EEI can be divided into two functional areas:

  1. Working with system setup and configuration information (such as trading partners, networks, code tables, message classes, software and standards updates). The EDI Coordinator usually performs these tasks.
  2. The sending and receiving of data on a routine basis. These day-to-day tasks can be made automatic and monitored by a systems operator for exceptions.

To set up a new document for translation, the system uses file format information from the:

  • Application database.
  • Standards information from the EDI standards tables.
  • Trading partner specifications.

This information is used to produce a map which is a set of instructions the translator uses to convert data from the applications database into an EDI standard format and vice versa.

In addition to moving data between the application database and the specified EDI standard formats, the system can also use information contained in external user or internal system code tables to express either incoming or outgoing data in another form (for example, an item could be identified internally by vendor part number and externally by the UPC).

Sending a document

To send a document to a trading partner, the job scheduler processes a particular control script at the appropriate time (see the note below). The control script runs programs that:

  • Extract the desired information from the application database.
  • Translate it into EDI standard data according to the specific instructions set up for that trading partner and document.
  • Send the document to the trading partner via the specified communications channel (either through a Value Added Network or a direct connection).

Every step of this process – including any problems found with the application data, the translation process, or the communications session – is logged in various audit files.

Note: This process can also be started through a program or manually by a user.

Receiving a document

Receiving a document from a trading partner is almost the reverse of the sending process.

The job scheduler starts a communication session with the selected network or the trading partner directly at the designated time. The data received is analyzed to identify the sender and document type. This information is used to find the particular instructions specified for this trading partnership. The system uses these instructions to translate the EDI standard data (along with any code conversions specified) into the application format, and then places the data into the applications database.

As with the sending process, all steps of the receiving procedure are logged in the audit files – the system sends messages and performs error-handling routines appropriate to the particular situation.

Libraries

EEI consists of three libraries:
  • EXTSYS - programs library
  • EXTSYSF - files library
  • EXTINTMSGQ - message queue library

Do not put custom programs in EXTSYS. When you upgrade, the existing EXTSYS library is replaced with a new one, so any additional programs would be overwritten.

User Profile

EXTOLOWN is EEI's default user profile and the owner of all objects. This profile sets your library lists and brings you to the Cleo EEI Main Menu when you sign on.

EXTOLOWN is also the user ID that Cleo support uses if they need to get onto your system.

Note: Cleo does not recommend changing the EXTOLOWN password. If you change the password, you must remember it, and you (and anyone else calling Support) will need to provide it to support representatives if asked.

Data Areas

Navigating to Cleo EEI Main Menu | 8. System Configuration | 1. Work with system parameters displays the Work with Data Areas panel.

You can also use the command DSPDTAARA (Display data area) to display a data area and its value. Many data areas use arrays of Ys and Ns to control features in EEI. In general, Y means 'enable a feature,' and N means 'disable a feature.'

Some examples of data areas include:
  • EXWRKCNNDY - Allows you to control how many days' worth of connections are displayed when you enter the Work with connections panels.
  • ZXLIC - A 58-character data area that contains your permanent license code.
  • EXCONNDFT - Sets the default view (ascending or descending) for the Work with connections panels.
  • EXTSYSLVL - EXTOL system level control values.
  • EXDBG - Used for debugging, this data area controls how many job logs you get. A Y in the first position enables the standard, recommended level of job logs (DSPJOB - Display Job). You get significantly more details with a Y in the second position (DSPJOBLOG - Display Job Log) and in the third (DMPCLPGM - Dump CL Program).
Note: A complete list of data areas can be found in the Technical Reference Manual - Data Areas.

Job Descriptions

The Cleo EEI Main Menu | 8. System Configuration | 3. Work with job descriptions panel displays a list of job descriptions. These job descriptions used to run various types of EEI jobs. Output queues, library lists, and other job parameters can be specified in these job descriptions.

The user profile EXTOLOWN uses the job description EXTOLJOBD for all EEI interactive jobs. The job description EXTRNJOBD is used for all translation jobs and must contain your application files library.

Additional default values for EEI jobs include:

Item | Default Value
Subsystem | EXTOL
Job queue | EXTOL
Message queue for EXTOLOWN user ID | EXTOLOWN
Output queue | EXTOLOUTQ
Priority for all EXTOL jobs | 5
  • Working with EEI
    This guide provides information on navigation and common functions in EEI.
  • Enhanced Web UI for EEI
    The Web UI provides users with a browser-based front-end.
  • Inbound, Outbound, Local, and Standard
    There are many features in EEI that must be set up differently depending on whether you are receiving or sending data.


Working with EEI

This guide provides information on navigation and common functions in EEI.

EEI provides the interface between your applications and your trading partners’ applications, allowing you to send documents back and forth electronically.

Using EEI, you identify information from your applications, EDI standards, and trading partners. All of this information is used to produce the data mapping (message class), a set of instructions that EEI uses to convert data from your application files into a standard format, and vice versa.

Navigating in EEI

Every session in EEI starts in the Cleo EEI Main Menu panel.

The Selection or command line is near the bottom of this panel. The Selection or command line appears at the bottom of many panels. This line is used to enter a number selection to navigate to a different panel, or to enter a command.

There are often many ways to navigate to a single panel within EEI. The routes listed in the EEI documentation provide one way of getting to a panel, but as you use the product you will discover more.

The documentation breaks down the navigation steps at the start of each set of instructions. For example, to get to the Work with message class segment map panel, you would have to:
  1. In the Cleo EEI Main Menu panel, type 5 on the command line. Press Enter.
  2. In the Mapping Menu panel, type 3 on the command line. Press Enter.
  3. In the Work with message class panel, type 8 in your message class' Opt field. Press Enter.
  4. In the Select message class function panel, type 2 on the Segment map; element map Opt field. Press Enter.

To simplify the instructions and navigation, the documentation creates a single path where you would start the steps. For example:

"In the Cleo EEI Main Menu | 5. Mapping Menu | 3. Work with message class | 8= Select message class functions | 2= Work with message class segment map panel..."

Many panels can be reached and operations can be started by typing commands into a command line and pressing Enter.

If you want to prompt a command instead of immediately executing it, type the command into a command line and press F4.

If you know how a command starts, but can't remember the entire command, type the first few letters followed by * (asterisk) and press Enter to prompt a Select Command list.

You can browse through available commands. In the Cleo EEI Main Menu panel, press F10=Command Entry. In the Command Entry panel, press F4=Prompt to reach the Major Command Groups panel. Use the menus to browse through groups of commands.

Note: The best way to get comfortable navigating in EEI is by doing the tutorial provided with your software. It is also available on the Support Portal of Cleo.com, under Technical Documentation.
Note: You can always navigate to the Cleo EEI Main Menu panel by typing YGO XMAIN in any command line.

Common options in EEI

In addition to numbered menus to select from, there are also options that are common to many EEI panels. They include:

  • 1=Select - Selects an object for use
  • 2=Change - Prompts a panel with options to change or customize the details of an object
  • 3=Copy - Prompts a panel to create a copy of an object
  • 4=Delete - Deletes an object. If another object is dependent on the object you want to delete, you may get an error message prompting you to isolate the object before deleting it.
  • 6=Print - Print an object or a report describing the object
  • U=Usage - View a description of where the object is being used
  • F9=Create and F9=Change - F9=Create prompts a blank screen for creating new objects. When in create mode, F9 toggles to become F9=Change, which exits created mode and brings back the normal panel.
Note: All of these options will not be available in every panel. EEI lists available options on each panel.

In addition to panel-specific options, you will often use:

  • F1=Help - Prompts cursor-sensitive help information. Can often be used anywhere on a panel (not just blank fields).
  • F3=Exit - Exits the current panel. Be warned that it does not always take you to the last panel you visited, because there are many ways to reach the same panel. F3 often takes you one step back toward the Main Menu.
  • F4=Prompt - When used on a blank field, often brings up a panel listing choices to select. Typing ? into a field and pressing Enter has the same effect.
  • F5=Refresh - Updates a panel to reflect recent changes
Note: If you make changes in a panel, make sure you hit Enter and (if necessary) confirm before trying to exit with F3. F3=Exit does not save changes.
Note: You can always navigate to the Cleo EEI Main Menu panel by typing YGO XMAIN in any command line.

Positioner and Selector Fields

Along the top of many panels are positioner, scan, and/or selection fields. These fields allow you to enter search information to narrow down a list of objects. Each of these fields scan the display in accordance to the column they are located in. For example, a positioner field above a Message ID column scans message IDs and a selection field above a Network ID column scans network IDs.

To use a positioner field, type a value equal to or less than what you want to view. For example, if you want to search for 850 purchase orders, you can type 850 or 800.

If you type a value into a scan field, it will return any object with that value in its name or description. For example, typing ship into a scan field will return shipment, shipping department, and items shipped.

Selector fields narrow a search by a status or code that corresponds with the column. A full value is required. For example, R or S work to narrow down by direction code because they are full codes. However, trans would not bring up translated messages, you must type the full status value translated.

Parent topic: Introduction to Cleo EEI


Enhanced Web UI for EEI

The Web UI provides users with a browser-based front-end.

The Web UI:
  • runs on both Internet Explorer v8 and above and Firefox v17 and above.
  • is a point-and-click-friendly alternative to the traditional EEI green screen for those who prefer to navigate with a mouse.
  • provides an easy-access, commonly-used-features menu at all command-line screens.
  • provides a drop-down menu with auto-enter functionality when a selection is made.
  • includes options and text in drop-down selections.
  • provides a new dynamic icon toolbar for additional function-key options.

User Licenses

Cleo provides three user licenses for the Web UI. If you need more than three users on the Web UI simultaneously, contact your IBM sales representative and ask for an IBM Rational HATS 5250 Applications on i Authorized User License and Software Subscription and Support. The IBM part number is D03J6LL.

Once you receive the authorization, call Cleo Support for instructions on how to apply the licenses.

To use the Web UI with EEI 6.5, refer to the Web UI for EEI installation guide.

Parent topic: Introduction to Cleo EEI


Inbound, Outbound, Local, and Standard

There are many features in EEI that must be set up differently depending on whether you are receiving or sending data.

Inbound and Outbound

Inbound and outbound refer to direction.

An inbound document is one you are receiving. Therefore, when you configure a feature in EEI specifically tailored to receiving a document, you are doing the inbound setup. The act of receiving a document is called inbound processing.

An outbound document is one you are sending. Therefore, when you configure a feature in EEI specifically tailored to sending a document, you are doing the outbound setup. The act of sending a document is called outbound processing.

You'll see these terms used throughout the manual, especially when the inbound and outbound setups for a single feature are different. For example, you'll see phrases like:
  • Inbound processing does not require an envelope map.
  • For outbound, you need to create an envelope map.
  • For inbound, attach a reference field on an element.
  • For outbound, attach a reference field as a code on the envelope map.

Local and Standard

There are features in EEI that can be used for both inbound and outbound, however, they may need to be configured differently.

The most common example is code tables. Code translation tables allow EEI to pass a value through a table to return another value or call a program to manipulate data during translation.

For example, suppose a trading partner sends you an order for gloves. You and your trading partner use different UPCs for the same gloves. You can create a code table that checks the UPC number.

If you are sending a file, EEI will check the UPC number in your local application files and change it to your trading partner's UPC number in the EDI standard message. If you are receiving a file, EEI will check the UPC number in the EDI standard message and change it to your UPC number in your local application files.

So when you set up a code table, you set a local value that applies to your files, and a standard value that applies to the EDI documents. This allows the same code table to be used for inbound and outbound processing, and EEI will know which value to apply to your application files vs. EDI standard documents regardless of the direction.

Parent topic: Introduction to Cleo EEI


Mapping

Mapping is the process of defining the translation rules between your inbound and outbound data formats. It involves identifying your application files and the EDI messages you plan to send and receive, and defining the relationship between them.

Process

To successfully map, you must:
  • Retrieve your application files or create program-described files.
  • Create an application file set.
  • Create a message class.
  • Populate the message class with segments and elements.
  • Map the elements to data within your files.
  • Further customize your map to meet your trading needs.
  • Application Files and Application File Sets
    An application file set is a named set of files that contain all the application data necessary for sending or receiving a message class.
  • Message Classes
    A message class is the map that defines the relationship between the fields in your application file set and the elements in an EDI document.
  • Message Class Customization
    Once your segments and elements are created within a message class, you can further customize your message class. Options include changing condition designators, adding constants to data, retrieving data from outside your file set, and more. Each of these customizations can be done for both inbound and outbound, however the setup may differ depending on the direction.
  • Using Record Update
    Record Update allows you to add or update your database files while processing outbound documents without external programming. Using Record Update, keyed files are updated after a document has been processed and before the log is updated.
  • Duplicate Value Checking
    EEI uses Duplicate Value Checking to check for duplicate values while processing data.
  • Selecting and Deselecting Files and Formats
    When associating a message class with an application file set, all files and formats in that file set are selected. In outgoing messages, you must deselect any formats you are not using in the map. Also, whenever you add a new file or format to an existing map's file set, you must select the new file and/or format before accessing the fields in the map.
  • Mapping Dashboard Search Codes
    Mapping a Dashboard search code to an element creates a customized search term for looking up messages in EEI’s Display Messages by Reference Field (DSPMSGREF) panel and in the Cleo Dashboards. The Dashboard Search Code is required to use the Document History report in the Dashboard. Dashboard search fields are 80 characters long, and 30 of those will be viewable in DSPMSGREF.
  • Mapping Reference Fields - Inbound
    EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For inbound, reference fields are mapped on the element. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.
  • Mapping Reference Fields - Outbound
    EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For outbound, reference fields are mapped in the envelope map. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.
  • Date and time reference fields
    EEI provides two 15-character reference fields, M8 and M9, dedicated to storing date and time. While they are mapped similarly to the 30-character reference fields (M5, etc.), the date/time reference fields must be specifically formatted.
  • Defining Hierarchical Level Segments
    In message classes that use hierarchical level segments, such as an 856 Ship Notice/Manifest, you must define a hierarchical level (HL) segment for each hierarchical level present/required.


Application Files and Application File Sets

An application file set is a named set of files that contain all the application data necessary for sending or receiving a message class.

Application files

An application file is a file used to transfer data to and from EEI. The system can retrieve the file, format, and field descriptions of externally described files for use in mapping.

An application file for a document being sent to a trading partner may be a single join logical, a multi-format logical, or one or more physical files. The information in documents being received may be placed in one or more files. These files can have multiple formats, and may be physical or logical files.

For EEI to know where to send data after translation, you must identify the files and libraries where the incoming data will be written. EEI uses your existing file descriptions by retrieving them into your system, making manual entry of file and field information unnecessary (with the exception of program-described files).

Files, formats, and fields that have been retrieved into EEI can only be deleted if there are no references to them. If references to a record marked for deletion exist, EEI prevents the deletion, and you must delete any mappings to that object before proceeding.

Files changed outside EEI must be updated by re-retrieving them into the system. Changes would include adding a new field, changing a field's size, etc. However, program-described files should never be re-retrieved into EEI. Message classes that refer to any changed files must be refreshed.

Application File Sets

Often, multiple application files are used to create one message class. To facilitate associating application files within a message class, EEI requires that files be grouped into an application file set. This allows you to refer to your application file set - which contains all the files, formats, and field descriptions necessary within a message class - by a single name when mapping.

While most application files are bound to a particular document type, some files can be used for multiple documents. Individual files can be included in any number of file sets, and files can be used for both incoming and outgoing data.

An application file set must contain at least one application file. A single application file set can be used by more than one message class. A message class can only have one file set.

Inbound Process Summary

To create an inbound application file set, you must:

  • Retrieve your application files into EEI. Do not retrieve/re-retrieve program-described files.
  • Create an application file set.
  • Add your files to the application file set.

Outbound Process Summary

To create an outbound application file set, you must:

  • Retrieve your application files into EEI. Do not retrieve/re-retrieve program-described files.
  • Create an application file set.
  • Add your files to the application file set.
  • Sequence the files.
  • If using an S-type file set, set keys.
  • (Optional) Create select/omits.
  • Create an envelope map.
  • Application File Set Types
    An application file set as a whole is defined as being of a file set type. Types are:
  • Retrieving Application Files
    Retrieve your application files into EEI to let EEI know where to write data during incoming translation or where to read data for outgoing translation.
  • Creating an Application File Set
    Create an application file set to house files of the same type for use in mapping.
  • Select/Omit Statements and Outbound Data Analysis
    Select/omit statements and map codes affect record retrieval processing for a particular file set sequence during outbound translation. They are outbound-only functions.
Parent topic: Mapping


Application File Set Types

An application file set as a whole is defined as being of a file set type. Types are:

M - Multiple format logical files

M-type files can be used with inbound and outbound translation.

This type of file set consists of a single file with one or more record formats. Multi-format logical files cannot have more than 32 formats, and each format must be based on a single physical file.

For standard-to-application (inbound) translation, EEI writes to this type of file set in real time through an Cleo-supplied universal format selector program. For application-to-standard (outbound) translation, the translator program reads the file set directly.

For inbound translation, “splitting” - a process in which the data is written to application files - occurs during translation for M-type files sets. Because of this, M-type file sets are preferable when maximum performance is desired. However, because M-type file sets write during translation, they can produce partial output from a message in error.

Because M-type file sets write data to application files as inbound translation is occurring, an interface for M-type file sets should allow for orphan records.

To avoid partial output, some users set up a file set to use multi-format logical files, then change the file set type to S - Split to multiple files.

For outgoing translation, a hierarchical set of keys is required to define the order in which the record formats should be read. In addition, the record selected by the high order key – the key, or keys, common to all record formats – must occur at the level of an EDI document.

There are other constraints relating to key fields; see the IBM database guide for further information.

Files in an M-type file set must be keyed outside EEI. Since the OS is more efficient at arranging or sequencing keys defined within the file, EEI translates M-type file sets more efficiently than S-type file sets. However, it is easier to key multiple format files if you are a programmer.

The command DSPFILSEQ shows how EEI is reading an M-type file.

If multiple-format file is only used for inbound translation, it can be created with all keys as *NONE for maximum performance in the translator.

Separate incoming and outgoing multi-format logical files may be built over the same set of physical files, allowing optimization of each direction while preserving the advantages of a common database where appropriate.

S - Split to multiple files

S-type files can be used with inbound and outbound translation. S-type file sets are the only file sets that can contain multiple types of files (physical and logical) in a single set.

This is the most flexible type of file set. It may contain any combination of physical and non-join logical files, including multiple format physical (program-described) files and multiple format logical files.

The S-type file set is the only file set that must be keyed and sequenced inside EEI, and only for outbound. Files must be sequenced so EEI knows in what order to read them. The Seq/select option on the Work with application file sets panel supports the entry of sequencing and selection information.

Being able to key S-type files within EEI is especially helpful for users who are not programmers.

For inbound translation, “splitting” - a process in which the data is written to application files - occurs after translation when using an S-type file set. S-type files will not produce any output for a message unless the status is "Translated," therefore, orphan records cannot occur. For this reason, it is recommended to use an S-type file set even when there is only one file in the set.

Program-described files can be used in S type file sets.

S-type file sets are the only file sets over which you can use select/omits.

J - Join logical files

J-type files can be used with outbound translation.

In a join logical file, you join multiple files together. This allows EEI to read one record to get the information from multiple files.

For outbound, the applications files can be most easily represented by a single join file in a J-type file set. However, these file sets cannot be used for incoming translation because join files are read-only.

P - Multiple format Physical files

P-type files can be used with inbound and outbound translation.

A physical file defined with DDS must have only one format. However, a program-described file can effectively have multiple record formats even though the format/field level information is not known to the system. This is primarily useful for multi-format physical files which have been migrated from other systems.

When used for outbound translation, the formats must be distinguishable through format identifier constants defined on the Change application file format details panel.

Program-described files can be used in P-type file sets.

Parent topic: Application Files and Application File Sets


Retrieving Application Files

Retrieve your application files into EEI to let EEI know where to write data during incoming translation or where to read data for outgoing translation.

EEI can use your existing file descriptions by reading them into your system, rather than you having to manually enter the file and field information. (However, if you are using program-described files, you must manually enter information for them.)
Note: If you change an application file (change the size of a field, add a new field, etc.), the file descriptions must be re-retrieved and any message class that refers to the changed file must be refreshed.
  1. In the Cleo EEI Main Menu | 5. Mapping | 1. Work with application data files panel, press F6=Retrieve file/format/field descriptions.
  2. The Retrieve application file description panel appears. In the Application file field, type your application file's name. In the Library field, type the library name where the file resides. Press Enter.

    In the Application file field, type ORD*.

    In the Library field, type TRAINnn, replacing nn with your training ID number.

    Note: The library parameter is only used to locate the file. Once in the system, EEI will use the library in the active job description.
    Note: If multiple files for your application file set start with the same letters or prefix, you can also type the first few letters with an * (asterisk) to bring up multiple files at once. For example, AB*.
  3. In the Work with retrieved file descriptions panel, type 1=Retrieve format/field level descriptions in the Opt field the file you want to retrieve. Press Enter and confirm.
    Note: If you are re-retrieving a file, you will be taken through an Application file usage in message class format panel for each file being retrieved. Press F3=Exit to exit each panel
  4. In the Work with retrieved file descriptions panel, notice the message along the bottom of the screen stating: Format and field descriptions retrieved for (YOUR FILE). If you place your cursor on this line and press Page Down, you would see a message for each file. Press F3.
  5. In the Work with application files panel, notice that the retrieved file is visible.
    Note: Never re-retrieve a program-described file. You will lose its formatting. Program-described files should be edited within EEI.
  6. Repeat these steps for each file you want to retrieve.
    Retrieve the following files:
    • ORDHDR - Order header
    • ORDADR - Order address
    • ORDMSG - Order messages
    • ORDDTL - Order detail
Parent topic: Application Files and Application File Sets


Creating an Application File Set

Create an application file set to house files of the same type for use in mapping.

To facilitate associating multiple application files with a message class, group files into an application file set. When you create your message class, you can then refer to your application file set - which contains all the files, formats, and field descriptions necessary for the message class - by a single name.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file sets panel, press F9=Create.
  2. The Work with application file set panel changes to create mode. Type a name for your file set in the File set field and any description in the Description field.
    In the File set field, type TRNnn850, replacing nn with your training ID number.

    In the Description field, type (Your name)'s purchase order file set.

  3. Enter the type code in the Type field. Values are:

    • J - Join logical

    • M - Multiple format logical

    • P - Multiple format physical

    • S - Split to multiple files

    In the Type field, type ?.

    Note: S-type file sets are the only file sets that can contain multiple types of files (physical and logical) in a single set.
  4. Press Enter. The Application file set type list panel appears. Type 1 in the Opt field to select S - Split to multiple files. Press Enter.
    Note: This selector panel was prompted by typing ? in a field instead of a specific value.
  5. Enter the status code in the Status field. The status does not affect how you can use the file set. It is a value you can use to categorize your file sets to locate them more easily. Values are:

    • (Blank) - Undefined status

    • A - Active

    • D - Development

    • I - Inactive

    • T - Test

    Type D.

  6. Press Enter twice and confirm.
  7. Press F9=Change to return to the normal Work with application file set panel. Locate your new file set, and type 5=Work with set members in its Opt field. Press Enter.
  8. In the Work with application file set members panel, identify the files you want in the application file set. There are three ways to identify the files:
    • Type each file name directly into a File name field.
    • Type ? in the File name field and press Enter to prompt the Select application file description panel. Type 1=Select in the file's Opt field and press Enter.
    • If you do not know the file name but remember the first few characters, type ? followed by the start of the file name in File name field and press Enter. This prompts the Select application file description panel with the start of the list at the files beginning with the character(s) specified. Type 1=Select in the file's Opt field and press Enter.
    Note: You can only select a single file in each Select application file description panel. Prompt multiple panels for multiple files.
    For this exercise, type the name of each file:
    • ORDHDR
    • ORDADR
    • ORDMSG
    • ORDDTL
  9. Press Enter and confirm. All selected files are listed in the panel. Notice that the Work with application file set members panel does not have a create mode. You can add and delete files in the same panel.

Next:

If you are creating an incoming message class to receive data from a trading partner, create a new message class and associate it with your file set.

If you are creating an outgoing message class to send data to a trading partner, sequence your files.

  • Sequencing Files (Outbound only)
    Specifying the sequence of your files tells EEI what order to read them in. Sequencing files is for outbound only.
  • File Sequence in Outbound Message Classes
    Before EEI can translate the data from your files into EDI, it needs to know when to open and read each file. Determine the sequence by comparing your files to the order of EDI segments you want to create.
  • Keys
    Keys are used in outbound S-type file sets and for message classes that use hierarchical levels (such as advanced shipping notices). You must specify key fields to enable EEI to read the files in sequence.
  • Setting Key Fields (Outbound Only)
    Setting key fields enables EEI to read the files in the sequence you defined. Specifying the sequence of your files tells EEI in what order to read them.
  • Creating an Envelope Map
    Creating an envelope map defines what criteria EEI will use when creating outbound data. EEI will identify the trading partner, functional group, message ID, and/or message class from your application files.
  • Creating Map Codes for Trading Partner and Message Parameters (Outbound only)
    Creating map codes in an envelope map automatically gives EEI the trading partner, group code, message ID, and/or message class to use during translation. Mapping these codes on the envelope means the parameters do not need to be specified at run time before translation.
Parent topic: Application Files and Application File Sets


Sequencing Files (Outbound only)

Specifying the sequence of your files tells EEI what order to read them in. Sequencing files is for outbound only.

You need to know in what order the EDI segments will occur and in which of your application files/formats that data occurs. If you need more information to determine the file/format sequence, see File Sequences in Outbound Message Classes.
  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set panel, type S=Sequence/select in your file set's Opt panel. Press Enter.
    Type S in TRNnn810's Opt field.
  2. In the Work with file set format sequence panel, if it is not in create mode, press F9=Create. Fill in the fields.
    1. In the Sequence field, type a sequence number (for example, 1, 2, etc.) for the format. This is the number that will determine the order in which EEI reads the formats.
    2. In the File name field, either type ? and press Enter or press F4 for a prompt. Select the appropriate file for the sequence number and press Enter.
    3. EEI will automatically fill in the Format, P/L, Length, and Format description fields.
    4. Repeat steps a through c for each format within the file set that EEI needs to read.
    Sequence the files as follows:
    Sequence | File Name | Format
    1.0 | INVHDR (Header) | @OHDPP
    2.0 | INVNTE (Notes) | @OHTPP
    3.0 | INVADR (Address) | @OHNPP
    4.0 | INVDTL (Detail) | @ODTPP
  3. Press Enter and confirm.
  4. Press F9=Change to return to the Work with file set format sequence panel to change mode and view your sequence.
  5. If you need to make any changes, type a new sequence number over the existing sequence number and press Enter.
    Note:

    EEI will renumber your sequences to be consecutive if they are not already. For example, if you number your sequences 1.0, 2.0, 7.0, and 9.0, EEI will renumber them as 1.0, 2.0, 3.0, and 4.0.

Next: Set key fields.

Parent topic: Creating an Application File Set


File Sequence in Outbound Message Classes

Before EEI can translate the data from your files into EDI, it needs to know when to open and read each file. Determine the sequence by comparing your files to the order of EDI segments you want to create.

Files only need to be sequenced for outbound. Sequence files in the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set | S. Work with file set format sequence panel.

For example, if your end goal is to create an 810 invoice, your segments might be:
  • ST - Transaction set header
  • BEG - Beginning segment for purchase order
  • NTE - Note/Special instruction
  • NTE - Note/Special instruction
  • N1 - Name
  • N1 - Name
  • IT1 - Baseline item data (invoice)
  • PID - Product/Item description
  • IT1 - Baseline item data (invoice
  • TDS - Total monetary value summary
  • SE - Transaction Set Trailer
Your file set might look like this:
  • Header file
  • Detail file
  • Address file
  • Note file

Determine which file contains the information for each segment, preserving the order of the segments. For example:

  • ST - Transaction set header - Header file
  • BEG - Beginning segment for purchase order - Header file
  • NTE - Note/Special instruction - Note file
  • NTE - Note/Special instruction - Note file
  • N1 - Name - Address file
  • N1 - Name - Address file
  • IT1 - Baseline item data (invoice) - Detail file
  • PID - Product/Item description - Detail file
  • IT1 - Baseline item data (invoice) - Detail file
  • TDS - Total monetary value summary - Header file
  • SE - Transaction Set Trailer - Header file

Once EEI opens a file to read it, EEI can access that data to write in subsequent segments.

Using the example above, EEI only needs to open the header file once at the start of translation at the ST segment. The data will be available to read when EEI writes the TDS segment; the header does not need to be opened a second time.

With this in mind and only opening each file once, the order is:
  1. Header
  2. Note
  3. Address
  4. Detail

Variations

The same guidelines apply to these variations of the above example.

If you have multiple formats per file, take them into account and include them in the sequence. For example:
  1. Header
  2. Note
  3. Address
  4. Detail - Format A
  5. Detail - Format B
Or perhaps you have separate header and header allowances files, with the header file containing the data for the ST and BEG segments, and the allowance file containing the data for the TDS segment. In that instance, the sequence would be:
  1. Header
  2. Note
  3. Address
  4. Detail
  5. Header allowance
Parent topic: Creating an Application File Set


Keys

Keys are used in outbound S-type file sets and for message classes that use hierarchical levels (such as advanced shipping notices). You must specify key fields to enable EEI to read the files in sequence.

The files themselves do not need to be keyed; they only need to contain fields that can be used as keys (that is, fields that show the relationship among records in the files).

Note: If the files are already keyed, you do not have to use the pre-defined keys as your key fields in EEI. You can still define new keys in EEI for sequencing files.

When selecting fields to use as keys, there should be at least one unique piece of data that has a corresponding field in each file. For example, all files in an 810 invoice might contain the invoice number. These fields may all have different names, but they contain the same data.

This common data sets up a relationship between your files that EEI can understand. This should be the first field when setting up your keys.

Keys reinforce sequence

Continuing with the example from File Sequences in Outbound Message Classes, suppose you have files sequenced in this order for an 810 invoice:
  1. Header
  2. Note
  3. Address
  4. Detail

The invoice number is in each file, and is therefore the first key for each file.

When each file has multiple records, the number of keys per file should correspond to the sequence order. For example, the header file is first and should have one key. The note file is second and should have two keys, etc.

If the possibility exists that you might have multiple records in a single file, you must set a key for that file that is unique per record. For example, if you have multiple records in the note file (and therefore can have multiple NTE segments), you can use the note line number field as a second key. This is because the note line number will be unique per write of the note segment.

File | Key 1 | Key 2
Header | Invoice number |
Note | Invoice number | Note line number

If there is no corresponding field between two files, use a placeholder key of *NONE. Continuing on the example above, when we create keys for the address file, we can have multiple records in address file. We will use the address line number as our third key. However, there is no note line number data in the address file, so we will use a placeholder key of *NONE.

File | Key 1 | Key 2 | Key 3
Header | Invoice number |  |
Note | Invoice number | Note line number |
Address | Invoice number | *NONE | Address line number

To complete the example:

File | Key 1 | Key 2 | Key 3 | Key 4
Header | Invoice number |  |  |
Note | Invoice number | Note line number |  |
Address | Invoice number | *NONE | Address line number |
Detail | Invoice number | *NONE | *NONE | Detail line number

Variation: All files have corresponding key fields

When dealing with files that have hierarchical levels, there will be a common data in the key fields. For example, in an 856 Advanced Shipping Notice there is a:
  • Shipment file
  • Order file
  • Pack file
  • Item file

Since a shipment can contain many orders, and that order can contain many packs, each level contains data to identify the previous level with which it corresponds. And since there can be multiple records per file, keys must be unique for each level.

The item contains data that corresponds with its pack and the pack contains data that corresponds with its order, etc. Therefore, the keys would be:

File | Key 1 | Key 2 | Key 3 | Key 4
Shipment | Shipment number |  |  |
Order | Shipment number | Order number |  |
Pack | Shipment number | Order number | Pack number |
Item | Shipment number | Order number | Pack number | Item number

Notice that *NONE is not used.

Variation: One file has a single record

If a file only has a single record, it only needs to have the initial key for the common data between all files. Single-record files only need one key. You do not use a placeholder.

Using the Shipment, order, pack, item example, if you only ever have a single order per shipment, your keys would be:

File | Key 1 | Key 2 | Key 3
Shipment | Shipment number |  |
Order | Shipment number |  |
Pack | Shipment number | Pack number |
Item | Shipment number | Pack number | Item number

Variation: Your company has divisions

If you are one of multiple companies or multiple divisions that could generate the same invoice number, you will need two keys to make the header unique, and an additional key for each level.

For example, if you are part of ACME Division A and you generate invoice number 10 and someone in ACME Division B generates invoice number 10, your keys would be:

File | Key 1 | Key 2 | Key 3 | Key 4 | Key 5
Header | Invoice number | Division number |  |  |
Note | Invoice number | Division number | Note line number |  |
Address | Invoice number | Division number | *NONE | Address line number |
Detail | Invoice number | Division number | *NONE | *NONE | Detail line number
Parent topic: Creating an Application File Set


Setting Key Fields (Outbound Only)

Setting key fields enables EEI to read the files in the sequence you defined. Specifying the sequence of your files tells EEI in what order to read them.

You must have your files/formats sequenced.

You need to know which fields contain unique corresponding data so you can establish a relationship between files. You must also know which files possibly contain multiple records per document. For more information on selecting keys, see Keys.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set panel | S. Work with file set format sequence panel, type 5=Work with keys in the first format's Opt field.
  2. The Work with file set keys for one format panel appears. If it is not already in create mode, Press F9=Create.
    1. Place the cursor in the first blank Field name field. Press F11.
    2. The Select key fields panel appears. Type 1 in the Pos field of the field you want to use for the first key. Press Enter and confirm.
  3. In the Work with file set keys for one format panel, press F9=Change to return the panel to change mode. Notice the key appears in the panel.
    Note: The default Key direction is A (Ascending). Cleo recommends using ascending order. All examples in the documentation are based on using ascending order.
  4. Press F3=Exit to return to the Work with file set format sequence panel. Type 5=Work with keys in the second format's Opt field.
  5. The Work with file set keys for one format panel appears. If it is not already in create mode, Press F9=Create.
    1. Place the cursor in the first blank Field name field. Press F11.
    2. The Select key fields panel appears. Type 1 in the Pos (Key position) field of the field you want to use for this format's first key.
    3. Type 2 in the Pos field of the field you want to use for this format's second key. Press Enter and confirm.
  6. In the Work with file set keys for one format panel, press F9=Change to return the panel to change mode. Notice the keys listed in the panel.
  7. Continue this process until you have created keys for each format in the Work with file set keys for one format panel.
    Note: There are instances where you can have two keys on your first format. For more information, see Keys.
    Set your keys up according to this table:
    File | Key 1 | Key 2 | Key 3 | Key 4
    Header (INVHDR) | Invoice number
    Note (INVNTE) | Invoice number | Note line number
    Address (INVADR) | Invoice number | *NONE | Address line number
    Detail (INVDTL) | Invoice number | *NONE | *NONE | Detail line number
Next: Create an envelope map.
Parent topic: Creating an Application File Set


Creating an Envelope Map

Creating an envelope map defines what criteria EEI will use when creating outbound data. EEI will identify the trading partner, functional group, message ID, and/or message class from your application files.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file sets panel, type 8=Envelope map in your file set's Opt field. Press Enter.
  2. If the Work with application file set envelope format panel is not in create mode, press F9=Create.
  3. Fill out the File name, Format name, Message area, and Format occurrence fields.
    1. In the File name field, type the name of the file that should control when a new message is generated.
      Note: EEI will generate a new ST through SE when it encounters this file. The file you choose will likely be the first sequenced file from the Work with file set format sequence panel.
      Note: You can prompt a selector panel by pressing F4.

      Use the header file, INVHDR.

    2. In the Format name field, type the name of the field that should control message creation.

      Type @OHDPP.

    3. In the Message area field, specify the format's section that will control message creation. Values are:

      • H - First section

      • D - Second section

      • S - Third section

      • T - Fourth section

      • U - Fifth section

      • V - Sixth section

      • W - Seventh section

      • X - Eighth section

      • Y - Ninth section

      Type H to use the first section.

    4. In the Format occurrence field, specify the number of times the format occurs per message. Values are:

      • D - Once per detail loop

      • E - Multiple per detail loop

      • G - Once per group

      • I - Once per interchange

      • M - Once per message

      • N - Multiple per message

      • S - Multiple per segment

      Type M, since the format occurs once per message.

  4. Press Enter and confirm. Press F9=Change to return to Work with application file set envelope format to change mode. The format appears in the panel.

Next:

If you have a trading partner set up to use with this message class, create map codes on the envelope.

If you do not have a trading partner set up, move on to creating a message class. Make sure you come back to add map codes after you create a trading partner.

Parent topic: Creating an Application File Set


Creating Map Codes for Trading Partner and Message Parameters (Outbound only)

Creating map codes in an envelope map automatically gives EEI the trading partner, group code, message ID, and/or message class to use during translation. Mapping these codes on the envelope means the parameters do not need to be specified at run time before translation.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set panel, type 8=Envelope map on your file set's Opt field. Press Enter.
  2. In the Work with application file set envelope format panel, type 5=Work with file set envelope fields in the Opt field of the file containing data that can be used to identify your trading partner. Press Enter.
  3. In the Work with application file set envelope field panel, press F9=Create to enter create mode.
  4. In the Map sequence field, type a sequence number.
    Note: The sequence is not important for mapping a reference field. Just make sure the number you type is not already being used.
  5. The Map code field specifies the data's relationship to the envelope. Values are:
    • G - Map to group code
    • C - Map to message class
    • M - Map to message ID
    • T - Map to trading partner - tells EEI to use the data in your file set to determine the trading partner
  6. In the Field name field, type the name of the file field that contains data corresponding to the Map code. For example, if you are mapping the trading partner code, type the name of a field that contains the trading partner code.
    Note:

    If you don't have a field that corresponds directly to the code, choose a field that is closely related. For example, if you don't have the trading partner code in your files, choose a field containing data that is unique to your trading partner and does not change. This could be an internal customer number, an account number, a company name, etc.

    You can use a code table to convert this unique value to one EEI can use with the map code. For example, account number to trading partner ID.

    Note: You can prompt a selector panel of fields by pressing F4.
  7. Press Enter. The Change file set envelope field details panel appears.
    1. Determine if you need to manipulate the data.
      • If the data in the field directly corresponds to the map code (for example, trading partner ID code and trading partner ID fields), proceed to Step 8.
      • If the data does not directly correspond to the map code (for example, trading partner ID code but account number field), proceed to Step b.
    2. In the Code translation directions field, type O for Outbound. Press Enter.
    3. A new field appears. In the Code table reference field, type the name of the code table that will convert the data.
      Note: You may have to create your own code table. However, Cleo provides a number of code tables that correspond to the map codes. For example:
      • G - CST_GRP - Customer number to group code
      • M - CST_MSG - Customer number to message ID
      • T - CST_TPCD - Customer number to trading partner code

      If using an EEI code table, make sure you change the values in the code table to match your data.

  8. Press Enter and confirm.
  9. Press F9=Change to return the Work with application file set envelope field panel to change mode. Notice the field an map code appear in the field's Field source/destination column.

If you are using this section as part of your first-time message class creation process, create a message class.

Parent topic: Creating an Application File Set


Select/Omit Statements and Outbound Data Analysis

Select/omit statements and map codes affect record retrieval processing for a particular file set sequence during outbound translation. They are outbound-only functions.

Select/Omit Statements

Select/omit statements allow you to add new records to a database file and change existing records in the file.

Set up Select/Omits in the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set | S. Work with file set format sequence | 8. Work with select/omit for one format panel.

Select/Omit statements are implemented using the system OPNQRYF command.

You can test select/omit statements using F14=Test. This transforms the statements into a QRYSLT parameter for the OPNQRYF command, creates an empty copy of the file used in this sequence, and executes the OPNQRYF command. EEI will produce a report containing the select/omit statements and the resulting QRYSLT parameter, which you can also review on-screen.

F14=Test also produces parameters for run time substitution values, which are values you or your software supply at execution. You can specify up to nine substitution values. These values replace parameter placeholders specified in select/omit statements.

The corresponding placeholders are: @1, @2, @3, @4, @5, @6, @7, @8, and @9. They can be used in the input-capable fields: field name, comparison test reference, op2 field, and constant data select.

You can specify any constant or expression valid in the QRYSLT parameter (to the right of the comparison operator) in the constant data select field.

Use with CRTAPPDTA

The placeholders can be used in conjunction with the CRTAPPDTA (Create application data) command's Run time substitution values field, which allows you to specify "on the fly" values to substitute in a file set's select/omit statements.

Each value has a maximum length of 100 characters. The substitution values are specified in the select/omit statements by coding @x, with x being the parameter position. (For example, @3 is the third parameter value.) Entries for this parameter are only required when substitution values exist in the select/omit statements. If there are entries when none are needed, they are skipped during processing.

Select/Omit Outbound Data Analysis

Select/Omit functions can also be used by setting up a map code and code table on the envelope map. Set up map codes in the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set | 8. Envelope map | 5. Work with application file set envelope field panel.

The Select/Omit Outbound Data Analysis feature allows an outbound record to be selected or rejected based on a code table lookup.

You can associate any type of code table with one or more fields in the file set envelope map and use the either map code:
  • S (Select if in code table) - If the lookup is successful, select the record
  • R (Reject if in code table) - If the lookup is successful, reject the record

Use Case

Suppose you do not need to send an invoice to every trading partner.

You could build a code table with entries for all customer IDs that require invoices. Attach the code table to a Customer ID field in the envelope map with an S map code.

Alternatively, you could build a code table with entries for customer ID that do not require invoices, and use an R map code.

Use Case

Suppose you need to run two or more categories of EDI invoices that are so different from each other they need to be mapped from more than one file set. In addition, you need to sequence the file records differently for radically different EDI standards (for example, X12 810 invoices and NWDA invoices).

In this case, create two file sets with the same collection of files but different record sorting. Then run CRTAPPDTA twice, once with each file set.

One set would have a customer ID table with the S map code, and the other would use the same table with the R map code.

  • Comparison Test Values for Select/Omits
    The comparison test value tells EEI how to compare a constant value or parameters to a field's value, and whether to apply a select or omit statement based on the result. .
Parent topic: Application Files and Application File Sets


Comparison Test Values for Select/Omits

The comparison test value tells EEI how to compare a constant value or parameters to a field's value, and whether to apply a select or omit statement based on the result. .

The Values

  • CT - Contains
  • EQ - Equal
  • GT - Greater than
  • GE - Greater than or equal
  • LT - Less than
  • LE - Less than or equal
  • NE - Not equal
  • @1 - Substitution value 1
  • @2 - Substitution value 2
  • @3 - Substitution value 3
  • @4 - Substitution value 4
  • @5 - Substitution value 5
  • @6 - Substitution value 6
  • @7 - Substitution value 7
  • @8 - Substitution value 8
  • @9 - Substitution value 9
Parent topic: Select/Omit Statements and Outbound Data Analysis


Message Classes

A message class is the map that defines the relationship between the fields in your application file set and the elements in an EDI document.

A Message Class is associated with an EDI standard document type (for example, 850 Purchase Order) and provides all the segments and elements allowed within the document according to the standard. Segments and elements should be selected according to your trading partner requirements.

A single message class can be used for multiple trading partners. Multiple message classes can use the same file set. Each message class can only be associated with one file set.

Each message class name must be unique to the message ID. For example, you cannot have two 850 message classes named MY_MAP, but you can have two 850 Message classes that each have unique message class names like MY_MAP and YOUR_MAP.

Message classes of the same type can use different application file sets. For example, if you had two 850s, each one could refer to a different file set or the same file set.

Also, message classes with different types can refer to the same file set. For example, you can have an 850 message class and an 810 both refer to the same file set.

Process

To create a message class, you must:
  • Specify general parameters for the message class, including: the EDI standards to use, the version of the standards, the standard document ID (which defines the message type, such as purchase orders), and the application file set to be associated with it.
  • (Outbound only) Specify the application file sequence. When sending data to a trading partner, EEI needs the file formats sequenced so it knows how to read the files in order. If you are using an S-type file set, you must also define keys.
  • Select the segments and elements to be used. When you specify the message ID and EDI standards to be used, EEI provides all the segments and elements available within the selected standard for the specified document and version. In most cases, you and your trading partner will require only some of the available segments and elements. Therefore, you choose from the list only those that are needed according to the agreement between you and your trading partner.
  • Define the mapping between the selected elements and their corresponding application file fields.
  • Customize your message class, if necessary. EEI presents many solutions, such as substrings, code tables, and line counters, to make sure you receive and transfer data in the format you need.
  • Specify Segment Map File/Formats to tell EEI when to read or write a record.

Message Class Notes

Message Class Notes allow you to specify a comment, or description for the message class. Populate that definition by follow the steps below:
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel, type N=Notes in your message class’ Opt field.
  2. Type a description beneath the Note field. The free-form text is wrapped to the next line automatically.
  3. Press Enter.
  4. Press Enter to confirm.
  • Creating a Message Class
    Create an inbound message class to define the mapping between the elements in an EDI standard document and the fields in your application file set.
  • Selecting Segments
    Selecting segments is the first step in customizing your map. Typically, your trading partner will supply you with specifications listing all the segments and elements that you will receive within an incoming document or that you must send within an outgoing document. You add segments to your map accordingly.
  • Qualifying at the Segment Level
    Qualifying a segment on inbound data tells EEI to apply a search for a specific occurrence of that segment, ensuring that the data is mapped to the correct fields. Any time you have segments repeated in an inbound message class, those segments must be qualified. You can also qualify single-occurring segments if you are looking for one specific occurrence.
  • Selecting Elements
    Once you have selected segments in your map, you need to populate them with elements. For inbound data, elements control what data is written to your files. For outbound data, elements correspond to the fields within your files that contain information you want to send to your trading partner.
  • Mapping elements to fields
    Mapping elements to fields creates the connection between your local files and the EDI data. On incoming data, this tells EEI which element to use to populate a field. On outgoing data, this tells EEI which field to use to populate an element.
  • Specifying Segment Map File/Formats - Inbound
    For incoming documents, you must specify when data records from the document are to be written to your application files.
  • Specifying Segment Map File/Formats - Outbound
    For outgoing documents, you must specify when the document's data records are to be read from your application files.
  • Selecting and Deselecting Files and Formats
    When associating a message class with an application file set, all files and formats in that file set are selected. In outgoing messages, you must deselect any formats you are not using in the map. Also, whenever you add a new file or format to an existing map's file set, you must select the new file and/or format before accessing the fields in the map.
Parent topic: Mapping


Creating a Message Class

Create an inbound message class to define the mapping between the elements in an EDI standard document and the fields in your application file set.

To create a message class, you must have an application file set to associate with it.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel, press F9=Create.
  2. The Work with message class panel changes to create mode. In the Message ID field, type the EDI standard document ID you want to work with (example, 810, 850, etc.). In the Message class field, type a name for your message class. Press Enter.

    In the Message ID field, type 850. In the Message class field, type TRNnn.

    Note: The name you type in the message class field must be unique to the Message ID. For example, you cannot have two message classes specified as 850 MY_MAP, but you can have two 850 Message IDs that have unique message class names like 850 MY_MAP and 850 YOUR_MAP.
    Note:

    The 850 message ID is an X12 standard code for purchase orders. It includes all the segments and elements that, according to the X12 standard, can appear in a purchase order.

    A list of message IDs and their document type is available in the Cleo EEI Main Menu | 6. Standards | 4. Work with message definitions panel.

  3. The Change message class details panel appears. Fill it in according to your trading partner’s requirements.
    1. You can type anything in the Message class description panel.Type (Your name)'s Purchase Order Message Class.
    2. Specify the Direction code. Values are:
      • B - Both
      • R - Receive
      • S - Send

      Choose R.

    3. Specify the Message class status. Values are:
      • D - Development
      • P - Production
      • T - Test

      Choose D.

    4. If desired, specify the State table protect setting. Values are:
      • (Blank) - Allow rebuild state table
      • Y - Protect state table

      Leave the field blank.

      Note: If you change the State table protect status to Y, it will lock people out, but your changes won’t show either. You must change it back to (Blank) for changes to show.
    5. Specify the Standard class code, Industry group code, and Version release. These fields are all determined by you and your trading partner.
      In the Standard class code field, type X (for ASC X12 standards).

      In the Industry group code field, type X (for full X12 standards).

      In the Version release field, type 004010. The entry must be 6 digits long, and therefore needs the 00 at the beginning.

    6. Type the name of your Application file set in the Application file set field. You can press F4 to prompt a list of existing file sets.
      Select your TRNnn850 file set.
  4. Press Enter and confirm. Press F9=Change to return to the normal Work with message class panel.

Next:

If you are creating an inbound map to receive data from a trading partner, select segments to include in your map.

If you are creating an outbound map to send data to a trading partner, set the level test of the application files to make sure EEI reads them in the proper order.

  • Specifying File/Format Level Indicators or Setting the Level Test (Outbound Only)
    Before you select segments and elements to use in an outgoing message class, you need to specify the sequence of application files so they will be read in the proper order. The sequence must match the file set's defined sequence. (The first file according to sequence in the file set must be first sequence in the message class.)
Parent topic: Message Classes


Specifying File/Format Level Indicators or Setting the Level Test (Outbound Only)

Before you select segments and elements to use in an outgoing message class, you need to specify the sequence of application files so they will be read in the proper order. The sequence must match the file set's defined sequence. (The first file according to sequence in the file set must be first sequence in the message class.)

It is not required that all file formats available in an application file set be used in a message class. For this reason, you must also specify file format level indicators to indicate the sequence in which files will be read when using a particular message class.

Note: File format level indicators have an inverse relationship to the format sequence defined for an application file set – the application file set format sequence is listed in ascending order, starting with 1, while format level indicators are listed in descending order, starting with 99. (For example, format sequence 1 is format level 99, format sequence 2 is format level 98, etc.)
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function panel, type 2=Change in the Message class application file formats/fields Opt field. Press Enter.
  2. The Work with message class application file format panel appears. In the Level field, type the sequence numbers in descending order for each file, starting with 99.
    Note: If a file in the application file set is not to be included in a message class, the next file in the application set format sequence is moved up one position in the format level sequence.
  3. Press Enter and confirm.
Next: Select segments.
Parent topic: Creating a Message Class


Selecting Segments

Selecting segments is the first step in customizing your map. Typically, your trading partner will supply you with specifications listing all the segments and elements that you will receive within an incoming document or that you must send within an outgoing document. You add segments to your map accordingly.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel, type 8=Select functions in your message class’ Opt field.
  2. In the Select message class function panel, type 2=Change in the Segment map; element map Opt field.
  3. In the Work with message class segment map panel, press F6=Create new segments to display the Select segments for message class map panel.
    Note: For incoming documents, you must select every segment that will be sent by your trading partner to avoid a translation error. Even though you must select every segment your trading partner will send, it is not required that you map fields for every segment.
    Note: For outgoing documents, you do not have to select a segment for each field in your data. You only need to select every segment required by your trading partner.
  4. Type values in each segment’s Used field according to your agreement with your trading partner. Values are:
    • (Blank) - Not used.
    • (Number) - Specifies the exact number of times a segment should occur (For example: 1, 5, etc.).
    • N - Any number of occurrences up to the maximum (For example: If you expect item information, but do not know if you will receive 4 items or 50 items, you should type. N in the IT1’s Used field.)
    • M - You cannot type M into a field, but you will see it is already there for some segments. This means the segment is Mandatory. You cannot deselect it.
    Note: It is possible to make non-mandatory segments Mandatory after you have created them. For more information, see Mandatory, Optional, and Conditional Segments and Elements.
  5. Press Enter and confirm. Notice the message at the bottom of the screen indicating the segments you have created. Press F3.
    Note: If you created more instances of a segment than you need, you can delete them in the Work with message class segment map panel by typing 4=Delete in the segment’s Opt panel.
    Note: If you initially set a segment to N and need it to be a number or vice versa, you must change it by typing 2=Change in the segment’s Opt field in the Work with message class segment map panel. You cannot change it in the Select segments for message class map panel.
  6. If you have any segments within segments, or loops, they need to be selected separately. In the Work with message class segment map panel, locate a loop start (indicated by the indented name within the Segment ID column). Type E=Expand in the loop start’s Opt field.
  7. The Work with message class segment map panel changes to display only the loop level. Press F6=Create new segments to create segments within the loop.
  8. Enter values in each segment’s Used field according to your and your trading partner’s needs. When finished, press Enter and confirm.
Next:

If you are creating an inbound map and you added repeating segments (segments with an occurrence of 2, N, etc.), qualify those segments.

If you are creating an inbound map with no repeating segments, populate your segments by creating elements within them.

If you are creating an outbound map, populate your segments by creating elements within them.

Parent topic: Message Classes


Qualifying at the Segment Level

Qualifying a segment on inbound data tells EEI to apply a search for a specific occurrence of that segment, ensuring that the data is mapped to the correct fields. Any time you have segments repeated in an inbound message class, those segments must be qualified. You can also qualify single-occurring segments if you are looking for one specific occurrence.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with Message Classes | 8. Select message class function | 2. Work with message class segment map panel, type 2=Change in the repeating segment's Opt field. The Message class segment map details panel appears.

    Type 2=Change on the first REF segment occurrence’s Opt field.

  2. In the Segment ID qualifier code field, type (space)(space)D (two spaces and a D). Press Enter.
  3. New fields appear, allowing you to use up to three qualifiers for a single segment.
    1. In the Qualifier data field, enter an ID element value that EEI can search for to qualify the data.

      Type DP for Department Number.

    2. In the Qualifier start field, type the element position where EEI should start looking for the qualifier. (For example, if the qualifier is likely to be in the REF02 position, type 2.)

      Type 1.

    3. In the Qualifier increment field, type the number of elements to skip before EEI looks for the next occurrence of the data (in an element) within the segment. (For example, if the data is likely to be in the second, fourth, or sixth element position, type 2 in the Qualifier start field and 2 in the Qualifier increment field. EEI starts looking in the second element position, jump two and check the fourth, and continue to jump two until it finds the data.)

      Leave this field blank.

  4. Press Enter and confirm. Notice that in the Work with message class segment map panel, a D appears in the Qualifier column to signify the segment is qualified.
  5. Follow these steps to qualify the following:
    • First DTM segment by 002 in the DTM01
    • Second DTM segment by 001 in the DTM01
    • N1 segment by ST in the N101
Parent topic: Message Classes


Selecting Elements

Once you have selected segments in your map, you need to populate them with elements. For inbound data, elements control what data is written to your files. For outbound data, elements correspond to the fields within your files that contain information you want to send to your trading partner.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select functions | 2. Work with message class segment map panel, type 5=Element in a segment's Opt field. Press Enter. The Work with element map for one segment panel appears.
  2. Press F6=Create element map records to enter create mode. You may see some elements already have numbers in their Used field. These elements are required.
  3. Enter a number of instances in the Used field for each element according to your and your trading partner's needs. Elements left blank will not be used.
    Note: Selecting an element more than once does not mean the element will be repeated. For inbound data, it means this element could be written to more than one field. For outbound data, it indicates the source for this element could come from more than one field.
  4. Press Enter and confirm. Press F3=Exit to exit create mode. Press F3=Exit again to return to the Work with message class segment map panel.
  5. Repeat Steps 1 through 4 for each segment in your map.
Next:

If you are creating an inbound map to receive data from your trading partner, map the elements you created to fields within your local files.

If you are creating an outbound map to send data to your trading partner, map the fields within your local files to the elements you created.

  • Repeating Elements
    EEI supports the full set of X12 standards, including repeating elements. Repeating Elements are a single or composite element with the ability to repeat multiple times within a segment, with each element occurrence separated by the delimiter specified in the ISA11. Mapping screens have been changed to reflect their use.
  • Using Special Processing
    For some elements, the data that would populate them is not generated until translation. Use special processing to tell EEI to generate values for such elements. For example, the Transaction Set Identifier does not exist until you translate. You can use special processing on the ST01, ST02, HL01, HL02, CTT01, SE01, and SE02 elements.
Parent topic: Message Classes


Repeating Elements

EEI supports the full set of X12 standards, including repeating elements. Repeating Elements are a single or composite element with the ability to repeat multiple times within a segment, with each element occurrence separated by the delimiter specified in the ISA11. Mapping screens have been changed to reflect their use.

EEI supports multiple configurations, letting you move values to and from your database according to how your application files store repeating data.

Data Examples

This COB segment contains a repeating element, the COB04:

COB*P*XYZ123*1*AA^AB^AC^AD^AE^AF^AG^AH^AI ~

This EQ segment contains a repeating element, the EQ01:

EQ*98^34^44^81^A0^A3~

This DMG segment contains a composite repeating element, the DMG05:

DMG*D8*20010127*M*I*:RET:2135-2¬:RET:2131-1~

The Select elements for message class map panel

When creating a new element in the Select elements for message class map panel, if that element is repeatable, a line appears under the #Rpt (Number of Repeats) column. Type the necessary number of repeats on this line.

The number of repeats will describe what the data looks like. For example, the number of values per record: If you have one value per record, you have one repeat; if you have six values per record, you have six repeats.

The number of repeats entered should be the maximum number you could receive. If you enter a value that exceeds the standards, you will get an error message that states the maximum allowed value. If you receive less than the maximum number of repeats, EEI will stop writing where appropriate.

If an element is repeatable but is not going to repeat, the #Rpt field can remain blank. With this in mind, when upgrading a message class from EEI 6.3 or lower, you do not have to manually change any values on repeatable elements so long as your map does not use repeats.

The Message class element map details 1 panel

In the Message class element map details 1 panel, the Data maintenance number field shows the maximum number of repeats allowed for that element, according to EDI standards. The number of repeats entered in the Select elements for message class map panel cannot exceed this number.

Element Instances

Instances are determined in the Select elements for message class map panel, in the Used column.

For inbound, instances refer to the number of places to write the element. If you have six fields where you are writing each value, you need six instances of the element.

For outbound, instances refer to the number of fields or data sources that populate the element. If the repeating element is comprised from six fields, you need six instances of the element.

Segment Instances

If multiple repeating elements are being written to or read from the same single field in multiple records, the number of segment instances should be 1N and the write action code for the format should be set to M (Write multiple per read). This tells EEI that the repeating element is being written to the same single field. Segment instances are specified in the Select segments for message class map panel. The write action for the format is set in the Work with segment map file/format panel.

You must attach a format to repeating elements. After a format is attached, an * (asterisk) appears in the repeating element's FQ column in the Work with message class segment map panel.

Work with element map for one segment

The Repeat sequence comes into play when there are separate fields in one record for a repeated value. For inbound, the repeat sequence tells EEI where the repeat delimiters are. For outbound, the repeat sequence tells EEI where to write the delimiters. In this one-to-one ratio, no N is needed in the number of instances, and the write action should be W (Write once per read).

This configuration applies only when all of the repeated values are stored in a single record.

Maximum Repeats per Record

Because application file fields can hold any number of repeats, the configuration of elements is completely customizable.

For example, say your application file is set up so that a single record can only hold a maximum of six repeats. If a repeating element repeats 18 times, your application files can be set up to store those values in three records (with six fields apiece).

If your files use a configuration that stores repeats across multiple records, you need to set up your map with a segment instance of 1N and a format write action of M (Write multiple per read).

Repetition Separator

The delimiter for repeating elements, if you are using 4040 standards or above, is set in the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners | 2. Trading partner details 1 panel's Interchange standard ID field. This field corresponds with the ISA 11 element.

Cleo recommends using a ^ (hat) for your repetition separator (so long as the ^ character does not appear in your repeating data).

Parent topic: Selecting Elements
Parent topic: Message Class Customization


Using Special Processing

For some elements, the data that would populate them is not generated until translation. Use special processing to tell EEI to generate values for such elements. For example, the Transaction Set Identifier does not exist until you translate. You can use special processing on the ST01, ST02, HL01, HL02, CTT01, SE01, and SE02 elements.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change on the element you want EEI to generate. Press Enter.

    Special processing can only be used on these elements:

    • ST01 - Transaction Set Identifier
    • ST02 - Transaction Set Control Number
    • HL01 - Hierarchical ID Number
    • HL02 - Hierarchical Parent ID Number
    • CTT01 - Number of Line Items
    • SE01 - Number of Included Segments
    • SE02 - Transaction Set Control Number
  2. The Message class element map details 1 panel appears. In the Element data source/destination field, type S0 (S and zero). Press Enter twice and confirm.
  3. Notice in the Work with element map for one segment panel, an S0 appears in the Source/destination column.
  4. Repeat these steps to map ST01, ST02, SE01, SE02, and CTT01.
Parent topic: Selecting Elements


Mapping elements to fields

Mapping elements to fields creates the connection between your local files and the EDI data. On incoming data, this tells EEI which element to use to populate a field. On outgoing data, this tells EEI which field to use to populate an element.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in a segment's Opt field. Press Enter.
  2. The Work with element map for one segment panel appears. Type F=Field select in an element's Opt field. Press Enter.
  3. The Select application file field for map panel appears. Locate the field you want to populate with that element. You can narrow your field choices down multiple ways.
    1. Use the Auto scan feature.

      • In the name field, values are Y or N. Y tells EEI to search for the element name in the field text. (For example, if the element name is "Date", EEI will pull up the fields with text "Order date BEG05," "Terms basis date cd ITD02," and "Cancel date DTM02". N deactivates this scan.

      • In the position field, values are Y or N. Y tells EEI to search for the Segment ID and Element ID in the field text. (For example, for segment BIG element 76, EEI will pull up fields with text "Invoice # BIG02." N deactivates this scan.

      • Pattern ID uses a user-defined search pattern string. The search pattern defines the method used to match fields to elements. This feature is used with auto mapping.

      Note: You can change the auto-scan defaults in the Select application file field for map panel by pressing F17=Auto Defaults.
    2. Type search information into one or multiple Position fields to narrow your field choices based on file, format, field, field text, or type.
  4. If there is a field you want to use to populate the element, type 1=Select in the field's Opt field. Press Enter and confirm. If there is no field you want to use, press F3=Exit.
  5. Repeat steps 3 through 6 until you have all the elements you want in your application files mapped. Remember, you only have to map to fields those elements that correspond to your application files.
    Note: In the Work with element map for one segment panel, you can type F=Field select in every element's Opt field and press Enter once. This will bring up each element's Select application file field for map panel one-by-one so you don't need to confirm multiple times.
  6. Notice that in the Work with element map for one segment panel, an A0 appears in the Source Destination column of each element mapped to a field.
Next:

After all your fields are mapped, you must attach formats to the segments. See Specifying Segment Map File/Formats - Inbound or Specifying Segment Map File/Formats - Outbound

.
Parent topic: Message Classes


Specifying Segment Map File/Formats - Inbound

For incoming documents, you must specify when data records from the document are to be written to your application files.

By placing a file/format on the occurrence of a segment, you control when the system writes a record for the specified file/format. Therefore, every time the segment appears in an incoming message, a record is created for that file/format in the appropriate application file.

For example:

To specify that one header record be written per document, attach the Header file/format to the SE segment.

To produce multiple sub-detail ship-to records for every item in a document, attach the Sub-detail file/format to the SDQ segment.

To specify that a detail record be produced for every occurrence of the PO1 loop, attach the Detail file/format to the PO1 segment.

Note: If you don't put any formats in a message class, you won't get any data.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function panel, type 2=Change in the Segment map; element map Opt panel. Press Enter.
  2. In the Work with message class segment map panel, type F=Formats in the Opt field of the segment you want to work with. Press Enter.

    Type F in the N1 segment's Opt field.

  3. In the Work with segment map file/format panel, if it is not in create mode, press F9=Change.
  4. Fill out the information for the application file you want to attach. Some fields are already filled with default values.
    1. The Send Receive column determines the direction of the data. Values are:
      • S - Sending
      • R - Receiving

      For receiving, choose R.

    2. You can either type the application file name and record format name in the appropriate fields or type ? in the Application file or Record format field and press Enter to prompt a selector panel.

      Choose the ORDADR file and OHNPP format.

    3. The Move action field controls the sequence of moving input data relative to writing output data in the translation processes. Values are:
      • A - Move the current segment data after writing the file.
      • B - Move the current segment data before writing the file.
      • N - No move action.

      Use the default values assigned by Cleo.

    4. The Write action field controls the method of writing application file records associated with the current segment. If specified on a loop start segment, controls the method of writing file records associated with the entire loop. Values are:
      • M - Write multiple application file records per segment. Choose if a segment has groups of repeating elements.
      • W - Write one application file record per segment (or per loop of segments).
      • (BLANK)- No write action.
      Note: If the segment is qualified, the action only occurs when the qualifier are satisfied.

      Use the default values assigned by Cleo.

    5. The Clear action field controls whether the current application file record format should be cleared on the current segment's occurrence. Values are:
      • (Blank) - No clear action/Keep data. Same effect as K.
      • C - Clear only after write.The format will be cleared at the start of each loop. Fields will be initialized with default values.
      • K - Keep data after write. If a format has fields mapped to elements on more than one segment within a loop, use K to to use the last successful read of the format (regardless of if a record format was read for the loop currently being processed.
      • K - Keep data after write. Preserves the higher level information to be repeated on each write operation to the format. Use if a format has fields mapped to elements at more than one loop level. (For example, both header and detail elements.)
      • U - Clear after write/no write.
      Note: All formats are cleared at the start or processing for each EDI message. This prevents information from one EDI message being carried over to the next EDI message. Because of this, you don't need to specify a clear code on any format that occurs only once per message.

      Use the default values assigned by Cleo.

  5. Press Enter and confirm. In the Work with message class segment map panel, notice an * (asterisk) appears in the FQ column, signifying that a format has been attached.
  6. Repeat these steps to attach remaining file/formats to proper segments.
Parent topic: Message Classes


Specifying Segment Map File/Formats - Outbound

For outgoing documents, you must specify when the document's data records are to be read from your application files.

By placing a file/format on the occurrence of a segment, you control when the system reads the data that will populate a segment. Therefore, the data in that record will be available when a segment needs to be generated.

Note: If you don't put any formats in a message class, you won't write any data.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function panel, type 2=Change in the Segment map; element map Opt panel. Press Enter.
  2. In the Work with message class segment map panel, type F=Formats in the Opt field of the segment you want to work with. Press Enter.
  3. In the Work with segment map file/format panel, if it is not in create mode, press F9=Change.
  4. Fill out the information for the application file you want to attach. Some fields are already filled with default values.
    1. The Send Receive column determines the direction of the data. Values are:
      • S - Sending
      • R - Receiving

      For sending, choose S.

    2. You can either type the application file name and record format name in the appropriate fields or type ? in the Application file or Record format field and press Enter to prompt a selector panel.
      Note: EEI will automatically fill in the Level test indicator field if applicable.
    3. The Level test indicator, listed in descending order, controls the order in which the files is tested following a read of the application file. The format with the highest level test indicator is treated as a required format for creating the attached segment or loop of segments. All following formats are treated as optional.
    4. The Move action field controls the sequence of moving input data relative to writing output data in the translation processes. Values are:
      • R - Read file before writing segment. Read the file at each point where the corresponding segment might be created. The actual format read will be compared to the specified format, and if the formate match, the segment or loop of segments will be written. Use if the file is multi-format with each format triggering a segment or loop of segments.
      • S - Read file after writing segment. Use
      • N - No move action. Use on all loop start segment formats excluding the final format.
      Note: If the file is single format (for example, a join) in which the record triggering the header segment is also serving as the first record of each lower level loop, use R on the first read (the initial segment) and S everywhere else.

      Use the default value.

    5. The Write action field controls the method of writing the current segment or loop of segments in relation to reading the application file. Values are:
      • M - Write one segment for multiple application file records. Choose if a segment has groups of repeating elements to be mapped to the same set of fields.
      • W - Write one segment (or loop of segments) per application file.
      Note: If the segment is qualified, the action only occurs when the qualifier are satisfied.

      Use the default value.

    6. The Clear action field controls whether the current application file record format should be cleared on the current segment's occurrence. Values are:
      • (Blank) - No clear action/Keep data. Same effect as K.
      • C - Clear only after write. The format will be cleared at the start of each loop. Fields will be initialized with default values.
      • K - Keep data after write. If a format has fields mapped to elements on more than one segment within a loop, use K to use the last successful read of the format (regardless of if a record format was read for the loop currently being processed.
      • K - Keep data after write. Preserves the higher level information to be repeated on each write operation to the format. Use if a format has fields mapped to elements at more than one loop level. (For example, both header and detail elements.)
      • U - Clear after write/no write.
      Note: All formats are cleared at the start or processing for each EDI message. This prevents information from one EDI message being carried over to the next EDI message. Because of this, you don't need to specify a clear code on any format that occurs only once per message.

      Use the default value.

  5. Press Enter and confirm. Press F9=Change to view the normal Work with segment map file/format panel. Notice that you can change the Move action, Write action, and Clear action values in this panel.
  6. Press F3=Exit to return to the Work with message clas segment map panel. Notice that an * (asterisk) appears in the FQ column.
  7. Repeat these steps to attach all file/formats to appropriate segment.
Parent topic: Message Classes


Selecting and Deselecting Files and Formats

When associating a message class with an application file set, all files and formats in that file set are selected. In outgoing messages, you must deselect any formats you are not using in the map. Also, whenever you add a new file or format to an existing map's file set, you must select the new file and/or format before accessing the fields in the map.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type 2=Change in your message class' Opt panel. Press Enter.
  2. In the Change message class details panel, press F15=Select files for map.
  3. In the Select files for message class map panel, notice that an * (asterisk) appears in the Used column for any format containing mapped fields. Type 5=Work with formats for selection or deselection on the Opt field of the file you want to select or deselect. Press Enter.
  4. In the Select formats for message class map panel, you can:
    1. Select a format - Type 1=Select in the format's Opt field. Press Enter and confirm.
    2. Deselect a format - Type 4=Deselect in the format's Opt field. Press Enter and confirm.
    3. View where a file's fields are used in the message class - Type U=Display usage in map in the format's Opt field. Press Enter.
    Note: EEI will not allow you to deselect a format that has fields used in mapping. You must remove the mapping to be able to deselect the format.
Parent topic: Message Classes
Parent topic: Mapping


Message Class Customization

Once your segments and elements are created within a message class, you can further customize your message class. Options include changing condition designators, adding constants to data, retrieving data from outside your file set, and more. Each of these customizations can be done for both inbound and outbound, however the setup may differ depending on the direction.

Changing Minimum and Maximum Element Length Digits

EEI allows users to change the minimum and maximum number of digits an element can contain. For more information, see Changing Minimum and Maximum Element Length Digits.

Accumulators

Accumulators are used to accumulate totals for recurring elements into a single element or field. For more information, see Accumulators.

Line Counters

Line counters are used to make a unique sequence number to count how many records are written to a file for inbound or how many times a segment is generated for outbound. For more information, see Line Counters.

Constants

Use constants to include static data in your mapping that does not come from your application files. For more information, see Constants.

Mapping Envelope Elements and Non-Element Data

If there is no corresponding segment in a transaction set for the information you want to include, you can map a data source directly to a field. This can be used to map a constant identifier, the current date and time, elements from the interchange or group envelopes, etc. For more information, see Mapping Envelope Elements and Non-Element Data.

Mandatory, Optional, and Conditional Segments and Elements

Segments have segment requirements and elements have condition designators giving them default values that make them mandatory, optional, or conditional. EEI also allows you to set up relational conditions between elements to affect outbound data. For more information, see Mandatory, Optional, and Conditional Segments and Elements.

Code Tables

Code translation tables allow EEI to pass a value through a table to return another value or call a program to manipulate data during translation. For more information, see Code tables.

External File Lookup

External File Lookup (EFL) allows EEI to retrieve information from a file outside a message class' application file set to populate an element (outbound) or a field (inbound). For more information, see External File Lookup.

Substrings

Substrings tell EEI how many characters to capture from an element or a field and where to place those characters into a field or element. For more information, see Substrings.

Mapping Reference Fields

EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data.

These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands. For more information, see Mapping Reference Fields - Inbound and Mapping Reference Fields - Outbound.

Mapping Dashboard Search Codes

Mapping a Dashboard search code to an element creates a customized search term for looking up messages in EEI’s Display Messages by Reference Field (DSPMSGREF) panel and in the Cleo Dashboards. For more information, see Mapping Dashboard Search Codes.

Work Fields

Work Fields are variables that can be populated and used during translation. These fields are created and edited in a message class. They are used to store and retrieve data.

Work Fields have all of the mapping capabilities of an application file field; this includes use in formulas, code tables, data parsing with substring/concatenation, and all field/element mapping capabilities. For more information, see Work Fields.

Formulas

Formulas allow users to manipulate data to return an alphanumeric result, a true/false value, or to call an external program. For more information, see Formulas.

  • Changing Minimum and Maximum Element Length Digits
    EEI allows users to change the minimum and maximum number of digits an element can contain. This is useful if your trading partner sends data that is too long to fit in your file fields.
  • Repeating Elements
    EEI supports the full set of X12 standards, including repeating elements. Repeating Elements are a single or composite element with the ability to repeat multiple times within a segment, with each element occurrence separated by the delimiter specified in the ISA11. Mapping screens have been changed to reflect their use.
  • Accumulators
    Accumulators are used to accumulate totals for recurring elements into a single element or field. For example, you use accumulators to total quantities ordered or item prices, then map that total to a separate element or field. Accumulators can be used in inbound and outbound maps.
  • Line Counters
    Line counters are used to make a unique sequence number to count how many records are written to a file for inbound or how many times a segment is generated for outbound.
  • Constants
    Use constants to include static data in your mapping that does not come from your application files. For example, if you wanted to add your organization name to an outbound 850 purchase order, you could use a constant to directly populate an element. Constants can be used with inbound and outbound translation.
  • Mapping Envelope Elements and Non-Element Data
    You can write data that is not part of an EDI transmission to your files. If there is no corresponding segment in a transaction set for the information you want to include, you can map a data source directly to a field. This can be used to map a constant identifier, the current date and time, elements from the interchange or group envelopes, etc.
  • Mandatory, Optional, and Conditional Segments and Elements
    Segments have segment requirements and elements have condition designators giving them default values that make them mandatory, optional, or conditional. EEI also allows you to set up relational conditions between elements to affect outbound data.
  • Code tables
    Code translation tables allow EEI to pass a value through a table to return another value or call a program to manipulate data during translation.
  • External File Lookup
    External File Lookup (EFL) allows EEI to retrieve information from a file outside a message class' application file set to populate an element (outbound) or a field (inbound).
  • Substrings
    Substrings tell EEI how many characters to capture from an element or a field and where to place those characters into a field or element. Substrings can be used for both inbound and outbound.
  • Work Fields
    Work Fields are variables that can be populated and used during translation. These fields are created and edited in a message class. They are used to store and retrieve data.
  • Formulas
    Formulas allow users to manipulate data to return an alphanumeric result, a true/false value, or to call an external program. They can be used for inbound and outbound.
Parent topic: Mapping


Changing Minimum and Maximum Element Length Digits

EEI allows users to change the minimum and maximum number of digits an element can contain. This is useful if your trading partner sends data that is too long to fit in your file fields.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with Message Classes | 8. Select message class function | Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change in the Opt field of the element you want to change.
  2. The Message class element map details 1 panel appears. In the Minimum length and Maximum length fields, type the new number of digits. Press Enter.
    Note: You cannot enter a maximum number that exceeds the EDI standard.
  3. Notice the message at the bottom of the panel indicating that the standards exception code has been changed. Press Enter and confirm.
Parent topic: Message Class Customization


Accumulators

Accumulators are used to accumulate totals for recurring elements into a single element or field. For example, you use accumulators to total quantities ordered or item prices, then map that total to a separate element or field. Accumulators can be used in inbound and outbound maps.

Accumulators are always placed on an element. That element should be mapped to a field. The total is mapped to an element for outbound data or a field for inbound data. The element or field containing the total should only be used for accumulating. It should not be otherwise mapped.

You can use up to 99 accumulators per message class, with each one numbered separately, from A01 to A99. This number corresponds with your data source and data destination: When you create an A02 accumulator, you then make that A02 the source for a field or element.

For example, in an outbound 810 invoice, if you want to send your trading partner a total quantity for all your line items, you would place an accumulator on your IT02 element (Quantity invoiced). Then make that accumulator the source for your CTT02 element (Hash total). EEI will add up all the quantities invoiced in the 810 and place the total number in the CTT02.

Process

To use accumulators you must:

  • Identify the element you want to accumulate.
  • Map the element to a field, if it is not already mapped.
  • Place an accumulator on the element.
  • If inbound, make the accumulator the source for a field (where you want the total to go).
  • If outbound, make the accumulator the source for an element (where you want the total to go).
  • Using Accumulators - Inbound
    For inbound translation, accumulators are used to accumulate totals for quantities ordered, item prices, etc. into a single field.
  • Using Accumulators - Outbound
    For outbound translation, accumulators are used to accumulate totals for quantities ordered, item prices, etc. into a single element.
Parent topic: Message Class Customization


Using Accumulators - Inbound

For inbound translation, accumulators are used to accumulate totals for quantities ordered, item prices, etc. into a single field.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function | 2 Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to accumulate. Press Enter.
  2. In the Work with element map for one segment panel, type 2=Change in the Opt field of the element you to accumulate. Press Enter.
  3. The Change message class element map details 1 panel appears. In the Accumulator or segment counter field, type A## with ## being a number for the specific accumulator. For example, if it is the first accumulator in the message class, type A01. If it is the fourth, type A04, etc.
    Note: You can have up to 99 accumulators per message class.
  4. Press Enter and confirm. Press F3=Exit until you return to the Select message class function panel.
  5. Type 2=Change on the Message class application file fields Opt field. Press Enter.
  6. The Work with message class application file fields panel appears. Locate the field you want to contain the accumulated total. Type 2=Change in that field's Opt field. Press Enter.
    Note: Choose a field that does not have anything else mapped to it.
  7. The Change message class field map details panel appears. In the Field data source/destination field, type AC (Accumulator).
  8. In the Accumulator or segment counter field, type A## with ## being the same number you assigned to your accumulator in Step 3.
  9. Press Enter and confirm. Notice in the Work with message class application file fields panel, an AC appears in the Source/Destination column.
Parent topic: Accumulators


Using Accumulators - Outbound

For outbound translation, accumulators are used to accumulate totals for quantities ordered, item prices, etc. into a single element.

Make sure you have a field mapped to the element you are accumulating.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to accumulate. Press Enter.
  2. In the Work with element map for one segment panel, type 2=Change in the Opt field of the element you want to accumulate. Press Enter.
    Choose the IT103 element (Quantity Invoiced).
  3. The Change message class element map details 1 panel appears. In the Accumulator or segment counter field, type A## with ## being a number for the specific accumulator. For example, if it is the first accumulator in the message class, type A01. If it is the fourth, type A04, etc.
    Note: You can have up to 99 accumulators per message class.

    Choose A01.

  4. Press Enter and confirm. Press F3=Exit to return to the Work with message class segment map panel.
  5. Type 5=Element in the Opt field of the segment housing the element where you want the accumulated total. Press Enter.
    Choose the CTT segment.
  6. In the Work with element map for one segment panel, type 2=Change on the Opt field of the element that will contain the accumulated total. Press Enter.
    Choose the CTT02 element.
  7. The Message class element map details 1 panel appears. In the Element data source/destination field, type AC (Accumulator).
  8. In the Accumulator or segment counter field, type A## with ## being the same number you assigned to your accumulator in Step 3.
  9. Press Enter and confirm. Notice in the Work with element map for one segment panel, an AC appears in the element's Source/destination column and the accumulator appears in the Field/constant/accumulator/counter column.
Parent topic: Accumulators


Line Counters

Line counters are used to make a unique sequence number to count how many records are written to a file for inbound or how many times a segment is generated for outbound.

They are especially useful for segments that loop because they can increment each write of a loop for inbound or count the segments generated for outbound.

Clear is used to reset the counters back to 1. For example, if using an SDQ segment in a PO1 loop, you would want the count to start over on each write. This would differentiate the first SDQ in your first PO1 from the first SDQ in your second PO1, etc.

You can use line counters for inbound and outbound.

Inbound Line Counters

The A3 and A5 counters are attached at the field level. Incrementing occurs when the record holding the field is written. If the A3 and A5 are on more than one file/record format, the counter gets incremented at each write.

These counters can be copied to other fields using A4 (which copies A3) and A6 (which copies A5). These codes are also attached at the field level.

If the counters need to be cleared/zeroed out, use A7 to clear A3 and use A8 to clear A5. The A7 and A8 also need to be attached at field level, but to a record that occurs after the write to the file that had the A3 and A5 attached.

The Inbound Data Codes:

  • A3 - Increment line number 1 to application file
  • A4 - Copy line number 1 to application file
  • A5 - Increment line number 2 to application file
  • A6 - Copy line number 2 to application file
  • A7 - Zero line number 1 to application file
  • A8 - Zero line number 2 to application file

Outbound Line Counters

The D3 and D5 counters, used for outbound processing, are attached at the element source/destination.

These counters can be copied to other elements using D4 (which copies D3) and D6 (which copies D5).

If the counters need to be cleared/zeroed out, use D7 to clear D3 and use D8 to clear D5.

The Outbound Data Codes:

  • D3 - Increment line number 1 to element
  • D4 - Copy line number 1 to element
  • D5 - Increment line number 2 to element
  • D6 - Copy line number 2 to element
  • D7 - Zero line number 1 to element
  • D8 - Zero line number 2 to element
Parent topic: Message Class Customization


Constants

Use constants to include static data in your mapping that does not come from your application files. For example, if you wanted to add your organization name to an outbound 850 purchase order, you could use a constant to directly populate an element. Constants can be used with inbound and outbound translation.

Constants should be information that does not change (at least in the short-term): Your company name, an address, etc.

There are two types of constants in EEI: long and short. Using short constants, EEI allows constants five characters or fewer to be added directly to an element or field. Long constants are six characters or longer and must be created outside your segment map in the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Edit message class constants panel and attached to an element or field.

Short constants

Short constants can be one to five characters long. They are created in the Change message class field map details panel for inbound translation, and in the Message class element map details 1 panel for outbound translation.

Long constants

If you need to add a constant that is six or more characters to a field or element, you must create a constant outside of your map and attach it to the element. A long constant can be a maximum of 100 characters.

Although you create a long constant outside your map, it is still tied to your message class. You can use constants from one message class in another. Just be aware using a constant from another message class creates a dependency, and if a message class is moved or deleted, the constant will no longer work.

Because of this Cleo recommends creating a single message class (the type doesn't matter) to house all your long constants. That way, if you ever migrate your message class during an upgrade, you can easily move or create a copy of the constants' message class, ensuring that the constants will always work.

To use long constants you must:
  • Create a constant, and its five-character key (name).
  • Attach the constant to an element for outbound translation, or a field for inbound translation.
  • Mapping Short Constants to Fields - Inbound
    For inbound documents, short constants allow EEI to add five characters or fewer directly to a field. Longer constants must be set up outside your segment map.
  • Mapping Short Constants to Elements - Outbound
    For outbound documents, short constants allow EEI to add five characters or fewer directly to an element. Longer constants must be set up outside your segment map.
  • Creating long constants
    If you need to add a constant that is longer than five characters to a field or element, you must create a constant outside of your segment map, in the Edit message class constants panel and attach it to an element or field.
Parent topic: Message Class Customization


Mapping Short Constants to Fields - Inbound

For inbound documents, short constants allow EEI to add five characters or fewer directly to a field. Longer constants must be set up outside your segment map.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class application file fields panel, type 2=Change in the Opt field of the OHTSCT field. Press Enter.
  2. The Message class field map details panel appears. In the Field data source/destination field, type C# with # being the character-length of your constant. (For example, to add “ACME” to an element, type C3.) Press Enter.
  3. The Short constant field appears. Type your 850 into this new field. Press Enter and confirm.
  4. Notice in the Work with message class application file fields panel, C# (with # corresponding with your constant) appears in the Source/destination column.
Parent topic: Constants


Mapping Short Constants to Elements - Outbound

For outbound documents, short constants allow EEI to add five characters or fewer directly to an element. Longer constants must be set up outside your segment map.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment that houses the element you want to change. Press Enter.
  2. The Work with element map for one segment panel appears. Type 2=Change on the element you want to populate with a constant. Press Enter.
  3. The Message class element map details 1 panel appears. In the Element data source/destination field, type C# with # being the character-length of your constant. (For example, to add “ACME” to an element, type C4.) Press Enter.
  4. The Short constant field appears. Type your short constant into this new field. Press Enter and confirm.
  5. Notice in the Work with element map for one segment panel, your constant appears in the Field/constant/accumulator/counter column.
  6. Repeat these steps to map short constants to the following elements:
    • First DTM segment - map 001 constant to the DTM01 element.
    • Second DTM segment - map 010 constant to the DTM01 element.
    • Third DTM segment - map 002 constant to the DTM01 element.
    • IT1 segment - map CB constant to IT106, map UP constant to IT108, and map IT constant to IT110.
Parent topic: Constants


Creating long constants

If you need to add a constant that is longer than five characters to a field or element, you must create a constant outside of your segment map, in the Edit message class constants panel and attach it to an element or field.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function panel, type 2=Change in the Constants Opt field. Press Enter.
    Note: If you intend to also use this constant outside this message class, consider creating it in a separate message class (type does not matter) that houses nothing but long constants.
  2. The Edit message class constants panel appears. If it is not in create mode, press F9=Change to enter create mode.
  3. Fill out the Opt, Key, and Constant data fields to create your long constant.
    1. In the Opt field, type L=Calculate actual length. This option fills out the Length field for you automatically.
    2. In the Key field, type a key name for your constant. It cannot exceed five characters.
    3. In the Constant data field, type your long constant.
  4. Press Enter and confirm. Press F9=Change to exit create mode.
  5. If you need to make changes to your constant, you can edit them directly from the Edit message class constants panel. Type L=Calculate actual length in the constant's Opt field and type changes in the Constant data field. Press Enter twice.
    Note: To view all constants from all message classes in the Edit message class constants panel, press F11=Edit constants all message classes.
Next: To use this constant, you must attach it to the field or element you want it to populate.
  • Mapping Long Constants to Fields - Inbound
    For inbound documents, you must attach a long constant to a field.
  • Mapping Long Constants to Elements - Outbound
    For outbound documents, you must attach a long constant to an element.
Parent topic: Constants


Mapping Long Constants to Fields - Inbound

For inbound documents, you must attach a long constant to a field.

You must first have a constant you want to use. If you do not have one, create it.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with Message class application file fields panel, type 2=Change in the Opt field of the field that needs the constant. Press Enter.
  2. The Change message class field map details 1 panel appears. In the Field data source/destination field, type C0 (C and zero). Press Enter.
  3. The Constant key and Constant length fields appear. Type ? in the first Constant key field. Press Enter. The Select message class constants panel appears.
  4. Locate your long constant. Type 1=Select in its Opt field, and press Enter.
  5. In the Message class element map details 1 panel, press Enter and confirm. Notice that in the Work with message class application file fields panel, a C0 appears in the field's Source/destination column.
Parent topic: Creating long constants


Mapping Long Constants to Elements - Outbound

For outbound documents, you must attach a long constant to an element.

You must have a constant you want to use. If you do not have one, create it.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment that houses the element you want to change. Press Enter.
  2. In the Work with element map for one segment panel, type 2=Change on the element that needs the constant. Press Enter.
  3. In the Message class element map details 1 panel, type C0 (C and zero) in the Element data source/destination field. Press Enter.
  4. The Constant key and Constant length fields appear. Type ? in the first Constant key field. Press Enter.
  5. The Select message class constants panel appears. Locate your long constant. Type 1=Select in its Opt field. Press Enter.
  6. In the Message class element map details 1 panel, press Enter and confirm. Notice that in the Work with element map for one segment panel, your constant appears in the Field/constant/accumulator/counter column.
Parent topic: Creating long constants


Mapping Envelope Elements and Non-Element Data

You can write data that is not part of an EDI transmission to your files. If there is no corresponding segment in a transaction set for the information you want to include, you can map a data source directly to a field. This can be used to map a constant identifier, the current date and time, elements from the interchange or group envelopes, etc.

Mapping envelope data can only be done in inbound translation.

Mapping non-element data can be done in both inbound and outbound translation.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function panel, type 2=Change in the Message class application file formats/fields Opt field. Press Enter.
  2. In the Work with message class application file format panel, type 5=Work with fields on the Opt field of the file you want to write to. Press Enter.
  3. In the Work with message class format fields panel, type 2=Change on the Opt field of the OHSOLD field. Press Enter.
  4. The Change message class field map details panel appears. In the Field data source/destination field, type ? and press Enter to prompt the Data source list panel.
  5. Type 1=Select in the Opt field of the I3 Interchange Sender ID. Press Enter.
  6. Press Enter and confirm. Notice in the Work with message class format fields panel, the data source code appears in the field's Source/Destination column.
  • Data Source Codes
    EEI has pre-set codes to allow you to map non-element data sources to file fields in the Change message class field map details panel.
Parent topic: Message Class Customization


Data Source Codes

EEI has pre-set codes to allow you to map non-element data sources to file fields in the Change message class field map details panel.

Data Source Codes

  • AC - Accumulator
  • AC - Accumulator
  • A0 - Application file field
  • A1 - Application data log number
  • A3 - Increment line number 1 to application file*
  • A4 - Copy line number 1 to application file*
  • A5 - Increment line number 2 to application file*
  • A6 - Copy line number 2 to application file*
  • A7 - Zero line number 1 to application file*
  • A8 - Zero line number 2 to application file*
  • C0 - Constant from constant file
  • C1 - Contant, 1 character
  • C2 - Constant, 2 characters
  • C3 - Constant, 3 characters
  • C4 - Constant, 4 characters
  • C5 - Constant, 5 characters
  • DA - Duplicate alpha-numeric trading partner
  • DB - Duplicate alpha-numeric no trading partner
  • DC - Duplicate number trading partner
  • DD - Duplicate number no trading partner
  • DM - Duplicate multiple by trading partner
  • DN - Duplicate multiple no trading partner
  • DS - Dashboard Search
  • D0 - Data element value
  • D3 - Increment line number 1 to element*
  • D4 - Copy line number 1 to element*
  • D5 - Increment line number 2 to element*
  • D6 - Copy line number 2 to element*
  • D7 - Zero line number 1 to element*
  • D8 - Zero line number 2 to element*
  • FD - Field destination
  • FP - Formula parameter
  • FR - Formula result
  • FS - Field source
  • GA - Group application password
  • GC - Group code
  • GI - Group industry assigned code
  • GR - Group release
  • GV - Group version
  • G0 - Group control reference
  • G1 - Group log number
  • G2 - Group application sender ID qualifier
  • G3 - Group application sender ID
  • G4 - Group application receiver ID qualifier
  • G5 - Group application receiver ID
  • G6 - Group date
  • G7 - Group time
  • G8 - Group controlling agency
  • G9 - Group version/release/industry group
  • HT - Hash total accumulator
  • IA - Interchange authorization information qualifier
  • IB - Interchange authorization information
  • IC - Interchange security information qualifier
  • ID - Interchange security information
  • IE - Interchange application reference
  • IF - Interchange priority code
  • IG - Interchange communication agreement
  • IH - Interchange test indicator
  • II - Interchange syntax ID
  • IJ - Interchange version ID
  • IK - Interchange acknowledgement requested
  • IU - Interchange sub-element delimiter
  • IV - Interchange element delimiter
  • IW - Interchange decimal notation
  • IX - Interchange release indicator
  • IY - Interchange repetition separator
  • IZ - Interchange segment delimiter
  • I0 - Interchange control reference
  • I1 - Interchange log number
  • I2 - Interchange sender ID qualifier
  • I3 - Interchange sender ID
  • I4 - Interchange receiver ID qualifier
  • I5 - Interchange receiver ID
  • I6 - Interchange date
  • I7 - Interchange time
  • I8 - Interchange routing address
  • I9 - Interchange address reverse routing
  • JD - Job date YYMMDD
  • JT - Job time HHMM
  • MA - Message transfer status
  • MB - Message transfer sequence
  • MC - Message ID code
  • MD - Message log reference date 1 CYYMMDD
  • ME - Message log reference time 1 HHMM
  • MF - Message log reference date 2 CYYMMDD
  • MG - Message log reference time 2 HHMM
  • M0 - Message control reference
  • M1 - Message log number
  • M3 - Message common access reference
  • M4 - Message class
  • M5 - Message log reference number 1
  • M6 - Message log reference number 2
  • M7 - Message log reference number 3
  • M8 - Message log reference date/time 1
  • M9 - Message log reference date/time
  • SC - Segment counter
  • SD - Session (communications) date/time
  • SN - Session (communications) network
  • SP - Session (communications) network port
  • SS - Session (communications) script
  • ST - Segment count total per message
  • S0 - Special process
  • S1 - Session (communications) log number
  • TP - Trading partner code
  • UP - Updateable file flag

* Used with line counters.

Parent topic: Mapping Envelope Elements and Non-Element Data


Mandatory, Optional, and Conditional Segments and Elements

Segments have segment requirements and elements have condition designators giving them default values that make them mandatory, optional, or conditional. EEI also allows you to set up relational conditions between elements to affect outbound data.

Values

Segments can be assigned different values, including:
  • C - Conditional
  • F - Floating
  • M - Mandatory/Positional
  • O - Optional
  • R - Mandatory/Non-positional
Elements can be assigned different values, including:
  • C - Conditional
  • M - Mandatory
  • O - Optional

Combinations

Using different combinations of values on segments and elements has different effects on your outbound data.

Optional segment and mandatory element - If there is nothing in the mandatory element field, the entire segment is suppressed and does not send.

Mandatory segment and mandatory element - If you don't generate the mandatory element, EEI gives a generation error when translating.

  • Creating Relational Conditions between Elements
    Creating a relational condition allows you to create user-defined element conditions. It is an outbound-only operation.
  • Changing Segment Requirements
    Changing the segment requirements allows you to make an optional segment mandatory, a conditional segment optional, etc.
  • Changing Condition Designators on an Element
    Changing the condition designators on an element allows you to make an Optional or conditional element mandatory, optional, or conditional. This can be used to ensure you will send a trading partner data they need, and vice versa.
Parent topic: Message Class Customization


Creating Relational Conditions between Elements

Creating a relational condition allows you to create user-defined element conditions. It is an outbound-only operation.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with Message Classes | 8. Select message class function | Work with message class segment map panel, type 8=Relational condition in the Opt field of the segment that houses the elements you want to work with. Press Enter.

    Type 8 on the IT1 segment.

  2. The Work with message class relational conditions panel appears. If it is not in create mode, press F9=Create. Fill out the fields.
    1. In the Condition sequence field, type a sequence number (for example, 1, 2) to specify the order you want the relational conditions to take place.
    2. In the Relation code field, type a value to specify the element's relationship to other elements. Values include:
      • C - Conditional - If the first element in the list is present, all other elements listed must be present. If the first element is not present, any subsequent elements in the list may be present.
      • E - Exclusion - Only one of the elements in the list may be present. Any more than one and the data will not translate. The data will translate if none are present.
      • L - List conditional - If the first element in the list is present, at least one other listed element must be present. If the first element is note present, any subsequent elements in the list may be present.
      • P - Paired or Multiple - If any element in the list is present, then all of the elements in the list must be present. The data will translate if none are present.
      • R - Required - At least one element in the list must be present.
    3. In the Element list field, type your element list using the two-digit element positions. Do not put spaces or symbols between the element positions. For example, to make a list of the ITD segment listing the Terms Type Code, Terms Basis Date Code, and Terms Discount Days Due, my list would be "010205."
    4. In the Error response column, specify what you want EEI to do if the relational condition is not satisfied during translation. Values include:
      • C - Change element data and accept - Elements that cause the relational condition to fail are suppressed. If any suppressed elements are mandatory, a "Missing mandatory data" error is reported and data will be rejected.
      • E - Report errors and accept
      • I - Ignore errors and accept
      • R - Report errors and reject
      • S - Suppress segment - The entire segment is suppressed if the relational condition is not satisfied. If the segment is mandatory, an error is reported and data is rejected.
  3. Press Enter and confirm.

    Create three relational conditions according to this table:

    Table 1.
    Condition sequence | Relation code | Element list | Error response
    1 | P (Paired or multiple) | 0607 (Product service ID qualifier and Product service ID) | C (Change element data and accept)
    2 | P (Paired or multiple) | 0809 (Product service ID qualifier and Product service ID) | C (Change element data and accept)
    3 | R (Required) | 0709 (Product service ID and Product service ID) | S (Suppress segment)
Parent topic: Mandatory, Optional, and Conditional Segments and Elements


Changing Segment Requirements

Changing the segment requirements allows you to make an optional segment mandatory, a conditional segment optional, etc.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with Message Classes | 8. Select message class function | Work with message class segment map panel, type 2=Change in the Opt field of the segment you want to change.
  2. The Message class segment map details panel appears. In the Segment requirement field, specify a designator for the element. Values are:

    • C - Conditional

    • F - Floating

    • M - Mandatory/Positional

    • O - Optional

    • R - Mandatory/Non-positional

  3. Press Enter and confirm. Notice in the Work with message class segment panel, the new requirement value appears in the R(Requrement) column.
Parent topic: Mandatory, Optional, and Conditional Segments and Elements


Changing Condition Designators on an Element

Changing the condition designators on an element allows you to make an Optional or conditional element mandatory, optional, or conditional. This can be used to ensure you will send a trading partner data they need, and vice versa.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with Message Classes | 8. Select message class function | Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change in the Opt field of the element you want to change.
  2. The Message class element map details 1 panel appears. In the Condition designator field, specify a designator for the element. Values are:

    • C - Conditional

    • M - Mandatory

    • O - Optional

  3. Press Enter. Notice a message appears at the bottom of the panel stating the standards exception code has been changed.
  4. Press Enter and confirm. Notice in the Work with element map for one segment panel, the new designator appears in the Mandatory/Optional column.
Parent topic: Mandatory, Optional, and Conditional Segments and Elements


Code tables

Code translation tables allow EEI to pass a value through a table to return another value or call a program to manipulate data during translation.

There are three types of code tables, and each can be used in inbound and outbound.

When working with code tables, keep in mind that "standard" refers to EDI standards and "local" refers to your local application files. When you set up code tables, you will either work standard to local (inbound) or local to standard (outbound).

Code tables can be based on a free-form list of values that you define or on an ID element list that limits what values can be contained in an element.

Direct Lookup Code Tables

Direct lookup code tables use a one-to-one relationship; you pass in one value to return another value. Using direct lookup, the data (or lack thereof) in an element is passed to a code translation table, and the code table returns a corresponding value.

For inbound translation, an incoming element is passed to a code table containing values to return based on what data is in that element. That value is written to your application files.

For outbound translation, the data from a field in your application files is passed to a code table containing values to return based on what data is in that field. That value is passed to a mapped element.

For example, suppose a trading partner sends you an order for socks and gloves. You both use the same UPC number for socks, but a different one for gloves. You can create a code table that checks the UPC number: If it's socks, it will leave the value the same, but if it's gloves, it will write your glove UPC number to your files.

If using a direct lookup code table in both directions (inbound and outbound), the code table entry columns will be "flipped" - the columns will change sides depending on if you access the table by 5=Work standard or 8=Work local.

You can specify that EEI creates half a code table entry when it encounters a value that causes an unsuccessful code table entry.

For example, suppose you set up a code table with search values of if A return B, and if C return D. (There is no *OTHERWISE exception set up.) If the code table encounters the value E, it will fail. However, you can set EEI to automatically generate a dummy entry in your code table with a search value of E and a dummy entry as the return value.

The dummy entry is a character (the default is ! for local-to-standard and ? for standard-to-local) plus a string of numbers. This initial character makes it easy to search your code table entries for this dummy entry and enter a real return value for when E is encountered again. If you do not change this dummy entry and the code table encounters the search value again, the lookup will be unsuccessful.

Three data areas provide more options for direct code tables only.
  • EXADDCOD - If set to Y (Yes), upon an unsuccessful code table lookup, the value that caused it to fail will automatically be added to the code table as a search value.
  • EXADDCODAS - Used when EXADDCOD is set to Yes. Specifies the initial character in a "dummy" value for local-to-standard lookup. The default is !
  • EXADDCODSA - Used when EXADDCOD is set to Yes. Specifies the initial character in a "dummy" value for standard-to-local lookup. The default is ?

Qualified Lookup Code Tables

Qualified lookup code tables use a two-to-one relationship; you pass in two values to return a single value. Qualified lookup works similarly to how a direct code table works, however two values are needed to return a single value. The qualifier can be a constant, a field, or a special value.

For inbound translation, an incoming element is passed to a code table containing a qualifier and values to return based on the element data and its relationship with the qualifier. Based on whether the element-qualifier requirements are met, a value is written to a single field in your application files.

For outbound translation, the data from a field in your application files is passed to a code table containing a qualifier and values to return based on the element data and its relationship with the qualifier. Based on whether the field-qualifier requirements for both fields are met, a value is passed to a single mapped element.

For example, say you have an internal part code based not only on the item but on which trading partner sends it to you. You can create a code table that checks the incoming customer part number, qualifies it against information that will identify which trading partner sent the part, and returns the correct internal part number.

Qualified Lookup code tables are commonly used to set up tailored multiple send.

The comparison between the code table qualifier and the qualifier specified in the message class field map entry may be specified as an “equal to”, “greater than or equal to”, or “less than or equal to” relationship. This allows, for example, price lookup within a range of quantities, or a discount percentage depending upon order date.

External Program Call Code Tables

External program call code tables use translation of an element or field to trigger a program.

For inbound or outbound, an element, field, and/or qualifier are passed to an external program call that performs an operation (for example, a calculation or look-up). The return value is passed to an element (outbound) or written to a field (inbound).

For example, you could attach the DATECONVRT code table to a field or element to convert a date from Year-Month-Date format to Month-Date-Year format.

Cleo provides a number of code tables with EEI. They are available in the Cleo EEI Main Menu | 5. Mapping | 4. Work with code translation tables panel. To view only the external program call code tables, type E in the Method search positioner field and press Enter.

One of two parameter lists can be specified with the lookup method code. Values are:
  • E - Parameter list 1, the shorter list
  • F - Parameter list 2, the longer list

The maximum length that can be accommodated by the data parameters for external process code translation is 80 characters. This maximum length applies to the EDI standard code, the local code, and the qualifier. Source code for four programs which may be used as sample external call programs is found in file QRPGLESRC in library EXTSYS. Program DATECONV converts between various date formats, with the type of conversion determined by a constant qualifier specified in the message class application file field map. Program EXCDP11 is an example of a program using parameter list 1, and programs EXCDP21 and EXCDP22 are examples of programs using parameter list 2.

If you need to edit an Cleo-supplied external program call code table, Cleo recommends copying the code table and modifying the copy.

Exceptions

Use exceptions to return a user-specified value when a direct or qualified code table lookup doesn't produce a result.

To use an exception, type *Otherwise in the left column of your code table and one of these return values in the right column:

  • *Return input - Return the input value as the result
  • *Return null - Return a null value as the result
  • *Return qualifier - Return the qualifier value as the result
  • *Error - Force a translation error
  • Parameter Lists for External Program Call Code Tables
    External program call code tables can have one of two parameters lists.
  • Creating Direct Lookup Code Tables
    Using direct lookup, the data (or lack thereof) in an element is passed to a code translation table, and the code table returns a corresponding value. Code tables can be used for inbound or outbound.
  • Attaching Direct Lookup Code Tables
    Attach a direct lookup code table to an element to return a value based on the data in that element.
  • Creating Code Tables with Qualified Lookup
    Using qualified lookup, the data (or lack thereof) in two elements or fields is passed to a code translation table, and the code table returns a corresponding value. Code tables can be used for inbound or outbound processing.
  • Attaching Qualified Lookup Code Table
    Attach a qualified lookup code table to an element to return a value based on the data in that element and a qualifier.
  • Attaching External Program Call Code Table
    Cleo provided a number of external call code tables that can be customized for use in your map.
  • Testing a Code Table
    Testing your code table in the Test code table panel saves you the trouble of translating test data just to see if your value returns correctly.
  • Viewing Standard Values for Elements
    There are some elements that only accept particular values as valid. You can view a list of these standard values for an element within your message class.
  • Enforcing standard values
    You can set up a code table to enforce an element's standard values. When using this feature, you must fill out the second half of the Change code table description panel.
Parent topic: Message Class Customization


Parameter Lists for External Program Call Code Tables

External program call code tables can have one of two parameters lists.

Parameter List 1

The parameter list for Lookup method E - External called process 1 is:

  • Return code
  • Code translation direction
  • Code table reference
  • Code in standard form
  • Code qualifier
  • Code in local form

Parameter List 2

This parameter list 2 is an extension of parameter list 1 and provides a complete context to the external program. Using this list, the code translation can be made dependent on any combination of any of these context variables.

The parameter list for Lookup method F - External called process 2 is:

  • Return code
  • Code translation direction
  • Code table reference
  • Code in standard form
  • Code qualifier
  • Code in local form
  • Connection log number
  • Network ID
  • Date/time start of call
  • Interchange log number
  • Trading partner
  • Interchange date
  • Interchange time
  • Test indicator
  • Group log number
  • Message log number
  • Message ID
  • Message class
  • Message direction
  • Application file name
  • Record format name
  • V-R Log of message
  • Industry group
  • Application data log number
  • Application file set
  • Message queue - translation
  • Translation job master control
  • Segment position in message
  • Segment ID
  • Element position in segment
  • Component position
  • Element ID
  • Field name
  • Field length
  • Field number of digits
  • Field decimal positions
  • Field type
  • Field null value type
  • Field null value length
  • Field null value
  • Message area
  • Segment sequence
  • Segment instance number
  • Element mapping sequence
  • Non-wrapped record number
  • Field mapping sequence
  • Translator line counter #1
  • Translator line counter #2
  • Translator segment counter
  • Translator segment length
  • Translator last element
  • Translator element length
  • Translator segment buffer
  • Translator element data
  • Sub-element delimiter
  • Element delimiter
  • Decimal notation
  • Release indicator
  • Reserved space in UNA
  • Segment delimiter
Parent topic: Code tables


Creating Direct Lookup Code Tables

Using direct lookup, the data (or lack thereof) in an element is passed to a code translation table, and the code table returns a corresponding value. Code tables can be used for inbound or outbound.

  1. In the Cleo EEI Main Menu | 5. Mapping | 4. Work with code translation tables panel, press F9=Create to enter create mode.
  2. Type a name for your code table. Press Enter.

    Type

  3. The Change code table description panel appears. Fill it out according to your needs.
    1. In the Update lock control field, specify who can make changes to this code. Values are:

      • (Blank) - Any user can update the code table.

      • A - Only an administrator can update the code table.

      • L - The code table is locked; no one can update it.

    2. Type anything you want in the Description field.
    3. In the Table type field, specify what format your table will use. Values are:

      • F - Based on a free-form list

      • I - Based on ID element list

    4. In the Lookup method, type D to create a direct lookup table. This determines how your code table will look up the value to return.
  4. Press Enter. The fields will change based on the Lookup method value.
  5. Fill out the remaining fields. Note that local data refers to your data - information coming from your local database. Standard data refers to data in the EDI standard format - the data you receive in incoming translation or data in its translated form for outgoing translation.
    1. In the Data type - local field, specify what type of data is housed in your local field. Values are:

      • A - Character data

      • B - Binary data

      • D - Floating point data (double)

      • E - DBCS-Either data

      • F - Floating point data (single)

      • H - Hexadecimal data

      • J - DBCS-Only data

      • L - Date data

      • O - DBCS-Open data

      • P - Packed decimal data

      • S - Zoned decimal data

      • T - Time data

      • Z - Timestamp data

    2. In the Minimum/maximum length - local fields, type numbers that define the potential length of your local data.
    3. In the Local: field, type a column heading for the local values on the code table. For example, if you are using purchase order numbers in your code table, you might type "PO number."
    4. In the Data type - standard field, specify what type of data is housed in the standard field. Values are:

      • A - Alphabetic characters

      • AN - Alpha-numeric characters

      • B - Binary

      • DT - Date in YYMMDD or YYYYMMDD format

      • FS - Fixed string

      • I - Integer

      • ID - Identifier (coded)

      • N - Numeric characters

      • N0 through N9 - the number signifies an implied decimal place

      • R - Required decimal point

      • TM - Time in HHMM (SS) format

    5. In the Minimum/maximum length - standard fields, type numbers that define the potential length of the EDI standard data.
    6. In the Standard: field, type a column heading for the standard values on the code table. For example, if you are using purchase order numbers in your code table, you might type "PO number."
  6. Press Enter and confirm. Press F9=Create to return the Work with all code tables panel to normal mode.
  7. Locate your new code table. If you are checking incoming EDI data to return a value into your local field, type 5=Work standard in its Opt field. If you are checking your local field to return a value into outgoing EDI data, type 8=Work local in its Opt field.
    1. The Code table entries by standard code panel and Code table entries by local code panel are similarly laid out. No matter which panel you are using, type the value to check in the left column fields and the value to return in the right column fields. In addition to set values, you can also use the following exceptions:
      • *Otherwise - If a code from the table is not found...
      • *Return input - Return the input value as the result
      • *Return null - Return a null value as the result
      • *Error - Force a translation error
    2. In the Sequence field, type a number, with 1 being the first, signifying the order in which EEI should check for values.
  8. Press Enter and confirm.
    Note: If you need to delete codes from your table, type 4=Delete in the entry's Opt field. Do not erase entries in create mode using the Delete or Backspace keys - you'll create entries looking for blanks as values.
Parent topic: Code tables


Attaching Direct Lookup Code Tables

Attach a direct lookup code table to an element to return a value based on the data in that element.

The element you are attaching the code table to should already have a field mapped to it.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to work with. Press Enter.
  2. The Work with element map for one segment panel appears. Type 2=Change in the Opt field of the element where you want to attach the code table. Press Enter.
  3. The Message class element page details 1 panel appears. Press F14=Update field map details or code translation details.
    Note: The F14 option will not appear if you do not have a field mapped to this element.
  4. The Change message class field map details panel appears. In the Code translation directions field, specify the code table's direction. Values are:
    • B - Both inbound and outbound translation
    • I - Inward (inbound) translation
    • O - Outward (outbound) translation
  5. Press Enter. New fields appear.
  6. Since this is a direct lookup code table, leave the Qualifier type/data field blank.
  7. In the Code table reference field, either:
    • Type the name of the code table you are using.
    • Type ? and press Enter to prompt a list of code tables to choose from. Type 1=Select in a code table's Opt field and press Enter.
  8. Press Enter twice and confirm.
Parent topic: Code tables


Creating Code Tables with Qualified Lookup

Using qualified lookup, the data (or lack thereof) in two elements or fields is passed to a code translation table, and the code table returns a corresponding value. Code tables can be used for inbound or outbound processing.

  1. In the Cleo EEI Main Menu | 5. Mapping | 4. Work with code translation tables panel, press F9=Create to enter create mode.
  2. Type a name for your code table. Press Enter.
  3. The Change code table description panel appears. Fill it out according to your needs.
    1. In the Update lock control field, specify who can make changes to this code. Values are:

      • (Blank) - Any user can update the code table.

      • A - Only an administrator can update the code table.

      • L - The code table is locked; no one can update it.

    2. Type anything you want in the Description field.
    3. In the Table type field, specify what format your table will take. Values are:

      • F - Based on a free-form list

      • P - Based on ID element list

    4. In the Lookup method, type Q to create a qualified lookup table. This determines how your code table will look up the value to return.
  4. Press Enter. The fields will change based on the Lookup method value.
  5. Fill out the remaining fields. Note that local data refers to your data - information coming from your local database. Standard data refers to data in the EDI standard format - the data you receive in incoming translation or data in its translated form for outgoing translation.
    1. In the Data type - local field, specify what type of data is housed in your local field. Values are:

      • A - Character data

      • B - Binary data

      • D - Floating point data (double)

      • E - DBCS-Either data

      • F - Floating point data (single)

      • H - Hexadecimal data

      • J - DBCS-Only data

      • L - Date data

      • O - DBCS-Open data

      • P - Packed decimal data

      • S - Zoned decimal data

      • T - Time data

      • Z - Timestamp data

    2. In the Minimum/maximum length - local fields, type numbers that define the potential length of your local data.
    3. In the Local: field, type a column heading for the local values on the code table. For example, if you are using purchase order numbers in your code table, you might type "PO number."
    4. In the Data type - qualifier field, specify what type of data your qualifier is. Values are:

      • A - Character data

      • B - Binary data

      • D - Floating point data (double)

      • E - DBCS-Either data

      • F - Floating point data (single)

      • H - Hexadecimal data

      • J - DBCS-Only data

      • L - Date data

      • O - DBCS-Open data

      • P - Packed decimal data

      • S - Zoned decimal data

      • T - Time data

      • Z - Timestamp data

    5. In the Minimum/maximum length - standard fields, type numbers that define the potential length of the EDI standard data.
    6. In the Qualifier: field, type a column heading for the qualifier values on the code table.
    7. In the Data type - standard field, specify what type of data is housed in the standard field. Values are:

      • A - Alphabetic characters

      • AN - Alpha-numeric characters

      • B - Binary

      • DT - Date in YYMMDD or YYYYMMDD format

      • FS - Fixed string

      • I - Integer

      • ID - Identifier (coded)

      • N - Numeric characters

      • N0 through N9 - the number signifies an implied decimal place

      • R - Required decimal point

      • TM - Time in HHMM (SS) format

    8. In the Minimum/maximum length - standard fields, type numbers that define the potential length of the EDI standard data.
    9. In the Standard: field, type a column heading for the standard values on the code table. For example, if you are using purchase order numbers in your code table, you might type "PO number."
  6. Press Enter and confirm. Press F9=Create to return the Work with all code tables panel to normal mode.
  7. Locate your new code table. If you are checking incoming EDI data to return a value into your local field, type 5=Work standard in its Opt field. If you are checking your local field to return a value into outgoing EDI data, type 8=Work local in its Opt field.
    1. The Qualified code table: Local to standard panel and Qualified code table: Standard to local panel are similar. No matter which panel you are using, type the value to check in the left column fields, the qualifier value in the center column fields, and the value to return in the right column fields. In addition to set values, you can also use the following exceptions:

      • *Otherwise - If a code from the table is not found...

      • *Return input - Return the input value as the result

      • *Return null - Return a null value as the result

      • *Return qual - Return the qualifier as the result

      • *Error - Force a translation error

  8. Press Enter and confirm.
    Note: If you need to delete codes from your table, type 4=Delete in the entry's Opt field. Do not erase entries in create mode using the Delete or Backspace keys - you'll create entries looking for blanks as values.
Parent topic: Code tables


Attaching Qualified Lookup Code Table

Attach a qualified lookup code table to an element to return a value based on the data in that element and a qualifier.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to work with. Press Enter.
  2. The Work with element map for one segment panel appears. Type 2=Change in the Opt field of the element where you want to attach the code table. Press Enter.
  3. The Message class element page details 1 panel appears. Press F14=Update field map details or code translation details.
    Note: The F14 option will not appear if you do not have a field mapped to this element.
  4. The Change message class field map details panel appears. In the Code translation directions field, specify the code table's direction. Values are:
    • B - Both inbound and outbound translation
    • I - Inward (inbound) translation
    • O - Outward (outbound) translation
  5. Press Enter. New fields appear.
  6. In the Qualifier type/data field, specify the type of qualifier your code table uses. Values are:
    • C - Constant qualifier
    • F - Qualified by another field
    • S - Qualified by a non-field source
  7. Press Enter. New fields will appear.

    • If using a C qualifier type, type the constant you want to use in the Qualifier data field.
    • If using an F qualifier type, place the cursor in the Qualifier file/format/field/map sequence field and press F4 to prompt a list of fields to select from. Choose a field and press Enter.
    • If using an S qualifier type, place the cursor in the Qualifier data field and press F4 to prompt a list of data sources to select from. Choose a data source and press Enter.
  9. In the Code table reference field, either:
    • Type the name of the code table you are using.
    • Type ? and press Enter to prompt a list of code tables to choose from. Type 1=Select in a code table's Opt field and press Enter.
  10. Press Enter twice and confirm.
Parent topic: Code tables


Attaching External Program Call Code Table

Cleo provided a number of external call code tables that can be customized for use in your map.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to work with. Press Enter.
  2. The Work with element map for one segment panel appears. Type 2=Change in the Opt field of the element where you want to attach the code table. Press Enter.
  3. The Message class element page details 1 panel appears. Press F14=Update field map details or code translation details.
    Note: The F14 option will not appear if you do not have a field mapped to this element.
  4. The Change message class field map details panel appears. In the Code translation directions field, specify the code table's direction. Values are:
    • B - Both inbound and outbound translation
    • I - Inward (inbound) translation
    • O - Outward (outbound) translation
  5. Press Enter. New fields appear.
  6. If using a qualifier, specify the type in the Qualifier type field and press Enter. A new field will appear.
    • If using a C qualifier type, type the constant you want to use in the Qualifier data field.
    • If using an F qualifier type, place the cursor in the Qualifier file/format/field/map sequence field and press F4 to prompt a list of fields to select from. Choose a field and press Enter.
    • If using an S qualifier type, place the cursor in the Qualifier data field and press F4 to prompt a list of data sources to select from. Choose a data source and press Enter.
  7. In the Code table reference field, either:
    • Type the name of the code table you are using.
    • Type ? and press Enter to prompt a list of code tables to choose from. Type 1=Select in a code table's Opt field and press Enter.
  8. Press Enter twice and confirm.
Parent topic: Code tables


Testing a Code Table

Testing your code table in the Test code table panel saves you the trouble of translating test data just to see if your value returns correctly.

  1. In the Cleo EEI Main Menu | 5. Mapping | 4. Work with code translation tables panel, type 1=Test in your code table's Opt field. Press Enter.

  2. In the Translation direction field, type I for Inbound translation or O for Outbound translation.
  3. If the translation is inbound, type the standard lookup value in the Code in standard form field. If the translation is outbound, type the local lookup value in the Code in local form field.
  4. Press Enter. If the code table works, the return value appears in the previously empty field. If the lookup failed, a notification appears in the Return code field.

If the code table test failed, hit F3=Exit and double check that the code table is set up properly using the 5=Work standard or 8=Work local options, as well as 2=Change.

If the code table test succeeded, the code table is ready to be used in your map.

Parent topic: Code tables


Viewing Standard Values for Elements

There are some elements that only accept particular values as valid. You can view a list of these standard values for an element within your message class.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class functions | 2. Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change on the element for which you want to know the standard value. Press Enter.
    Note: Elements that use standard values are indicated with ID in their Element type column.
  2. The Message class element map details 1 panel appears. In the Element data source/destination field, type C2. Press Enter.
  3. New fields will appear. In the Short constant field, type ?. Press Enter.
  4. A list of standard values for the element appears.
  5. If you were just referring to the element list and did not want to change the element's mapping, make sure you exit the Message class element map details 1 panel using F3=Exit. If you accidentally hit Enter to exit the screen, do not confirm.
Parent topic: Code tables


Enforcing standard values

You can set up a code table to enforce an element's standard values. When using this feature, you must fill out the second half of the Change code table description panel.

  1. In the Cleo EEI Main Menu | 5. Mapping | 4. Work with code translation tables panel, press F9=Create to enter create mode.
  2. In the Code table field, type a name for your code table. Press Enter. The Change code table description panel appears.
  3. In the Update lock control field, specify who can make changes to this code. Values are:

    • (Blank) - Any user can update the code table.

    • A - Only an administrator can update the code table.

    • L - The code table is locked; no one can update it.

  4. Type anything you want in the Description field.
  5. In the Table type field, type I - Based on ID element list.
  6. In the Lookup method, type D to create a direct lookup table. This determines how your code table will look up the value to return.
  7. Press Enter. The fields will change based on the Lookup method value.
  8. Fill out the remaining fields. Note that local data refers to your data - information coming from your local database. Standard data refers to data in the EDI standard format - the data you receive in incoming translation or data in its translated form for outgoing translation.
    1. In the Data type - local field, type A - Character data.
    2. In the Minimum/maximum length - local fields, type the minimum and maximum lengths of the standard value, if you know them.
      Note: If you do not know the standard value's minimum and maximum length, EEI will display it at the bottom of the page in the Standard length min/max field after you select an Element ID.
    3. In the Local: field, type a column heading for the local values on the code table. For example, you might type "Our code" or "Trading partner code," depending on whether you are checking inbound or outbound.
    4. In the Data type - standard field, type: AN - Alpha-numeric characters.
    5. In the Minimum/maximum length - standard fields, type the minimum and maximum lengths of the standard code, if you know them.
    6. Fill out the Standard class code, Industry group code, and Version-release fields, according to the standards against which you will check the standard IDs.
    7. In the Element ID field, type the element ID for the element you want to check.
      Note: If you do not know the element ID, you can prompt a list by pressing F4. Make sure the element you select has ID S in the Type column, or EEI will give an error message.
  9. Press Enter and confirm.
Parent topic: Code tables


External File Lookup

External File Lookup (EFL) allows EEI to retrieve information from a file outside a message class' application file set to populate an element (outbound) or a field (inbound).

External Files

An external file is a file or table that contains application-related data but does not share a common key with the files in your application file set. However, it does contain application-related data.

Examples of common external files are customer master files, vendor master files, or product ID tables.

External File Lookup allows you to access data not stored in your application files. It is most commonly used to retrieve a value or verify data, and can also be used in a formula or record update.

An external file can be a physical file or a logical file.

The inbound EFL process is setup by using data in an element or elements to chain to an external file and return a value.

The outbound EFL process uses data from an application file field to chain to an external file and return another field's value.

If you do not have a value on the file that matches the key on the external file, you cannot look it up this way.

The external file can only be part of *USERFILES set. You cannot use a file that is in any other file set as the lookup file.

Note: *USERFILES is an Cleo-supplied application file set that houses external lookup files. This file set is protected from deletion.

Process

To set up inbound EFL, you must:
  • Retrieve the external file and its descriptions into EEI.
  • Place the external file in the *USERFILES file set.
  • Retrieve the external file's key fields.
  • Select the file for use in the message class
  • Map the inbound elements or special values to the external file's key fields.
  • Set up the field destination-field source relationship, with the application file's field as the destination and the external file's field as the source.
To set up outbound EFL, you must:
  • Retrieve the external file and its descriptions into EEI.
  • Place the external file in the *USERFILES file set.
  • Retrieve the external file's key fields.
  • Select the file for use in the message class
  • Set up the field source-field destination relationship, with the application file's field as the source and the external file's field as the destination.
  • Map the external file's field to an outbound element in the message class.
  • Placing an External File into *USERFILES
    Keyed external files must be retrieved into EEI before they can be used in a message class.
  • Mapping an External File (Inbound)
    For inbound, External File Lookup (EFL) involves element-to-field mapping. Map the element(s) in a message class to the key field(s) of the external file. To bring back data from the external file, you must establish a relationship between the application file field (field destination) and the corresponding field in the external file (field source).
  • Mapping an External File (Outbound)
    For outbound documents, External File Lookup (EFL) involves field-to-element mapping. You map a field from the external file to an element within a message class. Before that, however, you must establish a relationship between the external file’s key field (the field destination) and the corresponding application file field (field source).
Parent topic: Message Class Customization


Placing an External File into *USERFILES

Keyed external files must be retrieved into EEI before they can be used in a message class.

  1. Retrieve the external file and its format/field level descriptions.
    Note: If you need help, see Retrieving Application Files.
  2. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file sets panel, type 5=Work with set members in the *USERFILES’ Opt field.
    Note: *USERFILES is an Cleo-supplied application file set that houses external lookup files. This file set is protected from deletion.
  3. In the Work with application file set members panel, find the first blank File name field. (You may have to PageDown to find it.) Type the external file's name in the field. Press Enter and confirm.
    Note: If you forgot the external file's name, prompt a list of files by pressing F4.
  4. The external file appears in the list of files. Type R=Retrieve keys in the file’s Opt field and press Enter.
  5. In the Retrieve database file keys panel, type the name of the file and the library where it’s contained in the corresponding fields. Type either *LCL if retrieving from a local system or *RMT from a remote system in the System field, and press Enter.
  6. To verify the keys in the Work with application file set members panel, type K=Display Keys on the lookup file’s Opt panel and press Enter.
    Note: The lookup file has to be keyed externally in advance. If you have not already keyed this file, consider creating a logical file.
Parent topic: External File Lookup


Mapping an External File (Inbound)

For inbound, External File Lookup (EFL) involves element-to-field mapping. Map the element(s) in a message class to the key field(s) of the external file. To bring back data from the external file, you must establish a relationship between the application file field (field destination) and the corresponding field in the external file (field source).

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class application file fields panel, find the field you want as the Field Destination. Type F=Field-Field mapping on the field’s Opt field to designate the Field Destination. Press Enter.
    Note: You always select the Field Destination first in field-to-field mapping.
    Note: To find a field, either type the application file field in the field positioner search field and press Enter to show only the field you want, or scroll using PageDown and PageUp until you find it.
  2. In the Select source for field-to-field mapping panel, find the field you want as the Field Source and type 1=Select in its Opt field. Press Enter.
  3. To map the key field(s) from the external file to the corresponding element in the message class, return to the Select message class function panel and type 2=Change in the Segment map; element map field. Press Enter.
  4. In the Work with message class segment map panel, type 5=Element on the segment that contains the element want to work with. Press Enter.
  5. In the Work with element map for one segment panel, type F=Field select on the element you want to map to the external file's key field. Press Enter.
  6. In the Select application file field for map panel, type 1=Select in the Opt field of the external file's Key field. Press Enter.
  7. If you need to map a constant to a key field or a special value (such as Trading Partner), in the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class application file fields panel, type 2=Change on the key field’s Opt field. Press Enter.
  8. In the Change message class field map details panel, type the special code in the Field data source/destination field. Press Enter.
    Note: If you need a list of codes to choose from, place your cursor on the field and either press F4 or Type ? and press Enter.
    Note: If your external lookup file has more than one key, you must map them all. At least one key field must be mapped to an element.
    Note: You need to place the library where your external file resides into the EXTRNJOBD’s library list. If you don’t, the EFL won’t work.
Parent topic: External File Lookup


Mapping an External File (Outbound)

For outbound documents, External File Lookup (EFL) involves field-to-element mapping. You map a field from the external file to an element within a message class. Before that, however, you must establish a relationship between the external file’s key field (the field destination) and the corresponding application file field (field source).

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel | 8. Select message class function | 2. Work with message class application file fields panel, locate the field that will be your field destination. The field destination must be set on the key field, so look for a K in the K (Key) column. Type F=Field-Field mapping on the key field’s Opt field and press Enter. This field is now designated as the Field Destination (FD).
    Note: To find a field, either type the application file field in the field positioner search field and press Enter to show only the field you want, or type the external file name in the file name positioner or scroll using Page Down or Page Up until you find it.
  2. The Select source for field to field mapping panel appears. Locate the field that will be your field source, type 1 in its Opt field. Press Enter.
    Note: The Field Source will match the Field Destination, so you can locate your source by typing the field description in the Field text positioner field.
    Note: You can quickly locate the field source and/or destination by typing F*, FS, or FD in the SD (Source/Destination) field positioner.
  3. Use normal mapping procedures to place the external file’s data in the outbound map’s desired element.
  4. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel | 8. Select message class function | 2. Segment map; element map | 5. Work with element map for one segment panel, Type F=Field select in the desired element’s Opt field. Press Enter.
  5. In the Select application file field for map panel, type the external file’s name in the File positioner field and press Enter to display a list of its fields. Type 1=Select on the appropriate field. Press Enter.
  6. The Work with element map for one segment panel reappears, showing the element mapped to the external file’s field. If you want to see more details, type 2=Change in the element’s Opt field and press Enter to display the Message class element map details 1 panel.
Parent topic: External File Lookup


Substrings

Substrings tell EEI how many characters to capture from an element or a field and where to place those characters into a field or element. Substrings can be used for both inbound and outbound.

If you use substrings to pull data from two or more elements into a single field, or to pull data from two or more fields into a single element, that process is called concatenation.

Substring on an Element vs. a Field

You can substring on an element or on a field.

Substring on an element to move only part of the data from the element into a field. For example, on an inbound purchase order, the purchase order number element BEG03 contains the data "ABC98765." You only want 98765 in your purchase order number field, which is mapped to the BEG03. Substring on the element to move only the last five characters (98765).

Substring on an element in the Message class element map details 2 panel.

Substring on a field to move only part of the data from the field into an element. For example, on an outbound invoice the BIG02 element is mapped to an application file field that contains 1234569882, with the invoice number being 123456 and the release number 9882. The BIG02 element should only contain the invoice number 123456. Substring on the field to move only the first six characters of the field into the element.

Substring on a field in the Change message class field map details panel.

Substring on an Element and a Field

There may be instances when you need to substring on both the element and field. This can be for both inbound and outbound scenarios.

For example, suppose you receive an invoice with a PER04 (Administrative Communications Contact) element containing a phone number with parenthesis and hyphens, such as (800) 542-7284. However, your application field requires you to remove the parenthesis and hyphens. You want 8005427284 in your application field.

You would create three new occurrences of the PER04 element in your map.
  • On the first occurrence, you would substring on the element to pull the 800 from the element, then substring on the field to place the 800 in the first three characters of your field.
  • On the second occurrence, you would substring on the element to pull the 542 from the element, then substring on the field to place the 542 in character positions 4 through 6 of your field.
  • On the third occurrence, you would substring on the element to pull the 7284 from the element, then substring on the field to place the 7284 in character positions 7 through 10 of your field.
Note: If you had to do the reverse, and add parenthesis and hyphens to data, you could do so with a combination of doing substrings on the numeric characters that appear in your data, then using constants to add the punctuation in fixed positions.
  • Substring on a Field
    Using a substring on a field tells EEI to take only a portion of the data from a field and place it in an element.
  • Example: Substring on an Element and Field
    There may be instances when you need to substring on both the element and field. This can be for both inbound and outbound scenarios. This topic is a step-by-step walk-though to guide you through one example of when you may need to do this.
  • Substring on an element
    Substring on an element to move only part of the data from the element into a field.
Parent topic: Message Class Customization


Substring on a Field

Using a substring on a field tells EEI to take only a portion of the data from a field and place it in an element.

For example, on an outbound invoice the BIG02 element is mapped to an application file field that contains 1234569882, with the invoice number being 123456 and the release number 9882. The BIG02 element should only contain the invoice number 123456. Substring on the field to move only the first six characters of the field into the element.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to affect. Press Enter.

    In the example above, you would type 5 on the BIG segment.

  2. The Work with element map for one segment panel appears. In the field's Opt field, type 2=Change. Press Enter.
    In the example above, you would type 2 on the BIG02 element.
  3. In the Message class element map details 1 panel, press F14=Update field map details or code translation details.
  4. The Change message class field map details panel appears.
    1. In the Field manipulation code field, type S (Substring).
    2. In the Data offset field, type the position at which you want the data to start.
      In the example above, we want the "123456" portion of 1234569882, so you would type 1 in the Data offset field.
    3. In the Mapped length field, type the number of characters you want to substring.
      In the example above, there are six characters in "123456", so you would type 6 in the Mapped length field.
  5. Press Enter twice to return to the Message class element map details 1 panel. Press Enter and confirm. In the Work with element map for one segment panel, notice an S appears to the left of the field, signifying the substring on the field mapped to the element.
Parent topic: Substrings


Example: Substring on an Element and Field

There may be instances when you need to substring on both the element and field. This can be for both inbound and outbound scenarios. This topic is a step-by-step walk-though to guide you through one example of when you may need to do this.

For example, suppose you receive an invoice with a PER04 (Administrative Communications Contact) element containing a phone number with parenthesis and hyphens, such as (800) 542-7284. However, your application field requires you to remove the parenthesis and hyphens. You want 8005427284 in your application field.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | 5. Work with element map for one segment panel, create three occurrences of the PER04 element and map the corresponding field to each occurrence.
  2. For the first occurrence: In in the Work with element map for one segment panel, type 2=Change in the first PER04 occurrence. Press Enter.
  3. In the Message class element map details 1 panel, press F11=More map details.
  4. The Message class element map details 2 panel appears.
    1. In the Element manipulation code field, type S.
    2. In the Data offset field, type 2.

      The "8" is the second character in (800) 542-7285, therefore the data offset is 2.

    3. In the Mapped length field, type 3.
      For the first occurrence, we want to pull the "800" from the element, which is a Mapped length of 3 characters.
    4. Press Enter.
  5. In the Message class element map details 1 panel, press F14=Update field map details or code translation details.
  6. The Change message class field map details panel appears.
    1. In the Field manipulation code field, type S.
    2. In the Data offset field, type 1.
      We want the "8" in 800 to be the first character in our field. Therefore, the data offset would be 1.
    3. In the Mapped length field, type 3.
      For the first occurrence, we're mapping the first three characters, 800 into the field. Therefore the mapped length is 3.
    4. Press Enter twice and confirm.
  7. In the Work with element map for one segment panel, notice in the Work with element map for one segment panel, two S's appear, one in the element occurrence's Source/destination column and one in the (Unlabeled)Substring column.
  8. For the second occurrence: In the Work with element map for one segment panel, type 2=Change in the second occurrence of the PER04 element's Opt field. Press Enter.
  9. In the Message class element map details 1 panel, press F11=More map details.
  10. The Message class element map details 2 panel appears.
    1. In the Element manipulation code field, type S.
    2. In the Data offset field, type 7.

      The "5" is the seventh character in (800) 542-7285, therefore the data offset is 7.

    3. In the Mapped length field, type 3.
      For the second occurrence, we want to pull three characters, "542", from the element, which is a Mapped length of 3 characters.
    4. Press Enter.
  11. In the Message class element map details 1 panel, press F14=Update field map details or code translation details.
  12. The Change message class field map details panel appears.
    1. In the Field manipulation code field, type S.
    2. In the Data offset field, type 4.
      We want the "5" in 542 to be the fourth character in our field. Therefore, the data offset would be 4.
    3. In the Mapped length field, type 3.
      For the second occurrence, we're mapping three characters, 542, into the field. Therefore, the mapped length is 3.
    4. Press Enter twice and confirm.
  13. For the third occurrence: In the Work with element map for one segment panel, type 2=Change in the third occurrence of the PER04 element's Opt field. Press Enter.
  14. In the Message class element map details 1 panel, press F11=More map details.
  15. The Message class element map details 2 panel appears.
    1. In the Element manipulation code field, type S.
    2. In the Data offset field, type 11.

      The "7" is the eleventh character in (800) 542-7285, therefore the data offset is 11.

    3. In the Mapped length field, type 4.
      For the third occurrence, we want to pull four characters, "7285", from the element, which is a Mapped length of 4 characters.
    4. Press Enter.
  16. In the Message class element map details 1 panel, press F14=Update field map details or code translation details.
  17. The Change message class field map details panel appears.
    1. In the Field manipulation code field, type S.
    2. In the Data offset field, type 7.
      We want the "7" in 7285 to be the seventh character in our field. Therefore, the data offset would be 7.
    3. In the Mapped length field, type 4.
      For the third occurrence, we're mapping four characters, 7285, into the field. Therefore, the mapped length is 4.
    4. Press Enter twice and confirm.
    To recap:

    To go from (800) 542-7284 in an element to 8005427284 in a field, you would need three occurrences of your element.

    • First occurrence
      • Element manipulation code S, Data offset 2, Mapped length 3
      • Field manipulation code S, Data offset 1, Mapped length 3
    • Second occurrence
      • Element manipulation code S, Data offset 7, Mapped length 3
      • Field manipulation code S, Data offset 4, Mapped length 3
    • Third occurrence
      • Element manipulation code S, Data offset 11, Mapped length 4
      • Field manipulation code S, Data offset 7, Mapped length 4
Parent topic: Substrings


Substring on an element

Substring on an element to move only part of the data from the element into a field.

For example, on an inbound purchase order, the purchase order number element BEG03 contains the data "ABC98765." You only want 98765 in your purchase order number field, which is mapped to the BEG03. Substring on the element to move only the last five characters (98765).
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 5=Element in the Opt field of the segment housing the element you want to work with. Press Enter.

    Type 5=Element in the BEG03's Opt field.

  2. Decide if you need additional occurrences of the element.
    • If you only need to substring once on the element, you do not need additional occurrences. Move on to the next step.
    • If you want to substring multiple times on the same element, add occurrences of that element and substring each occurrence. Add one occurrence for each group of characters you want to pull.

    You do not need additional occurrences for this exercise.

    Note: For more information on adding element occurrences, see Selecting Elements.
  3. In the Work with element map for one segment panel, type 2=Change in the element's Opt field. Press Enter.

    Type 2=Change the BEG03's Opt field.

  4. In the Message class element map details 1 panel, press F11=More map details.
  5. The Message class element map details 2 panel appears.
    1. In the Element manipulation code field, type S (Substring).
    2. In the Data offset field, type the position where the substring should begin.
      In the example above with ABC98765, the 9 is the fourth character, so you would type 4 in the Data offset field.
    3. In the Mapped length field, type the number of characters you want to substring on this occurrence.
      In the example above with ABC98765, there are five characters in "98765", so you would type 5 in the Mapped length field.

      To recap: Element manipulation code: S, Data offset: 4, and Mapped length: 5.

  6. Press Enter twice to return to the Message class element map details 1 panel. Press Enter and confirm. In the Work with element map for one segment panel, notice an S appears to the right of the AO in the Source/Destination column, signifying the substring on the element.
Parent topic: Substrings


Work Fields

Work Fields are variables that can be populated and used during translation. These fields are created and edited in a message class. They are used to store and retrieve data.

Overview

Work Fields have all of the mapping capabilities of an application file field; this includes use in formulas, code tables, data parsing with substring/concatenation, and all field/element mapping capabilities.

Work fields increase your message class' flexibility because they reduce the need for external programming.

The fileset *USERFILES contains the file *WORKFILE. This file is used for Work Fields. *WORKFILE is shipped with a sample generic format defining a sample field. Additional formats and fields can be defined in *WORKFILE while editing the message class.

Because *WORKFILE is in *USERFILES, it can be brought into the map just like an External File Lookup (EFL). In the Change message class details panel, pressing F16=Select external lookup files for map allows you to select or de-select a format.

The work field must exist at the application file level before it can be mapped. When a field is created in the message class, the format/field is first added to the application file, then to the message class (the format is auto-selected).

Formats and fields can be added, maintained, and deleted in Work with Application Files like any other program described format or field.

*WORKFILE cannot be deleted. Attempting to delete this file results in an error message stating, “Invalid option. This is a protected record. DELETE not allowed.” The same message appears if you attempt to delete *WORKFILE from the *USERFILES file set.

Formats and work fields can be deleted if they are not selected in a message class. They can only be deleted at the application file level.

If an unused field is deleted from the format, the message class must be refreshed to delete the field reference from the message class level. When a field is deleted from the record format the start positions of all of the fields are re-calculated. Because the message class only holds the field name and not the start position of each field, the message class does not have to be refreshed in order to use it. However the screens that display the field names will hold that deleted field name until the record format is re-selected, thereby refreshing the list of fields in the record format.

The command RFRMC (Refresh Message Class) also removes the deleted field name from the list of fields in the message class.

Formats can be deselected at the message class level.

Cleo recommends fields in a work file be kept to a minimum because all fields within a file format attached to a message class are included in the count of that message class' application file fields. The total number of fields allowed in a message class is 6,000.

Note: There is a 500-byte limit for a field in field-to-field mapping.

Process Summary

There are multiple ways to add *WORKFILE formats/fields in a message class:
  • The work field can be created independently in *USERFILES from the Work with application file sets panel. It can be attached to a message class using F16= Select external lookup files for map in the Change message class details panel.
  • The work field can be created within a message class, from the Work with message class application file format panel.
  • The work field can be created within a message class, from the Work with message class application file fields panel.

After the work field is associated with your message class, you can use it in your map.

  • Associating *WORKFILE with a Message Class
  • Creating Work Fields
    There are multiple ways to create work fields in EEI. Two methods are detailed here.
  • Creating a Field
    The Change application file field details panel allows you to create a field. It is used in creating program-described files and work fields.
  • Use Case for Work Fields - Inbound
  • Use Case for Work Fields - Outbound
Parent topic: Message Class Customization


Associating *WORKFILE with a Message Class

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type 2=Change in your message class' Opt field. Press Enter.
  2. In the Change message class details panel, press F16=Select external lookup files for map.
  3. In the Select files for message class map panel, type 1=Select all formats in the *WORKFILE Opt field. Press Enter.
Parent topic: Work Fields


Creating Work Fields

There are multiple ways to create work fields in EEI. Two methods are detailed here.

  1. Method 1: Create the work field outside the message class, then attach it to the message class.
    1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set panel, type 5=Work with set members in *USERFILES' Opt field. Press Enter.
    2. In the Work with application file set members panel, type 5=Formats/fields on *WORKFILE's Opt field. Press Enter.
    3. In the Work with application file formats panel, press F9=Create. In the Format field type a name for your format. In the Format description field, type a description of the field. Press Enter and confirm.
    4. In the Work with application file formats panel, type 5=Fields by name in your format's Opt field. Press Enter.
    5. In the Work with application file fields by name panel appears. In the Field name field, type a name for your field. Press Enter.
    6. The Change application file field details panel appears. Fill it out according to your needs. Press Enter and confirm.
      Need help filling out the panel? See Creating a Field
    7. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel, type 2=Change on your message class' Opt field. Press Enter.
    8. In the Change message class details panel, press F16=Select external lookup files for map.
    9. In the Select files for message class map panel, type 1=Select all formats on *WORKFILE's Opt field. Press Enter and confirm.
      Note: You can also deselect any formats you are not using in the Select formats for message class map panel with the 4=Deselect option.
  2. Method 2: Create the work field inside the message class.
    1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function panel, type 2=Change on the Message class application file formats/fields Opt field. Press Enter.
    2. In the Work with message class application file format panel, press F16=Select work file formats.
    3. In the Select formats for message class map panel, press F9=Create.
    4. The Work with application file formats panel appears. If it is not in create mode, press F9=Create. In the Format field, type a name for your format. In the Format description field, type a description. Press Enter and confirm.
    5. Press F9=Change to return the panel to normal mode. Type 5=Fields by name in the new format's Opt field. Press Enter.
    6. In the Work with application file fields by name panel appears. In the Field name field, type a name for your field. Press Enter.
    7. The Change application file field details panel appears. Fill it out according to your needs. Press Enter and confirm.
    8. Press F3=Exit and confirm. Press F3=Exit to return to the Select formats for message class map panel.
    9. Type 1=Select in the new format's Opt field. Press Enter. An * (asterisk) will appear in the format's Used column.
      Note: You can also deselect any formats you are not using with the 4=Deselect option.
Next: With the work field created, you can map it.
Parent topic: Work Fields


Creating a Field

The Change application file field details panel allows you to create a field. It is used in creating program-described files and work fields.

Fill out the Change application file field details panel.
  1. In the Field text field, type a description of the Work Field.
  2. In the Field sequence field, type a number to represent the logical sequence of the field within a format. This count starts at 1.
  3. In the Field type field, specify the code that represents the type of data the field contains. Values are:
    • B - Binary data
    • A - Character data
    • L - Date data
    • E - DBCS - Either data
    • J - DBCS - Only data
    • O - DBCS - Open data
    • D - Floating point data (double)
    • F - Floating point data (single)
    • H - Hexadecimal data
    • P - Packed decimal data
    • T - Time data
    • Z - Timestamp data
    • S - Zoned decimal data
  4. In the Number of digits field, if necessary, specify the maximum number of digits the field can contain. This field is optional and meant to be used with numeric data.
  5. In the Decimal positions field, if necessary, specify the number of positions to appear to the right of the decimal point. This field is optional and meant to be used with numeric data. This field can have a value of 0 (zero) if decimals are not wanted.
  6. In the Field length (character) field, specify the maximum number of characters the field can contain. This number can be the maximum number of allowed characters according to the system field type limits, or any number less than those limits. If designing interface files, the programming languages may have more restrictive limits.
    Note: If you already entered values in the Field type and Number of digits fields, EEI will automatically calculate and fill in this field. For packed decimal fields, the number of digits is not equal to the number of character positions.
    Note: For a list of the system character limits, press F1 on the Field length (character) field.
  7. In the Null value type panel, specify if you want to use null values. Values are:
    • (BLANK) - Use blank or zero
    • E - Explicit null vaue
    • H - Highest value (*HIVAL)
    • L - Lowest value (*LOVAL)
    • R - Repeat explicit value
    Note: The default null value is blank for character fields and zero for numeric; this is used whenever the Field null value type code is blank.
Parent topic: Work Fields


Use Case for Work Fields - Inbound

Customer Requirements

  • They use a split file set.
  • The customer generates their own internal purchase order number that is a field in each of the 4 files.
  • The first PO number generated must start at a specific number – the last number that the previous software assigned.

INCDTAARA (Increment Data Area) is a great way to effect the order number generation but we cannot nor would we want to call the code table for each of the 4 file fields because:

  • Each call would bump the value up by 1.
  • 3 extra code table calls would not be as efficient as field-to-field mapping.

Solution:

  1. Create a new format in *WORKFILE with a work field for the purchase order number. In this case, the work field is named WORKPO.
  2. Create an extra occurrence of a mandatory element in the header. Map that element to WORKPO.
  3. Attach an external program call code table using INCDTAARA to the work field.
  4. Use field-to-field mapping to map WORKPO to each internal purchase order number within the four files.
Parent topic: Work Fields


Use Case for Work Fields - Outbound

Customer Requirements

  • The customer wants to use only one invoice map and one purchase order map for outbound processing.
  • The trading partner agreements define different combinations of product ID codes to be sent.
  • Without work fields, one map per message ID is not possible.
  1. Create a direct code table for the message/segment/trading partner and product ID combinations. For example:
    Key | Qualifiers
    810IT1AGTEST | VN
    810IT1AGTUTR | VN__CBUP
    810IT1DOLLY1 | __SK__UP
    850PO1TP4040 | VNSKCB
    Note: In the Qualifiers column, each _ should be a space. For example: VN(space)(space)CBUP.
  2. Create three work file formats.
    Note: You cannot field-to-field map to fields on the same record format. Since field-to-field mapping is needed in this scenario, we need more than one format.
    1. Create a work file format named OUTLOOKUP containing the field KEY used in the ITEMQUAL table above as the key.
    2. Create a work file format named OUTRESULT containing the field ‘ALLFOUR’ which gets the result of the code table lookup for VNSKCBUP.
    3. Create a work file format named OUTPARSE containing 4 fields used to parse out the individual product ID codes: WK_VN, WK_SK, WK_CB, WK_UP.
  3. Use field-to-field mapping with substring from the work field ALLFOUR to populate the four work fields in the OUTPARSE format.
  4. Create formulas for the 0607 pair.
    Want to see a detailed list of formula parameters for this use case? See Formula Parameters for Work Field Use Case (Outbound)
  5. Create formulas for the 0809 pair.
  6. Create formulas for the 1011 pair.
  7. Create formulas for the 1213 pair.
  8. IT106 through IT113 get an FR with the appropriate formula attached.
  • Formula Parameters for Work Field Use Case (Outbound)
Parent topic: Work Fields


Formula Parameters for Work Field Use Case (Outbound)

Note: For every formula you create, let:
  • a = VN
  • b = SK
  • c = CB
  • d = UP
  • e = ODUVCD (VN product ID value)
  • f = ODMSKU (SK product id value)
  • g = ODITCD (CB product id value)
  • h = ODUPCD (UP product id value)
  • i = WK_VN
  • j = (constant blank)
  • k = WK_SK
  • l = WK_CB
  • m = WK_UP

Create formulas for the 0607 pair

VNSKCBUP:

  • if (k != j and i != j) then b else
  • if (l != j and (k != j and i = j)) or (l != j and (k = j and i != j)) then c else
  • if (m != j and (l != j and k = j and i = j)) or (m != j and (k != j and l = j and i = j)) or (m != j and (i != j and k = j and l = j)) then d
  • else j endif endif endif

PROD_ID:

  • if i != j then e else if k != j then f else if l != j then g else if m != j then h
  • else j endif endif endif endif

Create formulas for the 0809 pair

VNSKCBUP3

  • if (k != j and i != j) then b else
  • if (l != j and (k != j and i = j)) or (l != j and (k = j and i != j)) then c else
  • if (m != j and (l != j and k = j and i = j)) or (m != j and (k != j and l = j and i = j)) or (m != j and (i != j and k = j and l = j)) then d
  • else j endif endif endif

PROD_ID3

  • if (k != j and i != j) then f else
  • if (l != j and (k != j and i = j)) or (l != j and (k = j and i != j)) then g else
  • if (m != j and (l != j and k = j and i = j)) or (m != j and (k != j and l = j and i = j)) or (m != j and (i != j and k = j and l = j)) then h
  • else j endif endif endif

Create formulas for the 1011 pair

VNSKCBUP2

  • if (l != j and k != j and i != j) then c else
  • if (m != j and (l != j and k != j and i = j)) or (m != j and (l != j and k = j and i != j)) or (m != j and (k != j and i != j and l = j)) then d
  • else j endif endif

PROD_ID2

  • if (l != j and k != j and i != j) then g else
  • if (m != j and (l != j and k != j and i = j)) or (m != j and (l != j and k = j and i != j)) or (m != j and (k != j and i != j and l = j)) then h
  • else j endif endif

Create formulas for the 1213 pair

VNSKCBUP1

  • if (m != j and l != j and k != j and i != j) then d else j endif

PROD_ID1

  • if (l != j and k != j and i != j) then g else
  • if (m != j and l != j and k != j and i != j) then h else j endif
Parent topic: Use Case for Work Fields - Outbound


Formulas

Formulas allow users to manipulate data to return an alphanumeric result, a true/false value, or to call an external program. They can be used for inbound and outbound.

There are three types of formulas: Executable, logical, and value.

Inbound
  • FR (formula result) is attached to an application file field or work field.
  • Parameters are defined with E=Element select, constants or special values (for example, segment counters). F=Field select can only be used for External File Lookup field.
Outbound
  • FR is attached to an element or work field.
  • Parameters are defined with F=Field select, constants or special values.

Inbound
  • FR (formula result) is attached to a Format:
    • If true, the record is written to the file.
    • If false, the record is not written.
  • Parameters are defined with E=Element select, constants, or special values (for example, segment counters). F=Field select can only be used for External File Lookup field.
Outbound
  • FR is attached to a Segment:
    • If true, the segment is created.
    • If false, the segment is not created.
  • Parameters are defined with F=Field select, constants or special values

  • Executes commands that return values in parameters.
  • Input variables are designated by a position holder, & (ampersand), immediately before the input variable.

Facts About Formulas

You can select as many as 30 operation codes (for example: add, remainder, concatenation, if, then, else) when creating a formula.

Formulas can include up to 27 variables. Of the variables, 26 can be input variables represented by letters (case-insensitive A-Z). One variable must be output, represented by @(at symbol).

Formulas have a 999-character limit. Formulas are created independently from a message class, and specific parameters are assigned for each message class. This allows a single formula to be used in multiple maps.

Example of a Formula

Examples of simple formulas include:

  • Addition: a+b
  • Concatenation: a cat b
  • Condition: If a = b then c else d endif

Complex formulas build upon simple formulas to manipulate the data according to your needs.

Result Variables and Non-Result Variables

Once a formula instance has finished its execution, only the result can be used to directly affect the map (for example, populate a field or an element). Values assigned to non-result variables cannot.

For example, suppose you want a formula to result in one of three values (X, Y, or Z) depending on how the value of the unit price multiplied by the quantity ordered compares to two constants (A and B). Then, your formula could calculate the unit price (P) times the quantity ordered (Q) each time that value is required. But, it is much easier to assign that product to a third variable (V) once at the top of the formula and refer to that variable each time its value is required within this formula instance.

V:= P*Q

if V>A then

X

else

if V>B then

Y

else

Z

endif

endif

In this example, the assignment operator := in this formula’s first line explicitly assigns a temporary value to variable V. When this formula instance has finished executing, the value in variable V cannot be used to populate a field or element. Only the result variable’s value (X, Y or Z, depending on how V relates to A and B) can be used to directly affect the map.

Formula Structure

Multiple statements must be separated by the statement separator , (comma).

If/then/else/endif operators constitute a structure. A valid structure should have all four operators. At least one statement must be specified for the "then" and "else" portions of the structure.

Blanks may be entered between variables and operators for readability. The processor disregards blanks when execution occurs.

Cleo suggests thoroughly testing all formulas - even simple ones - before using them in a message class.

Value Formulas

V-type, or resulting value, formulas return an alphanumeric value.

These formulas can consist of

  • a single variable
  • simple statements
  • complex statements
  • if/then/else/endif statements
  • nested if/then/else/endif statements
  • embedded executable commands

Value formulas are mapped on a field for inbound and on an element for outbound.

Note: When concatenating with a V-type formula, be sure the formula result field or element has enough characters to hold the combined values of the elements/fields being concatenated.
Note: When comparing values, EEI can only compare alpha to alpha or numeric to numeric. It cannot compare alpha to numeric.

Logical Formulas

L-type, or logical, formulas return a true/false value.

For inbound, a true value tells EEI to write a record to your files. A false value tells EEI not to write a record.

For outbound, a true value tells EEI to generate a segment. A false value tells EEI not to generate a segment.

These formulas can consist of:

  • a single variable
  • simple statements
  • complex statements

The logical statement must be contained in a simple if/endif structure. If the result value field is defined as an Alphanumeric type, either T or F will be returned; if it is defined as Numeric, the result will be either 1 or 0 (zero).

True values are 1 or T. False values are 0 or F.

Logical formulas are mapped on a format for inbound and on a segment for outbound.

Note: When comparing values, EEI can only compare alpha to alpha or numeric to numeric. It cannot compare alpha to numeric.

Executable Formulas

E-type, or executable, formulas call an external program or execute a command.

These formulas can consist of:

  • Executable commands - Execute commands that return values in parameters. Input variables are designated by position holder AMPERSAND (ampersand) immediately before the input variable. Do not leave a space for readability.
  • Embedded executable commands - Almost identical to executable commands, these are used only in V-Type (arithmetic) formulas and must be enclosed within brackets. They set the formula result value based on the final outcome of their execution.

Executable formulas are mapped on a field for inbound and on an element for outbound.

Process Summary

To successfully use a formula, you must:

  • Create a formula or select one of EEI's predefined formulas.
  • Attach the formula in your message class. Value and executable formulas are attached to an element for outbound, and to a field for inbound. Logical formulas are attached to a segment for outbound and a format for inbound.
  • Define parameters for each of the formula's variables. Parameters are the fields or elements being processed by the formula.
  • Result Operators and Assignment Operators
    A formula's default destination is the result operator, unless explicitly assigned elsewhere with the assignment operator. This "default assignment to the result" occurs for each sub-expression within a formula’s then or else clauses.
  • Formula Operator Codes
    Operator codes are used within a formula to change the contents of input variables.
  • Figuring out Formula Parameters
    The best way to assign formula parameters is by writing out what you want to accomplish.
  • Creating a Logical Formula
    Using a logical formula allows you control whether a record is written (inbound) or whether a segment is created (outbound) based on a true/false value.
  • Creating a Value Formula
    Using a value formula allows you to return a value to a field on inbound or to an element on outbound.
  • Creating an Executable Formula
    Using an executable formula allows you to call an external program or execute a command during translation.
  • Mapping a Value or Executable Formula - Inbound
    Value formulas and executable formulas are mapped on a field for inbound.
  • Mapping a Value or Executable Formula - Outbound
    Value formulas and executable formulas are mapped on an element for outbound.
Parent topic: Message Class Customization


Result Operators and Assignment Operators

A formula's default destination is the result operator, unless explicitly assigned elsewhere with the assignment operator. This "default assignment to the result" occurs for each sub-expression within a formula’s then or else clauses.

Therefore, these formulas both assign the formula result to the result operator:

If (a + b) GT (c - d) Then

RESULT := a - c

Else

RESULT := d * a

Endif

If (a + b) GT (c - d) Then

a - c

Else

d * a

Endif

A formula with multiple statements, unless explicitly assigned elsewhere with the assignment operator, will always put the final statement’s result in the result operator.

For example, in a+b,c*d,e/f,g-h the formula performs the unnecessary a+b and c*d and e/f statements, as in the end the g-h statement will override these three previous results.

Parent topic: Formulas


Formula Operator Codes

Operator codes are used within a formula to change the contents of input variables.

  • & - Executable command variable position designator
  • @ or RESULT - Internal final result field
  • + - Addition
  • - - Subtraction
  • * - Multiplication
  • / - Division
  • \ - Remainder
  • ! - Exponentiation
  • ¢ or EXIT - Immediate exit from formula
  • := - Assignment
  • || or CAT - Concatenation; only allowed in the then/else portion of a formula
  • |> or BCAT - Concatenation with one blank placed between fields; only allowed in the then/else portion
  • |< or TCAT - Concatenation with trailing blanks truncated from field on left of concatenation operator; only allowed in the then/else portion
  • | or OR - Or; only allowed in the if portion of a formula
  • & or AND - And; only allowed in the if portion of a formula
  • > or GT - Greater than; only allowed in the if portion of a formula
  • < or LT - Less than; only allowed in the if portion of a formula
  • >= or GE - Greater than or equal to; only allowed in the if portion of a formula
  • <= or LE - Less than or equal to; only allowed in the if portion of a formula
  • = or EQ - Equals; only allowed in the if portion of a formula
  • != or NE - Does not equal; only allowed in the if portion of a formula
  • - A blank space denotes the start of an embedded command; valid only in an arithmetic formula
  • - A blank space denotes the end of an embedded command; valid only in an arithmetic formula
  • ( - Isolates a specific part of a formula; for example (A+B)/C
  • ) - Isolates a specific part of a formula; for example (A+B)/C
  • ? or IF - If
  • : or THEN - Then
  • ; or ELSE - Else
  • # or ENDIF - Endif
  • ' - Statement separator

By default, a statement containing no result operator will have its result assigned to the formula’s internal final result field, @.

Some operators have both a code and a text equivalent – within a formula, you can use either, or both. For example, for concatenation, both A || B and A cat B are valid. You can also mix codes and text in the same formula.

The operator text is case-insensitive. For example, EEI reads CAT, Cat, and cat the same way.

Parent topic: Formulas


Figuring out Formula Parameters

The best way to assign formula parameters is by writing out what you want to accomplish.

For example, suppose a trading partner sends you blanket (BK) orders that reserve inventory. When the goods are to be released they send release (RL) orders. When the RL orders are received, you want to concatenate the purchase order number to the release number and return that value into an application file field. All other types of orders should just return the purchase order number to this field.

So the logic written out would be:

If the BEG02 element equals the RL, then we want the BEG03 concatenated to the BEG04 else we just want the BEG 03 to go to its mapped field.

Using that sentence as our logic, we can assign parameters:

If the BEG02 (A) element equals the RL (B), then we want the BEG03 C concatenated to the BEG04 (D). Else we just want the BEG 03 (C) to go to its mapped field. endif

In EEI, the formula would be:

If A = B then C cat D else C endif

Parent topic: Formulas


Creating a Logical Formula

Using a logical formula allows you control whether a record is written (inbound) or whether a segment is created (outbound) based on a true/false value.

For inbound, a true value tells EEI to write a record to your files. A false value tells EEI not to write a record.

For outbound, a true value tells EEI to generate a segment. A false value tells EEI not to generate a segment.

  1. In the Cleo EEI Main Menu | 5. Mapping | 63. Formulas Menu | 1. Work with formulas panel , press F9=Create.
  2. Assign your formula an ID (name), Status, Type, and Description.
    1. In the ID field, type TRNnn810.
    2. Values for the Status field are:
      • A - Active. Assign this status to formulas that have been tested and are ready to use in a message class.
      • I - Inactive. Use this for formulas that need testing.
      An inactive status will not prevent the formula from being used in a message class. Using the status is a recommended way to flag your formulas that need to be tested.
    3. In the Type field, type L (Logical).
  3. Press Enter and confirm.
  4. The Change formula details panel appears. Type your logical formula into the panel keeping in mind:.

    Type if a = b endif.

    A logical formula can consist of:

    • a single variable
    • simple statements
    • complex statements
    • if/then/else/endif statements
    • nested if/then/else/endif statements
    • embedded executable commands

    The logical statement must be contained in a simple if/endif structure. If the result value field is defined as an Alphanumeric type, either T or F will be returned; if it is defined as Numeric, the result will be either 1 or 0 (zero).

    True values are 1 or T. False values are 0 or F.

    And a formula:

    • Can have up to 27 variables, 26 of which can be input variables represented by letters (case-insensitive-Z)
    • Must have one output variable represented by @
    • Has a 999-character limit.

    Need more help?

    • For a list of formula operator codes, see Formula Opeator Codes.
    • For information on result operators, see Result Operators.
    • For advice on assigning formula parameters, see Figuring out Formula Parameters.
    • Look at examples of other Logical formulas in the Work with formulas panel by typing 2=Change on the Opt field of any Cleo-supplied formula with a L in its Type column. Make sure you don't accidentally change the formula while viewing it.
  5. Press Enter and confirm.
  6. Press F9=Change to return the Work with formulas panel to normal mode. Your new formula will be visible in the panel.
  7. If you need to make changes to your formula, type 2=Change in its Opt field and press Enter.
  • Mapping a Logical Formula - Inbound
    Logical formulas are mapped on a format for inbound. The formula will tell EEI whether or not to write that format.
  • Mapping a Logical Formula - Outbound
    Logical formulas are mapped on a segment for outbound. The formula will tell EEI whether or not to write that segment.
Parent topic: Formulas


Mapping a Logical Formula - Inbound

Logical formulas are mapped on a format for inbound. The formula will tell EEI whether or not to write that format.

The format to which you are attaching the formula result must be associated with its corresponding segment.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | F. Work with segment map file/format panel, type F=Formula qualifier on the format's Opt field. Press Enter.
  2. In the Select Active Formula panel, type 1=Select in the Opt field of the logical formula you want to use. Press Enter and confirm.
  3. The Work with formula parameters panel,
    1. Is the A parameter's source an element, a constant, or a special value?
      • If it's an element, type E=Element select on parameter A's Opt field. Press Enter. In the Element selection panel, select the element that corresponds to A.
      • If it's a constant or a special value, type 2=Change on parameter A's Opt field. Press Enter. In the Change formula parameter details panel, define the Field data source/destination as a constant or special value.
    2. Press Enter and confirm.
    3. Repeat Steps a and b for each parameter. (Not including the @ (at symbol)/ Field source, which should remain blank.)
  4. Press F3=Exit to return to the Work with message class format fields panel. Notice the message at the bottom that reads "Formula (name) instance (#) created for message class (ID and name)."
Parent topic: Creating a Logical Formula


Mapping a Logical Formula - Outbound

Logical formulas are mapped on a segment for outbound. The formula will tell EEI whether or not to write that segment.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map panel, type 2=Change on the Opt field of the segment to which you will attach the formula. Press Enter.
  2. The Message class segment map details panel appears. In the Qualified by formula/description/instance field, press F4.
  3. In the Select Active Formula panel, type 1=Select in the Opt field of the logical formula you want to use. Press Enter and confirm.
  4. The Work with formula parameters panel,
    1. Is the A parameter's source a field, a constant, or a special value?
      • If it's a field, type F=Field select on parameter A's Opt field. Press Enter. In the Select field mapping panel, select the field that corresponds to A.
      • If it's a constant or a special value, type 2=Change on parameter A's Opt field. Press Enter. In the Change formula parameter details panel, define the Field data source/destination as a constant or special value.
    2. Press Enter and confirm.
    3. Repeat Steps a and b for each parameter. (Not including the @ (at symbol)/ Field source, which should remain blank.)
  5. Press F3=Exit to return to the Work with message class format fields panel. Notice the message at the bottom that reads "Formula (name) instance (#) created for message class (ID and name)."
Parent topic: Creating a Logical Formula


Creating a Value Formula

Using a value formula allows you to return a value to a field on inbound or to an element on outbound.

  1. In the Cleo EEI Main Menu | 5. Mapping | 63. Formulas Menu | 1. Work with formulas panel , press F9=Create.
  2. Assign your formula an ID (name), Status, Type, and Description.
    1. In the ID field, type TRNnn850.
    2. Values for the Status field are:
      • A - Active. Assign this status to formulas that have been tested and are ready to use in a message class.
      • I - Inactive. Use this for formulas that need testing.
      An inactive status will not prevent the formula from being used in a message class. Using the status is a recommended way to flag your formulas that need to be tested.
    3. In the Type field, type V (Value).
  3. Press Enter and confirm.
  4. The Change formula details panel appears. Type your formula, keeping in mind:.

    A value formula can consist of:

    • a single variable
    • simple statements
    • complex statements
    • if/then/else/endif statements
    • nested if/then/else/endif statements
    • embedded executable commands

    And a formula:

    • Can have up to 27 variables, 26 of which can be input variables represented by letters (case-insensitive-Z)
    • Must have one output variable represented by @
    • Has a 999-character limit.

    Need more help?

    • For a list of formula operator codes, see Formula Operator Codes.
    • For information on result operators, see Result Operators.
    • Look at examples of other Value formulas in the Work with formulas panel by typing 2=Change on the Opt field of any Cleo-supplied formula with a V in its Type column. Make sure you do not accidentally change the formula while viewing it.

    Type a*b.

  5. Press Enter and confirm.
  6. Press F9=Change to return the Work with formulas panel to normal mode. Your new formula will be visible in the panel.
  7. If you need to make changes to your formula, type 2=Change in its Opt field and press Enter.
Parent topic: Formulas


Creating an Executable Formula

Using an executable formula allows you to call an external program or execute a command during translation.

  1. In the Cleo EEI Main Menu | 5. Mapping | 63. Formulas Menu | 1. Work with formulas panel , press F9=Create.
  2. Assign your formula an ID (name), Status, Type, and Description.
    1. Values for the Status field are:
      • A - Active. Assign this status to formulas that have been tested and are ready to use in a message class.
      • I - Inactive. Use this for formulas that need testing.
      An inactive status will not prevent the formula from being used in a message class. Using the status is a recommended way to flag your formulas that need to be tested.
    2. In the Type field, type E (Executable).
  3. Press Enter and confirm.
  4. The Change formula details panel appears. Type your executable formula into the panel keeping in mind:
    • You will need to use the & (executable command variable position designator) before variables. For example: SNDMSG MSG('&A') TOUSR(&B) MSGTYPE(*INFO)
    • Place the & immediately before the input variable – there can be no space between them.
    • A formula can have up to 27 variables, 26 of which can be input variables represented by letters (case-insensitive-Z)
    • Must have one output variable represented by @
    • Has a 999-character limit.

    Need more help?

    • For a list of formula operator codes, see Formula Opeator Codes.
    • For information on result operators, see Result Operators.
    • For advice on assigning formula parameters, see Figuring out Formula Parameters.
    • Look at examples of other Value formulas in the Work with formulas panel by typing 2=Change on the Opt field of any Cleo-supplied formula with a E in its Type column. Make sure you don't accidentally change the formula while viewing it.
  5. Press Enter and confirm.
  6. Press F9=Change to return the Work with formulas panel to normal mode. Your new formula will be visible in the panel.
  7. If you need to make changes to your formula, type 2=Change in its Opt field and press Enter.
Parent topic: Formulas


Mapping a Value or Executable Formula - Inbound

Value formulas and executable formulas are mapped on a field for inbound.

If an element you need for a parameter is already mapped, make another occurrence of that element.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class application file fields panel, type 2=Change on the Opt field of the field that will hold the formula result. Press Enter.

    Use field ODUNTL.

  2. The Change message class field map details panel appears. In the Field data source/destination field, type FR. Press Enter.
  3. In the Select Active Formula panel, type 1=Select in the Opt field of the value formula you want to use. Press Enter.
  4. In the Change message class field map details panel, press Enter and confirm.
  5. The Work with formula parameters panel appears.
    1. Is the A parameter's source an element, a constant, or a special value?
      • If it's an element, type E=Element select on parameter A's Opt field. Press Enter. In the Element selection panel, select the element that corresponds to A. choose the element PO102.
      • If it's a constant or a special value, type 2=Change on parameter A's Opt field. Press Enter. In the Change formula parameter details panel, define the Field data source/destination as a constant or special value.
    2. Press Enter and confirm.
    3. Repeat Steps a and b for each parameter. (Not including the @ (at symbol)/ Field source, which should remain blank.)
  6. Press F3=Exit to return to the Work with message class format fields panel. Notice the message at the bottom that reads "Formula (name) instance (#) created for message class (ID and name)."
Parent topic: Formulas


Mapping a Value or Executable Formula - Outbound

Value formulas and executable formulas are mapped on an element for outbound.

If an element you need for a parameter is already mapped, make another occurrence of that element.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change on the Opt field of the element that will hold the formula result. Press Enter.
  2. The Change message class element map details 1 panel appears. In the Element data source/destination field, type FR. Press Enter.
  3. In the Select Active Formula panel, type 1=Select in the Opt field of the value formula you want to use. Press Enter.
  4. In the Change message class element map details 1 panel, press Enter and confirm.
  5. The Work with formula parameters panel appears.
    1. Is the A parameter's source a field, a constant, or a special value?
      • If it's a field, type F=Field select on parameter A's Opt field. Press Enter. In the Element selection panel, select the element that corresponds to A.
      • If it's a constant or a special value, type 2=Change on parameter A's Opt field. Press Enter. In the Change formula parameter details panel, define the Field data source/destination as a constant or special value.
    2. Press Enter and confirm.
    3. Repeat Steps a and b for each parameter. (Not including the @ (at symbol), which should remain blank.)
  6. Press F3=Exit to return to the Work with element map for one segment panel. Notice the message at the bottom that reads "Formula (name) instance (#) created for message class (ID and name)."
Parent topic: Formulas


Using Record Update

Record Update allows you to add or update your database files while processing outbound documents without external programming. Using Record Update, keyed files are updated after a document has been processed and before the log is updated.

The Record Update feature is shipped disabled. You must enable it and configure its settings.

  1. In the Cleo EEI Main Menu | 8. System Configuration panel, type 10 (Modify translator Generic File Add/Update control flags) in the command line. Press Enter.
    Note: All fields in this panel have values of Y - Yes or N - No.
  2. The Allow additions field allows EEI to make additions to existing files after processing.
    • If the Allow additions field is set to Yes, the Flag "add" failure as translation error field controls whether the document will be flagged with a translation error if an addition fails.
  3. The Allow updates field allows EEI to update existing files after processing.
    • If the Allow updates field is set to Yes, the Flag "Get" failure as translation error controls whether the document will be flagged with a translation error if EEI cannot retrieve the specified record from the file.
    • If the Allow updates field is set to Yes, the Flag "Put" failure as translation error field controls whether the document will be flagged with a translation error if EEI cannot update the record in the specified file.
    • If both the Allow additions and Allow updates are set to Yes, the Flag "Get" failure as translation error field must be set to No to allow adding.
    Note: The EXTGFAU data area - which this panel changes - controls the Record Update feature.

For files to be affected by changes in this panel, they must be retrieved and set to be updateable.

You cannot use the record update feature and the External File Lookup (EFL) feature on the same file.

  • Selecting File for Record Update
    Before a file can be used with Record Update, it must be selected.
  • Designating a File for Record Update
    Designate a file as updateable for use with the Record Update feature, by selecting any one of its fields and making its Field data source destination UP.
  • Mapping to an Updateable File
    You can use either of these two mapping methods to map data to any of an updateable file's fields.
Parent topic: Mapping


Selecting File for Record Update

Before a file can be used with Record Update, it must be selected.

You must retrieve a file before you select it. For steps to retrieve a file, see Retrieving application files.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel, type 2=Change on your message class' Opt field. Press Enter.
  2. In the Change message class details panel, press F15=Select files for map.
  3. In the Select files for message class map panel, look at the Used column next to the file name you want to make updateable. If there is already an * (asterisk) in the column, the file is likely being used for Electronic File Lookup. If a message class already uses a file for EFL and you designate it for Record Update use, the file's EFL functionality will be lost! If the file is already being used for EFL, do not proceed to the next step.
  4. Type 1=Select all formats in the Opt field of the file you want to make updateable. Press Enter and confirm.
  5. Notice that an * (asterisk) appears in the file's Used column, indicating that it is prepared to be set for use with the Record Update feature.
  6. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes panel | 8. Select message class function | 2. Work with message class application file fields panel, locate the field that will be your field destination. The field destination must be set on the key field, so look for a K in the K (Key) column. Type F=Field-Field mapping on the key field’s Opt field and press Enter. This field is now designated as the Field Destination (FD).
  7. The Select source for field to field mapping panel appears. Locate the field that will be your field source, type 1 in its Opt field. Press Enter.
Parent topic: Using Record Update


Designating a File for Record Update

Designate a file as updateable for use with the Record Update feature, by selecting any one of its fields and making its Field data source destination UP.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class file fields panel, type 2=Change on any field in your external/updateable file except the key fields. Press Enter.
  2. The Change message class field map details panel appears. In the Field data source/destination field, type UP. Press Enter and confirm.
  3. In the Work with message class application file fields panel, notice a UP appears in the field's Source/Destination column.
  4. In the same panel, locate the updateable file's key field(s), signified by a K in the Key column. Use the appropriate of the two following methods to populate the key field, establishing a link to it.
    1. Method A - Using this method, you can put a constant into the key.
      • Type 2=Change in the key field's Opt field. Press Enter.
      • The Change message class field map details panel appears. In the Field data source/destination field, press F4 to prompt the Data source list panel.
      • Select a value by typing 1=Select in an Opt field. Press Enter.
    2. Method B - Using this method, you choose a field.
      • Type F=Field-to-Field mapping in the Opt field of the field you want to update. Press Enter.
      • In the Select source for field to field mapping panel, type 1=Select on the Opt field of the field you want to use to populate the update file with. Press Enter.
  5. Press Enter and confirm.
Parent topic: Using Record Update


Mapping to an Updateable File

You can use either of these two mapping methods to map data to any of an updateable file's fields.

  1. Method 1 - Using this method, you can put a constant into the key.
    1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function, type 2=Change in the Message class application file fields Opt panel.
    2. In the Work with message class application file fields panel, type 2=Change in the Opt field of the field you want to update. Press Enter.
    3. The Change message class field map details panel appears. In the Field data source/destination field, press F4 to prompt the Data source list panel.
    4. Select a value by typing 1=Select in an Opt field. Press Enter.
  2. Method 2 - Using this method, you use field-to-field mapping.
    1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class | 8. Select message class function panel, type 2=Change in the Message class application file fields Opt panel.
    2. In the Work with message class application file fields panel, type F=Field-to-field mapping on the Opt field of the field you want to update. Press Enter.
    3. In the Select source for field-to-field mapping panel, type 1=Select in the appropriate field. Press Enter and confirm.
Parent topic: Using Record Update


Duplicate Value Checking

EEI uses Duplicate Value Checking to check for duplicate values while processing data.

Duplicate checking is either:
  • Trading partner-specific - Check for duplicates within a single trading partner's data
  • Not trading partner-specific - Check for duplicates across all trading partners' data

The difference is like asking “Has this particular trading partner sent this purchase order number before?” (trading partner-specific) or "Has any trading partner sent this purchase order number before?" (not trading partner-specific).

Values must be either alpha or numeric.

For inbound, duplicate value checking is set on an element in the Message class element map details 1 panel.

For outbound, duplicate value checking is set on a field within the envelope map in the Change file set envelope field details panel.

If EEI processes duplicate data, it flags the data with a Duplicate error. If you want to proceed with sending or receiving the duplicate data, you can manually inactivate the duplicate checking for that particular value in the Cleo EEI Main Menu | 5. Mapping | 11. Work with duplicate values panel. After sending or receiving the duplicate data, go back into the panel and reactivate the duplicate checking.

Duplicate Check Name "Buckets"

When setting up Duplicate Value Checking, you also need to assign the element or field holding the value to a duplicate check name. This is a "bucket" in which values will be stored and checked.

You can assign as many elements or fields to a bucket as you like.

If you place multiple trading partner-specific values in the same bucket, each value is only checked against its own trading partner values. For example, trading partner A's purchase order numbers will only be checked against trading partner A's past numbers no matter how many other partners are in the bucket.

If you place multiple not trading-partner specific values in the same bucket, each value is checked against all the values in the bucket. For example, trading partner A's purchase order numbers be checked against the past numbers of every other trading partners' numbers in the bucket.

Setting up multiple duplicate check names lets you further customize Duplicate Value Checking beyond checking that is trading-partner-specific or not.

For example:

Say I had 4 trading partners: A, B, C, and D. I want to check for duplicate purchase order number values between:
  • Customers A and B
  • Customers C and D

But I don’t care if there’s a duplicate purchase order number shared between customers A and C. As a matter of fact, I want A and C to be able to have the same numbers.

To achieve all this, I make each checking setup DD - Duplicate numeric not Trading Partner specific. I set up two different buckets for purchase order numbers, both of which are not trading partner specific. I assign Customers A and B to one bucket, and C and D to the other bucket.

Testing and Production

Cleo highly recommends using Duplicate Value Checking. It helps protect against incidents like shipping the same order twice, double-billing, etc., especially when something like clearing old files from an FTP server goes wrong.

However, during testing, you may be sending the same data over and over as you work out communications with your trading partner. Because of this, Cleo recommends setting up Duplicate Value Checking after testing is complete, right before you move to production. Otherwise, you'll be in and out of the Work with duplicate values panel every time you communicate during testing.

  • Setting up Duplicate Value Checking - Inbound
    Duplicate Value Checking checks for duplicate values while processing data. For inbound, set duplicate value checking on an element.
  • Setting up Duplicate Value Checking - Outbound
    Duplicate Value Checking checks for duplicate values while processing data. For outbound, set duplicate value checking on the envelope.
Parent topic: Mapping


Setting up Duplicate Value Checking - Inbound

Duplicate Value Checking checks for duplicate values while processing data. For inbound, set duplicate value checking on an element.

If the element you want to check is already mapped to a field, create another occurrence of the element. Set up duplicate checking on the extra occurrence.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | 5. Work with element map for one segment panel, type 2=Change on the (extra occurrence of the) element's Opt panel. Press Enter.

    Type 2 on an occurrence of the Purchase Order Number (Element ID 324).

  2. The Message class element map details 1 panel appears. In the Element data source/destination field, specify which duplicate value checking method to use. Values are:
    • DA - Check for alpha duplicate; trading partner specific
    • DB - Check for alpha duplicate; not trading partner specific
    • DC - Check for numeric duplicate; trading partner specific
    • DD - Check for numeric duplicate; not trading partner specific

    Choose DA.

  3. Press Enter. A new field appears. The Dup name (Duplicate check name) field specifies the "bucket" into which these values will be stored and checked. Place the cursor on Dup name field. Press F4.
  4. The Select duplicate check name panel appears.
    • If a duplicate check name you want to use already exists in the panel, type 1=Select on a duplicate check name's Opt field. Press Enter and confirm. Proceed to Step 5.
    • If you need to create a new duplicate check name:
    1. Press F6=Create/update duplicate check then F9=Create.
    2. The Edit Duplicate check panel appears. Type a Dup name that reflects the value being checked. For example, if you are checking invoice numbers, name it INVOI.
    3. Type a Duplicate check description that gives more details about what is being checked.
    4. The Trading Partner dependent field specifies whether EEI's checks in this "bucket" should be based on a specific trading partner or all trading partners. Values are:
      • Y (Yes) - Check for duplicates within a single trading partner's data
      • N (no) - Check for duplicates across all trading partners' data
    5. Press Enter an confirm. Press F3=Exit to navigate to the Select duplicate check name panel.
    6. Type 1=Select on the duplicate check name's Opt field. Press Enter and confirm.
  5. In the Work with element map for one segment panel, notice in the element's Source/destination column, the duplicate value checking method appears.
Parent topic: Duplicate Value Checking


Setting up Duplicate Value Checking - Outbound

Duplicate Value Checking checks for duplicate values while processing data. For outbound, set duplicate value checking on the envelope.

You must have an envelope map set up on your application file set.
  1. In the Cleo EEI Main Menu | 5.Mapping | 2. Work with application file sets | 8. Work with application file set envelope format | 5. Work with file set envelope fields panel, press F9=Create.
  2. In the Map sequence field, type a sequence number.
  3. In the Map code field, type E (Map to envelope/log fields).
  4. In the Field name field, type the field that houses the value you want to duplicate check.
    Note: You can prompt a list of the format's fields by pressing F4.

    Choose field INVNBR (Invoice number).

  5. Press Enter. The Change file set envelope field details panel appears.
  6. In the Field data destination field, specify which duplicate value checking method to use. Values are:
    • DA - Check for alpha duplicate; trading partner specific
    • DB - Check for alpha duplicate; not trading partner specific
    • DC - Check for numeric duplicate; trading partner specific
    • DD - Check for numeric duplicate; not trading partner specific

    Choose DC.

  7. Press Enter. A new field appears. The Dup name (Duplicate check name) field specifies the "bucket" into which these values will be stored and checked. Place the cursor on Dup name field. Press F4.
  8. The Select duplicate check name panel appears.
    • If a duplicate check name you want to use already exists in the panel, type 1=Select on a duplicate check name's Opt field. Press Enter and confirm. Proceed to Step 5.
    • If you need to create a new duplicate check name:
    1. Press F6=Create/update duplicate check then F9=Create.
    2. The Edit Duplicate check panel appears. Type a Dup name that reflects the value being checked. For example, if you are checking invoice numbers, name it INVOI.
    3. Type a Duplicate check description that gives more details about what is being checked.
    4. The Trading Partner dependent field specifies whether EEI's checks in this "bucket" should be based on a specific trading partner or all trading partners. Values are:
      • Y (Yes) - Check for duplicates within a single trading partner's data
      • N (no) - Check for duplicates across all trading partners' data
    5. Press Enter an confirm. Press F3=Exit to navigate to the Select duplicate check name panel.
    6. Type 1=Select on the duplicate check name's Opt field. Press Enter and confirm.
  9. In the Work with application file set envelope field panel, press F9=Change to return the panel to change mode. Notice in the field's Field source/destination column, the duplicate value checking method appears.
Parent topic: Duplicate Value Checking


Mapping Dashboard Search Codes

Mapping a Dashboard search code to an element creates a customized search term for looking up messages in EEI’s Display Messages by Reference Field (DSPMSGREF) panel and in the Cleo Dashboards. The Dashboard Search Code is required to use the Document History report in the Dashboard. Dashboard search fields are 80 characters long, and 30 of those will be viewable in DSPMSGREF.

Note: Dashboard search codes are mapped the same for inbound and outbound.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select message class function | 2. Work with message class segment map | 5. Work with element map for one segment panel, create another instance of the element you want to map.

    In your message class's BEG segment, create an additional Purchase Order Number (Element ID 324) element.

  2. In the Work with element map for one segment panel, type 2=Change in new element occurrence's Opt field. Press Enter.
  3. The Message class element map details 1 panel appears. In the Element data source/destination field, type DS (Dashboard Search). Press Enter.
  4. A new field appears. In the Search code field, type the search code or press F4 to display the Select search code panel.
    Note: You can create your own custom search criteria. In the Select search code panel, press F6=Add/Change to access the Maintain search codes panel, and press F9=Create to enter create mode.
  5. Press Enter and confirm. Notice in the Work with element map for one segment panel, a DS appears in the Source/Destination column indicating the dashboard search code on the element.
Parent topic: Mapping
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Mapping Reference Fields - Inbound

EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For inbound, reference fields are mapped on the element. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.

To get the most out of reference fields, make a plan to map them consistently across all your message classes, or at least all your message classes of the same type. For example, if M5 is always purchase order number across multiple message classes, it is much easier to look up all messages with that purchase order in a single, simplified query.
  1. Create an additional occurrence of the element you want to map to a reference field.

    In your message class's BEG segment, create an additional Purchase Order Number (Element ID 324) element.

  2. In the Work with element map for one segment panel, type 2=Change on the Opt field of the occurrence you just created. Press Enter.
  3. The Message class element map details 1 panel appears. In the Element data source/destination field, type the reference field ( M5, M6, or M7) to which you want to map. Press Enter twice and confirm.

    Type M5.

  4. In the Work with element map for one segment field, notice the reference field (M5, M6, or M7) appears in the element's Source/destination column.
Parent topic: Mapping
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Mapping Reference Fields - Outbound

EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For outbound, reference fields are mapped in the envelope map. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set | 8. Work with application file set envelope format | 5. Work with application file set envelope field panel, press F9=Create to enter create mode.
  2. The Map sequence field specifies the order in which multiple mappings of a single field are performed.

    Type 30.

  3. In the Map code field, type E (Map to envelope/log fields).
  4. In the Field name field, type the name of the file field that contains the data corresponding you want to map to the reference field.

    Type INVNBR (Invoice number).

  5. Press Enter. The Change file set envelope field details panel appears.
  6. In the Field data destination field, type the reference field (M5, M6, or M7) to which you want to map. Press Enter twice and confirm.

    Type M6.

  7. Press F9=Change to return to normal mode. Notice that the reference field (M5, M6, or M7) appears in the field's Field source/destination column.
  8. Repeat these steps to map field INMWOR (The purchase order number) to reference field M5.
Parent topic: Mapping
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Date and time reference fields

EEI provides two 15-character reference fields, M8 and M9, dedicated to storing date and time. While they are mapped similarly to the 30-character reference fields (M5, etc.), the date/time reference fields must be specifically formatted.

Like M5, M6, and M7, the date/time reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands. However, to successfully display M8 and M9 in these panels, the date must be in CMD format (CYYMMDD with C being the century digit).

If the date you want to map to a reference field is not already in CMD format, use the DATECONVRT (Date Convert) code table to change its format.

Once you have the date set to CMD format, you can map it to your reference field from the element for inbound, or from the field in the envelope map for outbound.

Parent topic: Mapping
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Defining Hierarchical Level Segments

In message classes that use hierarchical level segments, such as an 856 Ship Notice/Manifest, you must define a hierarchical level (HL) segment for each hierarchical level present/required.

You need to have your file set and message class created. If you need information on setting key fields for hierarchical levels, see Setting key fields.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type 8=Select functions on the Opt field of a message class that uses hierarchical fields (for example, an 856). Press Enter.
  2. In the Work with message class segment map panel, type 2=Change on the first HL segment's Opt field. Press Enter.
  3. The Message class segment map details panel appears. In the Segment ID qualifier code panel, type H (Qualified by Hierarchical Level ID). Press Enter.
  4. A new field appears. In the HL ID qualifier field, type your topmost hierarchical level. If you don't know the qualifier, press F4 to prompt the HL ID qualifier list to choose from.
    For example, in an 856, the Shipment houses all other levels, so you would type S (Shipment) as your first level qualifier.
    Note: For a full list, see Hierarchical Level Qualifiers.
  5. Press Enter and confirm. In the Work with message class segment map panel, notice that an H appears in the Qualifier column and a code appears in the Hierarchical Level column, signifying that a hierarchical level is defined.
  6. Repeat steps 2 through 5 for each of the hierarchical level segments, changing the qualifier ID for each corresponding level.
    For example, the second HL segment of an 856 would have the O - Order ID, the third segment the P - Pack ID, and the final segment would have the I - Item ID.)
    Note: For any segment that can occur multiple times, be sure that in the Message class segment map details panel's Segment map usage field, you type N (Occurs any number to max). Also, change the Segment loop repeat field to reflect the maximum value in the Standard value column.
Define elements for each hierarchical level segment.
  • Defining Hierarchical Level Elements
    The elements in hierarchical level segments require special processing or constants to create a relationship between the levels. This example specifically covers 856 Advanced Shipping Notices.
  • Attaching Hierarchical Level Formats to Segments
    With your keys and files/formats sequenced, and your segments and elements defined, you can attach the files and formats to the hierarchical level segments.
Parent topic: Mapping


Defining Hierarchical Level Elements

The elements in hierarchical level segments require special processing or constants to create a relationship between the levels. This example specifically covers 856 Advanced Shipping Notices.

You need to have HL segments created and defined.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select functions | 2. Work with message class segment map panel, type 5=Element in a the first HL segment's Opt field. Press Enter.
  2. The Work with element map for one segment panel appears. Press F6=Create element map records.
  3. The Select elements for message class map panel appears. Type 1 in the Opt field of:
    • Element position 1 - Hierarchical ID Number
    • Element position 3 - Hierarchical Level Code
    • Element position 4 - Hierarchical Child Code
  4. Press Enter and confirm. Press F3=Exit to return to the Work with element map for one segment panel.
  5. Type 2=Change on each element's Opt field. Press Enter.
    1. In the Message class element map details 1 panel for Element position 1 - Hierarchical ID Number, in the Element data source/destination field, type S0 (S zero). Press Enter twice.
    2. In the Message class element map details 1 panel for Element position 3 - Hierarchical Level Code, in the Element data source/destination field, type C1 and press Enter. In the Short constant field, type the code that corresponds with the hierarchical level you are working in. Press Enter twice.
      For an 856 ASN, the first-level (shipment) code is S.
    3. In the Message class element map details 1 panel for Element position 4 - Hierarchical Child Code, in the Element data source/destination field, type, C1 and press Enter. In the Short constant field, type the 1. Press Enter twice.
    4. The Work with element map for one segment panel appears. Notice the Code (S for 856) and 1 appears in the Field/constant column.
  6. Press F3=Exit to return to the Work with message class segment map panel. Type 5=Element in the next HL segment's Opt field. Press Enter.
  7. The Work with element map for one segment panel appears. Press F6=Create element map records.
  8. The Select elements for message class map panel appears. Type 1 in the Opt field of each element. This includes:
    • Element position 1 - Hierarchical ID Number
    • Element position 2 - Hierarchical Parent ID Number
    • Element position 3 - Hierarchical Level Code
    • Element position 4 - Hierarchical Child Code
  9. Press Enter and confirm. Press F3=Exit to return to the Work with element map for one segment panel.
  10. Type 2=Change on each element's Opt field. Press Enter.
    1. In the Message class element map details 1 panel for Element position 1 - Hierarchical ID Number, in the Element data source/destination field, type S0 (S zero). Press Enter twice.
    2. In the Message class element map details 1 panel for Element position 2 - Hierarchical Parent ID Number, in the Element data source/destination field, type S0 (S zero). Press Enter twice.
    3. In the Message class element map details 1 panel for Element position 3 - Hierarchical Level Code, in the Element data source/destination field, type C1 and press Enter. In the Short constant field, type the code that corresponds with the hierarchical level you are working in. Press Enter twice.
      For an 856 ASN, the second-level (order) code is O.
    4. In the Message class element map details 1 panel for Element position 4 - Hierarchical Child Code, in the Element data source/destination field, type, C1 and press Enter. In the Short constant field, type the 1. Press Enter twice.
    5. The Work with element map for one segment panel appears. Notice the Code (O for 856) and 1 appears in the Field/constant column.
  11. Repeat Steps 6 through 10 for each HL segment.

    • For each level, in the Short constant field, be sure to type the code that corresponds with the hierarchical level you are working in.

      For an ASN 856, it's P for package and I for item.

    • On the final HL segment's Element position 4 - Hierarchical Child Code's Short constant field, type 0 (zero) to indicate that it is the final level.
Next: Attach the formats to the HL segments.
  • Hierarchical Level Qualifier IDs
    EEI has pre-set codes to denote hierarchical levels. These values would be entered in the HL ID qualifier field within the Message class segment map details panel.
Parent topic: Defining Hierarchical Level Segments


Hierarchical Level Qualifier IDs

EEI has pre-set codes to denote hierarchical levels. These values would be entered in the HL ID qualifier field within the Message class segment map details panel.

Hierarchical Level ID Qualifiers

  • A - Assembly
  • AA - Insurer
  • AB - Claim administrator
  • AC - Insured
  • AD - Administrative information
  • AE - Car rental detail
  • AF - Lodging detail
  • AG - Agent
  • AH - Transportation detail
  • AI - Purchase card detail
  • AJ - Alternate tax authority
  • AL - Alternate spec-lift level
  • AM - Amount information
  • AP - Credential action
  • AS - Animal subject group
  • AT - Account
  • B - Buyer's location
  • BD - Building
  • BE - Business entity
  • BP - Body part
  • C - Date
  • CA - Calendar
  • CB - Contract holder branch office
  • CC - Cost center
  • CE - Cost element
  • CH - Contract holder
  • CI - Cause of injury
  • CL - Claimant
  • CN - Container
  • CO - Consortium
  • CP - Client or Party
  • CT - Cost type
  • CV - Coverage, rider, sup benefit
  • D - Product description
  • DG - Drawing
  • DM - Damage
  • DP - Department
  • E - Transportation equipment
  • EB - Filer
  • EC - Receipts
  • ED - Engineering data list
  • EF - Expenditures
  • EG - Receivables
  • EH - Payables
  • EI - Organizational information
  • EL - Exhibit line item
  • EM - Employer
  • EN - End item
  • EV - Event
  • EX - Exception
  • F - Component
  • FC - Function code
  • FG - Functional group
  • FI - Financial information
  • FL - Fleet
  • FR - Frame
  • G - Quality characteristics
  • GC - Group coverage options
  • GP - Group purchasing Org
  • GW - Group work candidate
  • H - Bill of materials
  • I - Item
  • IA - Subline item
  • IB - Contract
  • IC - Contract data req list
  • IN - Interchange
  • IS - Installments
  • J - Part characteristic
  • JU - Jurisdiction
  • K - Kit
  • L - Supplier's location
  • LD - Lender/Mortgage company
  • LN - Loan data
  • LP - Part to the loan
  • M - Measurement
  • ML - Manufacturing level
  • N - Site of service
  • NI - Nature of inquiry
  • NS - National stock number
  • O - Order
  • OS - Support
  • P - Pack
  • PA - Primary administrator
  • PB - Personal property
  • PC - Project code
  • PD - Procedure
  • PE - Person
  • PH - Product characteristic
  • PI - Property identification
  • PK - Property tax
  • PL - Primary spec - lift level
  • PP - Related parties
  • PR - Principal
  • PS - Property segment group
  • PT - Patient
  • PY - Payment detail
  • Q - Subpack
  • R - Quantity
  • RA - Reporting agency
  • RB - Response
  • RC - Response details
  • RD - Response sub-details
  • RE - Response particular
  • RF - Medication
  • RG - Recommendation
  • RH - Review history
  • RL - Reference location
  • RM - Room
  • RP - Report
  • S - Shipment
  • SA - Secondary administrator
  • SB - Substitute
  • SC - Sub-contract line item
  • SD - Support document
  • SE - Sub-exhibit line item
  • SF - Safety fitness
  • SG - Safety factor
  • SH - Sheet
  • SI - Source of inquiry
  • SL - Solicitation
  • SP - Sub-project
  • SR - Sub-room
  • SS - Services
  • SY - System
  • S1 - Site
  • S2 - Sample
  • S3 - Test
  • T - Shipping tare
  • TA - Taxing authority
  • TD - Tax delinquency
  • TI - Technical inf package
  • TS - Transaction set
  • TU - Traffic unit
  • TX - Tax installment
  • U - Sub-assembly
  • UT - Unit or Lot
  • V - Address information
  • VI - Violation
  • W - Transaction reference
  • WB - Work breakdown structure
  • WC - Work candidate
  • WL - Well
  • WP - Well completion
  • WR - Wellbore
  • X - Serial number
  • Y - Suffix
  • ZZ - Mutually defined
  • 1 - Service/billing provider
  • 19 - Provider of service
  • 2 - Billing arrangement
  • 2A - Branch
  • 2B - Direct affiliate
  • 2C - Director
  • 2D - Headquarters
  • 2E - Indirect affiliate
  • 2F - Management antecedents
  • 2G - Management or Principal
  • 2H - Parent company
  • 2H - Parent company
  • 2I - Stockholder
  • 2J - Subsidiary
  • 2K - Ultimate domestic parent
  • 2L - Ultimate parent company
  • 20 - Information source
  • 21 - Information receiver
  • 22 - Subscriber
  • 23 - Dependent
  • 24 - Supergroup
  • 25 - Subgroup
  • 26 - Member
  • 27 - Ancillary facility/department
  • 28 - Hospital
  • 29 - Franchisor
  • 3 - Sub-billing arrangement
  • 30 - Franchisee
  • 31 - Franchisee association
  • 32 - Health industry bus comm council
  • 33 - Activity
  • 34 - Location record
  • 35 - Company/corporation
  • 36 - Operating unit
  • 37 - Property
  • 38 - Trade name
  • 39 - Accountant
  • 4 - Group
  • 40 - Financial institution
  • 41 - Product level
  • 42 - Activity details
  • 43 - Payment summary score
  • 44 - Corporate reg filings
  • 45 - Bankruptcy details
  • 46 - Company history
  • 47 - Complete financial history
  • 48 - Balance sheet
  • 49 - Comparative figures
  • 5 - Category
  • 50 - Payment analysis
  • 51 - Special notification
  • 52 - Public record financing detail
  • 53 - Public record financing su
  • 54 - Public record claim details
  • 55 - Public record claim summary
  • 56 - Statement of work
  • 57 - Legal action details
  • 58 - Legal action summary
  • 59 - Company evaluation
  • 6 - Sub-category
  • 60 - Company summary
  • 61 - Credit scores
  • 62 - Industry averages
  • 63 - Referring provider
  • 64 - Employee
  • 65 - Insurance policy
  • 66 - Vehicle
  • 67 - Key contributor
  • 68 - Public record summary
  • 69 - Delinquency projections
  • 7 - Type
  • 8 - Charge detail
  • 9 - Line detail
Parent topic: Defining Hierarchical Level Elements


Attaching Hierarchical Level Formats to Segments

With your keys and files/formats sequenced, and your segments and elements defined, you can attach the files and formats to the hierarchical level segments.

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select functions | 2. Work with message class segment map panel, type F=Formats in the first HL segment's Opt field. Press Enter.
  2. The Work with segment map file/format panel appears.
    1. In the Application file field, type the name of the application file that corresponds to the highest hierarchical level.
      For an 856 ASN, it would be the shipment file.
      Note: You can press F4 in the field to prompt a selector panel files and formats.
    2. In the Record format field, type the name of the format that corresponds to the highest hierarchical level.
Parent topic: Defining Hierarchical Level Segments


Change Management

Change Management is a structured approach to documenting and tracking changes to objects within EEI.

Change Management offers more accountability, visibility, and reliability to your EEI environments. Accountability has been improved with a History file, updated upon changes being made to a Message Class; this History file contains a record of changes, the date and time when the changes were made, and the job and user responsible for the changes. The visibility provided by the History is enhanced through the Notes feature; these Notes can be created through an additional option within the Work with message class panel. Change Management enhances reliability through versioning with Save Catalogs. These Save Catalogs allow users to revert back to previous points if changes prove unnecessary or unstable.

Message Class History

With Change Management, a History File containing a summary and detail level of changes is provided. A summary level view of an object's history can be accessed via the Cleo EEI Main Menu | 3. Archiving and Data Management | 13. Work with object history summary panel. This summary view shows the Date/Time of creation, the Object type, the Object name, and the User who created the entry.

A detailed History can be accessed from the Work with object history summary panel by typing 5=History in the Opt field of the desired entry. Alternatively, detailed History information for a specific Message Class can be accessed via the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel. Type H=History in the Opt field of the Message Class to access the Work with object history panel.

In the Work with object history panel type 5=Display in the Opt field of an Object History entry to access the Edit Object history details panel. The Edit Object history details panel provides detailed information on the selected record. This information provides a record of the last change including the Date/Time, the User and Job, Text describing the change, and the Program used to make the change.

Message Class Notes

Notes allow team members to effectively maintain a record of changes made to an object and may be created at any time; they can be created via the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class by typing N=Notes in the Opt field of the desired Message Class. These notes can be used to describe the details of work that has been done, changes that have been made, and reminders of work that needs to be completed for the desired Message Class, so all team members are aware of the Message Class' current status.

Message Class Versioning with Save Catalogs

As part of Change Management, users can utilize version control within EEI. Any time a change is required, users can create a Save Catalog entry, modify the Message Class, and note the changes. If the changes made are unwanted or unstable, a previous version of the Message Class can be restored from a Save Catalog entry. Save Catalogs can be accessed directly via the Cleo EEI Main Menu | 3. Archiving and Data Management Menu | 12. Work with save catalog panel; alternatively, Save Catalogs can be accessed via the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel by typing S=Save or R=Restore in the Opt field of the desired Message Class or Cleo EEI Main Menu | 3. Archiving and Data Management | 13. Work with object history summary panel by typing 7=Save Catalog in the Opt field of the desired entry.

  • Message Class History
    The Message Class History provides details of when changes were made to a Message Class and which user made the changes.
  • Message Class Notes
  • Message Class Save Catalog
    A Message Class Save Catalog is an object created for versioning, history, and restore purposes.
  • Message Class Authorization


Message Class History

The Message Class History provides details of when changes were made to a Message Class and which user made the changes.

User accountability is important whether one person or a team is working on a project; it is good to know when a change was made and what user was responsible for the change. The Message Class History feature provides a visible record of all changes made to the Message Class object with a Date, Time, User, and Job.

Object History Events

The History File is updated whenever a change is made, and upon making a change, the user will be taken to the Edit object history details panel where the user can enter text explaining why the change was made. The text entered in this panel is updated into the History file. The text entered can be changed from the Work with object history panel. History File records are also created for Delete, Save, and Restore events, but these events do not prompt the user for text; the text for these records corresponds with the event and cannot be changed.

  • Creating New Entries in the Message Class History File
  • Reviewing Message Class History File Entries
Parent topic: Change Management


Creating New Entries in the Message Class History File

Creating a New Entry in the History File by Changing Message Class Details

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type 2=Change in the Opt field of the Message Class.
  2. Perform any action on Change message class details panel.
  3. Save and confirm.
Creating a New Entry in the History File by Changing Message Class Functions
Note: This section pertains to Message Classes in a T=Test status. Message Classes in a D=Development status will not have a History File entry upon changing Message Class functions.
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type 8=Select Functions in the Opt field of the Message Class.
  2. In the Select message class function panel, type 2=Change in the Opt field of any function.
  3. Perform any change within any function.
  4. Exit the Select message class function panel.
Parent topic: Message Class History


Reviewing Message Class History File Entries

Reviewing History File Entries - Summary View

  1. In the Cleo EEI Main Menu | 3. Archiving and Data Management panel, type 13 to access the Work with object history summary panel.

Reviewing History File Entries - Detailed View

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type H=History in the Opt field of the Message Class to view Summary level entries.
  2. In the Work with object history panel, type 5=Details on an entry to see the Detail level of the entry or enter new text information for the entry.
Alternatively:
  1. In the Cleo EEI Main Menu | 3. Archiving and Data Management | 13. Work with object history summary panel, type 5=History in the Opt field of the desired entry.
  2. In the Work with object history panel, type 5=Display in the Opt field of the desired entry.
Parent topic: Message Class History


Message Class Notes

The Message Class Notes allow users to document changes, requests, updates, and reminders about a Message Class. Multiple Notes can be created, viewed, and deleted from the Edit Message class note panel.

  • Creating Notes
  • Viewing Note Details
  • Deleting Notes
Parent topic: Change Management


Creating Notes

To create a Note for a message class, do the following:

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type N=Notes in the Opt field of the Message Class.
  2. In the Edit Message class note panel, Press F9 to enter create mode.
    Note: The first time notes are created, for a Message Class, users will automatically enter the screen in create mode.
  3. Type the desired text in the Note field.
  4. Press Enter and confirm.
Parent topic: Message Class Notes


Viewing Note Details

To view Note details, do the following:
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type N=Notes in the Opt field of the Message Class.
  2. Type 5=Display in the Opt field of the Note to see the Note contents as well as user who created it and the date/time of creation.
Parent topic: Message Class Notes


Deleting Notes

To delete a Note, do the following:
  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type N=Notes in the Opt field of the Message Class.
  2. Type 4=Delete in the Opt field of the desired Note.
  3. Press Enter and confirm.
Parent topic: Message Class Notes


Message Class Save Catalog

A Message Class Save Catalog is an object created for versioning, history, and restore purposes.

During the course of business, one or more changes may be required within a Message Class. A Message Class Save Catalog can be created as a restore point should the changes be reconsidered or negatively impact production.

  • Creating a Message Class Save Catalog
  • Restoring a Message Class Save Catalog
Parent topic: Change Management


Creating a Message Class Save Catalog

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type S=Save in your Message Class Opt field.
    Note: All of the required fields will be populated automatically, and the next sequentially available Save File, with an M prefix, will be created in the library defined in the EXTSAVLIB data area. If you are operating in multiple environments, you MUST use different libraries for the Save Files.
    Note: While the values will default to the next sequential Save File name and Save File Library, users can define these values with custom file names and libraries.
  2. Type a description in the Save Catalog Text field if desired.
  3. Press Enter.
Alternatively:
  1. In the Cleo EEI Main Menu | 3. Archiving and Data Management | 12. Work with save catalogs - message class, Press F14=Save.
  2. In the Select message class panel, type 1=Select in the Opt field of the desired Message Class.
  3. Press Enter.
    Note: While the values will default to the next sequential Save File name and Save File Library, users can define these values with custom file names and libraries.
  4. Type a description in the Save Catalog Text field if desired.
  5. Press Enter.
Parent topic: Message Class Save Catalog


Restoring a Message Class Save Catalog

  1. In the Cleo EEI Main Menu | 5. Mapping | 3. Work with message class panel, type R=Restore in the Opt field of the Message Class.
    Note: All Save Catalog entries for the Message Class are listed. Type 5=Display on an entry to see the Date and Time of creation and the User who created the entry.
  2. Type 1=Select in the Opt field of the Save Catalog entry.
    Note: If there is only one Save Catalog for the Message Class, the save file will be auto-selected.
  3. Press Enter.
  4. In the Restore Message Class panel, press Enter.

Alternatively:

  1. In the Cleo EEI Main Menu | 3. Archiving and Data Management | 12. Work with save catalog panel, type 0=Restore in the Opt field of the Save Catalog entry.
    Note: All Save Catalog entries for the Message Class are listed. Type 5=Display on an entry to see the Date and Time of creation and the User who created the entry.
  2. Press Enter.
  3. In the Restore Message Class panel, press Enter.
Parent topic: Message Class Save Catalog


Message Class Authorization

Use an Authorization List to manage the access users have to Message Classes.

Creating an Authorization List

An Authorization List can allow or deny user access to options in a Message Class. Without an Authorization List, full access is granted to all users. By applying the Authorization List, all users are restricted with the exception of those included in the Authorization List. Configuring an Authorization List can be performed by following these steps.

  1. In the Cleo EEI Main Menu | 8. System Configuration | 60. User View Authorization Menu | 2. Work with authorization lists panel, press F9 to enter create mode.
  2. Type a List in the List field and type a Description in the Description field.
  3. Press Enter and confirm.
  4. Press F9 to enter change mode.
  5. Type 5=Members in the Opt field of the List.
  6. Press F9 to enter create mode.
  7. Type specific User Profiles in the Profile field.
  8. Press Enter and confirm.

Setting Program Controls for Message Class Authorization

  1. In the Cleo EEI Main Menu | 8. System Configuration Menu | 5. Work with program control information press F9 to enter create mode.
  2. To restrict change options on the Work with message class panel, type MMCEF1R in the Program identifier field.
    Note: The change options include: 2=Change, 3=Copy, 4=Delete, R=Restore, and F9=Create.
    1. Press Enter.
    2. In the Program control details panel, type 10000 in the Scan limit for program field.
    3. In the Program control details panel, type the List name in the Program control structure field.
    4. Press Enter and confirm.
  3. To restrict changes on the Select message class function panel, type MMCPV0R in the Program identifier field.
    1. Press Enter.
    2. In the Program control details panel, type 10000 in the Scan limit for program field.
    3. In the Program control details panel, type the List name in the Program control structure field.
    4. Press Enter and confirm.
Parent topic: Change Management


Trading Partner

In EEI, trading partners are user-defined records that contain your trading partner information. Cleo EDI Integrator uses the trading partner to determine who is sending documents, where to send documents, and what to do with those documents.

Data from an incoming document’s envelope segments are compared to the trading partner values to identify the sender. For outbound, the information defined in the Trading Partner details panels is used when creating the envelope segments. This information also affects many other operations, including control number management, functional acknowledgments, and document delimiters.

The trading partner values are based on specifications provided by yourself and the partner with whom you are exchanging documents. The trading partner record shares common information among all messages traded. This common information is entered at a trading partner level and provides default values for all messages. If a specific document requires other values, there are options to override the default values.

Levels of information

EEI will use the trading partner information when creating the "envelopes" used to identify a document's sender and receiver, type of document, and the message class map to use in translation. The three levels of information that EEI uses are:
  • Trading partner level - Defines the sender and receiver of documents. It also sets default values for delimiters, functional acknowledgments, interchange control numbers, duplicate messages, and network information.
  • Trading partner functional group level - Defines the type of document (for example, 850 purchase order, 856 advanced shipping notice, etc.) and the values for group control numbers. Values set at the functional group level override the trading partner level.
  • Trading partner message class level - Defines which message class to use for this trading partner when translating data to or from EDI standards. It also defines values for message control numbers. Values set at the message class level override all other levels.

Configurations at the trading partner level apply to all data being sent through this trading partner. However, if you need a trading partner detail changed for one specific trading partner-message class combination, you can change fields in at the message class level in the Trading partner message class details 1 and Trading partner message class details 2 panels.

For example, if you send multiple document types to your trading partner, but need to use different envelope class only on invoices, you can specify your general envelope class in the Trading partner details 1 panel, and the specific envelope class in the invoice's Trading partner message class details 1 panel.

Process Summary

To set up a trading partner, you must:
  • Define the trading partner.
  • Define trading partner groups.
  • Specify trading partner message classes.
  • (Optional) Specify trading partner message class overrides.

Trading partners must be unique to the system. Uniqueness is based on the combination of Sender ID, Receiver ID, and Test indicator fields. If you are copying a trading partner, you must change the value in at least one of these fields to guarantee uniqueness. The copy will not complete if the combination already exists in the system.

  • Delimiters
    Delimiters are the characters that separate segments, elements, and sub-elements in raw EDI data. Delimiters are specified in the Trading Partner panels, and there are some considerations that must be given when choosing which delimiters to use.
  • Creating a Trading Partner
    In order to send and receive data with your trading partners, you need to create a trading partner record so EEI can identify with whom you are exchanging documents.
  • Trading Partner Message Class Overrides
    Trading partner message class overrides can be used to override the translation to a different library. This function is especially useful when testing with a new trading partner. It is an inbound-only function.


Delimiters

Delimiters are the characters that separate segments, elements, and sub-elements in raw EDI data. Delimiters are specified in the Trading Partner panels, and there are some considerations that must be given when choosing which delimiters to use.

The characters you use for delimiters are entirely up to you, but there are a few rules that should be followed.

  • Refrain from using non-displayable characters. Besides being confusing to read, they may also appear as displayable characters.
  • Default delimiters are set for each trading partner in the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners | 2. Trading partner details 1 panel.

    They can be overridden at the trading partner message class level. If overriding at the message class level, you must type an M in the Delimiter source field in the Trading partner message class details 1panel.

  • Characters can be entered as either the actual character or hex codes. If entering the actual character, type it in the last position of the Segment/element/sub-element field(s). If entering a hex code, type it the left side of the field(s) and press Enter; when you confirm, you can re-enter the panel to see the character in the right side of the field.
  • The delimiter for repeating elements, if you are using 4040 standards or above, is set in the Trading partner details 1 panel's Interchange standard ID field. This field corresponds with the ISA 11 element. Cleo recommends using a ^ (hat) for your repetition separator (so long as the ^ character does not appear in your repeating data).

Your trading partner determines which delimiters will be used in data they send to you.

  • Delimiters must be unique.
  • In ANSI X12 standards, the element, sub-element, and segment delimiters are always displayed in the last three characters of the ISA.
  • In X12, the sub-element delimiter is also displayed in element ISA16.

Default Delimiters

ANSI X12

The most commonly used X12 delimiters are:

  • * (asterisk) - element
  • > (greater than) - sub-element
  • ~ (tilde) - segment

EDIFACT

The most commonly used EDIFACT delimiters are:

  • ' (apostrophe) - segment
  • + (plus sign) - element
  • : (colon) - sub-component

If you are not using the default delimiters, you must include a UNA segment to define them at the beginning of your outbound documents.

TRADACOMS

The most commonly used TRADACOMS delimiters are:

  • + (plus sign) - element
  • : (colon) - component/sub-element
  • ' (apostrophe) - terminates a segment

Other significant TRADACOMS characters are:

  • = (equal sign) - separates a segment label from the first element in the segment
  • ? (question mark) - release character

When any of these five special characters is required as part of the text within a data element, the release character must precede the special character so it is not misinterpreted. The release character is not counted as part of the data element's length.

For example, "O'Kane" must be sent as "O?'Kane".

Parent topic: Trading Partner


Creating a Trading Partner

In order to send and receive data with your trading partners, you need to create a trading partner record so EEI can identify with whom you are exchanging documents.

Configurations at the trading partner level apply to all data being sent through this trading partner-message class combination. However, if you need a trading partner detail changed for one specific trading partner-message class combination, you can change fields in at the message class level in the Trading partner message class details 1 and Trading partner message class details 2 panels.

Note: Overrides at the message class level should be treated as exceptions only to the trading partner level.

For example, if you send multiple document types to your trading partner, but need to use different envelope class only on invoices, you can specify your general envelope class in the Trading partner details 1 panel, and the specific envelope class in the invoice's Trading partner message class details 1 panel.

Note: Always fill out the trading partner-level Trading partner details panels with your company as the receiver.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel, press F9=Create to enter create mode.
  2. Type a name for your trading partner. Press Enter.
  3. In the Trading partner details 1 panel, fill in the information for your trading partner. At this level, the trading partner is always the sender.

    1. If you are using EDIFACT, press F11=Alternate view for additional fields. If you are not using EDIFACT, the additional fields do not apply to you; do not fill them in.
    2. Trading partner name, address information, and phone number are all for your internal use. What you type will not affect EDI data translation.
    3. The rest of the information will be determined by your trading partner or an agreement with your trading partner.
      Note: For more information on these fields and how they correspond to EDI segments, see EDI Envelopes.
    4. In the Interchange Acknowledgment requested field, specify if an interchange acknowledgment is requested for this interchange. This is not a request for a functional acknowledgment (997). This field corresponds to the X12 ISA14 element. Values are:
      • 0 - Do not acknowledge at interchange level. Tells EEI to not look for the TA1 segment.
      • 1 - Interchange level acknowledgment requested. Tells EEI to look for the TA1 segment.
      • (Blank) - Tells EEI to use the default from the trading partner
    5. In the Test indicator field, specify whether the data in this interchange envelope is for test or production. The value must match the interchange start segment. In X12, this field corresponds to ISA15, element I14. In EDIFACT, this field corresponds to UNB11, element 0035. Values are:
      • P - Production
      • T - Test
      • * - Match either test or production
      Note:

      If the value * (asterisk) is used in the trading partner record, the associated trading partner message class records for all outgoing documents for this trading partner must have either P or T in the Test indicator field.

      If * is used on trading partner level and an outbound message class is attached, you will be forced to indicate P or T on outbound message class.

    6. Delimiters - the characters that separate segments, elements, and sub-elements. For more information, see Delimiters.
    7. The Controlling agency, Standard class, Industry group, Version release, Industry group ID and Envelope class fields all directly correspond to the standards you have agreed to use with your trading partner. The Industry group ID can be left blank if you are not using one. Selector fields for each panel can be prompted by pressing F4.
    Note: If a value isn't provided for the Authorization information, Security information, and/or Industry group ID, do not be concerned. These fields are often blank.
  4. Press Enter.
  5. In the Trading partner details 2 panel, continue to fill in information.
    1. The Acknowledgment level to send field specifies for which level (if any) acknowledgments are generated for outbound. Values are:
      • F - Element level, all messages
      • E - Element level, messages in error
      • G - Group level, all groups
      • I - Interchange level, all interchanges
      • O - Message level, all messages
      • M - Message level, messages in error
      • Q - Message level, all messages S/E
      • P - Message level, messages in error S/E
      • N - No acknowledgment used
      • T - Segment level, all messages
      • S - Segment level, messages in error
    2. The Acknowledgment level to receive field specifies for which level (if any) acknowledgments are expected during inbound. Values are:
      • F - Element level, all messages
      • E - Element level, messages in error
      • G - Group level, all groups
      • I - Interchange level, all interchanges
      • O - Message level, all messages
      • M - Message level, messages in error
      • Q - Message level, all messages S/E
      • P - Message level, messages in error S/E
      • N - No acknowledgment used
      • T - Segment level, all messages
      • S - Segment level, messages in error
    3. The Acknowledgment error reporting level field tells EEI to report errors against a usage convention as defined in the message class mapping, or against both standards and usage convention. Values are:
      • N - No report/not applicable
      • B - Report both standards and usage conventions errors
      • C - Report only usage convention errors
      • S - Report only standards errors
    4. The Acknowledgment error response map fields are used to configure compliance checking. Each field is an array, with each character position referring to a specific error. For full details on how to use these fields, see Compliance Checking.
    5. The Interchange control last sent and Interchange control last received fields contain the control numbers for the last interchange sent to this trading partner and the last interchange unwrapped from this trading partner, respectively. These numbers uniquely identify the interchange data.
      Note: Cleo recommends the sender, receiver, and all third parties be able to maintain an audit trail of interchanges using this number.

      If an interchange is generated and not sent, this control number must be reset manually to the previous number in order to avoid a gap in the control numbers sent for interchanges sent to this trading partner.

    6. The Interchange control reference format generation field determines the interchange control number format on outbound documents. These should be sequentially numbered so EEI can detect missing or duplicate envelopes. The Interchange control reference format test field determines the format that will be used to test incoming control reference elements. Values are:
      • A - From application file
      • M - Mixed alpha-numeric - Extracts the numeric characters from the control reference number and uses them to determine sequence.
      • U - Use 14 digits, show lead 0s (EDIFACT)
      • X - Use 9 digits, show lead 0s (X12)
      • Z - Use 9 digits, suppress lead 0s
      Note: The numeric values (U, X, and Z) treat the reference as a number even when it can, in theory, contain non-numeric characters.
    7. The Interchange control method generation field determines the method used to generate interchange control reference elements for outgoing documents. The Interchange control method test field determines the method used to test the interchange control reference elements on incoming documents. Values are:
      • A - Application file field
      • I - Increment previous reference
      • J - Increment within the group
      • K - Increment within the interchange
      • R - Refer to another record
      Note: The most common method for generating the outgoing reference element is I (increment the previous reference).

      If I is used in the Interchange control method test field, EEI checks for duplicate interchange control numbers against the increment.

    8. The Call window code field is the key to the call window file, which contains a list of time slots in which a call to a network or a trading partner is to be made.
    9. If you are using a call window type a date and time in MMDDYYHHMM format in the Effective date/time field.
    10. The Network ID code identifies the public or private network to use with all message classes that send documents to this trading partner.
    11. The Network account code is the network account used with all message classes that send documents to this trading partner.
    12. In the Network port field, type the name of the port to use with all message classes that send documents to this trading partner.
    13. In the Default send control scripts field, type the name of the control script used to send documents to this trading partner.
    14. In the Default receive control scripts field, type the name of the control used to receive documents from this trading partner.
    15. In the Generator control code field, specify generator control limits for constraining the outgoing envelope generation process. Values are:
      • Maximums - Allows the maximum number (999,999) of messages per functional group, the maximum number of functional group per interchange, and the maximum number of total messages within the interchange.
      • Single - Allows only one message per functional group, one functional group per interchange, and one message total per interchange
      • If you want to set your own control limits, press F4 in the field to prompt the Select generator control panel. In the panel, press F6=Create or Change to reach the Work with generator control limits panel.
      Note: For more information on generator control, see Generator Control.
    Note: The Last change date/time field displays the last time changes were made to the Trading partner details panels.
  6. Press Enter and confirm. In the Work with trading partners panel, press F9=Change to return to change mode. The new trading partner will appear in the panel.
  • Creating Trading Partner Groups
    Documents belong to a functional group, and functional groups are based on the types of documents that will be exchanged with that trading partner. For example, the PO functional group houses an 850 purchase order. Trading partner groups are required when using X12 standards and (depending on your trading partner agreement) optional in EDIFACT.
  • Assigning a Trading Partner Message Class
    Your message class must be assigned to a trading partner functional group so EEI knows which message class to use when translating data for or from this partner.
Parent topic: Trading Partner


Creating Trading Partner Groups

Documents belong to a functional group, and functional groups are based on the types of documents that will be exchanged with that trading partner. For example, the PO functional group houses an 850 purchase order. Trading partner groups are required when using X12 standards and (depending on your trading partner agreement) optional in EDIFACT.

You need a trading partner to define functional groups.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel, type 5=Trading Partner Groups in your trading partner's Opt field. Press Enter.
  2. The Trading partner functional groups panel appears. If it is not already in create mode, press F9=Create.
  3. In the Group code field, type the functional group code for the documents you will be sending or receiving. Press Enter.
    Note: If you don't know the group code, press F4 on the field to prompt a Group code list selector panel.
  4. The Trading partner group details panel appears.
    1. The Direction code field specifies whether documents in the group are being received, sent, or both. Values are:
      • B - Both
      • R - Receive
      • S - Send
      Note: If you are receiving documents in this group with this trading partner, specify values for the Group control last received, Group control reference format test, and Group control reference method test fields.

      If you are sending documents in this group with this trading partner, specify values for the Group control last sent, Group control reference format generation, and Group control reference method generation fields.

    2. The Group control last received field specifies the group control number, which is an assigned number the sender of a document and maintains. Together with the sender ID, the group control number uniquely identifies the group data to the receiver.
      Note: Cleo recommends using the group control reference fields with sequential numbers to enable EEI to detect missing or duplicate envelopes.
    3. For inbound documents, the Group control reference format test field specifies the format to use when testing incoming control reference elements. Values are:
      • A - From application file
      • M - Mixed alpha-numeric; extracts the numeric characters from the control reference and uses them to determine sequence.
      • U - Numeric, use 14 digits; show leading 0s (zeros); used in EDIFACT
      • X - Numeric, use 9 digits; show leading 0s; used in X12
      • Z - Numeric, use 9 digits; suppress leading 0s; used in X12
      Note: The numeric methods treat the reference as a number even if it contains non-numeric characters.
    4. For inbound documents, the Group control reference method test field specifies the method used to test inbound control reference elements. Values are:
      • A - Application file field
      • I - Increment previous reference number
      • J - Increment within group
      • K - Increment within interchange
      • R - Refer to another record
      • (Blank) - Unspecified method
    5. The Group control last sent field specifies the group control number, which is an assigned number the sender of a document and maintains. Together with the sender ID, the group control number uniquely identifies the group data to the receiver.
      Note: Cleo recommends using the group control fields reference fields with sequential numbers to enable EEI to detect missing or duplicate envelopes.
    6. For outbound documents, the Group control reference format generation field specifies the format to use when generating outgoing control reference elements. Values are:
      • A - From application file
      • M - Mixed alpha-numeric; extracts the numeric characters from the control reference and uses them to determine sequence.
      • U - Numeric, use 14 digits; show leading 0s (zeroes); used in EDIFACT
      • X - Numeric, use 9 digits; show leading 0s; used in X12
      • Z - Numeric, use 9 digits; suppress leading 0s; used in X12
      Note: The numeric methods treat the reference as a number even if it contains non-numeric characters.
    7. For outbound documents, the Group control reference method generation field specifies the method used to generate outbound control reference elements. Values are:
      • A - Application file field
      • I - Increment previous reference number
      • J - Increment within group
      • K - Increment within interchange
      • R - Refer to another record
      • (Blank) - Unspecified method
  5. Press Enter and confirm. In the Trading partner functional groups panel, press F9=Change to return to change mode. The group appears in the panel.
Next: Assign trading partner message classes within the group to tell EEI which message classes to use when translating data with this partner.
  • Generator control limits
    Generator control limits cap the number of messages or groups that can be sent in a single interchange envelope. Generator control limits are associated with a single trading partner, and affect all outgoing interchanges for that trading partner.
Parent topic: Creating a Trading Partner


Generator control limits

Generator control limits cap the number of messages or groups that can be sent in a single interchange envelope. Generator control limits are associated with a single trading partner, and affect all outgoing interchanges for that trading partner.

Your trading partner's data transformation software, application software, or internal policies may impose limits on:
  • The number of functional groups allowed per interchange.
  • The number of messages allowed per functional group
  • The total number of messages allowed per interchange.
Note: Always consider all levels (interchange, functional group, and message) when setting generator limits to avoid errors.

For example, suppose the maximum messages per functional group was set to 50 and the maximum number of messages per interchange was set to 99. If you had two functional groups with 50 messages a piece, it would be allowed by the limit on messages per group but wrapping would fail because the total number of messages in the interchange would exceed the 99 message limit per interchange.

Editing and creating limits

Generator control limits are set in the Trading partner details 2 panel. There are only two default limits, Maximums and Single, but you can create codes for your specific trading partner needs. Limits can be created and edited in their own panel, prompted by pressing F4 on the appropriate field in the Trading partner details 2 panel.

Note: Generator control limits only affect the outgoing wrapping process; there is no limit for incoming data to the number of messages per group or interchange, or to the number of groups per interchange.
Parent topic: Creating Trading Partner Groups


Assigning a Trading Partner Message Class

Your message class must be assigned to a trading partner functional group so EEI knows which message class to use when translating data for or from this partner.

You must have a message class created before you can assign it to a group.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners | 5. Trading partner functional groups panel, type 5=Message classes in the Opt field of the group to which you want to assign a message class. Press Enter.
  2. The Work with message classes for one trading partner group panel appears. If not already in create mode, press F9=Create.
  3. In the Message ID field, type the message type ID. In the Message class field, type the name of your message class. Press Enter.
    Note: Additional groups and message classes to attach to your trading partner include:
    • IN group with outbound 810 message class
    • FA group with inbound 997 (message ID) and FAGRPRCV message class and outbound *ACK (message ID) and *ACK message class.

    Cleo highly recommends using the FAGRPRCV and *ACK message classes provided with the software.

    Note: If you do not know the message type ID or message class name, press F4 in either field to prompt a single Select message class selector panel for both fields.
  4. The Trading partner message class details 1 panel appears.
    • If you need to change any of the default information from the trading-partner level, you can change it here. Fill in only the fields that would apply that change.
    • If changing the delimiters, in the Delimiter source field, type M before specifying the message class-level delimiters.
    • If nothing needs to change, leave the delimiters fields at the defaults and leave all other fields blank.
    Note: For example, if this message class needs to use a different standard class than the other documents you exchange with this trading partner, change only the Standard class field. Any fields you fill in unnecessarily have the potential to add more work if you change trading partner details, copy this trading partner, or need to troubleshoot errors.
    Every field on this panel has a corresponding field on the Trading partner details 1 panel. If you need more information about the fields, see Creating a Trading Partner.
    For inbound, if your trading partner often sends messages with varying GS segments, consider putting *ALL in the Application sender ID field. This tells EEI to accept a transmission from this trading partner regardless of what appears in the GS02 segment.
  5. Press Enter.
  6. The Trading partner message class details 2 panel appears.
    • If the fields for this message class needs to differ from the information in the Trading partner details 2 panel, fill in only the fields that would apply that change..
    • If nothing needs to change, leave the delimiters fields at the defaults and leave all other fields blank.
    Every field on this panel has a corresponding field on the Trading partner details 2 panel. If you need more information about the fields, see Creating a Trading Partner.
  7. Press Enter and confirm. In the Work with message classes for one trading partner group panel, press F9=Change to enter change mode. The message class appears in the panel.
Parent topic: Creating a Trading Partner


Trading Partner Message Class Overrides

Trading partner message class overrides can be used to override the translation to a different library. This function is especially useful when testing with a new trading partner. It is an inbound-only function.

File Overrides

Trading partner message class overrides are primarily used to specify overrides to application files. For example, a message class mapped to a file set in production status can be used to test with a new trading partner. Overrides can tell EEI to use that existing message class, but to use data from a file set in a test library when translating for the new trading partner. Then when testing is complete, you can remove the overrides and use the production file set.

Command- or Program-execution Overrides

You can also use overrides to execute a command or program before or after opening the application file set for the specified trading partner message class.

The records used to do this are divided into two groups:

  • Override records have a command type of O, P, or E, and refer to a specific application file in a message class' file set.

    Override records process immediately before the corresponding application file opens.

  • Non-override records have a command type of F, M, N, or C, and to not refer to an application file. (The Mapped file name field is blank.)

    Non-override records process in two groups determined by sequence number. Numbers 0 through 499 process before files for the trading partner message class open. Numbers 500 to 999 process after the files close.

If multiple overrides have the same sequence number, they are processed in the order they appear in the Work with trading partner message class overrides panel.

Records with a blank command type have no operation, and are treated as comments.

Defaults

When filling in fields in the Work with trading partner message class overrides panel...
  • If the Override to library field is left blank, the default is *LIBL (the translation job's library list).
  • If the Override to file field is left blank, the default is the file name as specified in the message class.
  • If the Override to member field is left blank, the default is *FIRST (the first member).
An interpretation of defaulting for an E-type override (external call OVRDBF (Override database file)) where:
  • xxxxxxxxxx are any characters and
  • VALIDNAME is any character string which represents a valid system name
Contents of Override to... field | Value returned by E-type program | Parameter used on OVRDBF command
?xxxxxxxxxx | VALIDNAME | VALIDNAME
?xxxxxxxxxx | (blanks) | (default)
(blanks) | (ignored) | (default)
VALIDNAME | (ignored) | VALIDNAME

An example of this usage would be:

An E-type override where the Override command string field contains MYLIB/MYPROGRAM and the Override to member field contains ?, the generated override command uses the value returned by MYPROGRAM in the Override to member field as the member being overridden to. If the Override to library and Override to file fields are blank, the EEI use the normal defaults (*LIBL and mapped file name). If they have explicit values (non-blank, not starting with ?), the explicit values are used without regard to what value MYPROGRAM might return.

  • Trading Partner Message Class Override - Command Types
  • Override Command Type Parameters for Types C, E, and M
  • Creating Trading Partner Message Class Overrides
    Use trading partner message class overrides to execute commands during inbound translation based on a specific trading partner-message class relationship. You can create unique file overrides, program calls, and/or special operations. This function is especially useful when testing.
  • Trading Partner Message Class Override Detail Panel
    Some overrides require you to add additional information in the Trading partner message class override detail panel.
  • Trading Partner Authorization
Parent topic: Trading Partner


Trading Partner Message Class Override - Command Types

C-type; Call External API Program

A non-override command.

Causes a call to the program specified in the Override command string field using the same parameter list that E-types and M-types use.

C-types are not associated with any OVRDBF command. They perform the same functions as M-type, but are a program call rather than a command execution.

Example source codes are provided for C-type overrides in library EXTSYS, files QRPGLESRC and QCLLESRC.*

(*EEI's source code can change with new releases. If you want to modify it, copy it into a user library and modify the copy. This way, your modifications will not be overwritten during an upgrade.)

E-type; Call External API Program then Override Database File

Calls the program specified in the command string before executing OVRDBF. The program should be designed to return values used for the override to library, file, and/or member names. The return values are used wherever the ? (question mark) appears in the first position of the Override to fields.

When using E-type, you may specify additional parameters as the Override command string or Override message ID. If using the Override message ID, EEI retrieves the message definition from the message file specified in the system parameter EXUSRMSG.

Each record type must refer to a particular application file in the message class' application file set. There can only be one override for each application file within a trading partner message class (a one-to-one ratio).

If there is no record referring to a particular application file, then a default override command is generated for that file. The defaults are the translation job's library list and member *FIRST. These defaults are also applied to any fields not specified in an override record.

Example source codes are provided for E-type overrides in library EXTSYS, files QRPGSRC and QCLSRC.*

F-type; Command in free-form string

A non-override command.

Specifies any free-form command to execute during translation. System or user-written commands can be called using the CALL command, limited by batch execution and QCMDEXC constraints. For example, no display files or return parameters.

Specify the command on the Override command string field, which supports command prompting.

M-type; Command in message ID with parameters

A non-override command.

Specifies any free-form command to execute during translation. System or user-written can be called using the CALL command, limited by batch execution and QCMDEXC constraints. For example, no display files or return parameters.

Define the command as the second-level message text to be retrieved from the Override message ID field.

The message definition must include message data parameter definitions in the same formate as the external call API parameter list. The parameters can also be used in the second-level message definition as substitution values. EEI retrieves the message definition at run time from the message file specified in the EEI system parameter EXUSRMSG.

EEI provides example message definitions for M-type overrides in message file EXUSRMSG.

N-type; Command in message ID, no parameters

A non-override command.

Define the command as the second-level message text to be retrieved from the Override message ID field.

The message definition does not include any message data parameters.

O-type; Override Database File command (basic)

Forms and executes an OVRDBR command to specify a different library, file, and/or member name for a trading partner message class. These can be specified using any legal system names.

Each record type must refer to a particular application file in the message class' application file set. There can only be one override for each application file within a trading partner message class (a one-to-one ratio).

If there is no record referring to a particular application file, then a default override command is generated for that file. The default overrides to the file name as mapped, the library list of the translation job, and member *FIRST. These defaults are also applied to any fields not specified in an override record.

P-type; Override Database File command, plus parameters

Forms and executes an OVRDBR command to specify a different library, file, and/or member name for a trading partner message class. These can be specified using any legal system names.

When using P-type, you may specify additional parameters as the Override command string or Override message ID. If using the Override message ID, EEI retrieves the message definition from the message file specified in the system parameter EXUSRMSG.

Each record type must refer to a particular application file in the message class' application file set. There can only be one override for each application file within a trading partner message class (a one-to-one ratio).

If there is no record referring to a particular application file, then a default override command is generated for that file. The default overrides to the file name as mapped, the library list of the translation job, and member *FIRST. These defaults are also applied to any fields not specified in an override record.

(Blank); No operation

Overrides with the command type left blank can be used as notes.

Parent topic: Trading Partner Message Class Overrides


Override Command Type Parameters for Types C, E, and M

Parameter | Use | Type | Length | Start | End | Description | Field
1 | I | A | 6 | 1 | 6 | Trading partner code | TPCD
2 | I | A | 6 | 7 | 12 | Group code | GPCD
3 | I | A | 6 | 13 | 18 | Message ID (EDI) | MSID
4 | I | A | 10 | 19 | 28 | Message class | MSCL
5 | I | A | 1 | 29 | 29 | Direction code-override | DRTO
6 | I | P | 3.0 | 30 | 31 | Override sequence number - internal | OVSI
7 | I | P | 3.0 | 32 | 33 | Override sequence number - actual | OVSQ
8 | I | A | 10 | 34 | 43 | Application file name (as mapped) | GFIL
9 | I | A | 1 | 44 | 44 | Override command type | OVCM
10 | B | A | 10 | 45 | 54 | Override to library | OVLB
11 | B | A | 10 | 55 | 64 | Override to file | OVFL
12 | B | A | 10 | 65 | 74 | Override to member | OVMB
13 | I | P | 7.0 | 75 | 78 | Connection log number | CMLN
14 | I | P | 9.0 | 79 | 83 | Interchange log number | INLN
15 | I | P | 9.0 | 84 | 88 | Group log number | GPLN
16 | I | P | 11.0 | 89 | 94 | Message log number | MSLN
17 | I | A | 1 | 95 | 95 | Translation job status | TJST
18 | I | A | 10 | 96 | 105 | Translation job name | TRJB
19 | I | A | 10 | 106 | 115 | Translation job user name | TRJU
20 | I | A | 6 | 116 | 121 | Translation job number | TRJN
21 | I | A | 10 | 122 | 131 | Message queue - translation | MSQT

The Use column refers to parameter usage in an external program and is for E-type overrides only.

For C-type and M-type, the external program must use the parameters as input only.

C-, E-, an M-types may all send a message to the message queue named in the last parameter. Those messages can be viewed with the M=Messages option in the Work with translation jobs and Work with application data panels.

Parent topic: Trading Partner Message Class Overrides


Creating Trading Partner Message Class Overrides

Use trading partner message class overrides to execute commands during inbound translation based on a specific trading partner-message class relationship. You can create unique file overrides, program calls, and/or special operations. This function is especially useful when testing.

Trading partner message class overrides can only be used for inbound.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 3. Work with trading partner message classes panel, type 8=Overrides in the trading partner/message class' Opt field. Press Enter.
  2. The Work with trading partner message class overrides panel appears. If it is not already in create mode, press F9=Create.
  3. The Send/Receive field specifies when the override executes. Values are:
    • B (Both) - Execute for both inbound and outbound
    • R (Receive) - Execute for inbound
    • S (Send) - Execute for outbound
    Note: If overriding to a file, you must use R.

    Choose R to execute for inbound.

  4. The Override sequence field specifies the order in which non-override commands execute. Values are:
    • 0 through 499 - Execute before files for the trading partner message class open
    • 500 through 999 - Execute after files for the trading partner message class close
    Note: Sequence numbers have no effect on actual override commands (type O, P, or E). They are for display sequence purposes only.

    Use sequence number 001.

  5. Determine if you need to use the Mapped file name field.
    • If you are using a (file) override record, type the name of the file you are overriding.
    • If you are using a non-override record, leave this field blank.

    Override the file ORDADR.

  6. The Command type field specifies what type of override you are creating. Values are:
    • (Blank) - No operation
    • C - Call external API program
    • E - Override Database File and call external API program
    • F - Command in free-form string
    • M - Command in message ID with parameters
    • N - Command in message ID, no parameters
    • O - Override Database File command (basic)
    • P - Override Database File command, plus parameters

    Choose O.

    Note: For more information on each command type, see Trading Partner Message Class Override Command Types.
  7. The Override to library field specifies the library where the application file is found. Values are:
    • (Library name) - Use this specific library
    • (Blank) - Use the library specified in EXTRNJOBD's job description

    Override to the library TRAINnn.

  8. Repeat these steps for the ORDHDR, ORDMSG, and ORDDTL files.
  9. The Override to file field specifies the file to open in place of the file specified in the message class. Values are:
    • (File name) - Open this file
    • (Blank) - Open the file specified in the message class
    • ?(file name) - For E-type overrides only. If the API program returns a non-blank value for this field, the returned value is used. Otherwise, the default is used.
    Note: If the mapped file was externally defined and automatically retrieved, the format identifiers must agree with those in the file opened for each format used in the mapping. This format check can be disabled by changing the EEI system parameters EXLVLCKAS.
  10. The Override to member field specifies the member to open. Values are:
    • (Member name) - Open this file
    • (Blank) - *FIRST (Open the first member)
    • ?(MEMBER NAME) - For E-type overrides only. If the API program returns a non-blank value for this field, the returned value is used. Otherwise, the default is used.
    Note: If the mapped file was externally defined and automatically retrieved, the format identifiers must agree with those in the file opened for each format used in the mapping. This format check can be disabled by changing the EEI system parameters EXLVLCKAS.
  11. The Override message ID field has different uses for different command types.
    • If using a P-type or E-type command and want to use a message ID as an additional parameter, type a message ID in the Override message ID field.
    • If using an M-type or N-type command, you must specify a message ID to use as a free-form command. The message definition will be retrieve from the message file specified in EEI system parameter EXUSRMSG = "User-defined message file."
    • The field can be left blank, however, if using an M-type command, the parameter must be defined in the message definition.
    Note: The actual message string or parameter string is formed from the second-level text of the message definition. The maximum characters used are 256. Any additional characters after position 256 can be used as comments. The first-level message text can also be used as comments.
    Note: For M-type commands, the message definition should have parameters defined as noted in the Trading Partner Message Class Command Type Parameters for C-, E-, and M-type commands.
  12. Press Enter and confirm. Press F9=Change to return the Work with trading partner message class overrides panel to change mode. The overrides appear in the panel.
If using a P-type or F-type override, you must type 2=Change on the override to reach the Trading partner message class override detail panel to add parameters. For more information, see Trading Partner Message Class Override Detail Panel.
Parent topic: Trading Partner Message Class Overrides


Trading Partner Message Class Override Detail Panel

Some overrides require you to add additional information in the Trading partner message class override detail panel.

P-type Overrides

For P-type (OVRDBF with parameters), the Override command string field contains additional parameters be appended to the OVRDBF command.

You must supply a keyword for each parameter in the Override command string field. For example, positional notation is not supported.

This override is useful when calling your own program.

F-type Overrides

For F-type (Free-form command), the Override command string field contains the command string with all parameters specified as literal constants.

Positional and/or keyword notation can be used within the limits specified by the actual command. Press F4 to build or edit the command string.

Example commands

To illustrate different override command types, source, and object code for an example command, CL program and RPG programs are shipped with the system. The source code is in files QCMDSRC, QCLLESRC, QRPGLESRC in library EXTSYS. The example messages are in message file EXUSRMSG.

The example creates members for each specified mapped application file with a member name consisting of a constant prefix plus the connection log number. The Add member based on log of connection command (ADDCNNMBRS) is specified as an M-type override for each trading partner message class to be translated with application files with this member name. Before the application file set opens, this command is executed.

If the member name does not exist, EEI creates a member in each specified application file using the specified prefix and the Log of Connection number. If this member name exists, no action is performed.

An E-type override record is also required for each application file that uses this member name. This record has a ? in the first position of the Override to member field, and the library/program name (EXTSYS/EXTTOEC) in the Command/msg string field. This program uses the member names created by the ADDCNNMBRS command to override the files used in the mapping of this message class. These overrides result in a set of application files, each of which has a member for each network connection.

Parent topic: Trading Partner Message Class Overrides


Trading Partner Authorization

Use an Authorization List to manage the access users have to trading partners.

Creating an Authorization List

An Authorization List can allow or deny user access to options in a trading partner. Without this list, full access is granted to all users. By applying the Authorization List, all users are restricted except for those included in the list. Configuring an Authorization List can be performed by following these steps.

  1. From the Cleo EEI Main Menu | 8. System Configuration | 60. User View Authorization Menu | 2. Work with authorization lists panel, press F9 to enter create mode.
  2. Type a List in the List field and type a Description in the Description field.
  3. Press Enter and confirm.
  4. Press F9 to enter change mode.
  5. Type 5=Members in the Opt field of the List.
  6. Press F9 to enter create mode.
  7. Type specific User Profiles in the Profile field.
  8. Press Enter and confirm.

Setting Program Controls for Trading Partner Authorization

  1. In the Cleo EEI Main Menu | 8. System Configuration Menu | 5. Work with program control information press F9 to enter create mode.
  2. To restrict change options on the Work with trading partners panel, type TTPEF1R in the Program identifier field.
    Note: The change options include: 2=Change, 3=Copy, 4=Delete, R=Restore, and F9=Create.
    1. Press Enter.
    2. In the Program control details panel, type 10000 in the Scan limit for program field.
    3. In the Program control details panel, type the List name in the Program control structure field.
    4. Press Enter and confirm.
Parent topic: Trading Partner Message Class Overrides


Carbon Copy

Carbon Copy allows you to automatically send a copy of an inbound interchange to another trading partner for inbound X12 and EDIFACT documents.

This feature can be used to send documents to any third party. For example, it can be used to send a copy of business documents, such as purchase orders, to a broker, distribution center, etc. You must create a Trading Partner with the third party's information in order to use Carbon Copy.

Carbon Copy is configured in the Trading partner group details panel using the Carbon copy field. Typing Y in the field prompts the Carbon copy exit point details wizard, which allows you to specify a Trading Partner, Network, Port, and Script to use to send a copy of the interchange to another trading partner.

Behind the scenes, the Carbon copy exit point details wizard creates a new Exit Point with the CC (Carbon Copy) message event. The Exit Point is kicked off after the original data is successfully translated.

Note: Because Carbon Copy Exit Points are created using the wizard, you cannot maintain (change, delete, copy, etc.) them in the Work with TPMC (Trading Partner Message Class) Exit Point panel. All changes must be made in the wizard.
The Exit Point is triggered by an event notification of a group log number change. The event notification submits a job to perform the CARBONCOPY command to the translation job description (EXTRNJOBD). CARBONCOPY performs three functions:
  • Exports non-wrapped data for the specified interchange.
  • Changes the sender and receiver IDs in the interchange header to match those of the third party's trading partner.
  • Uses CRTCNNIMP (Create Connection Import) with a direction code of *SEND to send the updated, copied file.

Once the interchange IDs are updated, EEI checks the file format type on the port. If it's wrapped, EEI will send the wrapped data. If the file format type is non-wrapped, the data will be sent as non-wrapped data.

Groups per Interchange

Carbon Copy is configured at the Trading Partner group level, however, the Carbon Copy feature forwards the entire interchange. This means that all groups within the interchange will be sent to the carbon copy recipient.

Sending one group per interchange is an increasingly common practice, and your trading partners may already be doing this. However, if they are not, Cleo recommends that you instruct the original sender to send only one group per interchange. Most often, the second group will be functional acknowledgements, which will not resemble the documents the broker is looking for anyway. If your origin trading partner continues to send multiple groups per interchange, let the third party know they may receive additional groups.

If you do receive multiple group types per interchange and you have Carbon Copy configured for each group type, EEI will send the interchange multiple times, once for each group code. If the setup will send each group to the same trading partner, the third party may receive duplicates.

For example, suppose you need to send a carbon copy of one trading partner's 850s (purchase orders) and 860s (purchase order change request) to Broker A. You configure Carbon Copy for 850s and 860s. Your trading partner sends an interchange with a purchase order group and a change request group. Broker A will receive two copies of the interchange, for a total of 2 groups of 850s and 2 groups of 860s.

Likewise, suppose you need to send a carbon copy of one trading partner's 850s to Broker A and that same trading partner's 860s to Broker B. You configure Carbon Copy for 850s for Broker A, and you also configure Carbon Copy for 860s for Broker B. Your trading partner sends an interchange with a purchase order group and a change request group. Broker A and Broker B will receive both groups within the interchange.

Retranslation and Duplicate Value Checking

You can re-translate your data without having to worry about sending the carbon copy multiple times due to the creation of a duplicate value record at the group level. Therefore, if you translate an interchange and then need to re-translate it, EEI will not automatically re-send a carbon copy of the interchange unless the duplicate value is inactivated first.

You can inactivate the duplicate value for the message log number corresponding to the first message contained in the group in the Cleo EEI Main Menu | 5. Mapping Menu | 11. Work with duplicate values panel, then re-translate the interchange. You could also use F17=Alpha Search to find the duplicate value record that needs to be inactivated using the Send to TP, Interchange log number, Group code, or Connection log number. The value is Send To TP + Interchange log number + Group code + Connection log number.

Note: The duplicate value is automatically reinstated during the Carbon Copy process.

Resending a Connection

To resend a Carbon Copy connection, please see Resending a Connection.

Further Customization

If you need to further customize the Carbon Copy process, you can use the included API, which can be copied then modified. The called program EPCRBNCPYR is included in the shipped source.

By default, this program is called multiple times -- up to three times when successful. There are four values for the mode parameter that identify when it is being called. The mode parameter is three characters long.

The mode parameter values are:
  • 000 - Initial processing (pre-extract)
  • 100 - Post-extracting/pre-sending
  • 999 - End of processing (post-sending)
  • ERR - When any errors occur during processing.

If you want to make changes to the program, copy it to a custom library for customization and add the library to your library list above the EEI program library.

Process Summary

To successfully use the Carbon Copy feature, you must:
  • Create a Trading Partner with the copy recipient's information (receiver and sender ID, etc.).
  • In the Trading partner group details panel for the original sender Trading Partner, use the Carbon copy exit point details wizard to select the copy recipient's Trading Partner, Network, Port, and Script.
  • Configuring Carbon Copy
    Configure Carbon Copy to automatically send a copy of an inbound interchange to another trading partner.


Configuring Carbon Copy

Configure Carbon Copy to automatically send a copy of an inbound interchange to another trading partner.

You must have a Trading Partner configured for the third party who will be receiving the carbon copy. You must also have a Network, Port, and Script to use to send the data to the copy recipient.
All groups within the interchange, and therefore other existing document types, will be sent to the carbon copy recipient. Therefore, Cleo recommends that you instruct the original sender to send only one group type per interchange.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks Menu | 1. Work with trading partners panel, type 5=Trading Partner Groups in the Opt field of the trading partner that is sending the data you want to forward. Press Enter.
  2. In the Trading partner functional groups panel, type 2=Change in the Opt field of the group that contains the document type you want to forward. Press Enter.
  3. In the Trading partner group details panel, in the Carbon copy field, type Y=Yes and press Enter.
  4. The Carbon copy exit point details panel appears. This is where you specify the information for the trading partner that you are sending the copies. Specify the names of the Trading partner to send to, and the Network, Port, and Script.
  5. Press Enter twice and confirm. In the Trading partner group details panel, notice that the Carbon copy field displays a Y and Enabled.
    Note: After you configure Carbon Copy, additional values become available for the Carbon copy field. Use the following values if you need to edit the wizard values or disable Carbon Copy:
    • D - Disable
    • E - Enable
    • M - Modify
    • N - No
    • Y - Yes
Parent topic: Carbon Copy


Exit Points

Trading Partner Message Class Exit Points call a program or execute a command string once per message. They are triggered by an event, for example, when an acknowledgment is late or when translation has ended.

Exit Points are applied through a combination of Trading partner, Group code, Message ID, and Message class criteria. This allows you to affect messages for a single trading partner, or all trading partners, a single message class, or all message classes, etc.

For example, if you specify *ALL for Trading Partner and 850INBOUND for Message Class, messages for all trading partners using the 850INBOUND message class will be affected.

However, if you specify COMP_A for Trading Partner and 850INBOUND for Message Class, only the messages for COMP_A using the 850INBOUND message class will be affected.

Note: You can only have one message event per TPMC. If you need to use multiple event codes, create an Exit Point for each one.
Note: If you need to create a Carbon Copy Exit Point, use the Carbon copy exit point details wizard. For more information, see Configuring Carbon Copy.

Message Level Event Codes

There are multiple events that can trigger an Exit Point, and there is a corresponding code for each event.
  • AL - An acknowledgement is marked L (late)
  • AR - An acknowledgement is received
  • AS - An acknowledgement is sent
  • CA - A message log is created as part of the CRTAPPDTA (Create Application Data) command
  • CC - An interchange has successfully translated, and is ready to be carbon copied to another trading partner
  • CU - A message log is created during unwrapping
  • EL - Envelope logs are assigned
  • ER- Error notification (checked at every event)
  • RD - Data is ready to be deleted
  • ST - The message is scheduled for translation
  • SN - A message is sent or a send is attempted
  • TE - Translation has ended
  • WR - The message is wrapped and ready to send

If all entries have a value of 99999, entries are sorted alphabetically with *ALL cases placed at the end of search keys.

The first one that meets the criteria is executed.

Note: Exit Points are not saved or restored as part of the save (SAVTTP) or restore (RSTTTP) trading partner process.
  • Creating Exit Points to Call a Program
    Use Exit Points to call a program once per message.
  • Creating Exit Points to Call a Command
    Use Exit Points to execute a command string once per message.
  • Exit Point Return Values
    This topic details values returned when using Exit Points and how to properly read them.
  • Exit Point Function Status Values
    This topic details function status values for Exit Points.
  • Exit Point In-Process Statuses
    These are the values that can appear in the log record after the exit point completes with a Pass return value or Fail return value, respectively.
  • Troubleshooting Exit Point Errors
    If the Error - Action field is set to E - Signal Exit Error, EEI will alert you when an Exit Point fails unexpectedly. There are many issues that can cause these errors.


Creating Exit Points to Call a Program

Use Exit Points to call a program once per message.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks Menu | 5. Work with Trading Partner Message Class Exits panel, press F9=Create to prompt create mode. Populate the following fields with the appropriate values to apply them to the Exit Point.
    1. In the Search sequence field, type a number to indicate the search order.
      Note: It is common to use *ALL for trading partner, group, message ID, or message class in their Exit Points. Use a sequence number lower than the default 99999 sequence number when you want to ensure a specific Exit Point is kicked off before the generic ones.
    2. In the Trading partner field, specify whether you want the Exit Point to apply to one specific trading partner or all trading partners. Values are:
      • (Specific trading partner name) - The Exit Point will apply only to this trading partner.
      • *ALL - The Exit Point will apply to all trading partners.
    3. In the Group code field, specify the desired group codes. Values are:
      • (Specific group code) - The Exit Point will apply only to this group code.
      • *ALL - The Exit Point will apply to all group codes.
    4. In the Message ID field, specify the desired message ID. Values are:
      • (Specific message ID) - The Exit Point will apply only to this message ID.
      • *ALL - The Exit Point will apply to all message ID's.
    5. In the Message class field, specify the desired message class. Values are:
      • (Specific Message class) - The Exit Point will apply only to this Message Class.
      • *ALL - The Exit Point will apply to all Message Classes.
      Note: The Trading partner, Group code, Message ID, and Message class fields all work together. For example, if you specify *ALL for Trading Partner and 850INBOUND for Message Class, messages for all trading partners using the 850INBOUND message class will be affected.

      However, if you specify COMP_A for Trading Partner and 850INBOUND for Message Class, only the messages for COMP_A using the 850INBOUND message class will be affected.

    6. In the Message event field, specify the code for the event that should trigger the Exit Point. Values are:
      • AL - An acknowledgement is marked L (late)
      • AR - An acknowledgement is received
      • AS - An acknowledgement is sent
      • CA - A message log is created as part of the CRTAPPDTA (Create Application Data) command
      • CC - An interchange has successfully translated, and is ready to be carbon copied to another trading partner
      • CU - A message log is created during unwrapping
      • EL - Envelope logs are assigned
      • ER- Error notification (checked at every event)
      • RD - Data is ready to be deleted
      • ST - The message is scheduled for translation
      • SN - A message is sent or a send is attempted
      • TE - Translation has ended
      • WR - The message is wrapped and ready to send
    7. Press Enter.
  2. The Change TPMC exit point panel appears.
    1. Type a value in the Status field. Values are:
      • D - Disabled
      • E - Enabled
    2. The Operation field specifies what the Exit Point is doing. Values are:
      • C - Execute a command
      • P - Call a program
      • N - No operation; use this when you want to use an event notification.
      Note: Use an event notification when you want the Exit Point to be triggered based on an event instead of a message.

      To select an event notification for an Exit Point, in the Work with TPMC exit point panel, type 9=Event notification in the Opt field of the Exit Point you want to trigger with an event.

    3. The On return field specifies whether log records should be updated with a status change. Values are:
      • B - Force status change for pass and fail
      • F - Force status change for fail only
      • P - Force status change for pass only
      • *BLANK - No status change

      For example, if you are using the RD (Ready to delete) message event, and a P in the On return field, if the program returns a Fail value of YES when the invoice is paid, EEI will delete the data when the Exit Point is executed during DLTDTA.

    4. The Return value defines how EEI can tell whether the program or command passed or failed, and react appropriately. You must specify values for Pass and Fail.

      If the Exit Point operation is a program, the return code is the value passed back in the first parameter.

      If the Exit Point operation is a command, the return code is the message ID of any escape, notify, or status message received from the command.

      The return code is usually a message ID, and generic matching can be used on ranges of message IDs (using the same scheme as the MONMSG (Monitor Message) command). For more on accepted values, see Exit Point Return Values.

    5. The Function status field specifies the value that will appear in the log record after the Exit Point completes with a Pass or Fail return value. This is only active when the On return field contains a B, P, or F.

      For a complete list of values, see Exit Point Function Status Values.

      Note: Each value describes a specific status. Use a value that actually describes the status to avoid undesired results.
    6. The In process status field specifies the value that will appear in the log record after the Exit Point completes with a Pass or Fail return value. This is only active when the On return field contains a B, P, or F.
      For example, Delete data would be in the In process status field for the RD (Remove Data) message event.
    7. The Error - Action field specifies the action EEI takes if the Exit Point ends in an unexpected error. For example, if the program or command is not found or the return code does not match the pass or fail values. Error - Action values are:
      • E - Signal exit error. The functional and in-process status values of the current EEI log record will be forced to the corresponding exit error values (in addition to error messages being sent).
      • I - Ignore Exit Point. The process continues as if there were no corresponding Exit Point record (other than for sending error messages).
      Note: One or both of the Signal exit error values may use the *SAME value, which effectively leaves the corresponding Function status and In process status value as-is.
    8. The Error - Action Function status and In process status specifies the value that will appear in the log record if the Exit Point errors.
    9. The Parm type field specifies the parameter list type for a called program. Values are:
      • *BLANK - No parameters used
      • 1 - Use parameter list 1
      • 2 - Use parameter list 2
      Note: The program found at runtime must have a parameter list that matches the Parm type field, or the Error - Action Function will occur.
    10. In the Program field, type the name of the program you want to call.
    11. In the Library field, type the name of the library that holds the program being called.
  3. Press Enter and confirm.
Parent topic: Exit Points


Creating Exit Points to Call a Command

Use Exit Points to execute a command string once per message.

Note: If you need to create a Carbon Copy Exit Point, use the Carbon copy exit point details wizard. For more information, see Configuring Carbon Copy.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks Menu | 5. Work with Trading Partner Message Class Exits panel, press F9=Create to prompt create mode. Populate the following fields with the appropriate values to apply them to the Exit Point.
    1. In the Search sequence field, type a number to indicate the search order.
      Note: It is common to use *ALL for trading partner, group, message ID, or message class in their Exit Points. Use a sequence number lower than the default 99999 sequence number when you want to ensure a specific Exit Point is kicked off before the generic ones.
    2. In the Trading partner field, specify whether you want the Exit Point to apply to one specific trading partner or all trading partners. Values are:
      • (Specific trading partner name) - The Exit Point will apply only to this trading partner.
      • *ALL - The Exit Point will apply to all trading partners.
    3. In the Group code field, specify the desired group codes. Values are:
      • (Specific group code) - The Exit Point will apply only to this group code.
      • *ALL - The Exit Point will apply to all group codes.
    4. In the Message ID field, specify the desired message ID. Values are:
      • (Specific message ID) - The Exit Point will apply only to this message ID.
      • *ALL - The Exit Point will apply to all message ID's.
    5. In the Message class field, specify the desired message class. Values are:
      • (Specific Message class) - The Exit Point will apply only to this Message Class.
      • *ALL - The Exit Point will apply to all Message Classes.
      Note: The Trading partner, Group code, Message ID, and Message class fields all work together. For example, if you specify *ALL for Trading Partner and 850INBOUND for Message Class, messages for all trading partners using the 850INBOUND message class will be affected.

      However, if you specify COMP_A for Trading Partner and 850INBOUND for Message Class, only the messages for COMP_A using the 850INBOUND message class will be affected.

    6. In the Message event field, specify the code for the event that should trigger the Exit Point. Values are:
      • AL - An acknowledgement is marked L (late)
      • AR - An acknowledgement is received
      • AS - An acknowledgement is sent
      • CA - A message log is created as part of the CRTAPPDTA (Create Application Data) command
      • CC - An interchange has successfully translated, and is ready to be carbon copied to another trading partner
      • CU - A message log is created during unwrapping
      • EL - Envelope logs are assigned
      • ER- Error notification (checked at every event)
      • RD - Data is ready to be deleted
      • ST - The message is scheduled for translation
      • SN - A message is sent or a send is attempted
      • TE - Translation has ended
      • WR - The message is wrapped and ready to send
    7. Press Enter.
  2. The Change TPMC exit point panel appears.
    1. Type a value in the Status field. Values are:
      • D - Disabled
      • E - Enabled
    2. The Operation field specifies what the Exit Point is doing. Values are:
      • C - Execute a command
      • P - Call a program
      • N - No operation; use this when you want to use an event notification.
      Note: Use an event notification when you want the Exit Point to be triggered based on an event instead of a message.

      To select an event notification for an Exit Point, in the Work with TPMC exit point panel, type 9=Event notification in the Opt field of the Exit Point you want to trigger with an event.

    3. The On return field specifies whether log records should be updated with a status change. Values are:
      • B - Force status change for pass and fail
      • F - Force status change for fail only
      • P - Force status change for pass only
      • *BLANK - No status change

      For example, if you are using the RD (Ready to delete) message event, and a P in the On return field, if the program returns a Fail value of YES when the invoice is paid, EEI will delete the data when the Exit Point is executed during DLTDTA.

    4. The Return value defines how EEI can tell whether the program or command passed or failed, and react appropriately. You must specify values for Pass and Fail.

      If the Exit Point operation is a program, the return code is the value passed back in the first parameter.

      If the Exit Point operation is a command, the return code is the message ID of any escape, notify, or status message received from the command.

      The return code is usually a message ID, and generic matching can be used on ranges of message IDs (using the same scheme as the MONMSG (Monitor Message) command). For more on accepted values, see Exit Point Return Values.

    5. The Function status field specifies the value that will appear in the log record after the Exit Point completes with a Pass or Fail return value. This is only active when the On return field contains a B, P, or F.

      For a complete list of values, see Exit Point Function Status Values.

      Note: Each value describes a specific status. Use a value that actually describes the status to avoid undesired results.
    6. The In process status field specifies the value that will appear in the log record after the Exit Point completes with a Pass or Fail return value. This is only active when the On return field contains a B, P, or F.
      For example, Delete data would be in the In process status field for the RD (Remove Data) message event.
    7. The Error - Action field specifies the action EEI takes if the Exit Point ends in an unexpected error. For example, if the program or command is not found or the return code does not match the pass or fail values. Error - Action values are:
      • E - Signal exit error. The functional and in-process status values of the current EEI log record will be forced to the corresponding exit error values (in addition to error messages being sent).
      • I - Ignore Exit Point. The process continues as if there were no corresponding Exit Point record (other than for sending error messages).
      Note: One or both of the Signal exit error values may use the *SAME value, which effectively leaves the corresponding Function status and In process status value as-is.
    8. The Error - Action Function status and In process status specifies the value that will appear in the log record if the Exit Point errors.
    9. Type the command string that the Exit Point will execute in the Command line.
      Command parameters must be supplied as constants. If you need data-dependent processing, call a program instead. The program provides the entire log record in its parameter list.
  3. Press Enter and confirm.
Parent topic: Exit Points


Exit Point Return Values

This topic details values returned when using Exit Points and how to properly read them.

If the last two characters are 00 (zeros), any pattern matching the first five characters matches. If the last four characters are 0000, any pattern matching the first three characters matches.

For example:
  • CPF1234 matches CPF1234 only.
  • CPF1230 matches CPF1230 only.
  • CPF1200 matches CPF1200 through CPF12FF.
  • CPF2000 matches CPF2000 through CPF20FF.
  • CPR0000 matches CPF0000 through CPFFFFF.
  • *ANY matches any value, including a blank.
Parent topic: Exit Points


Exit Point Function Status Values

This topic details function status values for Exit Points.

Values include:
  • Sent - The message was generated, enveloped, wrapped, and sent.
  • Env error - The message was generated, but an error occurred during enveloping.
  • Wrapped - The message was generated, enveloped, and wrapped.
  • Send error - The message was generated, enveloped, and wrapped, but an error occurred during sending.
  • Wrap error - The message was generated and enveloped, but an error occurred during wrapping.
  • Generated - The message was only generated.
  • Gen error - An error occurred during generation.
  • Enveloped - The message was generated and enveloped.
  • Mark:purge - The message was marked to be purged.
  • Mixed - A mixed status occurred on data at a lower level (either interchange, group, or message).
  • *SAME - The status of the connection, interchange, group, and message for the log record will remain instead of forcing a different status.
  • *BLANK - Not applicable.
  • Ready to gen - The outgoing application data is ready to generate.
  • Added - The message was received, unwrapped, translated, and added.
  • Unwrap err - The message was received, but an error occurred during unwrapping.
  • Trans err - The message was received and unwrapped, but an error occurred during translation.
  • Rcv error - An error occurred during receiving.
  • Duplicate - The message was received, but shares the same Interchange Control number as a previously received message.
  • Unwrapped - The message was received and unwrapped.
  • Received - The message was received only.
  • Translated - The message was received, unwrapped, and translated.
  • Unw-no EDI - The message was unwrapped, but contained no EDI data.
Parent topic: Exit Points


Exit Point In-Process Statuses

These are the values that can appear in the log record after the exit point completes with a Pass return value or Fail return value, respectively.

Section Title Here

  • Adding appl - Adding to application file
  • Delete ALL - Marked for deletion
  • Delete data - Data marked for deletion
  • *SAME
  • Mixed in pr - Mixed - in process
  • *BLANK - Not in process
  • Preparing - Preparing to send
  • Receiving - Receiving in process
  • Sched/trans - Scheduled for translation
  • Sending - Sending in process
  • Translating - Translation in process
  • Splitting - Translation with split files in process
  • Un-sched - No longer scheduled for tranlation or translation is being cancelled ???
  • Unwrapping - Unwrapping is in process
  • Wrapping - Wrapping is in process
Parent topic: Exit Points


Troubleshooting Exit Point Errors

If the Error - Action field is set to E - Signal Exit Error, EEI will alert you when an Exit Point fails unexpectedly. There are many issues that can cause these errors.

Check the job log to view specific error messages. Below are a list of errors and what these errors mean.

Program or Command Not Found

EEI cannot locate the user-specified program or command.

Parameters Do Not Match Parameter Types

The user-specified program's parameter list does not match the parameter type.

Return Code Does Not Match Pass or Fail Values

The return codes EEI receives do not match either value in the Pass or Fail Return value fields.

Profile Has Insufficient Authority

The profile used to run the current job does not have the authority or other resources to execute the useri-specified program or command.

Someone with sufficient authority must run the program, or the user profile must be given the proper authority and access to necessary resources to run the job.

An Error in the Setup Records

The exit point processing program detected an error in the user-specified setup records.

Parent topic: Exit Points


Functional Acknowledgments (997s)

Functional acknowledgements are a receipt that tells your trading partner whether you've received and accepted a document. If configured to do so, EEI can automatically generate outgoing functional acknowledgments.

Functional acknowledgments can be used merely as reassurance that a message was received, or to thoroughly keep tabs on what documents complied with EDI specifications. (For example, if a mandatory element is missing, etc.)

Functional acknowledgments and their associated compliance checking are set in the trading partner panels. EEI supplies a default trading partner, *ALL, in the Work with trading partners panel. Do not delete *ALL or else your FAs will not process.

You can also manually generate FAs through the Cleo EEI Main Menu | 1. Mailroom | 6. Generate outgoing acknowledgments panel.

Process Summary

To successfully use functional acknowledgments, you must:

  • Specify the acknowledgment level you want to send, in the Trading partner details 2 panel. (Or at the group or message level.)
  • Set up compliance checking in the Trading partner details 2 panel if you want more detailed FAs. (Or at the group or message level.)
  • Create an FA trading partner functional group.
  • Assign a *ACK trading partner message class to the group to send FAs.
  • Assign either a 997 or 999 trading partner message class to the group to receive FAs.
  • Reading a Functional Acknowledgment (997)
    A functional acknowledgement, or 997, can tell you a lot about your trading partner's success with translating your documents - if you know how to read them. While a 997 has the standard segments that appear in many EDI messages, it also contains a number of optional AK segments that you can add in EEI.
  • Creating a Functional Acknowledgment (997) Group
    To send and receive functional acknowledgements with your trading partner, you must first create and define a trading partner functional group.
  • Assigning 997 Functional Acknowledgment Trading Partner Message Classes
    Cleo provides inbound and outbound message classes for functional acknowledgements. To use them, assign them to your trading partner. *ACK is the outbound message class and 997 is inbound.
  • Assigning 999 Functional Acknowledgment Trading Partner Message Classes
    Cleo provides inbound and outbound message classes for functional acknowledgements. To use them, assign them to your trading partner. *ACK is the outbound message class and 999 is inbound.
  • Compliance Checking
    Compliance checking on incoming translation reviews documents for compliance against EDI specifications. (For example, if a mandatory element is missing, etc.) Compliance checking for incoming translation may be specified at the group, message, segment, and element levels for all trading partners, specific trading partners, or specific trading partner message classes.
  • Generating Outbound Functional Acknowledgments
    Generally, you will set up EEI to send Functional Acknowledgements automatically as you receive data. However, there are times when you will need to send or resend FAs manually.
  • Sending a TA1 Segment
    If a trading partner agreement requires you to send a TA1 segment, you must configure your trading partner and a data area to send it.


Reading a Functional Acknowledgment (997)

A functional acknowledgement, or 997, can tell you a lot about your trading partner's success with translating your documents - if you know how to read them. While a 997 has the standard segments that appear in many EDI messages, it also contains a number of optional AK segments that you can add in EEI.

The functional acknowledgment segments you receive are not determined within a message class. Instead they are set by trading partner in the Trading partner details 2 panel or by message class in the Trading partner message class details 2 panel.

AK1 Segment

  • AK101 - The functional group ID (GS01) of the document being acknowledged.
  • AK102 - The group control number (GS06 and GE02) of the document being acknowledged.

This mandatory segment will appear in every functional acknowledgment.

AK2 Segment

The AK2 is an optional segment and a loop. It can contain the AK3, AK4, and AK5 segments.

  • AK201 - The transaction set ID (ST01) of the document being acknowledged.
  • AK202 - The transaction set control number (ST02 and SE03) of the document being acknowledged.

AK3 Segment

  • AK301 - Identifies a segment in error by its segment ID.
  • AK302 - The segment count of the segment in error.
  • AK303 - Identifies the loop containing the segment in error.
  • AK304 - The error code for the segment in error.

If you want to send this segment, type S or T in the Acknowledgment level to send field.

If you want to receive this segment, type S or T in the Acknowledgment level to receive field.

AK4 Segment

If the AK304 contains an 8 (Segment has data element errors), the AK4 segment will appear to detail the element errors.

  • AK401-1 - Half a composite element. Identifies the element in error. For example, if the second element in the segment has an error, the AK401 would be 2.
  • AK401-2 - Half a composite element. Identifies the component element in error in a composite element.
  • AK402 - The element number of the element in error.
  • AK403 - The error for the element.
  • AK404 - A copy of the data element in error.

If you want to send this segment, type E or F in the Acknowledgment level to send field.

If you want to receive this segment, type E or F in the Acknowledgment level to receive field.

AK5 Segment

  • AK501 - Specifies whether the document being acknowledged was accepted or rejected.
  • AK502 through AK506 - Specifies the error codes

This mandatory segment will appear in every functional acknowledgment.

AK9 Segment

  • AK901 - Specifies whether the functional group identified in AK1 was accepted or rejected.
  • AK902 - The number of transaction sets in the functional group trailer (GE01).
  • AK903 - The number of transaction sets received.
  • AK904 - The number of transaction sets accepted.
  • AK905 through AK909 - Specifies up to five error codes for the functional group.

This mandatory segment will appear in every functional acknowledgment.

Parent topic: Functional Acknowledgments (997s)


Creating a Functional Acknowledgment (997) Group

To send and receive functional acknowledgements with your trading partner, you must first create and define a trading partner functional group.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel, type 5=Trading Partner Groups in your trading partner's Opt field. Press Enter.
  2. If the Trading partner functional groups panel is not already in create mode, press F9=Create to enter create mode.
  3. In the Group code field, type FA (X12 functional acknowledgment 997). Press Enter.
  4. Fill out the Trading partner group details panel.
    1. In the Direction code field, type B (Both) since you will likely be sending and receiving 997s.
    2. The Group control reference format test field determines the numbering to enable detection of missing or duplicate envelopes. These should be sequentially numbered to allow EEI to detect missing or duplicate envelopes. Values are:
      • A - From application file
      • M - Mixed alpha-numeric - The numeric characters from the control reference number and uses them to determine sequence.
      • U - Use 14 digits, show lead 0s (EDIFACT)
      • X - Use 9 digits, show lead 0s (X12)
      • Z - Use 9 digits, suppress lead 0s
    3. The Group control reference method test field determines the method used to test the control reference elements on incoming documents. Values are:
      • A - Application file field
      • I - Increment previous reference
      • R - Refer to another record
    4. The Group control reference format generation field determines the format used when generating outgoing control reference elements. Values are:
      • A - From application file
      • M - Mixed alpha-numeric - The numeric characters from the control reference number and uses them to determine sequence.
      • U - Use 14 digits, show lead 0s (EDIFACT)
      • X - Use 9 digits, show lead 0s (X12)
      • Z - Use 9 digits, suppress lead 0s
    5. The Group control reference method generation field determines the method used to generate control reference elements. Values are:
      • A - Application file field
      • I - Increment previous reference
      • R - Refer to another record
  5. Press Enter and confirm.
  6. Press F9=Change to return the Trading partner functional groups panel to change mode. The FA group appears in the panel.
Assign FA message classes to the group.
Parent topic: Functional Acknowledgments (997s)


Assigning 997 Functional Acknowledgment Trading Partner Message Classes

Cleo provides inbound and outbound message classes for functional acknowledgements. To use them, assign them to your trading partner. *ACK is the outbound message class and 997 is inbound.

Cleo strongly recommends you use the Cleo-provided functional acknowledgement message classes instead of creating your own.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners | 5. Trading partner functional groups panel, type 5=Message classes in the FA group's Opt. Press Enter.
  2. The Work with message classes for one trading partner group panel appears. If not already in create mode, press F9=Create.
  3. Assign two message classes.
    1. For the first one, in the Message ID field, type *ACK. In the Message class field, type *ACK.
    2. For the second one, in the Message ID field, type 997. In the Message class field, type FAGRPRCV.
  4. Press Enter.
  5. *ACK's Trading partner message class details 1 panel appears.
    1. In the Test indicator field, specify whether the data in this interchange envelope is for test or production. Values are:
      • P - Production
      • T - Test
      Note: You cannot use * (asterisk) for *ACK.
  6. Press Enter.
  7. *ACK's Trading partner message class details 2 panel appears. Type N (No acknowledgment used) in the Acknowledgment level to send, Acknowledgment level to receive, and Acknowledgment error reporting level fields.
    Note: This step ensures you are not sending acknowledgments for acknowledgments.
  8. Press Enter.
  9. The 997's Trading partner message class details 1 panel appears. appears.
    1. In the Test indicator field, specify whether the data in this interchange envelope is for test or production. Values are:
      • P - Production
      • T - Test
      • * - Match either test or production
  10. Press Enter.
  11. The 997's Trading partner message class details 2 panel appears. Type N (No acknowledgment used) in the Acknowledgment level to send, Acknowledgment level to receive, and Acknowledgment error reporting level fields.
    Note: This step ensures you are not sending acknowledgments for acknowledgments.
  12. Press Enter and confirm.
  13. Press F3=Exit until you navigate back to the Work with trading partners panel. Type 2=Change in your trading partner's Opt field and press Enter twice.
  14. In the Trading partner details 2 panel, make sure the Acknowledgment level to send, Acknowledgment error level to receive, and Acknowledgment error reporting level fields are configured to meet your needs.
    Note: The most common values are:
    • G for Acknowledgment level to send
    • G for Acknowledgment level to receive
    • S for Acknowledgment error reporting level

    This configuration tells EEI to send and receive acknowledgments for anything you send or receive at the group level.

  15. Press Enter and confirm.
Parent topic: Functional Acknowledgments (997s)


Assigning 999 Functional Acknowledgment Trading Partner Message Classes

Cleo provides inbound and outbound message classes for functional acknowledgements. To use them, assign them to your trading partner. *ACK is the outbound message class and 999 is inbound.

Cleo strongly recommends you use the Cleo-provided functional acknowledgement message classes instead of creating your own.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners | 5. Trading partner functional groups panel, type 5=Message classes in the FA group's Opt. Press Enter.
  2. The Work with message classes for one trading partner group panel appears. If not already in create mode, press F9=Create.
  3. Assign two message classes.
    1. For the first one, in the Message ID field, type *ACK. In the Message class field, type *ACK.
    2. For the second one, in the Message ID field, type 999. In the Message class field, type IAGRPRCV.
  4. Press Enter.
  5. *ACK's Trading partner message class details 2 panel appears. Type N (No acknowledgment used) in the Acknowledgment level to send, Acknowledgment level to receive, and Acknowledgment error reporting level fields.
    Note: This step ensures you are not sending acknowledgments for acknowledgments.
  6. Press Enter.
  7. The 999's Trading partner message class details 1 panel appears.
    1. In the Test indicator field, specify whether the data in this interchange envelope is for test or production. Values are:
      • P - Production
      • T - Test
      • * - Match either test or production
  8. Press Enter.
  9. The 999's Trading partner message class details 2 panel appears. Type N (No acknowledgment used) in the Acknowledgment level to send, Acknowledgment level to receive, and Acknowledgment error reporting level fields.
    Note: This step ensures you are not sending acknowledgments for acknowledgments.
  10. Press Enter and confirm.
  11. Press F3=Exit until you navigate back to the Work with trading partners panel. Type 2=Change in your trading partner's Opt field and press Enter twice.
  12. In the Trading partner details 2 panel, make sure the Acknowledgment level to send, Acknowledgment error level to receive, and Acknowledgment error reporting level fields are configured to meet your needs.
    Note: The most common values are:
    • G for Acknowledgment level to send
    • G for Acknowledgment level to receive
    • S for Acknowledgment error reporting level

    This configuration tells EEI to send and receive acknowledgments for anything you send or receive at the group level.

  13. In the Acknowledgment error response map group field, type 999 in the first three characters.
    Note: Make sure you don't displace any other characters (character positions 4-20) if you have a compliance checking array set up. For more information, see Compliance Checking.
  14. Press Enter and confirm.
Parent topic: Functional Acknowledgments (997s)


Compliance Checking

Compliance checking on incoming translation reviews documents for compliance against EDI specifications. (For example, if a mandatory element is missing, etc.) Compliance checking for incoming translation may be specified at the group, message, segment, and element levels for all trading partners, specific trading partners, or specific trading partner message classes.

Setting Compliance Checking

Compliance checking can be set at two trading partner levels - the trading partner level and the trading partner message class level, which will override settings in the trading partner level.

Cleo recommends only setting compliance checking at the trading partner level unless you have special needs for a particular message class.

  • To set compliance checking at the trading partner level, go to Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel. Type 2=Change in your trading partner's Opt field and press Enter twice to reach the Trading partner details 2 panel.
  • To set compliance checking at the trading partner message class level, go to Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel. Type 8=Trading Partner message classes in your trading partner's Opt field and press Enter. Type 2=Change in a message class' Opt field and press Enter twice to reach the Trading partner message class details 2 panel.

Each compliance checking field is an array, with each character position referring to a specific error. One of three response codes must be entered into the proper position of the Acknowledgment error response map fields. The fields are:

  • Acknowledgment error response map interchange
  • Acknowledgment error response map group
  • Acknowledgment error response map message
  • Acknowledgment error response map segment
  • Acknowledgment error response map element

Response Codes

You don't have to enter anything in the Acknowledgment error response map fields if you don't want detailed information about documents in your functional acknowledgments. However, if you do want details about errors, you need to specify which details you want by entering a response code in the field's active positions. Codes are:

  • E - Note errors (in the translation job message queue) and accept the document.
  • R - Note errors and reject the document, forcing a translation error.
  • I or (Blank) - Ignore errors. This is also the default value when a position is left blank.
Note: Not every position in each field is set up to refer to an error. Some positions in certain fields must remain blank.
Note: The interchange level is not part of inbound compliance checking.

Acknowledgment error response map group

Positions 1-3 must be either:

  • "997 "
  • "999 "

Positions 4-10 must be blank.

Positions 11-15 require response codes. Positions are:

  • 11 - Functional group not supported
  • 12 - Functional group version not supported
  • 13 - Functional group trailer missing
  • 14 - Group control number in the functional group
  • 15 - Number of included transactions sets does not match

Positions 16-20 are not used.

Acknowledgment error response map message

Positions 1-5 require response codes. Positions are:

  • 1 - Transaction set not supported
  • 2 - Transaction set trailer missing
  • 3 - Transaction set control number in header and trailer do not match
  • 4 - Number of included segments does not match actual number of segments in message
  • 5 - One or more segments in error (future use)

Positions 6-20 are not used.

Acknowledgment error response map segment

Positions 1-4 must be R.

Position 5 must be I.

Positions are:

  • 1 - Unrecognized segment ID
  • 2 - Unexpected segment
  • 3 - Mandatory segment missing
  • 4 - Loop occurs more than maximum number of allowed times
  • 5 - Segment exceeds maximum use (not implemented)

Positions 6-20 are not used

If response codes vary from the recommendation - R in positions 1-4 and I in position 5 - unpredictable results may occur.

Acknowledgment error response map element

Positions 1-10 and 12 require response codes. Positions are:

  • 1 - Mandatory data element missing
  • 2 - Conditional required data element missing
  • 3 - Too many data elements
  • 4 - Data element too short
  • 5 - Data element too long
  • 6 - Invalid character in data element
  • 7 - Invalid code value
  • 8 - Invalid date
  • 9 - Invalid Time
  • 10 - Exclusion Condition Violated
  • 11 - (Not used, leave blank)
  • 12 - Too many repeats

Positions 11 and 13-20 are not used.

If you want to cause a translation error when a mandatory element is missing, you must place an R in the first array position. E only sends a message to the translation message queue.

Mandatory composite elements are validated, and a message/error could be generated based on Acknowledgment err response fields.

The mandatory/optional status of a component element will be checked only if a composite element is present (i.e., there is data, even if it’s just sub-element delimiters).

Parent topic: Functional Acknowledgments (997s)


Generating Outbound Functional Acknowledgments

Generally, you will set up EEI to send Functional Acknowledgements automatically as you receive data. However, there are times when you will need to send or resend FAs manually.

In order to send acknowledgments, you must have:

  • set up FA options on your trading partner
  • assigned an FA message class to your trading partner
  • configured a network
  1. Either prompt the CRTFADTA(B) (Create functional acknowledgment data) command or navigate to the Cleo EEI Main Menu | 1. Mailroom | 6. Generate outgoing acknowledgments panel.
  2. Fill in the Generate outgoing acknowledgments panel's fields.
    1. The Wrap for Network(s) field specifies if the FAs should be wrapped and if so, for which networks. Values are:
      • (Network name) - Wrap only acknowledgments for this network
      • *ALL - Wrap acknowledgments for all networks
      • *NONE - Do not wrap any acknowledgments
    2. The Sent to Network(s) field specifies if the FAs should be sent and if so, to which networks. Values are:
      • (Network name) - Send only acknowledgments for this network
      • *ALL - Send acknowledgments for all networks
      • *NONE - Do not send any acknowledgments
    3. The Stop on partial error option field specifies where the outgoing process should stop if a step completes with partial errors. If a step completes with the resulting status entirely in error, the process also stops. Values are:
      • *ANY - The process stops at any step that completes with at least one error
      • *WRP - The process stops if wrapping completes with partial errors
      • *NO - The process continues despite partial errors, and uses data not in error to complete subsequent steps.
    4. The Trading partner code field specifies the trading partner for which EEI should generate FAs. Values are:
      • (Trading partner name) - Generate only acknowledgements for this trading partner
      • *ALL - Generate acknowledgements for all trading partners
  3. Press Enter and confirm.
Parent topic: Functional Acknowledgments (997s)


Sending a TA1 Segment

If a trading partner agreement requires you to send a TA1 segment, you must configure your trading partner and a data area to send it.

1 in the ISA14 element is a request for a TA1 segment. If you want to send a TA1, you must turn on the EXTA1FLG data area.

EEI automatically sends TA1 segment as part of the next outbound document you send, regardless of type.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel, type 2=Change on your trading partner's Opt field. Press Enter.
  2. The Trading partner details 1 panel appears. In the Interchange acknowledgment requested type 1. Press Enter twice and confirm.
  3. Navigate to the Cleo EEI Main Menu | 8. System Configuration | 1. Work with system parameters panel.
  4. Type 2=Change on EXTA1FLG's Opt field. Press Enter.
  5. The Change Data Area panel appears. In the New value field's first character position type Y. Press Enter.
Parent topic: Functional Acknowledgments (997s)


Networks

EEI uses networks to send and receive data. Once you have your message class and trading partner set up, you'll need to create a network, port(s), and control script(s) to exchange data.

Networks and Ports

Similarly to how a file set contains all the files needed to exchange data with a trading partner, a network contains all the parts needed to start a communication session.

In EEI, a network houses at least one port. Ports are either inbound or outbound. The physical file defined on the port is used during communication with your trading partner. Ports also define whether data is wrapped or non-wrapped, and if data should be replaced or added during communications.

Control scripts are housed in ports. A control script tells EEI what actions to take when communicating. They can control many functions, from entering a username and password to a server to copying files to cleaning up a server.

Example Networks and Custom Networks

A network can be used to communicate with your trading partner directly or through a van. Communication can occur through async, bisync or FTP connections.

Cleo supplies example networks for several major VANs.

However, the majority of users create their own networks for use-specific, direct point-to-point communications.

Networks are created and managed from the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel.

There are two types of FTP networks in EEI: FTP networks and AFTP networks, which feature automated polling.

If creating an FTP network, the network code (name) must begin with *FTP for a normal network or *AFTP if you are using automated FTP.

  • FTP
    FTP stands for file transfer protocol and is part of the TCP/IP suite. It is the protocol, or set of rules, which enables files to be transferred between systems.
  • FTP Checklist
    This checklist supplements the manual by providing a quick overview and guide to prepare you for setting up FTP communications.
  • Automated FTP
    Automated FTP (AFTP) provides FTP customers an automatic way to create connections only when files exist on the remote server. It also runs an automated job that polls a site in scheduled intervals. High-volume customers may be especially interested in this feature.
  • Setting up a *FILE Port
    To use EEI's *FILE network to send wrapped or non-wrapped data to a physical file, you must set up a port directing data to that file.


FTP

FTP stands for file transfer protocol and is part of the TCP/IP suite. It is the protocol, or set of rules, which enables files to be transferred between systems.

FTP allows files to be transferred from system-to-system directly or from system-to-network server.

FTP supports two transfer modes: ASCII and Binary. ASCII file transfers are used primarily for the transfer of ASCII text files. Binary file transfers are used for storage and retrieval of files and for the transfer of binary data.

The FTP process

The FTP process consists of:

  • Starting an FTP session to establish a connection.
  • Authentication by checking the authority via username and password.
  • Getting files on the remote host.
  • Importing connections.
  • Cleaning up files on your local server.

If you are in charge of cleaning up the remote server, the process consists of:

  • Starting an FTP session to establish a connection.
  • Listing files on the remote host.
  • Building a list of files to get.
  • Authentication by checking the authority via username and password.
  • Getting files or putting files on the remote host.
  • Importing or exporting connections.
  • Cleaning up files on the remote host and your local server.
  • Control Scripts
    In EEI, control scripts manage the local connection process and initiate the FTP conversation.
  • How Inbound FTP Communications Work
    An overview of what happens between EEI and your FTP server for inbound.
  • How Outbound FTP Communications Work
    An overview of what happens between EEI and your FTP server for outbound.
  • Common FTP Conversation Commands
    A list of some common FTP scripting conversation commands. To learn more, search for "FTP commands" in a search engine.
  • Control Script Functions
    These functions allow you to customize your control scripts.
Parent topic: Networks


Control Scripts

In EEI, control scripts manage the local connection process and initiate the FTP conversation.

To communicate with your trading partner, you must create a control script within your network. Cleo recommends copying Cleo-supplied example control scripts from the *FTP_Examples network in the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel. After copying the control script, you can customize the script within the script or, in the Change Control Script Parameters panel.

The BATCHFTP command handles the FTP connection conversation.

The QTXTSRC In members hold the commands sent to the remote system. The QTXTSRC Out members hold the conversation's output, which includes the remote system's response to the In commands.

The NOOP command can be used to make comments within script describing process, helping to make the script easier to understand. However, use NOOP comments sparingly because each script line is read when executing the script (which can potentially slow the process).

Cleo's Example Control Scripts

Cleo provides a number of example control scripts that you can copy for your own FTP or AFTP communication needs. These include scripts that can send files; receive, rename, and move files; receive and delete files, and more.

If you are creating an AFTP network, copy scripts from the *AFT_EXAMPLES network. If you are creating an FTP network, copy scripts from the *FTP_EXAMPLES network.

The largest determination of which control script to use is based on the question: Are you responsible for maintaining the server? If so, should data be deleted, moved, or renamed?

Parent topic: FTP


How Inbound FTP Communications Work

An overview of what happens between EEI and your FTP server for inbound.

The inbound FTP process runs in batch using the BATCHFTP command within the script. This batches all the FTP commands, or WRTLINES, in the script together using the QTXTSRC file to submit as a single process.

The data is received from the server and placed in an IFS directory. Then the PRCDIRSF (Process Directory Stream File) command runs over the inbound directory, combining all the stream files received into one stream file.

Part of the PRCDIRSF command runs the IBM command CPYFRMSTMF, taking the combined stream file and placing it into a physical file member or a T member (T + connection log number) of the FTPIN file.

The process copies the dummy record or blank record from the FTPIN member of the FTPIN file to the R member (R + connection log number), then copies FTPIN file's T member to the FTPIN file's R member.

Note: If this is not done in this manner and no data is received from the network, the process will fail when the CRTCNNIMP command is run. The CRTCNNIMP command will fail on a file with an empty member, therefore the empty record/dummy record will prevent this.

The CRTCNNIMP command processes the data from the FTPIN file's R member and creates a connection within EEI. If the parameters for translation are used on the CRTCNNIMP command, the data unwraps and translates.

Parent topic: FTP


How Outbound FTP Communications Work

An overview of what happens between EEI and your FTP server for outbound.

The data is created within EEI using the CRTAPPDTA command. The data is enveloped and wrapped into a connection for a specific network. The script is executed and the data is copied into a physical file member specified on the outbound port (for example, FTPOUT). The process takes the physical file and copies it to a stream file using the system command CPYTOSTMF.

The outbound FTP process is run in batch using the BATCHFTP command within the script. The command batches all the FTP commands together using the QTXTSRC file to submit as a single process. The data is sent from the IFS directory to the network with which you are communicating.

Parent topic: FTP


Common FTP Conversation Commands

A list of some common FTP scripting conversation commands. To learn more, search for "FTP commands" in a search engine.

  • pwd - Print working directory (shows current directory name)
  • cd - Change directory (changes working directory on remote)
  • lcd - Local change directory (changes working directory locally)
  • bin - selects binary transfer mode (no character conversion)
  • ascii - selects ascii transfer mode (potential character conversion)
  • get - retrieves file to local system from remote system
  • mget - retrieves multiple files to local from remote
  • put - stores file found on local system to remote system
  • mput - stores multiple files found on local system to remote
  • open - establishes connection to remote system
  • close - disconnects session to remote system
Parent topic: FTP


Control Script Functions

These functions allow you to customize your control scripts.

  • CMDEXC - Execute a command
  • EXIT - Exit (normal end)
  • NOOP - No operation
  • RCVFILE - Receive file from network
  • SETUP - Setup parameters
  • WRTLINE - Write line as if received
Parent topic: FTP


FTP Checklist

This checklist supplements the manual by providing a quick overview and guide to prepare you for setting up FTP communications.

If you would like step-by-step documentation for any given section, refer to the specific documentation topic for more details.

Before setting up direct FTP communications

Make sure you have the answers to these questions:

  1. What is the:
    • Server's IP address?
    • Username?
    • Password?
  2. What are the directories used for local and remote?
  3. Are you responsible for maintaining the server?
    • If yes, should data be deleted, moved, or renamed?
      • If moved, what is the target folder?
      • If renamed, what is the extension?

The following objects need to be created one time on a system:

  1. Create a library named EXT_FTP using the CRTLIB command.

  2. Create a file named QTXTSRCL using the CRTSRCPF EXT_FTP/ QTXTSRCL command. This file is a text source member in library EXT_FTP.

    Note: Naming the file QTXTSRCL keeps you from having to change the file name if copying control scripts from the *FTP_EXAMPLES network.

  3. Create a file named QTXTSRC using the CRTSRCPF EXT_FTP/ QTXTSRC command. This file is a text source member in library EXT_FTP.

    Note: Naming the file QTXTSRC keeps you from having to change the file name if copying control scripts from networks other than *FTP_EXAMPLES.

  4. Create two physical files in the library EXT_FTP using the CRTPF command. These files will be used when creating inbound and outbound ports.

    For example, files could be named FTPIN and FTPOUT. These files are normally set up with a Record length of 256 and Max member of *NOMAX.

    Note: The file used when creating outbound ports can be set up in the QTEMP library.
  5. Add a blank record (a “dummy” record), to the physical file used when creating inbound ports (such as FTPIN). This is done so that the CRTCNNIMP command does not fail on a blank file.

  6. Create a directory named ‘/EXTOL’ using the CRTDIR ‘/EXTOL’ command.

    Note: Naming the directory EXTOL keeps you from having to change the directory name if copying the example control scripts.

  7. Create a message file named EXUSRMSG in library EXT_FTP using the CRTMSGF EXT_FTP/EXUSRMSG command.

    The message file will contain the USR**** messages used in both the FTPBUILD and FTPCLNUP commands in control scripts under the *FTP_EXAMPLES network.

    Note: Naming the file EXUSRMSG keeps you from having to change the file name if copying control scripts from the *FTP_EXAMPLES network.

The following objects need to be created per network:

  1. Create a network. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, press F9=Create.

    Note: The network’s name must begin with *FTP. For example, *FTP_TYSON.

  2. Create the directories used to hold the stream files.

    Note: Giving the directories the same name as your network will make the directories unique for that network.

    For example:

    CRTDIR ‘/EXTOL/TYSON’

    CRTDIR ‘/EXTOL/TYSON/FTPIN’

    CRTDIR ‘/EXTOL/TYSON/FTPOUT’

    Note: To view the directories, run the WRKLNK command. For example, wrklnk ‘/EXTOL’.

  3. Create two ports for your network.

    • One for inbound (for example, FTPIN)
    • One for outbound (for example, FTPOUT)

    For each port, specify the library and corresponding file created in Step 4 (under “one time on a system”).

    The Replace/add records field should be A (Add) for the inbound port and R (Replace) for the outbound port.

  4. Copy the appropriate example control scripts depending on the answer to the question: “Are you responsible for maintaining the server?”

    • If no, copy the sample RECEIVE and SEND control scripts from the *FTP_ONET network to your new network.
    • If yes, copy the control script that is doing the desired function (FTPCLNUP to delete, rename, etc.) from the *FTP_EXAMPLES network to your new network.

  5. If copying control scripts from the *FTP_EXAMPLES network, the USR**** messages need to be created in the EXT_FTP/EXUSRMSG message file. The messages you create in the message file are based on responses from the remote server.

    Note: Often, different servers may use the same messages. If you are communicating with multiple servers and those servers have messages in common, you can use the same message IDs instead of creating new ones.

  6. If copying control scripts that delete, move, or rename from the *FTP_EXAMPLES network, a LOGIN member needs to be created in the QTXTSRCL file to contain server login information. This member eliminates the need to repeat the same login information three times in the control script.

    For example:

    *************** Beginning of data ***

    0001.00 user username password

    0002.00 namefmt 1

    0003.00 lcd /directory

    0004.00 cd /directory

    ****************** End of data ******

  • Creating Libraries and Files for FTP Communications
    Your system needs certain files and libraries for FTP to work in EEI. These objects should be set up before you create a network. These objects need to be created only once on your system, and will serve all networks.
  • Creating an FTP Network and Port
    You need to create a network and port to communicate with your trading partners.
  • Copying Control Scripts
    EEI provides multiple example control scripts that you can copy and customize based on your communication needs.
  • Customizing Control Scripts through Parameters Panel
    The Change Control Script Parameters panel allows you to modify a control script for use with your server without ever going into the control script. This panel can only be used for *AFT networks.
  • Control Script Modifications
    Although it is easier to customize a control script using the Change Control Script Parameters panel, sometimes it is necessary to make changes within the actual control script.
  • Configure Network Definitions
    Network definitions link a port to a script. You need to set up network definitions if you want to be able to manually run inbound FTP communications.
Parent topic: Networks


Creating Libraries and Files for FTP Communications

Your system needs certain files and libraries for FTP to work in EEI. These objects should be set up before you create a network. These objects need to be created only once on your system, and will serve all networks.

  1. On a command line, type CRTLIB EXT_FTP and press Enter to create the EXT_FTP library.
  2. On a command line, type CRTSRCPF EXT_FTP/ QTXTSRCL and press Enter to create a text source member in the EXT_FTP library.
    Note: Naming the file QTXTSRCL keeps you from having to change the file name if copying control scripts from the *FTP_EXAMPLES network.
  3. On a command line, type CRTSRCPF EXT_FTP/ QTXTSRC and press Enter to create a text source member in the EXT_FTP library. This will hold all the FTP commands used in the FTP process.
    Note: Naming the file QTXTSRC keeps you from having to change the file name if copying control scripts from networks other than *FTP_EXAMPLES.
  4. On a command line, type CRTPF FILE(EXT_FTP/FTPIN) RCDLEN(256) MAXMBRS(*NOMAX) and press Enter to create a physical file in the EXT_FTP library. This file will be used when creating inbound ports.
  5. On a command line, type CRTPF FILE(EXT_FTP/FTPOUT) RCDLEN(256) MAXMBRS(*NOMAX) and press Enter to create a physical file in the EXT_FTP library. This file will be used when creating outbound ports.
    Note: You can name the physical files anything, but FTPIN and FTPOUT is the Cleo recommendation. If you name them otherwise, make sure it is obvious which file is for inbound and which is for outbound.
    Note: The file used when creating outbound ports can be set up in the QTEMP library. This will make the file disappear when a session is complete.
  6. Are you using the port file for an AFTP or an FTP network?
    • If you are creating an *AFTP network, skip this step and proceed to Step 7.
    • If you are creating an *FTP network, create a blank, or "dummy," record in the FTPIN file.
    Note: There are many ways to add a record to a file, such as DBU (Database utility) or UPDDTA (Update Data). This details using EDTF (Edit file).
    1. On a command line, type EDTF FILE(EXT_FTP/FTPIN) and press Enter.
    2. In the Edit File panel, directly below the + (plus sign) and to the right of the solid line/dash, type the word "blank". Press F3=Save/Exit twice.

    If no data is received from the network and the FTPIN member is empty, the CRTCNNIMP (Create Connection Import) command will fail. This results in a Rcv Error (Receive Error) status in the Work with Connections panel. The dummy record prevents the Receive Error, and results in an Unw-No EDI (Unwrap-No EDI) status instead.

    AFTP networks eliminate the need for a dummy record. If you have a dummy record in a port file for AFTP, you get a connection even when there is no other data. Therefore, do not create a dummy record for an AFTP network

  7. On a command line, type CRTDIR ‘/EXTOL’ and press Enter to create directory named EXTOL.
    Note: Naming the directory EXTOL keeps you from having to change the directory name if copying the example control scripts.
  8. On a command line, type CRTMSGF EXT_FTP/EXUSRMSG and press Enter to create a message file in library EXT_FTP. The message file will contain the USR**** messages used in both the FTPBUILD and FTPCLNUP commands in control scripts under the *FTP_EXAMPLES network.
    Note: Naming the file EXUSRMSG keeps you from having to change the file name if copying control scripts from the *FTP_EXAMPLES network.
Parent topic: FTP Checklist


Creating an FTP Network and Port

You need to create a network and port to communicate with your trading partners.

Before you create a network and ports, be sure the libraries and files they interact with have been created on your system. See the FTP Checklist.

If you want to create an automated FTP (AFTP) network, see Creating an AFTP Network and Port.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, press F9=Create to enter create mode.
  2. In the Network code field, type a name for your network. Press Enter.
    • If you do not want to use Automated FTP, the file name must start with *FTP.
    • If you want to use Automated FTP, the file name must start with *AFTP.
    • If you need to know more about AFTP to make a decision, see Automated FTP.
  3. The Network details panel appears. None of this panel's fields need to be filled out, so fill out any fields you choose. Press Enter and confirm.
  4. Press F9=Change to return to the Work with networks panel. Type 8=Ports in the network’s Opt field to access the Work with network ports for one network panel. If the panel is not in create mode, press F9=Create.
  5. Type a name for the port code. Press Enter.
    Note: You can name the In port anything, but it's a best practice to incorporate "IN" in the name to denote the direction.
  6. In the Change net port file panel, fill out the fields on the top half of the page.
    1. In the Description field, type a description for the In port.
    2. Unless you need to send messages to an alternate queue, leave the Message queue field as QSYSOPR.
    3. Using the Data area for override fields is optional. If you defined a data area to contain a user-defined override command string, type the library name and data area in these fields.
    4. In the Data file library field, type QTEMP.
    5. In the Data/tape file name field, type the name of the physical file created for your inbound port.
    6. In the File member field, type the name of the physical file member created for your inbound port.
    7. The File format type field specifies the type of data communication the port uses. Values are:
      • N - Non-wrapped data file/tape
      • W - Wrapped data file/tape
      Note: If the Network ID is one of the special values *FILE or *TAPE, this field describes the data format used in the disk or tape file.
    8. The Maximum record length field specifies the maximum records length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.
    9. The Maximum block length field specifics the maximum block length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.
    10. The Create file field is used when copying data to a file. It specifies whether the destination file should be created if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
      Note: If you choose Y, you must put a value in the Maximum record length field.
    11. The Add member field is used when copying data to a file. It specifies whether the destination member should be created in the file if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
    12. The Replace/add records field is used when copying data to a file. It specifies whether existing records in the destination member should be be cleared before the copy begins (replacing existing records).
      • For inbound, always type A - Add data to existing records.
      • For outbound, always type R - Replace existing records.
  7. Are you using Member control?
    • If you are using Member control, fill in the fields in the second half of the panel under Member Control. If you want to use Data member control and need help filling out these fields, see Setting Data Member Control - Inbound Single Port.
    • If you are not using Member control, don't fill in any more fields.
  8. Press Enter and confirm.
  9. In the Port code field, type a name for your Out port. Press Enter.
  10. In the Change net port file, fill out the fields on the top half of the page the same as you did for the In port, with the following exceptions:
    1. In the Data file library field, type the library.
    2. In the File member field, type the name of the Outbound port physical file.
    3. The Create file field is used when copying data to a file. It specifies whether the destination file should be created if it does not exist. Values are:
      • Y - Yes, create the file.
      • N - No, do not create the file.
      Note: If you choose Y, you must put a value in the Maximum record length field.
    4. The Add member field is used when copying data to a file. It specifies whether the destination member should be created in the file if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
    5. The Replace/add records field is used when copying data to a file. It specifies whether existing records in the destination member should be cleared before the copy begins (replacing existing records). For inbound, always type R - Replace existing data in records.
  11. If you are using Member control, fill in the fields in the second half of the panel under Member Control.
  12. Press Enter and confirm.
  13. Press F9=Change to return the Work with network ports for one network panel to normal mode. Your In and Out port appear in the panel.
Parent topic: FTP Checklist


Copying Control Scripts

EEI provides multiple example control scripts that you can copy and customize based on your communication needs.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, type 9=Control scripts on:
    • *AFT_EXAMPLES if you are setting up an Automated FTP network.
    • *FTP_EXAMPLES if you are setting up an FTP network.
  2. Press Enter. The Work with all control scripts panel appears. The Script name column details what each example control script does.
  3. Decide which example control script best meets your needs. Type 3=Copy on that control script's Opt field. Press Enter.
    Note: For more information on choosing the best script, see AFTP Checklist or the FTP Checklist.
  4. The Copy control script panel appears. Fill it out according to your needs.
    1. In the Copy to Network ID field, either type the name of the network with which you want to use the script or type ? and press Enter to prompt a list of networks.
    2. In the Copy to new script code field, type a name for the new copy of the control script.
    3. The Line number increment field specifies how the new control script's lines are numbered. Values are:
      • 0 (Zero) - The copy will have the same line numbers as the original.
      • (A number) - The lines will be renumbered using this value as the starting number. Each subsequent line number will be a multiple of this number.
      Note: For example, if your Line number increment is 10, subsequent lines are 20, 30, 40, etc. Leaving "spaces" between line numbers allows for less complicated resequencing if you need to edit a script. All Cleo provided example scripts leave "spaces" between line numbers.
  5. Press Enter and confirm.
Next: After a control script has been copied, it needs to be customized.

If you are creating an FTP network, customize your control script.

If you are creating an AFTP network, refer to Creating an Automated FTP group before customizing your control script.

Parent topic: FTP Checklist


Customizing Control Scripts through Parameters Panel

The Change Control Script Parameters panel allows you to modify a control script for use with your server without ever going into the control script. This panel can only be used for *AFT networks.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks | 9. Work with all control scripts panel, type 7=Parameters on a control script's Opt field. Press Enter.
  2. The Change Control Script Parameters panel appears.
    Note: If a message appears at the bottom of the screen stating, " Control script parms not found ", press F9=Create to create a parameter record.
  3. If they need to be changed, change the Text file library and Text file name.
    Note: EXT_FTP is the default file library for the message file and text source. Also, the text file name must begin with "QTXT".
  4. Change the 7-character member prefix. You only need to type it once – in the Member prefix field – EEI automatically populates the individual fields when the changes are confirmed.
    Note: Any characters not filled in the Member prefix field are automatically filled in with underscores.
    Note: You can toggle between views to see how each field corresponds to the control script parameters by pressing F10.
  5. Specify the Remote system name, Remote directory, and Local directory. If you are using SSL, specify the Remote port.
    Note: You can view created members by pressing F7. Members used on the BATCHFTP command as input (In) members can be created and modified using F7, but Out members can only be displayed. The exception to this rule is In member CI, it is not editable because it is derived by FTPBUILD.

    With this in mind, it is recommended you create all members outside EEI.

  6. Press PageDown to reach the second Change Control Script Parameters panel.
  7. Change the message for each function that does not match the syntax of the remote FTP server. Pressing F4 in the first field of each message option brings up a searchable list of message IDs to choose.
    Note: If you need to change the Message file name, it must start with "EXUSR". Also, if new messages need to be created, press F14=WRKMSGD to access the message file definitions and modify or add messages.
  8. Press Enter and confirm.
Create the network communication setup definition/setup description to link your port and control script.
Parent topic: FTP Checklist


Control Script Modifications

Although it is easier to customize a control script using the Change Control Script Parameters panel, sometimes it is necessary to make changes within the actual control script.

To access a control script, in the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks | 9. Work with all control scripts panel, type 2=Change on a script's Opt field to reach the Work with control script text details panel.

Once in the panel, you can edit existing lines by typing directly in the Work with control script text details panel, or by typing 2=Change on a line's Opt field to reach the Change control script line details panel.

To add a new line, note the Sequence number of the line you would like the new line to follow. Then, PageDown until you find empty lines in the Work with control script text details panel.
  • In the Sequence number field, type a number that would position the new line where you would like it. (For example, if you want it between line number 100 and 110, make the sequence number 105.)
  • In the Function field, type the function you want the line to execute. You can prompt a Script function list selector panel by pressing F4.
  • In the Script text field, type the commands and parameters you want the line to use.
  • Be sure to press Enter and confirm after making changes before leaving the panel.
Note: EEI has command validation, which displays an error message along the bottom of the screen if a line is invalid.
Other editing options include:
  • 3=Copy - Copies an entire line. The Change control script line details panel asks for a new sequence number so it knows where to place the copied line.
  • 4=Delete - Deletes an entire line.
  • F16=Resequence - Makes the Sequence number fields editable while locking all other fields. Allows you to easily move entire lines.
  • F11=Next View - Cycles through different views of the control script, making more fields (only otherwise available by individual line using 2=Change) visible for all lines in the script.

WRTLINE and Continuing Lines

The control script functions WRTLINE (write a line as if received) and CMDEXC (execute a command using the QCMDEXC function) each use the 120-character Script text field to represent a string of textual data.

If the Factor 1 field contains the word CONTINUE, successive script lines are appended to each other until the script reaches a line where Factor 1 does not contain CONTINUE. Each line is appended at a length equal to the number each line's Factor 1 parm 1 field. If the Factor 1 parm 1 number is 0 (zero), the actual length up to the last non-blank character is used on each appended line.

Blank spaces must be accounted for when continuing a line.

Using an _ (underscore to represent a blank space, EEI can execute the following examples:

CPYSRCF_FROMFILE(@TL/@TF)_

TOFILE(@TL/@TF)

CPYSRCF_FROMFILE(@TL/@TF)

_TOFILE(@TL/@TF)

CPYSRCF_FROMFILE(@TL/@TF)_TO

FILE(@TL/@TF)

Note: Breaking a line mid-word, as in the third example, is not recommended although it is valid.

EEI cannot execute the following examples:

CPYSRCF_FROMFILE(@TL/@TF)

TOFILE(@TL/@TF)

CPYSRCF_FROMFILE(@TL/@TF)_

_TOFILE(@TL/@TF)

Note:

For easy readability, Cleo recommends breaking the line after a full word or command, and placing the blank space that follows on the continuation line. This makes each line easy to understand. It signifies that if a line starts with a blank space, it is a continuation line.

The best practice is:

CPYSRCF_FROMFILE(@TL/@TF)

_TOFILE(@TL/@TF)

  • Substitution Variables Rules and Tips
  • Substitution Variables in Control Scripts
    A list of substitutions variables for use in creating and editing control scripts.
Parent topic: FTP Checklist


Substitution Variables Rules and Tips

Once the complete concatenated string has been assembled, it is scanned for all occurrences of substitution variables. The prefix @ (at symbol) is the default value. Any other character that does not otherwise appear in the data may be used instead by specifying it as the first character of the Factor 2 field in the last line of a continued group. Different sets of continued lines in the same script may use different substitution prefixes.

Substitution variables have a replacement length that is different than the length of the symbolic variable @xx. The numeric variables are always replaced by a fixed number of digits. The character variables have trailing blanks that are suppressed after each substitution. The resulting concatenated string, with replacements made, is treated as being the length specified in the Factor 1 parm 2 field of the last continued line. If this number is zero, the actual length up to the last non-blank character is used as the output length. The maximum total string length of a group of continued lines is 992 characters.

Any substitution code may be used any number of times, even in the same record. Codes may be concatenated: For example, the UK-style date with four-digit year can be created with three substitution codes: @DD@MM@CC@YY = 31121999 (on Dec. 31, 1999)

The date and time used for substitution purposes are initialized as equal to the current Log of Connection record's Start of call. The date and time can be reset to the current system clock value during script processing with the script function SETTIME.

The record counters (@TR, @DR, and @ER) are initialized at zero. The script function RESET may be used to simultaneously reset all record counters to zero at any point in script processing.

Since the communications and import programs ( STRCTLSCRR and CVTWRPR, respectively) do not interpret the data records' content, the “envelope records” counter does not represent actual EDI standard envelope segments. “Envelope records” is incremented whenever a WRTLINE script statement is executed. “Data records” means records written to the wrapped data file.

“Total records” is slightly different in import versus actual communications: When used in the communications program STRCTLSCRR, "total records" means the sum of actual communications records sent and received. For import, "total records" means “envelope records” + “data records”, since there is no true equivalent to communications records.

Script parameters

Script parameters are:
  • @P1 - Script parameter 1
  • @P2 - Script parameter 2
  • @P3 - Script parameter 3
  • @P4 - Script parameter 4
  • @P5 - Script parameter 5
  • @P6 - Script parameter 6
  • @P7 - Script parameter 7
  • @P8 - Script parameter 8
  • @P9 - Script parameter 9
The script parameters (@P1 through @P9) are parsed out of the single parameter SCRIPTPARM. SCRIPTPARM is available on:
  • The STRCTLSCR (Start control script to call) command
  • The STRRCVTRN (Translate all) command
  • The CRTCNNIMP (Create connection by import) command

The total length for the command parameter is 30 characters. It may be used to represent multiple internal parameters by separating each value with a , (comma) or a . (period).

Note:

The presence of a comma anywhere in the parameter means that a comma will be used as the separator.

If there is no comma, the presence of a period anywhere in the parameter means that a period will be used as the separator.

If there is neither a comma nor a period, the parameter is treated as one.

If any of the parameters are expressed as X/hh/ -- where hh are any number of pairs of valid hexadecimal characters (0-9, A-F), and / represents any delimiter character (any character not in 0-9, A- F) –- they will be converted to the EBCDIC character equivalent before substitution. Note that the usual use of the single quote for this delimiter is permissible (as in X’A1A2A3’), but it must be doubled on the command line since the entire SCRIPTPARM string must normally be enclosed in single quotes. This feature is primarily useful to pass non-printable characters to be used as delimiters when constructing envelope segments.

For example: If CRTCNNIMP ... SCRIPTPARM(‘AAA,,BBB,c D e,123,,X?A1F6?’) is parsed, it would be:
  • @P1 - AAA
  • @P2 -
  • @P3 - BBB
  • @P4 - c D e
  • @P5 - 123
  • @P6 -
  • @P7 - ~6 (=X?A1F6?)
  • @P8 - Script parameter 8
  • @P9 - Script parameter 9
Parent topic: Control Script Modifications


Substitution Variables in Control Scripts

A list of substitutions variables for use in creating and editing control scripts.

  • @C1 - Century as 0 (zero) or 1, where 0=19 and 1=20
  • @CC - Century as CC
  • @YY - Year as YY
  • @MM - Month as MM
  • @DD - Day as DD
  • @YD - Date as YYMMDD
  • @DY - Date as DDMMYY
  • @MY - Date as MMDDYY
  • @CD - Date as CCYYMMDD
  • @JJ - Julian day of the year, from 1 to 365
  • @YJ - Date as YYDDD
  • @CJ - Date as CCYYDDD
  • @HH - Hour as HH, max value 23
  • @MI - Minute as MM, max value 59
  • @SS - Seconds as SS, max value 59
  • @HS - Time as HHMMSS
  • @TR - Total records, from 00000000 to 99999999
  • @DR - Data records, from 000000 to 999999
  • @ER - Envelope records, from 000000 to 999999
  • @JB - Job name, character, 10 positions
  • @JU - Job user profile, character, 10 positions
  • @JN - Job number, from 000000 to 999999
  • @CL - Connection log number, from 0000000 to 9999999
  • @CS - Control script code, character, 10 positions
  • @NW - Network ID, character, 15 positions
  • @NP - Network port, character, 6 positions
  • @NZ - Port description, character, 25 positions
  • @NT - Telephone number, character, 14 positions
  • @NN - Connection number (dial command), character, 25 positions
  • @NL - Line description, character, 10 positions
  • @NC - Controller description, character, 10 positions
  • @ND - Device description, character, 10 positions
  • @NM - Communications type, character, 1 position
  • @NX - Connection type, character, 1 position
  • @NR - Max record length, from 00000 to 99999
  • @NB - Max block length, from 00000 to 99999
  • @AG - Automated FTP Group
  • @TL - Text file library
  • @TF - Text file name
  • @TM - Text member prefix
  • @T1 - Login member
  • @T2 - Login get member
  • @T3 - Login list member
  • @T4 - Log list out member
  • @T5 - Cleanup in member
  • @T6 - Cleanup out member
  • @T7 - Output member
  • @RS - Remote system name
  • @RP - Remote port
  • @RD - Remote directory
  • @LD - Local directory
  • @ML - Message file library
  • @MF - Message file name
  • @M1 - List command
  • @M2 - List start
  • @M3 - List complete
  • @M4 - File transfer complete
  • @M5 - Cleanup: From message
  • @M6 - Cleanup: To message
  • @M7 - Cleanup: Rename
  • @M8 - Cleanup: Path
  • @M9 - Cleanup: Scantext
Note: If the network is *FILE or *FTPxxxx, the @NL value is Library description, @NC is File description, and @ND is Member description.
Parent topic: Control Script Modifications


Configure Network Definitions

Network definitions link a port to a script. You need to set up network definitions if you want to be able to manually run inbound FTP communications.

Note: In EEI v6.5, users can create entries in Work with network communications setup definitions by press F11=Network Communications on the Change Control Script Parameters panel.
  1. In the Cleo EEI Main Menu | 10. Communications Setup | 3. Work with network communications setup definitions panel, press F9=Create to enter create mode.
  2. Type the names of the Network ID, Script, and Port into the appropriate fields (or prompt selector lists).
  3. In the Setup code field, type a name that reflects what the port and script are used for. For example, you might name the setup code "Receive" or "Move_delete."
  4. In the Setup description field, type anything you want to further explain the setup code.
  5. Press Enter and confirm. Press F9=Change to return the Work with network communications setup definition panel to normal mode. Notice your network and definitions appear in the panel.
Parent topic: FTP Checklist


Automated FTP

Automated FTP (AFTP) provides FTP customers an automatic way to create connections only when files exist on the remote server. It also runs an automated job that polls a site in scheduled intervals. High-volume customers may be especially interested in this feature.

Overview

The AFTP network control scripts are designed to check for the existence of data prior to creating a connection; therefore eliminating:
  • Empty members in the wrapped/non-wrapped data files.
  • Empty connections in the mailroom (Unw-no EDI).

Scripts run according to groups. Groups should be set up based on how often the remote server should be polled. For example, a group can be set to poll every 15 minutes, and another to poll every hour.

For an AFTP script to execute, it must be part of a group.

As a side effect of not getting an unwrap-no EDI connection, EEI will not generate a receive error. Instead, when a job fails an error is noted in an operations message in the QSYSOPR message queue. With this in mind, you may want to alter the process to send yourself an email in the event of an error.

Note: Automated FTP is an inbound operation only. However, the *AFTP network may contain outbound scripts.

Process Summary

To use AFTP, you must:
  • Create an AFTP network, port, and control script.
  • Create a group based on polling needs.
  • Customize your script in the parameter panel.
You may also want to:
  • Set up additional scheduling.
  • Set up email notification for errors.
  • Creating an Automated FTP network, port, and control script
    You need to create a network and port to communicate with your trading partners.
  • Creating an Automated FTP group
  • Changing the Control Script Parameters
    Changing the control script parameters – which customizes the copied control script – eliminates the need to make direct changes to the control script details.
  • Panel: Work with Automated FTP group
    The Work with Automated FTP group panel allows you to immediately control group functions, as well as view jobs, scripts, and messages.
  • Further AFTP Customization
    Once you have AFTP set up, consider integrating it with other EEI functions, running multiple groups at once, or setting up email notifications.
Parent topic: Networks


Creating an Automated FTP network, port, and control script

You need to create a network and port to communicate with your trading partners.

Before you create a network and ports, be sure the libraries and files they interact with have been created on your system. For more information, see Creating Libraries and Files for FTP Communications.
  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, press F9=Create to enter create mode.
  2. Type a name for the new network. Prefix the network code name with “ *AFT”. Press Enter.
  3. The Network details panel appears. None of this panel's fields need to be filled out, so fill out any fields you choose. Press Enter and confirm.
  4. Press F9=Change to return to the Work with networks panel. Type 8=Ports in the network’s Opt field to access the Work with network ports for one network panel. If the panel is not in create mode, press F9=Create.
  5. Type a name for the port code. Press Enter.
    Note: You can name the In port anything, but it's a best practice to incorporate "IN" in the name to denote the direction.
  6. In the Change net port file panel, fill out the fields on the top half of the page.
    1. In the Description field, type a description for the In port.
    2. Unless you need to send messages to an alternate queue, leave the Message queue field as QSYSOPR.
    3. Using the Data area for override fields is optional. If you defined a data area to contain a user-defined override command string, type the library name and data area in these fields.
    4. In the Data file library field, type QTEMP.
    5. In the Data/tape file name field, type the name of the physical file created for your inbound port.
    6. In the File member field, type the name of the physical file member created for your inbound port.
    7. The File format type field specifies the type of data communication the port uses. Values are:
      • N - Non-wrapped data file/tape
      • W - Wrapped data file/tape
      Note: If the Network ID is one of the special values *FILE or *TAPE, this field describes the data format used in the disk or tape file.
    8. The Maximum record length field specifies the maximum records length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.
    9. The Maximum block length field specifics the maximum block length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.
    10. The Create file field is used when copying data to a file. It specifies whether the destination file should be created if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
      Note: If you choose Y, you must put a value in the Maximum record length field.
    11. The Add member field is used when copying data to a file. It specifies whether the destination member should be created in the file if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
    12. The Replace/add records field is used when copying data to a file. It specifies whether existing records in the destination member should be be cleared before the copy begins (replacing existing records).
      • For inbound, always type A - Add data to existing records.
      • For outbound, always type R - Replace existing records.
  7. Are you using Member control?
    • If you are using Member control, fill in the fields in the second half of the panel under Member Control. If you want to use Data member control and need help filling out these fields, see Setting Data Member Control - Inbound Single Port.
    • If you are not using Member control, don't fill in any more fields.
  8. Press Enter and confirm.
  9. In the Port code field, type a name for your Out port. Press Enter.
    Note: You can name the Out port anything, but it's a best practice to incorporate "OUT" in the name to denote the direction.
  10. In the Change net port file, fill out the fields on the top half of the page the same as you did for the In port, with the following exceptions:
    1. In the Data file library field, type the library.
    2. In the File member field, type the name of the Outbound port physical file.
    3. The Create file field is used when copying data to a file. It specifies whether the destination file should be created if it does not exist. Values are:
      • Y - Yes, create the file.
      • N - No, do not create the file.
      Note: If you choose Y, you must put a value in the Maximum record length field.
    4. The Add member field is used when copying data to a file. It specifies whether the destination member should be created in the file if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
    5. The Replace/add records field is used when copying data to a file. It specifies whether existing records in the destination member should be cleared before the copy begins (replacing existing records). For inbound, always type R - Replace existing data in records.
  11. If you are using Member control, fill in the fields in the second half of the panel under Member Control.
  12. Press Enter and confirm.
  13. After you have created the port, create a control script. Control scripts can be copied from one network to another. Cleo provides example AFTP scripts. To copy these for customization, in the Work with networks panel, type 9=Control scripts in *AFT_EXAMPLES’s Opt field. Press Enter.

  14. Copy the control script with the Script name that describes what you want to do. In the Work with all control scripts panel, type 3=Copy in a script’s Opt field. Press Enter.
    For example, If you have to clean up the FTP server, you would use the scripts named “Receive and delete” or “Receive rename and move.”
  15. In the Copy control script panel, type the name of the network in the Copy to Network ID field, and the name you want the new script code to have in the Copy to new script code field. Press Enter and confirm.
Parent topic: Automated FTP


Creating an Automated FTP group

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, type 9=Control scripts in your network’s Opt field. Press Enter.
  2. In the Work with all control scripts panel, type 2=Change in the copied control script’s Opt field. Press Enter.
  3. Fill in the control script details as you would for normal FTP. You will see the Automated FTP Group field. The default group is ONE_HOUR, which polls the FTP site in one-hour intervals.

  4. Place the cursor in the field containing ONE_HOUR and press F4 to prompt the Select Automated FTP Group panel. Create a new group by pressing F9 twice.
  5. Cleo suggests naming a new group according to the polling time interval. For example, you could create a MINUTE_15 group and an HOUR_24 group. Type the desired name in the Automated FTP Group field and press Enter.
    Note: Group names cannot start with a numeric character.
  6. The Automated FTP Group Detail panel appears. In the Schedule by DataQ Interval field, type:
    • Y if you are using the AFTP group itself to time your automatic polling.
    • N if you are using the EEI task scheduler or another external scheduler to process the group.
  7. In the Control DataQ Wait Time field, type:
    • If you are using the group to time your polling, enter the desired interval in seconds. For example, to create a 15-minute group, enter 900. The number must be a maximum of five digits.

    • If you are using a task scheduler, type 1- seconds. The 1- tells the group to “wait forever” to poll, letting the task scheduler determine polling.

    Note: About Poll Times

    Poll times specify the time between when a group ends and when it starts again.

    For example, if a group is set to poll every hour, and that group takes fifteen minutes to run, then the group actually starts every hour and fifteen minutes.

    To make a group that takes 15 minutes to run to poll every hour, set the polling interval at 45 minutes. The group will start, take 15 minutes to run, end, and start again 45 minutes later making the time between starts one hour.

  8. Press Enter and confirm. Notice that after confirming, in the Work with Automated FTP Group panel, a message appears at the bottom of the screen stating a data queue has been created. By pressing PageDown on the message, you’ll see a similar one for a message queue. EEI automatically creates these objects for the group. They are assigned the same name as the group. The batch job associated with this group also has the group name.

  9. Press F3=Exit until you return to the Select Automated FTP group panel. If you don’t see the group you created, press F5 to refresh. Select a group and press Enter.
  10. Press Enter to see the second Work with control script text details screen. Press Enter again and confirm. Press F3=Exit to return to the Work with all control scripts panel.
    Note: Groups can also be accessed from the Cleo EEI Main Menu | 1. Mailroom | 3. Start a new incoming connection panel by pressing F16.
  • Common AFTP Polling Times in Seconds
    The poll times for AFTP groups must be entered in seconds.
Parent topic: Automated FTP


Common AFTP Polling Times in Seconds

The poll times for AFTP groups must be entered in seconds.

Common poll times are:
  • 5 minutes - 300 seconds
  • 10 minutes - 600 seconds
  • 15 minutes - 900 seconds
  • 30 minutes - 1800 seconds
  • 45 minutes - 2700 seconds
  • 1 hour - 3600 seconds
  • 2 hours - 7200 seconds
  • 4 hours - 14400 seconds
  • 6 hours - 21600 seconds
  • 8 hours - 28800 seconds
  • 12 hours - 43200 seconds
  • 18 hours - 64800 seconds
  • 24 hours - 86400 seconds
  • 27 hours and 45 minutes - 99999 seconds (maximum allowed polling interval)
Parent topic: Creating an Automated FTP group


Changing the Control Script Parameters

Changing the control script parameters – which customizes the copied control script – eliminates the need to make direct changes to the control script details.

  1. In the Work with all control scripts panel, type 7=Parameters in the script’s Opt field. Press Enter.
  2. The Change Control Script Parameters panel appears. If they need to be changed, change the Text file library and Text file name.
    Note: EXT_FTP is the sample file library for the message file and text source. Also, the text file name must begin with "QTXT".
  3. Change the 7-character member prefix. You only need to type it once – in the Member prefix field – EEI automatically populates the individual fields and creates the members in the QTXTSRC file when the changes are confirmed.

    Note: Any characters not filled in Member prefix field will be automatically filled in with underscores.
    Note: You can toggle between views to see how each field corresponds to the control script parameters by pressing F10.
  4. Specify the Remote system name, Remote directory, and Local directory. If you are using SSL, specify the Remote port.
    Note: You can view created members by pressing F7. Members used on the BATCHFTP command as input (In) members can be created and modified using F7, but Out members can only be displayed. The exception to this rule is In member CI, it is not editable because it is derived by FTPBUILD.

    With this in mind, it is recommended you create all members outside the system.

  5. Press PageDown to reach the second Change Control Script Parameters panel.
  6. Change the message for each function that does not match the syntax of the remote FTP server. Pressing F4 in the first field of each message option brings up a searchable list of message IDs to choose.
    Note: If you need to change the Message file name, it must start with "EXUSR".

    New message file entries can be created by pressing F14=WRKMSGD
  7. Press Enter and confirm.
  8. Set up the network definitions.
    For detailed instructions on setting up network definitions, see Setting Network Definitions in the User Manual.
Parent topic: Automated FTP


Panel: Work with Automated FTP group

The Work with Automated FTP group panel allows you to immediately control group functions, as well as view jobs, scripts, and messages.

In the Cleo EEI Main Menu | 1. Mailroom | 3. Start a new incoming connection | F16= Work with Automated FTP Group panel:

  • 1=Start Group starts a group, setting polling and waiting in intervals in motion. The associated command is STRAFTGRP (Start AFTP Group).
  • 7=Stop Group stops a group. The associated command is ENDAFTGRP (End AFTP Group).
  • 9=Poll Immediately polls immediately and resets the wait-time interval for polling to occur. If a group takes five minutes to poll, has a 55-minute interval, and starts at 1 p.m., the next poll would take place at 2 p.m. However, if immediate polling is done at 1:30 p.m., the next automatic poll will start at 2:30 p.m. (instead of 2 p.m.). The associated command is POLAFTGRP (Poll AFTP Group).
  • J=Jobs displays the job.
  • L=List Scripts lists all scripts associated with a group. You can maintain a script in this list by positioning the cursor on a script and pressing F9=Change.
  • M=Message Queue displays the message queue.
Parent topic: Automated FTP


Further AFTP Customization

Once you have AFTP set up, consider integrating it with other EEI functions, running multiple groups at once, or setting up email notifications.

Multiple jobs

Multiple AFTP polling jobs can run concurrently. To ensure that one job won’t retrieve another job’s data, configure the port to use the QTEMP library.

Pipelining

AFTP is also easily interfaced with pipelining by replacing the CRTCNNIMP command with the PIPCNNIMP command in the control script.

Further customization in Task Lists

AFTP polling can be further customized with external scheduling using EEI’s Task List. To do this, use the commands STRAFTGRP, POLAFTGRP, and ENDAFTGRP, as well as specify the AFTP group name in the Work with task definition panel within Cleo EEI Main Menu | 2. Scheduling System.

Notifications

In previous versions of EEI, a connection was made whether there were files on the remote server or not. In AFTP, no connection is made when there is nothing to retrieve. Because there is no connection, if the control script errors, there will be no receive error.

EEI is shipped with a customizable exit point – EPAFTERRC – which is automatically executed to send notification if the polling job errors. By default, EPAFTERRC sends a message to the QSYSOPR message queue. Because you must check QSYSOPR to know the errors exist, you may want to customize the program to use EXENOTE to send you an email when an error occurs.

Parent topic: Automated FTP


Setting up a *FILE Port

To use EEI's *FILE network to send wrapped or non-wrapped data to a physical file, you must set up a port directing data to that file.

  1. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, type 8=Ports in *FILE's Opt field. Press Enter.
  2. In the Work with network ports for one network panel, press F9=Create to enter create mode.
  3. In the Port code field, type a name for the port. Press Enter.

    Name your port TRNnn, with nn being your training number.

  4. In the Change net port file panel, fill out the fields on the top half of the page.
    1. In the Description field, type a description for the port.

      Type TRAINnn Port.

    2. In the Message queue field, use QSYSOPR or specify a different queue.
    3. Using the Data area for override fields are optional. If you defined a data area to contain a user-defined override command string, type the library name and data area in these fields.
    4. In the Data file library field, type the name of the library where the file will exist.

      Type TRAINnn.

    5. In the Data/tape file name field, type the name of the physical file where data will be sent.

      Type OUT.

    6. In the File member field, type the name of the member where the data will be sent.

      Type OUT.

    7. The File format type field specifies the type of data communication the port uses. Values are:
      • N - Non-wrapped data file/tape
      • W - Wrapped data file/tape

      Choose N (Non-wrapped).

      Note: If the Network ID is one of the special values *FILE or *TAPE, this field describes the data format used in the disk or tape file.
    8. The Maximum record length field specifies the maximum records length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.

      Type 256.

    9. The Maximum block length field specifies the maximum block length used to send data to a port. The most common value is 256.
      Note: The receive record length is listed by the system limits.

      Leave this field blank.

    10. The Create file field is used when copying data to a file. It specifies whether the destination file should be created if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file
      Note: If you choose Y, you must put a value in the Maximum record length field.

      Choose Y.

    11. The Add member field is used when copying data to a file. It specifies whether the destination member should be created in the file if it does not exist. Values are:
      • Y - Yes, create the file
      • N - No, do not create the file

      Choose Y.

    12. The Replace/add records field is used when copying data to a file. It specifies whether existing records in the destination member should be cleared before the copy begins (replacing existing records). For inbound ports, always type A - Add data to existing records. For outbound ports, always type R - Replace existing records.
  5. Are you using member control?
    • If you are using Member control, fill in the fields in the second half of the panel under Member Control. If you want to use Data member control and need help filling out these fields, see Setting Data Member Control on a Single Port
    • If you are not using Member control, don't fill in any more fields.
  6. Press Enter and confirm.
Parent topic: Networks


Data Member Control

Data member control keeps the number of members down by grouping connections into a single member.

Every connection in EEI creates a member, and IBM has a limitation on how many members can be contained in a file. Once you reach that limit, you can no longer create any members on your system. In other words, if you hit the limit, you cannot communicate with your trading partners.

If you are a low-volume user and purge normally, you likely will not run into this problem. If you are a high-volume user, data member control helps to ensure you will not hit the limit between purges.

Data member control lets you control the number of connections and application data logs in a member.

EEI's data member control configures the number of connections placed in a specific member of a port file or application data log file when generating data.

For example, when not using data member control, 3,000 connections per day would create 3,000 members. However, if using data member control to group 100 connections into one member, 3,000 connections would create 30 members.

The more data logs you place in a single member, the fewer members you create.

You can configure the connection limit per member by job, user, member age, bytes of data, number of records, or number of connections.

Note: You cannot purge a data member until it is empty. How long a data member exists depends on how long you intend to keep data and logs in EEI, which is configured in the Work with trading partner message class options panel.

Data Member Control by Port

In EEI, every time you receive inbound data or wrap outbound data, it passes through a port and creates a connection in the port file.

Data member control on a port configures the number of connections placed in a specific member during communications.

EEI provides options for using data member control when creating a new port on the Change net port file panel. You can see the set up for your existing ports from this panel by pressing F11=Member control.

If you need to configure multiple existing ports simultaneously, go to the Cleo EEI Main Menu Main Menu | 8. System Configuration | 17. Work with data member control - communications panel.

Work with Data Member Control by File Set

In EEI, you can generate data without sending it to a trading partner. Although the data has not been sent, a log is created and a member along with it, unless you have Data member control set up to place multiple logs in a single member.

Data member control configures the number of application data logs placed in a specific member during outbound data generation. The more data logs you place in a single member, the fewer members you create.

Because unsent data doesn't pass through the port, application data log member control cannot be configured on a port.

It is configured by application file set, in the Cleo EEI Main Menu | 8. System Configuration | 18. Work with data member control - application data panel.

  • Setting Data Member Control on a Single Port
    Using data member control tells EEI to consolidate multiple connections in a single member when you receive inbound data or wrap outbound data. It also sets the guideline to tell EEI when to create a new member.
  • Setting Data Member Control on Multiple Ports
    Using data member control tells EEI to consolidate multiple connections in a single member when you receive inbound data or wrap outbound data. It also sets the guideline to tell EEI when to create a new member.
  • Setting Data Member Control by Application File Set
    Using data member control on a file set tells EEI to consolidate multiple logs in a single member during outbound data generation. It also sets the guideline to tell EEI when to create a new member.


Setting Data Member Control on a Single Port

Using data member control tells EEI to consolidate multiple connections in a single member when you receive inbound data or wrap outbound data. It also sets the guideline to tell EEI when to create a new member.

In the Change net port file panel, the area beneath - - - - MEMBER CONTROL - - - - controls data member control settings. Fill in the fields according to your needs.
Note: You'll encounter this panel whenever you create a port. You can also access it in Cleo EEI Main Menu | 4. Trading Partners and Networks | 8. Work with network ports by typing 2=Change on an inbound port's Opt field.
  1. The Data control status field specifies the status of the corresponding data control record. Values are:
    • A - Active. The status must be active for the data control record to function.
    • I - Inactive.
  2. The Data control request field tells EEI to start a new member with the next session, even if other data member specifications would place the next connection in an existing member. Values are:
    • N - Normal rules next request. EEI uses the other fields to determine when to make a new member.
    • Y - New member next request. EEI creates a new member despite other specifications.
    Note: If you change this field to Y, it will be automatically change back to N after the new member is created.
  3. The New member per job name fields specifies whether a member will only be shared by jobs with the same job name, independent of other specifications. Values are:
    • N - No, do not use this specification
    • Y - Yes, group connections that share the same job name in a single member
  4. The New member per job number field specifies whether a member will only be shared by jobs with the same job number, independent of other specifications. Since the operating system assigns a unique number to each job, only sessions run in the same OS job will share a member. Values are:
    • N - No, do not use this specification
    • Y - Yes, group connections that share the same job number in a single member
  5. The New member per job user field specifies whether a member will only be shared by jobs with the same job username, independent of other specifications.
    • N - No, do not use this specification
    • Y - Yes, group connections that share the same job username
  6. The Max data member age field specifies the maximum time a data member will remain active. Values are:
    • 0:00:00 (BLANK) - No limit
    • (A time in HHMMSS format) - When EEI requests a member, if the active member has existed longer than this value, a new member will be created.
  7. The Max wrapped data space field specifies the maximum number of bytes of actual wrapped data allowed in a single active member. Values include:
    • 0 (Zero) or (BLANK) - No limit
    • (A number) - When EEI requests a member, if the active member has reached this number of bytes, a new member will be created.
  8. The Max nonwrapped records field specifies the maximum number of non-wrapped data records allowed in a single active member. Values include:
    • 0 (Zero) or (BLANK) - No limit
    • (A number) - When EEI requests a non-wrapped member, if the active member has reached this number of records, a new member will be created.
  9. The Max connections per member field specifies the maximum number of connections that can append data to a single active member. Values are:
    • 0 (Zero) or (BLANK) - No limit
    • (A number) - When EEI requests an application member, if the active member has reached this number of connections, a new member will be created.
Parent topic: Data Member Control


Setting Data Member Control on Multiple Ports

Using data member control tells EEI to consolidate multiple connections in a single member when you receive inbound data or wrap outbound data. It also sets the guideline to tell EEI when to create a new member.

  1. In the Cleo EEI Main Menu | 8. System Configuration | 17. Work with data member control - communications panel, type 2=Change on the port's Opt field. Press Enter.
  2. The Change Data control - communications panel appears. Fill it in according to your needs.
    1. The Data control status field specifies the status of the corresponding data control record. Values are:
      • A - Active. The status must be active for the data control record to function.
      • I - Inactive.
    2. The Data control request field tells EEI to start a new member with the next session, even if other data member specifications would place the next connection in an existing member. Values are:
      • N - Normal rules next request. EEI uses the other fields to determine when to make a new member.
      • Y - New member next request. EEI creates a new member despite other specifications.
      Note: If you change this field to Y, it will be automatically change back to N after the new member is created.
    3. The New member per job name fields specifies whether a member will only be shared by jobs with the same job name, independent of other specifications. Values are:
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job name in a single member
    4. The New member per job number field specifies whether a member will only be shared by jobs with the same job number, independent of other specifications. Since the operating system assigns a unique number to each job, only sessions run in the same OS job will share a member. Values are:
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job number in a single member
    5. The New member per job user field specifies whether a member will only be shared by jobs with the same job username, independent of other specifications.
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job username
    6. The Max data member age field specifies the maximum time a data member will remain active. Values are:
      • 0:00:00 (BLANK) - No limit
      • (A time in HHMMSS format) - When EEI requests a member, if the active member has existed longer than this value, a new member will be created.
    7. The Max wrapped data space field specifies the maximum number of bytes of actual wrapped data allowed in a single active member. Values include:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests a member, if the active member has reached this number of bytes, a new member will be created.
    8. The Max nonwrapped records field specifies the maximum number of non-wrapped data records allowed in a single active member. Values include:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests a non-wrapped member, if the active member has reached this number of records, a new member will be created.
    9. The Max connections per member field specifies the maximum number of connections that can append data to a single active member. Values are:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests an application member, if the active member has reached this number of connections, a new member will be created.
  3. Press Enter and confirm. Notice your port's specifications appear in the Work with Data control - communications panel.
    Note: You can type 2=Change in multiple ports' Opt fields to quickly move through each Change Data control - communications panel sequentially.
Parent topic: Data Member Control


Setting Data Member Control by Application File Set

Using data member control on a file set tells EEI to consolidate multiple logs in a single member during outbound data generation. It also sets the guideline to tell EEI when to create a new member.

  1. In the Cleo EEI Main Menu | 8. System Configuration | 18. Work with data member control - application data panel, press F9=Create to enter create mode.
  2. In the File set field, either type the name of the file set or press F4 to prompt a list of file sets. Press Enter.
  3. The Change Data control - application panel appears. Fill it in according to your needs.
    1. The Data control status field specifies the status of the corresponding data control record. Values are:
      • A - Active. The status must be active for the data control record to function.
      • I - Inactive.
    2. The Data control request field tells EEI to start a new member with the next session, even if other data member specifications would place the next connection in an existing member. Values are:
      • N - Normal rules next request. EEI uses the other fields to determine when to make a new member.
      • Y - New member next request. EEI creates a new member despite other specifications.
      Note: If you change this field to Y, it will be automatically change back to N after the new member is created.
    3. The New member per job name fields specifies whether a member will only be shared by jobs with the same job name, independent of other specifications. Values are:
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job name in a single member
    4. The New member per job number field specifies whether a member will only be shared by jobs with the same job number, independent of other specifications. Since the operating system assigns a unique number to each job, only sessions run in the same OS job will share a member. Values are:
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job number in a single member
    5. The New member per job user field specifies whether a member will only be shared by jobs with the same job username, independent of other specifications.
      • N - No, do not use this specification
      • Y - Yes, group connections that share the same job username
    6. The Max data member age field specifies the maximum time a data member will remain active. Values are:
      • 0:00:00 (BLANK) - No limit
      • (A time in HHMMSS format) - When EEI requests a member, if the active member has existed longer than this value, a new member will be created.
    7. The Max wrapped data space field specifies the maximum number of bytes of actual wrapped data allowed in a single active member. Values include:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests a member, if the active member has reached this number of bytes, a new member will be created.
    8. The Max nonwrapped records field specifies the maximum number of non-wrapped data records allowed in a single active member. Values include:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests a non-wrapped member, if the active member has reached this number of records, a new member will be created.
    9. The Max application sessions per member field specifies the maximum number of application data sessions that can append data to a single active member. Values are:
      • 0 (Zero) or (BLANK) - No limit
      • (A number) - When EEI requests an application member, if the active member has reached this number of connections, a new member will be created.
  4. Press Enter and confirm. Press F9=Change to return the Work with data control - application panel to normal mode. Notice your port's specifications appear in the panel.
    Note: If you want to change multiple file sets' data control settings, you can type 2=Change in multiple file sets' Opt fields to quickly move through each Change Data control - application panel consecutively.
Parent topic: Data Member Control


The Mailroom

In the Mailroom, you can execute inbound and outbound processing and monitor daily activities. The Mailroom is where incoming “mail” is received, unwrapped, and translated; and where outgoing mail is generated, enveloped, wrapped, and sent to your trading partners.

Once your message classes, trading partners, and network are set up, most of your time using EEI will be in the Mailroom. It's where you run data through the translator.

If your sending and receiving is automated (as it likely will be), the Mailroom is where you go when there's a snag in sending or receiving data to get the ball rolling again.

In the Mailroom, you can:
  • Send and receive data
  • Monitor mailroom activity
  • View logs, messages, and data
  • Generate functional acknowledgments
  • View and troubleshoot different error types
  • Work with Connections panel
    The Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel displays records from the Log of Connection file, which contains detailed information on each connection. From this panel, you can view, translate/generate, and wrap data, among many other functions.
  • Log Records
    EEI logs records containing information about the processes it runs. The log records, as well as being a reference to when and how translation occurred, are especially useful for troubleshooting errors, should they occur.
  • Inbound Processing
    During inbound processing, EDI data from your trading partner is processed through a message class and written to your application file fields. There are three stages of inbound processing: The connection, unwrapping, and translation.
  • Outbound Processing
    During outbound processing, data from your application file fields is processed through a message class to become EDI data. There are four stages of outbound processing: Generate (translate), Envelope, Wrap, and Send.
  • Viewing Data
    There are multiple ways to view EDI data in EEI. Besides viewing the data itself, some methods organize the data differently. Choose the method that you find most useful.
  • DSPMSGREF - Display Messages by Reference Fields
    The display message by reference fields command allows users to display logs of messages in EEI using search terms. Users with special authorization can also re-translate messages from this panel.
  • Troubleshooting


Work with Connections panel

The Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel displays records from the Log of Connection file, which contains detailed information on each connection. From this panel, you can view, translate/generate, and wrap data, among many other functions.

Positioner and Selector Fields

Since the Log of Connection file can contain many records, the positioner and selector fields help limit the records displayed. These are the blank fields along the top of the panel, and each blank field corresponds to the column beneath it.

The positioner field for Start of call uses the connection's start date and time to position the display. Enter the date and time as:
  • MMDDYYHHMM - The entry is formatted to MM/DD/YY HH:MM
  • DDMMYY - The entry is formatted to MM/DD/YY 00:00

All connections with a Start of call greater than or equal to the formatted value will be displayed.

When called from a menu, the Start of call positioner is set to the current system date/time minus an offset value from the EEI system parameter EXWRKCNNDY. You can use the CHGDTAARA (Change Data Area) command to change the number of days, making the default display all connections within N days of the current date/time.

The Min column shows the number of minutes a call lasted. Its selector field displays connections with a call duration equal to or greater than the number of minutes entered.

The Connection Log Number is a key to the Log of Connection file that contains details on each connection.

A connection is any communications session with a public or private network.

Options and Functions

In the Work with connections panel, you can:
  • Display EDI data
  • Force a status change on a connection
  • Delete data and logs
  • Drill further down into the connection to work with interchanges, functional groups, and messages
  • Print connection information
  • Print/produce a message queue report
  • Add text to the message queue (ideal for offering an explanation of a situation for future reference)
  • Display connection details (such as start, end, and duration of call, job name and user, etc.)
  • Save connection data and logs
  • Save catalogs for a connection
  • Abort the reception of data
  • Display job information for a connection (provided the job is still known to the system)
  • Display the message file for a connection
  • Purge data
  • Unwrap data (and re-unwrap data)
  • Translate inbound data (and retranslate data)
Parent topic: The Mailroom


Log Records

EEI logs records containing information about the processes it runs. The log records, as well as being a reference to when and how translation occurred, are especially useful for troubleshooting errors, should they occur.

EEI maintains a log record for each:
  • Network connection
  • Interchange within a connection
  • Functional group within an interchange
  • Message within a functional group

Each of these levels has its own message queue, containing information about processing details and error messages (if errors occur).

A log record is also maintained for each batch of application data that EEI has:
  • Acquired in preparation for sending to a trading partner.
  • Created during translation of messages received from trading partners.
Parent topic: The Mailroom


Inbound Processing

During inbound processing, EDI data from your trading partner is processed through a message class and written to your application file fields. There are three stages of inbound processing: The connection, unwrapping, and translation.

Connection

A connection is a communications session with a network.

In the connection stage, you start the process by creating a connection to import data into EEI. This connection could be direct with your trading partner or through a VAN.

In EEI, control scripts are used to start network connection. They can be started through a scheduler or by using automated polling, or manually in the Start incoming connections panel or by executing a command.

The inbound commands are:
  • STRCTLSCR(B) - Start control script to call. This command starts a *FTP communications session that executes a control script. It can be run as a batch job as STRCTLSCRB or interactively as STRCTLSCR.
  • CRTCNNIMP - Create connection by import. This command creates a connection in the Mailroom containing data received during communications. It can also be executed manually over a physical file. This command creates a connection, unwraps it, and translates it if specified.
If using AFTP, the command to start polling a remote server is:
  • STRAFTGRP - Polls all members of a group immediately, and restarts the polling interval.

Unwrapping

Unwrapping is like reading the address on an envelope then opening it. Unwrapping is the process by which EEI identifies the trading partner, message ID, functional group, and message class to use during inbound translation.

There are no commands to specifically unwrap data. The EEI commands that start control scripts either automatically unwrap data or give you the option to unwrap data.

If data needs to be re-unwrapped or if data failed to unwrap the first time, unwrapping can be done manually in the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel, or at the interchange level Work with all interchanges by trading partner. In these panels, you must press F11 to make the U=(re)Unwrap option appear.

During the unwrapping process, EEI examines data at four levels:

Level | Corresponding Elements
Trading Partner | ISA05, ISA06, ISA07, ISA08, ISA15
Functional Group | GS01
Message ID | ST01
Message Class | ISA01, ISA02, ISA03, ISA04, GS02, GS03, GS08
Note: After the unwrapping process, EEI checks for duplicates. First, EEI checks for duplicate control numbers. Then EEI does Duplicate Value Checking (if it is enabled). If any duplicates are found, the interchange's Receive status will be "Duplicate."

Translation

Translation is the process by which EDI data from your trading partner is processed through a message class and written to your application files.

Translation can occur at:
  • The network connection level
  • The interchange level
  • The functional group level
  • The message level

Each level is nested in the preceding level. The lowest three levels are the result of EDI envelopes.

When using the CRTCNNIMP command to start a connection, you have the option to automatically translate any received data.

There are also two EEI commands used to translate data:
  • STRTRNCNN(B) (B) - Start translation of connections
  • SRTTRNMSG(B) - Start translation of messages

If you want to translate data manually or if data failed to translate, you can translate manually in the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel, or at any other message level (interchange, group, or message level). In these panels, if the T=Translate or R=Re-translate options are not visible, press F11 to make them appear.

  • Starting Incoming Connections
    Manually start a connection in the Start incoming connections panel.
  • Using STRCTLSCR(B) - Start Control Script to Call
    Using the STRCTLSCR(B) command starts a communications session based on a network and script.
  • Using STRTRNCNN(B) - Start Translation of Connections
    The STRTRNCNN(B) (Start translation of connections) command searches for Log of Connection records and translates them. The command also gives you the option to run or submit a user program after translation.
  • Using CRTCNNIMP - Create Connection by Import
    The CRTCNNIMP command starts a communication session. Using the command imports EDI data into EEI from a system database file.
  • Receive Statuses
    The Receive status field shows the status of an inbound connection, interchange, group, or message. It can be an in-process message (like Unwrapping) which shows the current status of a connection, or a function status message, which shows the status of a connection since the last completed operation (like Unwrapped).
  • Unwrapping an Inbound Connection - Manually
    Whether you're manually running data through the translator for testing or trouble-shooting a connection and ready to try again, sometimes you have to unwrap or re-unwrap data in the Mailroom.
  • Translating an Inbound Connection - Manually
    Whether you're manually running data through the translator for testing or troubleshooting a connection and ready to try again, sometimes you have to translate or re-translate data in the Mailroom.
Parent topic: The Mailroom


Starting Incoming Connections

Manually start a connection in the Start incoming connections panel.

You must have network definitions set up to start a connection. For more information, see Configure Network Definitions.
Connections will be submitted to batch only. Cleo recommends the batch method be used so the workstation is available during the connection.
In the Start incoming connections panel, type 1=Select to receive on a network's Opt field. Press Enter and confirm.
Note: If you select multiple networks, a separate job will be submitted for each task selected, using the job description for EXTOL communication jobs EXCMNJOBD.
Parent topic: Inbound Processing


Using STRCTLSCR(B) - Start Control Script to Call

Using the STRCTLSCR(B) command starts a communications session based on a network and script.

  1. On a command line, type STRCTLSCRB if running a batch job, or STRCTLSCR if running an interactive job. Press Enter.
  2. The Start control script to call panel appears.
    Note: Only the first four fields (Network port code, Control script name, Script parameter code, and Network ID code) are mandatory. All other fields are optional.
    1. In the Network port code field, type the name of the port you want to use.
    2. In the Control script name field, type the name of the control script you want to use to retrieve data.
    3. In the Script parameter string field, specify the runtime value used by the control script.
      Note: If you are not using a parameter string, you must type ' ' (single quote(space)single quote) or (apostrophe(space)apostrophe) in the field.
      Note: For more information on parameter strings, see Control Script Modifications and Substitution Variables Rules and Tips.
    4. In the Network ID code field, type the name of the network to which you want to connect.
    5. In the Line description name field, type the name of the library that houses the port file. Values are:
      • (Library name) - The library that houses the port file.
      • *NONE - If using a provided network like IBM in, this is a valid option. If using FTP or *FILE, this is not a valid value.
      • *LIBL - EEI will search the library list for the port file.
      Note: If using FTP, you do not need values in the Line description name, Controller description name, and Device description name fields. EEI will automatically use the specified port's library, file, and member.
    6. In the Controller description name field, type the port file name.
    7. In the Device description name field, type the network port file member name. Values are:
      • *NONE - No device is used
      • *FIRST - Use the first file member
      • (The name of a specific member) - Use this port file member
    8. The Connection log number field specifies the key to the log of connection file that contains details on a connection. Values are:
      • *GEN - For inbound, tells EEI to generate a log number
      • (A specific connection log number) - For outbound, the log number used to identify the data.
    9. The Send to program message queue: fields tells EEI to send a message to a call message queue. The message queue can be the *EXT external queue or a program or qualified procedure's message queue. The Send to program message queue: Relationship field specifies whether the message queue is associated with the program or procedure identified by the second value, or if the queue is associated with the caller of the program or procedure. Values are:
      • *EXT - The message is sent to the job's external message queue

      • *PRV - The message is sent to the message queue of the program or procedure that called the Send to program message queue: Program field

        However, if the message queue immediately previous to the one identified by the second field is for an Integrated Language Environment (ILE) program entry procedure (PEP), the message is sent to the message queue that precedes the PEP message queue in the stack.

      • *SAME - The message is sent to the program specified in the Send to program message queue: Program field
    10. The Send to program message queue: Program field specifies the program associated with the message queue specified in the Send to program message queue: Relationship field. Values are:
      • * - Identifies the program running this command
      • (The name of the program or procedure used) - Use this program's message queue. (Use when the Send to program message queue: Relationship field's value is *SAME)
    11. The Send to non-program message queue field tells EEI to send a message to one or more non-program message queues. Values are:
      • *GEN - An internally generated name will be used
      • (Message queue name) - Send the message to a specific queue.
    12. The Send to non-program message queue Library field specifies the library where your message queue resides. Values are:
      • (library name) - A specific library where the message queue resides
      • *LIBL - All libraries in the job's library list are searched until the first match for the message queue's name is found
      • *CURLIB - The job's current library is searched for the message queue. If no entry exists in the library, QGPL is used.
    13. The Default message type field specifies the message type to use. Values are:
      • *STATUS - The message will describe the status of work performed by the sending program
      • *INFO - The message is sent as an informational message
      • *COMP - A completion message indicates the status of the work that is successfully performed
      • *DIAG - The message will provide diagnostic information about errors detected by this program
      • *NOTIFY - The message notifies you of a condition that needs corrective action before the sending program can continue. A reply message is sent back to the sending program.
      • *ESCAPE - An escape message describes an irrecoverable error condition. The sending program stops.
      Note: For more information about message types, see your IBM system manual.
    14. The LR control on return field specifies how to handle program resources when ending. Values are:
      • *LR - Reclaim all resources (Can do other processing plus LR)
      • *NLR - Do not reclaim resources
      • *LRLOG - Reclaim all resources and perform logging
      • *LRONLY - Reclaim all resources (No other processing, only LR)
  3. Press Enter and confirm.
Parent topic: Inbound Processing


Using STRTRNCNN(B) - Start Translation of Connections

The STRTRNCNN(B) (Start translation of connections) command searches for Log of Connection records and translates them. The command also gives you the option to run or submit a user program after translation.

To be eligible for translation, a connection must have a status of Unwrapped or Mixed (with at least one message Unwrapped).

  1. On a command line, type STRTRNCNNB if you are running a batch job or STRTRNCNN if you are running the job interactively.
    • If you want to translate all data eligible for translation on your system, press Enter. You are done using the command. Do not proceed further.
    • If you want to translate only specific data eligible for translation, press F4 to prompt the Start translate of connections panel. Proceed to the next step.
  2. The Start translate of connections panel appears.
    1. The Start of connection period: fields select connections for translation within a specific time frame. The Beginning time field specifies the time to begin including connections. Values are:
      • (A time in HHMMSS format) - Translate connections created on or after this time
      • *AVAIL - Translate connections created at any time
    2. The Beginning date field specifies the date to begin including connections. Values are:
      • (A date in MMDDYY format) - Translate connections created on or after this date
      • *CURRENT - Translate all connections made today (Must be entered in the Ending date field, too)
      • *BEGIN - Translate all connections starting from the earliest date for which a connection was created
    3. The Ending time field specifies the time to stop including connections. Values are:
      • (A time in HHMMSS format) - Translate connections created on or before this time
      • *AVAIL - Translate connections created at any time
    4. The Ending date field specifies the date to stop including connections. Values are:
      • (A date in MMDDYY format) - Translate connections created on or before this date
      • *CURRENT - Translate all connections made today (Must be entered in the Beginning date field, too)
      • *END - Translate all connections from (the value specified in the Beginning date field) until the latest date on which a connection was created
    5. The Select by connection status values are:
      • *UNWRAPPED - Translate only connections with an Unwrapped status
      • *MIXED - Translate only connections with a Mixed status
      • *BOTH - Translate connections with Unwrapped and Mixed status
    6. The Select by Network code values are:
      • (A network name) - Translate only connections brought in through this network
      • *ALL - Translate messages brought in through all networks
    7. The Select by Network port code values are:
      • (A port name) - Translate only connections brought in through this port
      • *ALL - Translate messages brought in through all ports
    8. The Select by Control script values are:
      • (A control script name) - Translate only connections brought in by this control script
      • *ALL - Translate messages brought in through all control scripts
    9. The Call program field specifies a user program (with library name) to call if the condition in the Call program on condition (SBMCND) parameter is satisfied. Values are:
      • (Call program name) - The user program to call if conditions are met
      • *NONE - If you are not calling a user program, leave the field *NONE
    10. The Call program Library field specifies in which library the call program resides. Values are:
      • (Library name) - The user program resides in this library
      • *LIBL - EEI will search the job library list for the user program
      • *NONE - If you are not calling a user program, leave the field *NONE
    11. The Job description for submit field specifies a job description (with library name) under which the user program runs. Values are:
      • (Job description name) - The job description under which the user program is run.
      • *NOSUBMIT - The user program in the in the Call program field is called directly instead of submitted using job description
      • *TRNJOBD - The Cleo-supplied translation job description is used to run the user job
    12. The Library field, specify the library to use with the Job description for submit field.
      • (Library name) - The job description resides in this library
      • *LIBL - EEI will search the library list for the user program
    13. The Call program on condition field specifies the conditions that must be satisfied to execute a call to the program specified in the Call program field. Values include:
      • *TRN - After the connection (created by this command) translates all data, the specified program is called
      • *ALL - Whenever this command is executed (regardless of data status), the specified program is called
  3. Press Enter and confirm.
Parent topic: Inbound Processing


Using CRTCNNIMP - Create Connection by Import

The CRTCNNIMP command starts a communication session. Using the command imports EDI data into EEI from a system database file.

The only required fields when using this command are Overriding to database file and Library.

Cleo recommends you type values to identify your connection in the Network port code and Control script fields for inbound translation. These fields are not used during inbound, so you can type anything in them to more easily identify with which connections you are working.

  1. On a command line, type CRTCNNIMP. Press Enter or F4.
  2. Fill out the Create connection by import (CRTCNNIMP) panel.
    1. The Overriding to database file field specifies the database file that contains the data to be imported into EEI. Values are:
      • (Name) - The name of the file
    2. The Library field specifies the library used to locate the save file. Values are:
      • (Name) - Search this specific library
      • *LIBL - Use the library list to locate the save file
      • *CURLIB - The current library for the job is used to locate the save file. If no current library entry exists in the library list, EEI uses QGPL.
    3. The Overriding to member field specifies the database file member. Values are:
      • (Name) - Use this specific database file member
      • *FIRST - Use the first member of the database file
      • *LAST - Use the last member of the database file
      • *ALL - Process all database file members in order
    4. The Copy from record number field specifies the relative record number of the first record in the file and/or member to be copied. Values are:
      • (Number) - Start copying at this record number
      • *START - Start copying at the first record
    5. The Copy to record number field specifies the relative record number of the last record in the file and/or member to be copied. Values are:
      • (Number) - Start copying at this record number
      • *END - Copy records until an end of file condition is indicated
    6. The Copy from character position field specifies the character position within each record from which to start copying. Values are:
      • (Number) - Start copying at this position in the record
      • *START - Start copying at position 1 in the record
    7. The Copy to character position field specifies the character position within each record on which to end copying. Values are:
      • (Number) - This character is the final character to by copied
      • *END - Copy to the end of the record
    8. The Direction code field specifies whether this data is processed as "received" or "send" EDI data. Values are:
      • *SEND - Process as "send." A communications session can optionally be started.
      • *RECEIVE - Process as "received." Data will be unwrapped, and can optionally be translated.
  3. If you would like to specify the translation and data format settings, press F10=Additional parameters. If not, skip this step.
    1. The Translate received data field specifies (for a direction code of *RECEIVE) whether to translate the data. Values are:
      • *NO - Do not translate
      • *IMMED - Translate immediately. This may require the current job's library list be modified
      • *SUBMIT - The unwrapped data will be schedule for translation in a batch job, which will be submitted by the current job using the default translation job description
      Note: If you choose *IMMED, you may need to modify the current job's library list before executing the CRTCNNIMP command.
    2. The Data format field specifies the database file's format. Values are:
      • *WRAP - The data is in wrapped format
      • *UNWRAP - The data is in a non-wrapped format (one EDI segment per record)
      • *CONTINUE - The data is in a non-wrapped format and may have continuation records (one or more records per EDI segment)
      • *SEARCH - The command processing program will determine the data format
  4. If you would like to specify parameters to further control the data or limit what is translated, press F24=More keys then F9=All parameters. If not, skip this step.
    Additional parameters include:
    • Start send connection
    • Data format
    • Segment delimiter control
    • Default segment delimiter
    • Continuation test control
    • Continuation string position
    • Continuation string length
    • Continuation character string (HEX)
    • Unwrap local connection (sent)
    • Reverse sender/receiver IDs (sent)
    • Time period for connection: Start time and date
    • Time period for connection: End time and date
    • Call length (HHHMMSS)
    • Network port code
    • Control script name
    • Script parameter string
    • Network ID code
    • Telephone number for log
    • Connection number (dial command)
    • Line description name
    • Create interchange envelopes
    • Create group envelopes
    • Envelope class code
    • Trading partner code
    • Functional group code
    • Message ID
    • Message class
    • Connection log number
    • Update log script, port, etc.
    • Import with Control script
    • Import with script parameters
  5. Press Enter to submit the job.
Parent topic: Inbound Processing


Receive Statuses

The Receive status field shows the status of an inbound connection, interchange, group, or message. It can be an in-process message (like Unwrapping) which shows the current status of a connection, or a function status message, which shows the status of a connection since the last completed operation (like Unwrapped).

Some of the statuses indicate a job was successfully completed. Others indicate the job encountered a problem and an error must be fixed.

Added - The connection was successfully received, unwrapped, translated, and added to your application files.

Adding appl - EEI is currently adding data to your application files.

Delete ALL - The connection is marked for deletion.

Delete data - The data is marked for deletion.

Duplicate - This connection is a duplicate of a previously received connection.

Error/Mixed - Select any error or Mixed.

Mark:purge - The connection is marked for purging.

Mixed - There is an error in a lower level.

Mixed in pr - There is an error in a lower level, and translation is still in process.

Sched/trans - The connection is scheduled for translation.

Rcv error - Receive error - An error occurred while retrieving data.

Received - The data was successfully received.

Receiving - EEI is currently receiving data.

Splitting - EEI is currently translating split files.

Trans err - The data was successfully received and unwrapped, but an error occurred during translation.

Translated - The data was successfully received, unwrapped, and translated.

Translating - EEI is currently translating the data.

Unw-no EDI - The connection was unwrapped, but contained no EDI data.

Unwrap err - The data was successfully received, but an error occurred during unwrapping.

Unwrapped - The data was successfully received and unwrapped.

Unwrapping - EEI is currently unwrapping the data.

Parent topic: Inbound Processing


Unwrapping an Inbound Connection - Manually

Whether you're manually running data through the translator for testing or trouble-shooting a connection and ready to try again, sometimes you have to unwrap or re-unwrap data in the Mailroom.

You need to have a connection with a Translated, Unwrapped, or Unwrap error status in the Mailroom to unwrap.
  1. In the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel, press F11=Connection data. New options, including U=(re)Unwrap, appear.
  2. Type U=(re)Unwrap in the connection's Opt field. Press Enter and confirm.
  3. Notice a message along the bottom of the screen reading: "Re-Unwrap job submitted for connection log#(the number)."
  4. Press F5 to refresh the panel. The connection's status changes.
    • If the status is Unwrapping, EEI is still unwrapping the connection. Continue to press F5 periodically until the status changes.
    • If the status is Unwrapped, the connection successfully unwrapped.
    • If the status is anything else, including Unwrap err, the unwrapping failed.
    Note: The steps for Unwrapping are the same in the Work with interchange data one connection panel, which can be reached by typing 5=Interchange on a connection's Opt field and pressing Enter.
If unwrapping failed, see Troubleshooting Unwrap Errors.
Parent topic: Inbound Processing


Translating an Inbound Connection - Manually

Whether you're manually running data through the translator for testing or troubleshooting a connection and ready to try again, sometimes you have to translate or re-translate data in the Mailroom.

You inbound connection must be in an Unwrapped, Translated, or Trans err status to manually translate.
  1. In the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel,
    • If the connection is in Wrapped status, type T=Translate in the connection's Opt field. Press Enter and confirm.
    • If the connection is in Trans error status, type R=Re-translate in the connection's Opt field. Press Enter and confirm.
    Note: If the T=Translate or R=Re-translate option is not visible, press F11=Connection data for additional options.
  2. Notice the Receive status changes to Sched/trans (scheduled for translation).
    Note: Also notice a message along the bottom of the screen reading: "(number) Messages scheduled for translation."
  3. Press F14=Translation jobs. The Work with incoming translation jobs panel appears.
  4. Type S in the Status column's selector field at the top of the panel. Press Enter. This will limit the translation job to connections scheduled for translation.
    Note: Pressing ENTER=Submits all displayed submits all jobs listed in the panel. If you don't use the selector field to filter the connections, you end up re-translating connections or translating other users' connections.

    Likewise, if the connection you submitted for translation no longer has an S (Scheduled) status, someone else may have already translated it.

  5. Press Enter and confirm to submit the scheduled jobs. Notice the message along the bottom of the screen stating, "Translation job (qualified job name) released."
    Note: Make sure you remove the S from the Status selector panel, then type 4=Delete from schedule on your connections' Opt fields after they have been translated to clean up any errors.
  6. Press F3=Exit to return to the Work with connections panel. Press F5 to refresh the panel. The connection's status will change.
    • If the status is Translating, EEI is still translating the connection. Continue to press F5 periodically until the status changes, denoting translation is finished.
    • If the status is Translated, the connection successfully translated.
    • If the status is anything else, including Trans err, the translation failed.
Parent topic: Inbound Processing


Outbound Processing

During outbound processing, data from your application file fields is processed through a message class to become EDI data. There are four stages of outbound processing: Generate (translate), Envelope, Wrap, and Send.

These four stages coincide with four commands.

All five commands can be run as batch commands, for example CRTAPPDTAB, or interactively as CRTAPPDTA.

Generate (Translate)

For outbound, generation and translation are synonymous in EEI. Generation is generally used to describe outbound translation, but you still use the Translate and Re-translate options in panels. However, Gen errs (Generation errors) only occur on outbound log of messages.

Generation is the process by which the data in your files is processed through a message class to become EDI data.

Outbound translation occurs by file set.

When using the CRTAPPDTA(B) to generate data, you also have the option to envelope, wrap, and send any data.

The Cleo EEI Main Menu | 1. Mailroom | 7. Start outgoing translation jobs panel is a menu-accessible entry point for CRTAPPDTA.

Each execution of the CRTAPPDTA command will create an entry in the Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log panel.

Note: EEI uses the T, G, M, and C envelope map codes (defined in the Work with application file set envelope field format panel) to determine the trading partner, group code, message ID, and message class used during outbound translation. If the trading partner, group code, message ID, or message class are specified on the corresponding parameters of the CRTAPPDTA(B) command, they will override the envelope map.

You can schedule an entire application data batch for re-translation in the Work with outgoing application data log panel.

Envelope

EEI gives you the option to envelope data in the CRTAPPDTA(B) command.

The command to specifically create envelopes and optionally wrap and send data is CRTENVLOG(B) (Create envelope log records).

You can also create envelopes in the Cleo EEI Main Menu | 1. Mailroom | 10. Create outgoing groups and interchanges panel.

For more information on envelope segments, see EDI Envelopes.

Wrap

Wrapping is like writing the address on an envelope then sealing it. Wrapping is the process by which EEI wraps the interchange data.

The CRTCNNSND(B) command wraps data in an enveloped status. This command assembles previously created interchanges into network connections and can optionally send the connections.

Wrapping is also an option on the CRTAPPDTA(B) and CRTENVLOG(B) commands.

Send

A new connection is created per network, port, and control script when outbound data is wrapped.

In EEI, control scripts are used to start network connection. They can be started through a scheduler or by typing a command.

The CRTAPPDTA command gives the option to send data.

The commands for specifically creating and sending connections are:
  • CRTCNNSND(B) - Create connections to send. This command assembles previously created interchanges into network connections, and gives you the option to send the connections.
  • STRCNNSND(B) - Start connections to send. This command sends previously created connection.
  • Generating (Translating) Outbound Data - Manually
    Whether you're manually running data through the translator for testing or troubleshooting an error, you may have to manually generate (translate) or re-translate data in the Mailroom.
  • Using CRTAPPDTA(B) (Create Application Data Batch)
    The CRTAPPDTA (Create application data batch) command generates outgoing EDI from your application files. The command also gives you the option to envelope, wrap, or send the EDI data.
  • Send Statuses
    The Send status field shows the status of an outbound connection, interchange, group, or message. It can be an in-process message (like Translating) which shows the current status of a connection, or a function status message, which shows the status of a connection since the last completed operation (like Translated).
  • Wrapping Outbound Data
    Whether you're manually running data through the translator for testing or troubleshooting a wrap error and ready to try again, sometimes you have to manually wrap data in the Mailroom.
  • Enveloping Outbound Data
    Whether you're manually running data through the translator for testing or troubleshooting an enveloping error, sometimes you have to envelope data manually in the Mailroom.
  • Sending Outbound Data
    Whether you're manually running data through the translator for testing or troubleshooting a send error and ready to try again, sometimes you have to send data manually in the Mailroom.
  • Resending a Connection
    If your trading partner requests that you resend a connection, you can resend the entire connection - including all interchanges, groups, and messages.
  • Resending an Interchange
    Using the document resend feature allows you to resend one or more interchange(s), group(s), or message(s) from a connection. Document resend uses the *RESEND file set and envelopes the document. You must manually wrap and send them.
  • Resending a Group or Message
    Using the document resend feature allows you to resend one or more interchange(s), group(s), or message(s) from a connection. Document resend uses the *RESEND file set and envelopes the document. You must manually wrap and send them.
Parent topic: The Mailroom


Generating (Translating) Outbound Data - Manually

Whether you're manually running data through the translator for testing or troubleshooting an error, you may have to manually generate (translate) or re-translate data in the Mailroom.

The functions available on the Start outgoing translation jobs panel are equivalent to executing the CRTAPPDTA (Create application data batch) command.

In an integrated application interface, it is expected that application programs will use the CRTAPPDTA command to start the outgoing translation process.

This panel is an interactive "front end" to the command, and is intended for manually triggering interfaces or for testing during interface program development. There is no functional difference between using the Start outgoing translation jobs panel options and directly executing CRTAPPDTA with the same parameters.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 7. Start outgoing translation jobs panel, decide which processes you want to execute. Options are:
    • Type T=Translate on the application file set's Opt field.
    • Type E=Translate, create envelope logs on the application file set's Opt field.
    • Type W=Translate, create envelope logs, wrap on the application file set's Opt field.
    • Type S=Translate, create envelope logs, wrap, send on the application file set's Opt field.
  2. Press Enter. The Create application data batch (CRTAPPDTA) panel appears with field entries that reflect the selected processes.
  3. If you need to fill in more fields, press F10=Additional parameters.
    If you need more help filling in additional panels, see Using CRTAPPDTA.
  4. Press Enter.
Parent topic: Outbound Processing


Using CRTAPPDTA(B) (Create Application Data Batch)

The CRTAPPDTA (Create application data batch) command generates outgoing EDI from your application files. The command also gives you the option to envelope, wrap, or send the EDI data.

Note: EEI uses the T, G, M, and C envelope map codes (defined in the Work with application file set envelope field format panel) to determine the trading partner, group code, message ID, and message class used during outbound translation. If the trading partner, group code, message ID, or message class are specified on the corresponding parameters of the CRTAPPDTA(B) command, they will override the envelope map.
  1. On a command line, type CRTAPPDTA(B) if you are running a batch job or CRTAPPDTA to run the job interactively. Press Enter.
  2. The Create application data batch (CRTAPPDTA) panel appears. Fill out the four fields.
    1. The Application file set name field specifies which file set to use when generating EDI data.
    2. The Application data batch text field specifies a description for the batch of application data that will appear on display panels and reports. The description may also be used to identify particular batches of application data. Values are:
      • *GEN - Text is built from various command parameters.
      Note: The *GEN string can be customized by modifying message UEX0496 in message file EXTMSGF.
    3. The Stop on partial error option field specifies where the outgoing process should stop if a step completes with partial errors. If a step completes with the resulting status entirely in error, the process also stops. Values are:
      • *ANY - The process stops at any step that completes with at least one error
      • *DTA - The process stops if data retrieval completes with partial errors
      • *TRN - The process stops if translation (generation) completes with partial errors
      • *ENV - The process stops if enveloping completes with partial errors
      • *WRP - The process stops if wrapping completes with partial errors
      • *NO - The process continues despite partial errors, and uses data not in error to complete subsequent steps.
    4. The Create envelopes immediately field specifies whether interchanges and functional groups are created immediately after translation. Values are:
      • *YES - Create interchanges and functional groups immediately
      • *NO - The process stops after translation. Use this especially when messages from different application data batches will be assembled together into groups and interchanges.
  3. If you would like to or need to specify more parameters, press F10=Additional parameters.
    Note: You need to specify parameters that are not specified in your envelope. You also need to specify parameters if you want to limit the data being generated (for example, if you only want to generate data for one trading partner).
    1. The Overriding to database file and Library fields specifies a file to use instead of the defaults. (The default is the file specified by the application file set.)
      • (File name) - Use this file
    2. The Library field specifies a library to be used instead of the default. (The default is the library specified by the translation job library list.) Values are:
      • *LIBL - Use the library list to locate the database file
      • *CURLIB - Use the current library for the job to locate the database file. If not current library entry exists in the library list, QGPL is used.
      • (Library name) - Use this library to locate the database file
    3. The Overriding to member field specifies the application file member to use.
      • *FIRST - Use the first member of the database file
      • *LAST - Use the last member of the database file
      • *ALL - Process all members of the database file
    4. The Trading partner code field specifies a single trading partner for the entire application data batch. (Used instead of the trading partner determined by the envelope map.)
    5. The Functional group code field specifies a single functional group for the entire application data batch. (Used instead of the functional group determined by the envelop map.)
    6. The Message ID field specifies a single message ID for the entire application data batch. (Used instead of the message ID determined by the envelope map.)
    7. The Message class field specifies a single message class for the entire application data batch. (Used instead of the message class determined by the envelope map.)
    8. The Select by Network code field applies only to the create envelope, wrap for network, and sent to network steps. Values are:
      • (Network code) - Process only the messages for this network
      • *ALL - Process all networks
    9. The Select by Network account code field applies only to the create envelope, wrap for network, and sent to network steps. Values are:
      • (Network account code) - Process only the messages for this network account code
      • *ALL - Process all network account codes
    10. The Select by Network port code field applies only to the create envelope, wrap for network, and sent to network steps. Values are:
      • (Network port code) - Process only the messages for this network port code
      • *ALL - Process all network port codes
    11. The Select by Call window code field applies only to the create envelope, wrap for network, and sent to network steps. Values are:
      • (Call window code) - Process only the messages for this call window code
      • *ALL - Process all call window codes
    12. The Select by Control script field applies only to the create envelope, wrap for network, and sent to network steps. Values are:
      • (Control script code) - Process only the messages for this control script
      • *ALL - Process all control script codes
    13. The Select by Trading partner code field applies only to the create envelope step. Values are:
      • (Trading partner code) - Process only the messages for this trading partner code
      • *ALL - Process all trading partner codes
    14. The Select by Group code field applies only to the create envelope step. Values are:
      • (Group code) - Process only the messages for this group code
      • *ALL - Process all trading partner codes
    15. The Select by Message identifier field applies only to the create envelope step. Values are:
      • (Message ID) - Process only the messages of this message ID
      • *ALL - Process all message identifiers
    16. The Select by Message class name field applies only to the create envelope step. Values are:
      • (Message class name) - Process only the messages of this message class
      • *ALL - Process all message classes
    17. The Query selection expression field is for instances when the desired subset of messages cannot be specified using this command's parameters. Values are:
      • *ALL - Process all messages
      • A query expression using data form the log of message record
      Note: Contact Cleo customer service for details on the query selection expression.
    18. The Override envelope map to file field specifies a file to use instead of the default. (The default is the file specified in the (TOFILE) parameter.)

      The file named in this parameter is used only for the "data analysis" step using the envelope map. In most cases, the envelope map refers only to the primary or "header" format, since that format usually has all the information needed to determine trading partner and message class. If the data volumes are large and there are many non-header records, the data analysis step must read through all the records even though it only processes a few of them. Creating a logical file containing only the formats needed by the envelope map and using that file as the ENVFILE parameter improves the performance of the data analysis step.

      Values are:

      • *FILE - Use the default TOFILE parameter file
      • (Database file name) - Use this file for the data analysis envelope processing
    19. The Library field specifies a library to use instead of the default (in conjunction with the Override envelope map to file field). Values are:
      • *LIBL - Use the library list to locate the database file
      • *CURLIB - Use the current library for the job to locate the database file. If not current library entry exists in the library list, QGPL is used.
      • (Library name) - Use this library to locate the database file
    20. The Record selection method field specifies the method used to select records from the files in the application file set. Values are:
      • *KEYED - Record selection will be performed externally by user-specified file definitions
      • *RUNTIME - Record selection parameters will be passed and processed internally by EEI
      Note: If you specify *KEYED for this parameter, the Parent/child relationship parameter must be *YES.
    21. The Parent/child relationship field specifies whether to use a parent/child relationship. Values are:
      • *YES - Establish a parent/child relationship if possible
      • *NO - Do not establish a parent/child relationship
      Note: If using select/omit statements from the parent to the children in your file set, you need to have a valid parent/child relationship.

      For more information, see Parent/Child Relationships.

    22. The Debug mode field specifies whether to produce a listing of internal key structures and their resulting work files. Values are:
      • *YES - Produce lists and files
      • *NO - Debugging is not requested
    23. The Resend errors field specifies whether EEI tries to resend any messages with error statuses. Values are:
      • *YES - Resend messages with error statuses
      • *NO - Do not sent messages with error statuses
    24. The Run time substitution values field holds "on the fly" values to be substituted in select/omit statements for a file set.

      A minimum of 0 (zero) up to a maximum of 9 values may be specified on the command. Each has a length of 100 characters. These substitution values are specified in the select/omit statements by encoding @x where x is the parameter position. For example, @3 would be the third parameter value.

      • No entry is required if there are no substitution values in the file set's select/omit statements.
      • If entries are made and none are needed, they will be skipped during processing.
  4. Press Enter.
  • Parent/Child Relationships
Parent topic: Outbound Processing


Parent/Child Relationships

A parent/child relationship is defined as:
  • Parent - Sequence #1 of file set
  • Child - Sequence #2 through x of file set.

Where the child has at least the same number of keys and each key slot is identical in length, type, decimal positions, and sequencing (ascending/descending).

When a parent-child relationship is requested and can be internally implemented, any record(s) in the children file(s) that do not have a matching parent will not be passed to the translator. Select/omit statements attached to any files in the file set also impact the parent/child relationship.

For examples of parent/child relationships, see Keys.

Parent topic: Using CRTAPPDTA(B) (Create Application Data Batch)


Send Statuses

The Send status field shows the status of an outbound connection, interchange, group, or message. It can be an in-process message (like Translating) which shows the current status of a connection, or a function status message, which shows the status of a connection since the last completed operation (like Translated).

Some of the statuses indicate a job was successfully completed. Others indicate the job encountered a problem and an error must be fixed.

Note: Although connection is used in the list below, the error messages can also apply to interchanges, groups, and messages.

Delete ALL - The connection is marked for deletion.

Delete data - The data is marked for deletion.

Env error - The data was successfully generated, but an error occurred during enveloping.

Enveloped - The data was successfully generated and enveloped.

Error/Mixed - Select any error or Mixed.

Gen error - An error occurred while generating data.

Generated - The data was successfully generated.

Mark:purge - The connection is marked for purging.

Mixed - There is an error in a lower level.

Mixed in pr - There is an error in a lower level, and translation is still in process.

Preparing - EEI is preparing to send the data.

Rdy to gen - The outbound application data is ready to generate.

Sched/trans - The connection is scheduled for translation.

Send error - The data was successfully generated, enveloped, and wrapped, but an error occurred while sending.

Sending - EEI is currently sending the data.

Sent - The data was successfully generated, enveloped, wrapped, and sent.

Translating - EEI is currently generating the data.

Wrap error - The data was successfully generated, but an error occurred during wrapping.

Wrapped - The data was successfully generated, enveloped, and wrapped.

Wrapping - EEI is currently wrapping the data.

Parent topic: Outbound Processing


Wrapping Outbound Data

Whether you're manually running data through the translator for testing or troubleshooting a wrap error and ready to try again, sometimes you have to manually wrap data in the Mailroom.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 11. Create outgoing connections panel, decide which processes you want to execute. Options are:
    • Type W=Select for wrap on an interchange's Opt field
    • Type S=Select for wrap and send on an interchange's Opt field
  2. Press Enter and confirm.
Parent topic: Outbound Processing


Enveloping Outbound Data

Whether you're manually running data through the translator for testing or troubleshooting an enveloping error, sometimes you have to envelope data manually in the Mailroom.

You need to have data in Generated (Translated) status.
  1. In the Cleo EEI Main Menu | 1. Mailroom | 10. Create outgoing groups and interchanges panel, if necessary, change any of the default parameters in the fields.
    1. The Stop on partial error option field specifies whether enveloping (and wrapping and sending, if selected) should stop after completing a phase with partial errors. Values are:
      • *ANY - Stop after any partial error
      • *ENV - If a partial error occurs, stop after the envelope log create
      • *WRAP - If a partial error occurs, stop after wrapping to connection
      • *NO - Do not stop on a partial error
    2. The Select by... fields allow you to limit the data being enveloped. Values are:
      • *ALL - Select all available generated data to envelope
      • (A specific value) - Select only generated data that fits this criteria to envelope
      Note: For example, if you only want to envelop Purchase Orders (850s), type 850 in the Select by Message identifier field.
      Note: These fields can be used in combination with each other. For example, if you only want to envelope 850s for the trading partner ACME, type 850 in the Select by Message identifier field and ACME in the Select by Trading partner code field.
    3. The Query select parameter defines selection criteria if the desired subset of messages cannot be specified using the other fields in this panel. Values are:
      • *ALL - Indicates there is no special selection other than those specified by the other fields in this panel.
      • A query expression using data from the Log of Message record - Contact Technical Support for details on the query selection expression.
    4. The Wrap for Network(s) field specifies whether any interchanges (not just the envelopes created during this procedure) should be placed into connections. Values are:
      • *ALL - Create connections for all networks (that have interchanges ready to be enveloped)
      • Network name - Only create connections for this network's interchanges
      • *NONE - Do not wrap any interchanges
    5. The Send to Network(s) field specifies whether any interchanges (not just connections created during this procedure) should be placed in the communications job queue to send to a network. Values are:
      • *ALL - Send connections for all networks
      • Network name - Send connections for this network
      • *NONE - Do not send any connections
      Note: If the Wrap for Network(s) parameter is *NONE, the Send to Network(s) parameter must also be *NONE.
  2. Press Enter and confirm.
Parent topic: Outbound Processing


Sending Outbound Data

Whether you're manually running data through the translator for testing or troubleshooting a send error and ready to try again, sometimes you have to send data manually in the Mailroom.

In the Cleo EEI Main Menu | 1. Mailroom | 12. Start a new outgoing connection panel, type 1=Select to send on a connection's Opt field. Press Enter and confirm.
Parent topic: Outbound Processing


Resending a Connection

If your trading partner requests that you resend a connection, you can resend the entire connection - including all interchanges, groups, and messages.

Know the Connection Log Number for the connection you want to resend.
  1. In the Cleo EEI Main Menu | 1. Mailroom | 12. Start new outgoing connection panel, press F11=Alternate view to see all connections.
  2. In the Connection log (number) positioner field, type the connection log number for the connection you want to resend. Press Enter.
  3. Type 1=Select to send in the connection's Opt field. Press Enter and confirm.
Parent topic: Outbound Processing


Resending an Interchange

Using the document resend feature allows you to resend one or more interchange(s), group(s), or message(s) from a connection. Document resend uses the *RESEND file set and envelopes the document. You must manually wrap and send them.

At the interchange level, you can use the same control number or create a new one. If you use the same control number, you can choose a new date, time, and trading partner indicator, or use the original ones.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 2. Work with interchanges panel, press F11=Interchange data.
  2. The Work with interchange data by trading partner panel appears. In the Send/Receive (S/R) selector field, type S. Press Enter.
  3. Locate the interchange you want to resend. Type 9=Resend on its Opt field. Press F14=Resend.
  4. The Confirm resend interchange panel appears. In the New interchange control reference field:
    • If you want a new reference number, type Y (Yes).
    • If you want to use the original reference number, type N (No) and press Enter. This will prompt two new fields.
    • If you chose No, specify the New test indicator field as P (Production) or T (Test). This must match the test indicator in the Trading Partner file.
    • If you chose No, specify in the Reset date time field whether you want a new date and time (Y Yes) or to keep the original (N No).
  5. Press F14=Resend. This submits all interchanges with an A (Active) status.
    Note: If you want to hold an interchange for a later resend, type 3=Hold on its Opt field. When you press Enter, the status changes and the interchange is repositioned to display after the active records.

    To reactive an interchange on hold, type 6=Release on the interchange. When you press Enter, the status changes and the interchange is repositioned to display with the active records.

  6. Notice the message at the bottom of the screen stating, "Resend files allocated."
    Note: A best practice is to press F23=Remove resent entries to remove any resent interchanges, which have a Resend status of S (Sent). F23 will not remove any interchanges from the log file.
  7. In the Cleo EEI Main Menu | 1. Mailroom | 11. Create outgoing connections panel, type S=Select for wrap and send on the enveloped interchange's Opt field. Press Enter.
Parent topic: Outbound Processing


Resending a Group or Message

Using the document resend feature allows you to resend one or more interchange(s), group(s), or message(s) from a connection. Document resend uses the *RESEND file set and envelopes the document. You must manually wrap and send them.

At the group or message level, you must use a new control number.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 2. Work with interchanges panel, press F11=Interchange data.
  2. The Work with interchange data by trading partner panel appears. Type 5=Groups in the Opt field of the interchange housing the group or message you want to resend. Press Enter.
    • If you are resending a group, skip ahead to Step 4.
    • If you are resending a message, proceed to Step 3.
  3. In the Work with group data for one interchange panel, type 5=Messages in the Opt field of the group housing the message you want to resend. Press Enter.
  4. Type 9=Resend in the group or message's Opt field. Press Enter.
    • If you are resending a group, this step occurs in the Work with group data for one interchange panel.
    • If you are resending a message, this step occurs in the Work with message data for one group panel.
  5. Press F14= Submit Resend.
    • If you are resending a group, this step occurs in the Confirm resend group panel.
    • If you are resending a message, this step occurs in the Confirm resend message panel.
  6. Notice the message at the bottom of the screen stating, "Resend files allocated."
  7. In the Cleo EEI Main Menu | 1. Mailroom | 11. Create outgoing connections panel, type S=Select for wrap and send on the enveloped interchange's Opt field. Press Enter.
Parent topic: Outbound Processing


Viewing Data

There are multiple ways to view EDI data in EEI. Besides viewing the data itself, some methods organize the data differently. Choose the method that you find most useful.

Data view in Work with messages for application data log panel

In the Cleo EEI Main Menu | 1. Mailroom | 4. Work with incoming application data log | 5. Work with messages for application data log panel

or the Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log | 5. Work with messages for application data log panel,

you can type D=Data on a Message log's Opt field to reach the Display non-wrapped data panel, which shows the EDI data in standard non-wrapped format.

This panel also has an F18=e-send option.

User View in Work with messages for application data log panel

In the Cleo EEI Main Menu | 1. Mailroom | 4. Work with incoming application data log | 5. Work with messages for application data log panel or the Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log | 5. Work with messages for application data log panel, you can type E=User view in a Message log's Opt field to reach the Display Element Data panel, which shows the EDI data organized by segment, with the element name, element ID, element type, element description, and data displayed.

Pressing F11=View in this panel toggles the segment description with the standard EDI display for the segment.

If you need to edit the data, you can place your cursor on the data you want to edit and press F21=Edit data at cursor to bring up the EDI non-wrapped data panel. In this panel, you can change or clear the data in a message.

This panel also has an F18=e-send option.

Application View (Inbound Only)

Application view is only available after data has translated. From the Display Element Data panel, you can press F17=Application view to reach the Application view panel. This view displays the data's relationship to your application file fields, including the sequence, formats, file and field names, description, and content.

Display data in Work with connections (and lower levels)

In the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connections panel, you can type D=Data on a connection's Opt field to reach the Display non-wrapped data panel, which shows the EDI data in standard non-wrapped format.

Note: If the connection is in process when the this option is taken, only those records already received will be displayed. To display additional records, the display must be exited and re-entered.
Note: Once a completed connection has been displayed during a workstation session, the original format file is kept in QTEMP for the duration of that session, eliminating the time required to reformat on succeeding display requests.

Because QTEMP is not updated during a connection, refreshing (F5) will not display additional records received since the panel was originally displayed.

Data can also be displayed using D=Data at lower levels (interchange, functional group, and message).

  • Work with (Incoming and Outgoing) Application Data Log panel
    The Mailroom's Work with incoming application data log and Work with outgoing application data log panels display records from the Log of Application Data file, which contains detailed information on each batch of data that has been translated into your files (incoming) or sent to your trading partners (outgoing).
  • Audit View
    Audit view provides detailed information about individual messages, including log numbers, date and time information for calls, message status, and the job's user.
  • Using E-send
    Use the E-send feature to e-mail data to a trading partner or another user.
Parent topic: The Mailroom


Work with (Incoming and Outgoing) Application Data Log panel

The Mailroom's Work with incoming application data log and Work with outgoing application data log panels display records from the Log of Application Data file, which contains detailed information on each batch of data that has been translated into your files (incoming) or sent to your trading partners (outgoing).

Since the Log of Connection file can contain many records, the positioner and selector fields help limit the records displayed. These are the blank fields along the top of the panel, and each blank field corresponds to the column beneath it.

The positioner field for Start of call uses the connection's start date and time to position the display. Enter the date and time as:
  • MMDDYYHHMM - The entry is formatted to MM/DD/YY HH:MM
  • DDMMYY - The entry is formatted to MM/DD/YY 00:00

If you encounter errors, a best practice is to delete your old errors as you troubleshoot. Otherwise they stay in the logs and clutter up your (and other users') list in the future.

Incoming

For standard-to-application translation, a batch of application data (and consequently an entry in the log) is created each time a change is encountered in the application file set during a translation job.

For example, suppose all messages in a connection are translated in the same translation job. There are multiple trading partners, multiple interchanges, and multiple message class mappings represented in this job. If all of the message classes are mapped to the same file set, there will be only one Log of Application Data record created. If there are two file sets represented, there will be at least two log records, and possibly more if the ordering of the data causes multiple file set transitions.

Note that a single translation job may create multiple Log of Application Data records, but that only one message queue is associated with the entire translation job. Thus, there may be multiple application data log records displaying the same message queue.

The selector field for Application text may be used to select all records containing a text string. The scan is not case-sensitive.

In this panel, you can delete a non-enveloped Log of Application Data record only. The associated Log of Message records and the non-wrapped data records are not deleted; to delete them, use either the Work with connection data panel, the Work with interchange data panel, or the DLTDTA(J) commands' automatic purging function.

The Work with messages for application data log panel (Option 5=Messages) lists all messages associated with a single Log of Application Data record. For incoming translation, they correspond to an opening of a given application file set during an incoming translation job.

The Reference 1,2,3,dt1,dt2 header field is a selector for the concatenated reference fields separated by commas. The selection is a scanning function that is not case sensitive.

Outgoing

In this panel, you can delete both log records and non-wrapped EDI data associated with an application data batch. The non-wrapped data member will always be removed; however, if the Log of Message records have been associated with groups, interchanges, and/or connections, they will not be deleted by this option. To delete them, use the Delete option on the Work with connections panel or the Work with interchanges panels.

The Work with messages for application data log panel (Option 5=Work with log of messages) lists all messages associated with a single Log of Application Data record. For outgoing translation, these correspond to a single execution of the CRTAPPDTA, CRTAPPDTA(B), CRTFADTA, or CRTFADTA(B) commands.

The Reference 1, 2, 3, date1,date2 header field is a selector for the concatenated reference fields separated by commas. The selection is a scanning function that is not case sensitive.

Options and Functions

In both the Work with Incoming application Data Log and Work with Outgoing application Data Log panels, you can:
  • View the log of message records associated with an application data batch (Option 5)
  • Produce an application data details report (Option 6)
  • View detailed information for a data batch in the Display log of application data detail panel (Option 8)
  • View the message queue for an application data batch (Option M)
  • View or print a list of which message classes use a file set (Option U)
Additionally, in the Work with Incoming application Data Log panel, you can:
  • Delete a Log of Application Data record (Option 4)
Additionally, in the Work with Outgoing application Data Log panel, you can:
  • Display non-wrapped EDI data (Option D)
  • Schedule a data batch for re-translation (Option R - and only if the same data is in your application files)
  • Delete a non-enveloped Log of Application Data record (Option 4)
  • View the outgoing translation error log for an application data batch in EDI segment/element order (Option E)
  • View the outgoing translation error log for an application data batch in application file/format/field name order (Option F)
  • Work with application file set envelope formats for an application data batch (Option O)
  • Work with the job for an application data batch (Option J)
  • Outgoing Translation Error Logs
    The two outgoing translation log panels, which contain the exact same information but order it differently, display translation error log records for the selected application data batch.
  • Batch Command Error Messages
    Commands ending in (B) can only be used in a batch program. Most of these issue error messages that may be monitored.
Parent topic: Viewing Data


Outgoing Translation Error Logs

The two outgoing translation log panels, which contain the exact same information but order it differently, display translation error log records for the selected application data batch.

The Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log panel presents two options to view error logs: E=Element Err log and F=Field error log.

Selecting the Element error log option displays the Outgoing translation log by segment/element panel, which lists errors encountered during outgoing translation in segment and element-within-segment sequence. This presents a view of the errors from the perspective of the actual output data.

Selecting the Field error log option displays the Outgoing translation log by file/field panel, which presents the same list of errors ordered by file name, record format name, field name, check code, and relative record number.

Outgoing Check Code

The Check code column specifies the type of error detected on data. Codes are:
  • C - Conditional relation error
  • CT - Code table not found
  • CV - Code table value missing
  • D - Date relation error
  • DT - Date is invalid
  • E - Exclusive relation error
  • IN - Invalid data for element
  • L - List conditional relation error
  • MN - Mandatory data is null
  • P - Paired relation error
  • R - Required relation error
  • TM - Time is invalid
  • UF - Unidentified file/format

Error Flags and the EXASFLG Data Area

Not all records on these panels represent fatal translation errors. The data area EXASFLG controls whether certain non-fatal events create error messages and/or whether they create records in the log file.

EXASFLG can be accessed in the Cleo EEI Main Menu | 8. System Configuration | 1. Work with system parameters (Work with Data Areas). The data area consists of a string of Yes/No flags.

The position of each flag, value, and function are:

Position 1

  • Y - Suppress "normal completion" message
  • N - Send "normal completion" message after each EDI document

Position 2

  • Y - Suppress before-translation update of Log of Message. This improves performance when translating large numbers of small documents.
  • N - Update Log of Message both before and after translation

Position 3

  • Y - Suppress "CV=Code value not found" error logging if the element and/or segment are optional
  • N - Log all occurrences of code table lookups that fail to find a value

Position 4

  • Y - Suppress "field mapped before the file was read" error logging if the element and/or segment are optional
  • N - Log all occurrences of a field being mapped to a data element where no record containing the field has been read. (for example, look-ahead mapping).

Position 5 through 10 are reserved for future use.

Parent topic: Work with (Incoming and Outgoing) Application Data Log panel


Batch Command Error Messages

Commands ending in (B) can only be used in a batch program. Most of these issue error messages that may be monitored.

CRTAPPDTA(B) - Create application data batch

  • UEX0021 - 20 - Log of connection not found
  • UEX0022 - 20 - Log of connection already exists
  • UEX0026 - 20 - Log of data interchange already exists
  • UEX0027 - 20 - Log of group not found
  • UEX0028 - 20 - Log of group already exists
  • UEX0029 - 20 - Log of message not found
  • UEX0033 - 20 - Trading partner message class not found
  • UEX0035 - 20 - Trading partner not found
  • UEX0109 - 20 - Trading partner group not found
  • UEX0121 - 20 - Log of application data not found
  • UEX0122 - 20 - Log of application data already exists
  • UEX0124 - 20 - Application file set not found
  • UEX0126 - 20 - Application file set member not found
  • UEX0136 - 20 - Network port not found
  • UEX0190 - 20 - Translation job already exists
  • UEX0192 - 20 - Not in proper status for translation
  • UEX0196 - 20 - Translation job not created
  • UEX0288 - 40 - Trans job &9/&8/&7 could not find master job &11
  • UEX0336 - 20 - Application file set &1 type &2 is invalid
  • UEX0502 - 20 - Application data log override not found
  • UEX0503 - 20 - Application data log override already exists
  • UEX0507 - 20 - Group and interchange envelope logs not created
  • UEX0547 - 20 - Cannot create envelope logs, another job must finish
  • UEX0606 - 20 - At least one send conn ended in error-see previous
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete op could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

CRTCNNSND(B) - Create connections to send

  • UEX0022 - 20 - Log of connection already exists
  • UEX0021 - 20 - Log of connection not found
  • UEX0027 - 20 - Log of group not found
  • UEX0029 - 20 - Log of message not found
  • UEX0136 - 20 - Network port not found
  • UEX0192 - 20 - Not in proper status for translation
  • UEX0199 - 20 - No messages marked for translation
  • UEX0605 - 20 - No records found: file &2/&3 member &4 file set &1
  • UEX0606 - 20 - At least one send conn. ended in error-see previous
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

CRTENVLOG(B) - Create envelope log records

  • UEX0021 - 20 - Log of connection not found
  • UEX0022 - 20 - Log of connection already exists
  • UEX0026 - 20 - Log of data interchange already exists
  • UEX0027 - 20 - Log of group not found
  • UEX0028 - 20 - Log of group already exists
  • UEX0029 - 20 - Log of message not found
  • UEX0033 - 20 - Trading partner message class not found
  • UEX0035 - 20 - Trading partner not found
  • UEX0109 - 20 - Trading partner group not found
  • UEX0136 - 20 - Network port not found
  • UEX0192 - 20 - Not in proper status for translation
  • UEX0199 - 20 - No messages marked for translation
  • UEX0502 - 20 - Application data log override not found
  • UEX0503 - 20 - Application data log override already exists
  • UEX0507 - 20 - Group and interchange envelope logs not created
  • UEX0547 - 20 - Cannot create envelope logs-another job must finish
  • UEX0605 - 20 - No records found: file &2/&3 member &4 file set &1
  • UEX0606 - 20 - At least one send conn. ended in error-see previous
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

CRTFADTA(B) - Generate outgoing acknowledgements

  • UEX0002 - 20 - Ack at element level already exists
  • UEX0004 - 20 - Ack at group level already exists
  • UEX0006 - 20 - Ack at segment level already exists
  • UEX0008 - 20 - Ack at message level already exists
  • UEX0021 - 20 - Log of connection not found
  • UEX0022 - 20 - Log of connection already exists
  • UEX0026 - 20 - Log of data interchange already exists
  • UEX0027 - 20 - Log of group not found
  • UEX0028 - 20 - Log of group already exists
  • UEX0029 - 20 - Log of message not found
  • UEX0030 - 20 - Log of message already exists
  • UEX0033 - 20 - Trading partner message class not found
  • UEX0035 - 20 - Trading partner not found
  • UEX0109 - 20 - Trading partner group not found
  • UEX0121 - 20 - Log of application data not found
  • UEX0122 - 20 - Log of application data already exists
  • UEX0124 - 20 - Application file set not found
  • UEX0126 - 20 - Application file set member not found
  • UEX0136 - 20 - Network port not found
  • UEX0190 - 20 - Translation job already exists
  • UEX0192 - 20 - Not in proper status for translation
  • UEX0196 - 20 - Translation job not created
  • UEX0199 - 20 - No messages marked for translation
  • UEX0288 - 40 - Translation job &9/&8/&7 could not find master job &11
  • UEX0336 - 20 - Application file set &1 type &2 is invalid
  • UEX0502 - 20 - Application data log override not found
  • UEX0503 - 20 - Application data log override already exists
  • UEX0507 - 20 - Group and interchange envelope logs not created
  • UEX0547 - 20 - Cannot create envelope logs-another job must finish
  • UEX0606 - 20 - At least one send connection ended in error, see previous
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

SRTCNNSEND(B) - Start connections to send

  • UEX0021 - 20 - Log of connection not found
  • UEX0136 - 20 - Network port not found
  • UEX0605 - 20 - No records found: file &2/&3 member &4 file set &1
  • UEX0606 - 20 - At least one send conn. ended in error-see previous
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

STRRCVTRN(B) - Start script, translate all

  • UEX0190 - 20 - Translation job already exists
  • UEX0288 - 40 - Translation job &9/&8/&7 could not find master job &11
  • UEX0292 - 40 - Translation job &4/&3/&2 master job &6 ended w/&9 errors
  • UEX0532 - 20 - Network port &2 not found for Network &1
  • UEX0567 - 20 - Communications error line &7-Notify EDI operations
  • UEX0573 - 20 - Alternate ports exhausted for Network &1 port &2
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error

STRTRNCNN(B) - Start translation of connections

  • UEX0190 - 20 - Translation job already exists
  • UEX0288 - 40 - Translation job &9/&8/&7 could not find master job &11
  • UEX0292 - 40 - Translation job &4/&3/&2 master job &6 ended w/&9 errors
  • UEX9899 - 40 - Error occurred during processing of command
  • Y2U0004 - 20 - Database operation failed (see previous messages)
  • Y2U0009 - 20 - Change or delete operation could not find requested record
  • Y2U0021 - 20 - Call to program ended in error
Parent topic: Work with (Incoming and Outgoing) Application Data Log panel


Audit View

Audit view provides detailed information about individual messages, including log numbers, date and time information for calls, message status, and the job's user.

In the Cleo EEI Main Menu | 1. Mailroom | 4. Work with incoming application data log | 5. Work with messages for application data log panel

or the Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log | 5. Work with messages for application data log panel,

you can type 8=Audit view in a Message log's Opt field to reach the Audit View detail 1 panel, which shows detailed information about the message.

Pressing F11=Next in this panel shows more information, for a total of three panels.

Also on the panel are:
  • F14=User View - To view the EDI data sent in the message
  • F15=Acknowledgement message details - To access functional acknowledgment details for the message
Parent topic: Viewing Data


Using E-send

Use the E-send feature to e-mail data to a trading partner or another user.

E-send can be used from the Display non-wrapped data panel at the interchange, group, or message level and at the Display Element Data panel (at the message level).

For more information on different views and accessing these panels, see Viewing Data.

Note: The data becomes an attachment that will be sent with your existing e-mail or fax software.

The e-mail interface requires OS/400 V5R4M0 or higher.

  1. In the Display non-wrapped data or Display Element Datapanel, press F18=e-send.
  2. The Select method panel appears. Type 1=Select in the e-mail Opt field.
  3. The e-mail panel appears.
    1. The To: field specifies the e-mail address to which the message will be sent.
      If you need to change the default, you can either type the e-mail address in directly or use the F4=Prompt button to prompt the Work with e-mail addresses panel and select another recipient. If you want to create a new recipient in the EEI's address book, in the Work with e-mail addresses panel, pressF9=Create.
      Note: The To: and From: fields is populated with default information (if defined) for the trading partner associated with the data.
    2. The From: field specifies your e-mail address.
    3. The Name: fields specifies the receiver and sender names or company names.
    4. The Subject field is the subject line or title line of the e-mail.
    5. The Message is the text in the body of the email.
  4. Press Enter and confirm to send the e-mail.
Parent topic: Viewing Data


DSPMSGREF - Display Messages by Reference Fields

The display message by reference fields command allows users to display logs of messages in EEI using search terms. Users with special authorization can also re-translate messages from this panel.

DSPMSGREF makes it possible to easily determine the EDI status of a document based on the appropriate business information without having to search through the EDI system.

Logs of messages can be viewed by reference fields, dashboard search code, connection log number, date, message ID, and trading partner. Those views can be further filtered by additional selection criteria, such as message class, message status, and functional acknowledgment status.

Note: Reference fields correspond to the message log reference numbers (M5, M6, and M7) and dates (M8 and M9) used in mapping. Reference fields are 30 characters long and can be viewed in their entirety in multiple view panels. For more information, see Mapping Message Log References.

You can have as many Dashboard search codes per message as necessary.

Note: Be aware that excessive use of Dashboard search codes can slow EEI's translation speed.

Process Summary

To effectively use DSPMSGREF, you must:
  • Make sure the data you want to search for is mapped. In DSPMSGREF, you can search by the automatically defined values of connection log number, date, message ID, and trading partner. You can also search by Dashboard search code, which allows you to customize your own search terms, or by reference.
  • Map reference fields if you want to be able to narrow your search with them.
  • Map a Dashboard search code if you need a customized search term.
  • Type search criteria in the DSPMSGREF panel.
  • Use the F11=Next view button to view all available fields in the Work with all messages by reference fields panel.
Note: If you still want the DSPMSGREF lookup to be available after data is deleted, the message log records need to be retained. This is controlled by the Days logs field in the Cleo EEI Main Menu | 4. Trading Partners and Networks | 4.Work with trading partner message class options panel.

Expanded functions

If you have authority, you can also translate and re-translate messages from the DSPMSGREF panel. By default, users will not have this authority.

To translate in DSPMSGREF, you must:
  • Change your group or user authority to allow translation in the Cleo EEI Main Menu | 8. System configuration | 60. User View Authorization Menu and Cleo EEI Main Menu | 8. System configuration | 5. Work with program control information panels.
  • Locate the message you want to translate or re-translate in the DSPMSGREF panel.
  • Manually change the message status from Translated to Unwrapped.
  • Schedule the message for translation.
  • Go to the Work with incoming translation jobs panel, which is accessible from the DSPMSGREF panel, and submit the job for translation.
  • Using DSPMSGREF - Display Message by Reference Fields
    Using DSPMSGREF makes it possible to determine the EDI status of a document based on the appropriate business information without having to search through the EDI system.
  • Using the Work with Authority List Activation Panel
    The Work with authority list activation panel controls two functions in EEI: Authorization list activation and Group profile processing.
  • Creating an Authorization List
  • Pointing DSPMSGREF to Authorization List
    Use the Program control details panel to point the Display Messages by Reference Fields program to your data maintenance authorization list. Data maintenance controls translation functions in the DSPMSGREF panels.
  • Mapping Dashboard Search Codes
    Mapping a Dashboard search code to an element creates a customized search term for looking up messages in EEI’s Display Messages by Reference Field (DSPMSGREF) panel and in the Cleo Dashboards. The Dashboard Search Code is required to use the Document History report in the Dashboard. Dashboard search fields are 80 characters long, and 30 of those will be viewable in DSPMSGREF.
  • Mapping Reference Fields - Inbound
    EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For inbound, reference fields are mapped on the element. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.
  • Mapping Reference Fields - Outbound
    EEI provides three fields - M5, M6, and M7 - on the log of message record for storing reference data. For outbound, reference fields are mapped in the envelope map. These reference fields can be used to search for messages with the DSPMSGREF (Display Message by Reference Fields) or RTVMSGREF (Retrieve Message by Reference Fields) commands.
  • Date and time reference fields
    EEI provides two 15-character reference fields, M8 and M9, dedicated to storing date and time. While they are mapped similarly to the 30-character reference fields (M5, etc.), the date/time reference fields must be specifically formatted.
Parent topic: The Mailroom


Using DSPMSGREF - Display Message by Reference Fields

Using DSPMSGREF makes it possible to determine the EDI status of a document based on the appropriate business information without having to search through the EDI system.

  1. Either type DSPMSGREF in a command line and press Enter or in the Cleo EEI Main Menu | 1. Mailroom panel, type 20. Work with all messages by reference fields and press Enter.
  2. In the Display message by reference fields panel, fill out the fields relevant to narrowing down displayed data so it shows what you are looking for.
    1. In the Data view sequence field, specify what criteria to use to organize the data displayed. Values are:
      • *Conn - Sequence by connection log number
      • *Dash - By Dashboard search code
      • *Date - By date
      • *Msgid - By message ID
      • (Blank) - By references
      • *Refs - By references
      • *TP - By trading partner
    2. Fill out any additional fields (Trading partner, Functional group, etc.) needed to narrow your search.

      You can further customize searching in the following fields:

      • Ref fields - When an * (asterisk) is entered in the field value, instead of an exact match, records containing the value are displayed. For example, you could type SHIP* to show all references that contain SHIP (shipment, ownership, etc.).
        Note: Press F11=Combine Ref Flds to combine reference fields to search Reference field 1, 2 and 3 for the desired value. Users can also press F17=Match Case to match data with case sensitivity.
      • Dashboard search field - When an * (asterisk) is entered in the field value, instead of an exact match, the Dashboard search view will display records containing the value. For example, you could type SHIP* to show all references that contain SHIP.
      • Connection log number - When a value is entered, the Connection view displays records with a connection log number equal to or greater than the selected value.
  3. Press Enter. The Work with all messages by reference fields panel appears.
  4. The default screen by reference view shows truncated References fields and only one reference date field. Press F11=Next view to cycle through additional panels that display full values for the reference fields and an additional reference date. There are five views total.
    Note: The initial screen is conditioned by your view type. (For example, *CONN.)
    Note: Pressing F12=Previous takes you back to the DSPMSGREF panel where you specified search criteria. Pressing F3=Exit exits out of DSPMSGREF entirely.
  5. If you want to change how the display is organized, type a different value in the Data view field. Values are:
    • C - Sequence by connection log number
    • D - By date
    • M - By message ID
    • R - By reference and date fields
    • S - By Dashboard search
    • T - By trading partner
    Note: Depending on your authority, you may have translation options in addition to viewing options in the Work with all messages by reference fields panel. For more information on translation options, see Translating an Inbound Connection - Manually. The translation options and F14=Translation jobs detailed for the Work with Connections panel are the same available in DSPMSGREF.
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Using the Work with Authority List Activation Panel

The Work with authority list activation panel controls two functions in EEI: Authorization list activation and Group profile processing.

These functions exist independently, therefore the value in one field does not affect the function of the other. Authorization affects who is authorized to see specific information. For example, you can limit the data a user sees based on trading partner, group, message ID, and/or message class. Group profile processing tells EEI to check if a user is included in a group profile while using Display Messages by Reference Fields.
  1. In the Cleo EEI Main Menu | 8. System Configuration | 60. User View Authorization Menu | 1. Work with authority list activation panel, fill out the panel.
    1. The Authorization list activation status field controls whether EEI checks for authorization lists before displaying a program panel. Values are:
      • A - Active. EEI will check for authorization lists.
      • I - Inactive. EEI will not check for authorization lists.
      Note: If you do not have authorities set up, leave this option set to Inactive. This value does not affect group profile processing.
    2. The Group profile processing during search field controls whether EEI checks for group profiles if the current user's profile has no authority. Values are:
      • Y - Yes. EEI checks for group profiles.
      • N - No. EEI does not check for group profiles.
  2. Press Enter and confirm.
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Creating an Authorization List

  1. In the Cleo EEI Main Menu | 8. System Configuration | 60. User View Authorization Menu panel, type 2=Work with authorization lists. Press Enter.
  2. If the Work with authorization lists panel is not in create mode, press F9=Create to enter create mode. In the List field, type a name for you authorization list. In the Description field, type a description of the list. Press Enter and confirm.
  3. Press F9=Change to return the Work with authorization lists panel to normal mode. Type 5=Members in your lists's Opt field. Press Enter.
  4. In the Work with authorization list members panel, press F9=Create to enter create mode. In the Profile field, you can type specific user profile names or group names. Press Enter and confirm.
    Note: For example, you could type service representatives JOHNDOE and JANEDOE in separately, or you could create a group profile called SERVICEREPS and type that.
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Pointing DSPMSGREF to Authorization List

Use the Program control details panel to point the Display Messages by Reference Fields program to your data maintenance authorization list. Data maintenance controls translation functions in the DSPMSGREF panels.

The Program control structure field acts as a parameter that can change the way a program within EEI behaves.
  1. In the Cleo EEI Main Menu | 8. System Configuration | 5. Work with program control information panel, press F9 to create a new entry.
  2. Type LMMDF4R in the Program Identifier field and press Enter.
  3. The Program control details panel appears. In the Program control structure field, type the name of the authorization list controlling data maintenance access within DSPMSGREF. Press Enter and confirm.

    Note: The first 10 characters of the Program control structure field will point the DSPMSGREF to your authorization lists. This is how EEI knows if a user should have translation options in DSPMSGREF. The name does not have to be 10 characters long, any length up to 10 characters is fine.
    Note: Using the authorization list entry for DSPMSGREF, users can control the default view to use combined fields, match case, or both. Positions 11 and 12 of the Program control structure field control these settings. Type Y in position 11 to use F11=Combine Ref Flds by default; type Y in position 12 to use F17=Match Case by default. See Enhancements to DSPMSGREF for more details.
Parent topic: DSPMSGREF - Display Messages by Reference Fields


Troubleshooting

  • Work with errors
    This Mailroom panel provides a central location to view errors. You are able to troubleshoot and resolve these errors by drilling down from here to other panels specific to the type of error. You can access this panel from the Cleo EEI Main Menu |1. Mailroom |24. Work with errors panel.
  • Error Notifications
    Configure EEI to generate and send notifications when errors occur in your environment, by using the Error Notification (ER) Exit Point to call the EPERRNOTFR program.
  • Troubleshooting Unwrap Errors
    The most common Unwrap errors result when the data's ISA and GS elements differ from your Trading Partner information. Try these methods first when data will not unwrap.
  • Troubleshooting Translation Errors (Trans Err) - Inbound
    Try this troubleshooting method first when data will not translate.
  • Common Translation and Generation Error Tips
    EEI gives detailed explanations for translation and generation errors in the Work with incoming translation jobs and Work with outgoing translation jobs panels. Here are a few tips to aid your troubleshooting.
  • Why Troubleshoot on the Interchange?
    You may be asking: "Why does EEI recommend I troubleshoot errors while viewing data on the interchange level when I can view the same data in the Work with connections panel?"
  • Troubleshooting Generation Errors (Gen Err) - Outbound
    Try this troubleshooting method first when data will not generate (translate).
  • Generating or Unwrapping Generate or Unwrap Data with Duplicate Errors
    When you have Duplicate Value Checking set up, EEI flags messages with duplicate values as errors. There may be times when you need to unwrap (inbound) or generate (outbound) duplicate messages. To do that, you must deactivate that particular value.
Parent topic: The Mailroom


Work with errors

This Mailroom panel provides a central location to view errors. You are able to troubleshoot and resolve these errors by drilling down from here to other panels specific to the type of error. You can access this panel from the Cleo EEI Main Menu |1. Mailroom |24. Work with errors panel.

Options

For selected records (use the Opt field and press Enter), you have the option to view errors at the following log and message levels (if applicable):

Application data logs (A=App log)

This takes you to the Work with incoming/outgoing application data log panel. Used for these error types:
  • Mixed

Connection logs (C=Conn log)

This takes you to the Work with connections by log # panel. Used for these error types:
  • Unwrap err
  • Send err
  • Rcv err

Message (M=Display messages)

This takes you to the Display messages panel. This displays the message queue which often contains more detailed information on the error. It can be used for all errors types.

Translation (T=Trans log)

For inbound (R=Rcv), this takes you to the Work with incoming translation jobs. For outbound (S=Send) entries, it will take you to “Work with outgoing translation jobs”. Used for these error types:
  • Trans err
  • Gen err

Error Types and other EEI Panels

The following table describes different errors you may encounter, and the additional EEI panels that should be used to troubleshoot and correct the error. Note that all panels can be accessed from the Work with errors panel.
Table 1.
Error type | Description | Use these EEI panels to troubleshoot
Send err Error during outbound job.
  • Work with connection by log #
  • Display messages
Rcv err Error during inbound job.
  • Work with connection by log #
  • Display messages
Mixed A mixed status on data at a lower level (interchange, group, or message)
  • Work with outgoing application data log
  • Work with connection by log #
  • Display messages
Gen err An error that occurs during outbound generation.
  • Work with outgoing application data log
  • Display messages
Duplicate The connection is a duplicate of a previously received connection.
  • Work with connection by log #
  • Display messages
Wrap err The message was generated and enveloped, but an error occurs during wrapping.
  • Work with outgoing application data log
  • Work with connection by log #
  • Display messages
Unwrap err The message was received, but an error occurred during unwrapping.
  • Work with connection by log #
  • Display messages
Trans err An error that occurs during inbound translation.
  • Work with connection by log #
  • Display messages
  • Work with incoming translation jobs
Env err | The message was generated and enveloped, but an error occurred during enveloping. | There is an "Env error" status in the Log of Message. If this occurs, those errors will be included in the Work with errors screen.
Parent topic: Troubleshooting


Error Notifications

Configure EEI to generate and send notifications when errors occur in your environment, by using the Error Notification (ER) Exit Point to call the EPERRNOTFR program.

How it works

  • When EEI checks to see if an Exit Point is being executed, it first checks to see if and ER is configured.
  • When an ER Exit Point is found with matching criteria, the system calls the EPERRNOTFR program.
  • The EPERRNOTFR RPGLE program checks the functional status of the Log of Message to determine if the Log is in error. If it is, then the system calls EPERRNOTFC program and generates and sends e-mail to each of the *ERROR Trading Partner record in the E-mail Address file.
Note: a prerequisite for using this feature is that your IBM i (where EEI is installed) must be configured to send e-mails. For more information refer to the technical memo on Setting up E-mail Services on the IBM i.

How to configure Error Notifications in EEI

In order to set up (and receive) Error Notifications, you will need to:

  1. Configure e-mail address(es) for “*ERROR” Trading Partners;
  2. Configure an ER Exit Point.

1. Configuring e-mail addresses for Error Notifications

In order for the EPERRNOTFC program to compose and send error notifications, e-mail address(es) for "*ERROR" trading partner must be configured in the Work with e-mail addresses panel.

  1. From the Cleo EEI Main Menu | 11. e-send | 1.Work with e-send addresses panel, type F9 to create an e-mail address.
  2. Enter a valid e-mail address and name.
  3. Enter *ERROR for Trading partner.
    Note: For multiple recipients, you can have multiple records for *ERROR Trading Partner.

2. Create the ER Exit Point

Set the ER Exit Point to call the Error Notification program.

  1. From the Cleo EEI Main Menu | 4. Trading Partners and Networks | 5.Work with trading partner message class exit points panel, type F9 to create the Exit Point.
  2. Enter a sequence number and choose your selection criteria for Trading Partner, Group Code, Message ID, and Message Class.
  3. Call the Shipped Source program (Operation: P) EPERRNOTFR with full parameters (Parm type: 1).

Customizable, but works by default

While there is no need for make code changes (Send Error Notifications works out of the box), the source is shipped for both EPERRNOTFR and EPERRNOTFC. (EPERRNOTFR is in QRPGLESRC, EPERRNOTFC is in QCLLESRC). Because they are shipped-source programs, they can be easily customized; one example being the ability to create your own content in the notification e-mail.

Parent topic: Troubleshooting


Troubleshooting Unwrap Errors

The most common Unwrap errors result when the data's ISA and GS elements differ from your Trading Partner information. Try these methods first when data will not unwrap.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connection data panel, type M=Messages in the connection's Opt field. Press Enter.
  2. In the Display Messages panel, notice the messages detailing the unwrapping process. You'll likely see messages pertaining to the trading partner.
    Note: Always address messages in the panel from the top of the page down. You'll likely also see a message stating "Message class not found..." This is because the trading partner can't be identified. Fiddling with the message class at this point will not help EEI identify the trading partner.
  3. Press F3=Exit to return to the Work with connections panel. Type 5=Interchanges in the connection's Opt field. Press Enter.
  4. The Work with interchanges panel appears. Type D=Data in the connection's Opt field. Press Enter. The Display Physical Fire Member panel appears.
  5. If possible, open another session of EEI. (Go to File | Run the Same on the menu bar.) The second session allows you to more easily compare the data's ISA and GS to the Trading Partner.
  6. In the second session, navigate to Cleo EEI Main Menu | 4. Trading Partners and Networks | 1. Work with trading partners panel. Type 2=Change on the Opt field for the trading partner (who sent the message). Press Enter.
  7. Compare the fields in the Trading partner details 1 panel with the ISA and GS elements in the Display Physical File Member panel.
    Note: In the Display Physical File Member panel, use the F19=Left and F20=Right button to scroll left and write, allowing you to see all of the ISA.
  8. If there are any differences between the fields and elements, change the fields in the Trading partner details 1 panel to match the elements. Press Enter twice and confirm. Try to (re)Unwrap your data.
    • If it works, you're done.
    • If the unwrap fails, proceed to the next step.
  9. If you are using X12 standards, press F11=Alternate view in the Trading partner details 1 panel. Make sure the following fields are blank:
    • Routing address/reverse routing
    • Communications agreement
    • Priority code
    • Decimal/release/reserve
    • Application sender ID qualifier (only qualifier should be blank)
    • Application receiver ID qualifier (only qualifier should be blank)
    • Application password
    Note: These are EDIFACT-only fields, so they should be blank when using the X12 standards. If you are using EDIFACT, don't delete the information in these fields.
  10. If you had to remove entries from any of the fields press Enter twice and confirm. Try to (re)Unwrap your data.
    • If it works, you're done.
    • If the unwrap fails, proceed to the next step.
    • If all the fields were already blank, proceed to the next step.
  11. In the Work with trading partners panel, type 8=Trading Partner message classes in the trading partner's Opt field. Press Enter.
  12. Type 2=Change on the Opt field of the message classes the connection is using. Press Enter.
    • Unless you have a specific need for the message class level to differ from the higher-level Trading Partner information, make sure all fields are blank.
    • If you are using X12 standards, press F11=Alternate view in the Trading partner details 1 panel. Make sure the EDIFACT fields are blank (as in Step 9).
  13. Try to (re)Unwrap your data.
Parent topic: Troubleshooting


Troubleshooting Translation Errors (Trans Err) - Inbound

Try this troubleshooting method first when data will not translate.

  1. In the Cleo EEI Main Menu | 1. Mailroom | 1. Work with connection data | F14. Work with incoming translation jobs panel, type M=Messages in the Opt field of the Master job number that corresponds to the Trans error connection. Press Enter.
  2. In the Display Messages panel, notice the messages detailing the translation process. Press Page Up until you see the first message, and address errors from the top down.
    Note: Always address messages in the panel from the top of the page down. Often, fixing the errors closest to the top of the panel can fix errors further down the list.
  3. For more details on any error message - including Recovery advice on how to fix the error - place the cursor on the message and press F1.
  4. If possible, open another session of EEI. (Go to File | Run the Same on the menu bar.) The second session allows you to more easily compare the error messages and/or data to the message class.
  5. In the second session, navigate to the message class the connection in error is using. (Cleo EEI Main Menu | 5. Mapping | 3. Work with message classes | 8. Select functions | 2. Work with message class segment map panel)
  6. Using the error messages to guide you, make changes to your map to account for the data in the connection.
    Note: Seeing the data and comparing the map to the data can also help you make changes. To do this, (in the first session) return to the Work with connections panel, type 5=Interchanges in the connection's Opt field and press Enter. In the Work with connections panel, type D=Data on the erring interchange's Opt field. (You can also do this on any lower level: Interchange, group, or message, depending on where the error is.)
  7. After making changes to the message class, press Enter and confirm to save your changes. Then press F3=Exit to navigate to the Work with message class panel.
    Note: You must exit completely out of the message class before re-translating, or the translation will fail.
  8. Try re-translating the connection. If it errors again, repeat the troubleshooting process.
Parent topic: Troubleshooting


Common Translation and Generation Error Tips

EEI gives detailed explanations for translation and generation errors in the Work with incoming translation jobs and Work with outgoing translation jobs panels. Here are a few tips to aid your troubleshooting.

(Inbound only) If an element is missing...

  • Add it to your map. Remember: Even if you aren't using incoming data, all incoming segments must be accounted for in your message class. Even though it must appear in your message class, you do not have to map it to a field.

If a segment occurs more than the maximum number of times specified in the mapping...

  • Add occurrences to the message class, or make it N occurring.

If an element or segment is "not in map at this position"...

  • Do not limit yourself to the position listed in the F1 (More detailed help) description. Compare the actual EDI data to your map.
  • Make sure the listed segment or element is not missing.
  • Make sure a segment or element before the one listed is not missing. (For example, if the data contains an ST, BEG, CUR, REF, and PER, but your map accounts for ST, BEG, CUR, and PER, the error message may say “Segment PER is in received data, but not in map at this position.” However, it's the REF segment that is missing.
  • Make sure a segment or element within a loop that occurs before the one listed is not missing.

(Outbound only) If a segment is not appearing...

  • Make sure there is a data value for each mandatory element within it.
  • If you have no data or mapping for a mandatory element in an optional segment, it suppresses the entire segment.

If a code table is not working...

  • Compare the incoming data to the code table entries. Make sure there is an entry in the code table to account for the incoming data.
  • Make sure the Local entries represent the data that goes in your fields, and the Standard entries represent the EDI data you are receiving.
Parent topic: Troubleshooting


Why Troubleshoot on the Interchange?

You may be asking: "Why does EEI recommend I troubleshoot errors while viewing data on the interchange level when I can view the same data in the Work with connections panel?"

You can also view data while troubleshooting in the Work with connections panel. The steps will all be the same.

However Cleo recommends viewing data on the interchange level because the panel displays:
  • One segment per line
  • Replaces blank spaces with dots (making it easier to count characters)
  • A character count across the top

These differences make the data much easier to read.

Parent topic: Troubleshooting


Troubleshooting Generation Errors (Gen Err) - Outbound

Try this troubleshooting method first when data will not generate (translate).

  1. In the Cleo EEI Main Menu | 1. Mailroom | 9. Work with outgoing application data log panel, type M=Messages on a log's Opt field. Press Enter.
  2. In the Display Messages panel, notice the messages detailing the generation process. Press Page Up until you see the first message, and address errors from the top down.
    Note: Always address messages in the panel from the top of the page down. Often, fixing the errors closest to the top of the panel can fix errors further down the list.
  3. For more details on any error message - including Recovery advice on how to fix the error - place the cursor on the message and press F1.
  4. For details on a field or element causing an error, press F3=Exit to return to the Work with outgoing application data log panel. Type E=Element error log or F=Field error log on a log's Opt field. Press Enter.
    Note: The Outgoing translation log by segment/element and Outgoing translation log by file/field panels display the same information, just organized differently.
    1. Notice the Check code (Ck cd) column. The two-digit code that appears in this column specifies the type of error detected on the data.
      Note: For more information on check codes and the data area that controls them, see Outgoing Translation Logs.
    2. Type 8=Details on a segment or field's Opt field for more element details.
  5. Return to the Work with outgoing application data log panel. Type 5=Work with log of messages on a log's Opt field. Press Enter.
  6. In the Work with messages for application data log panel type 5=Message class on a log's Opt field. Press Enter.
    Note: If the error is in a code table, you can press F15=Code tables from the Work with messages for application data log panel to go straight to the Work with all code tables panel.
    Note: You could also open another session of EEI to fix the problem. (Go to File | Run the Same on the menu bar.) The second session allows you to more easily compare the error messages and/or data to the message class. Just remember you must exit completely out of the message class before re-translating, or the translation will fail.
  7. Using the error messages to guide you, make changes to your mapping to fix the errors.
  8. After making changes to the message class, press Enter and confirm to save your changes.
  9. Try re-translating the data log (Option R=Re-translate) in the Work with outgoing application data log panel. If it errors again, repeat the troubleshooting process.
    Note: Sometimes looking at the EDI data that did translate helps identify where an error is. To do this, in the Work with messages for application data log panel, type D=Data on a log's Opt field and press Enter. Where the data cuts off is a good indication of where an error occurred.
Parent topic: Troubleshooting


Generating or Unwrapping Generate or Unwrap Data with Duplicate Errors

When you have Duplicate Value Checking set up, EEI flags messages with duplicate values as errors. There may be times when you need to unwrap (inbound) or generate (outbound) duplicate messages. To do that, you must deactivate that particular value.

You must have a connection, interchange, group, or message with a Duplicate error, or else the value will not appear in the Work with duplicate values panel.
  1. In the Cleo EEI Main Menu | 5. Mapping | 11. Work with duplicate values panel, type I=Inactive on the Opt field of the value that corresponds with the data you want to resend/re-receive. Press Enter.
    Note: You can use the positioner fields in the Duplicate name and Message log number columns to search for the Duplicate value. If you'd rather search by the Duplicate value itself, press F17=Alpha search to search for alpha values or F18=Numeric search to search for numeric values.
  2. Notice in the St (Status) column, an I appears, showing the duplicate checking for that value is Inactive.
  3. Unwrap inbound data or generate outbound data.
  4. Return to the Work with duplicate values panel. Type R=Reinstate on the Opt field of the value that corresponds with the data you unwrapped/resent. Press Enter.
  5. Notice in the St (Status) column, the I disappears and the field is blank, showing the duplicate checking for that value is active.
    Note: Always make sure you turn the duplicate value checking back on. Otherwise, there's the potential to end up resending or re-receiving the data a third time.
Parent topic: Troubleshooting


Purging

The DLTDTA (Delete Data) command marks for deletion all connections, interchanges, groups, and messages which are eligible for deletion based on the automatic purge specifications defined in the Work with TPMC (trading partner message class) options panel.

EEI can handle very high volumes of document translation. In doing so, it creates necessary connections, messages, logs, etc. You need to periodically delete these to free up space on your i. How often you purge will be determined by your business needs and data volumes.

Note: IBM sets hard limits on how many objects can be in a library and how many members a database file can contain.

The Cleo EEI Main Menu | 4. Trading Partners and Networks | 4. Work with TPMC options panel controls how long data, logs, and acknowledgements should exist.

Running the command DLTDTA uses the values in the Work with TPMC options panel to identify data that meets the criteria and mark it "ready to purge." DLTDTA can also back up the data and logs before deletion, print a report of the logs marked for deletion, and/or simply delete the data marked ready to purge.

Reorganization

DLTDTA can also reorganize the log files.
Note: You cannot have any other jobs running during a reorganization, unless you are using the Uptime Maintenance option.
Note: The empty space created by deleting records and logs will not be available for use until the log files are reorganized. If you use DLTDTA only to delete data, make sure you schedule down-time to run a reorganization later.

Cleo recommends regularly scheduling purges with reorganization. The longer you put off a reorganization, the more space EEI needs to reorganize and, therefore, the longer EEI will need to be down for that reorganization. The commands RGZLOG or RGZALL can be used to reorganize logs independently of DLTDTA.

Saving

The DLTDTA command gives you the option to save data and logs before deletion. Whether you save during DLTDTA depends on your business needs and how often you back up your EEI files. DLTDTA uses the command SAVCNNDTA (Save Connection Data) to perform the save. This command can be run separately before using DLTDTA.

The Work with TPMC options panel allows you to specify different time spans to keep data based on trading partner, group code, message ID and Message class. There are separate fields to specify how long to keep data, logs, and acknowledgements.

For example, suppose you want to keep most of your data for 30 days, but need to keep data for one specific trading partner, CompanyA, 90 days. You would set up an entry for Trading partner *ALL with Days data set to 30 and a Search sequence of 99999. Then set up an entry for Trading partner CompanyA with Days data set to 90 and a Search sequence of 10 (or any number lower than 99999). The lower search sequence will ensure that CompanyA's data will not be marked for purging until its 90 days old, and all other trading partners' data will be marked for purging when it is 30 days old.

Note: Cleo ships EEI with a TPMC options default entry that has *ALL in the Trading partner, Group code, Message ID and Message class fields and 99999 in the Days data and Days logs fields. Cleo highly recommends changing the 99999 values to lower values, or else you will likely hit the IBM limits on data.

Process Summary

To purge data, you must:
  • Specify how long you want to keep data in the Work with TPMC options panel.
  • Use the DLTDTA command to delete the data according to those specifications.
  • Creating Trading Partner Message Class Options for Purging
    Use the Work with TPMC options panel to control how long data and logs should exist before they can be deleted, and how long to wait for an acknowledgement before it's late.
  • Using DLTDTA - Delete Data
    Running the DLTDTA (Delete Data) command allows you to mark records and logs as ready for deletion, print a report of those records and logs, perform the deletion, and do so while maintaining near-continuous processing of data. You can do just one or all of these operations with this command.


Creating Trading Partner Message Class Options for Purging

Use the Work with TPMC options panel to control how long data and logs should exist before they can be deleted, and how long to wait for an acknowledgement before it's late.

Running the command DLTDTA uses the values in the Work with TPMC options panel to identify data that meets the criteria and mark it "ready to purge."
In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 4. Work with TPMC options panel, press F9=Create to enter create mode.
  1. The Search sequence field specifies the order in which EEI executes the search criteria to decide whether or not to mark data, logs, or acknowledgements as "ready to purge." Type a sequence number in the field. The lower the sequence number, the sooner it will execute.
    Note: Always sequence specific searches to execute before generic (*ALL) searches.
  2. The Trading partner field specifies the trading partner to which the option applies. Either:
    • Type a specific trading partner name, to apply this option to data to and from a single trading partner.
    • Type *ALL to apply the option to all trading partners (or as a catch-all for any trading partners left after earlier sequenced searches execute).
  3. The Group code field specifies the Group code (for example, PO) to which the option applies. Either:
    • Type a specific group code, to apply this option to data associated with a single group code.
    • Type *ALL to apply the option to all group codes (or as a catch-all for any group codes left after earlier sequenced searches execute).
  4. The Message ID field specifies the group code (for example, 850) to which the option applies. Either:
    • Type a specific message ID, to apply this option to data associated with a single message ID.
    • Type *ALL to apply the option to all message IDs (or as a catch-all for any message IDs left after earlier sequenced searches execute).
  5. The Message class field specifies the message class to which the option applies. Either:
    • Type the name of a specific message class, to apply this option to data translated using a single message class.
    • Type *ALL to apply the option to data using all message classes (or as a catch-all for any message classes left after earlier sequenced searches execute).
  6. The Process option field is used only by the STRTRNMSG (Start Translate Message) command. Values are:
    • B - Both export and translate
    • E - Export only
    • T - Translate
    • U - Unwrap only
  7. The Scheduling priority field specifies the order in which an object should be scheduled for processing. Values are letters ranging from A to Z, with A representing the highest priority. Objects are then grouped into separate jobs by priority.
    Each priority is associated with a set of processing parameters, such as job description, job name, etc.
  8. The Days data field specifies how long (in days) EEI should retain data records. Once a data record exceeds the limit set here - and the DLTDTA command is run - the DLTDTA command will mark the record Ready to Delete.
    Note: The Days data, Days logs, Hours acknowledgement age is counted from the Log of Connection record's Start of connection date/time compared to the to the current date and time when DLTDTA runs.
  9. The Days logs field specifies how long (in days) EEI should retain log records. Once a data record exceeds the limit set here - and the DLTDTA command is run - the DLTDTA command will mark the record Ready to Delete.
  10. The Hours acknowledgement field controls how many hours pass after sending or receiving a document (determined by the Trading Partner, Group code, etc.) before its corresponding acknowledgement is marked "Late."
Parent topic: Purging


Using DLTDTA - Delete Data

Running the DLTDTA (Delete Data) command allows you to mark records and logs as ready for deletion, print a report of those records and logs, perform the deletion, and do so while maintaining near-continuous processing of data. You can do just one or all of these operations with this command.

The Work with TPMC (trading partner message class) options panel controls which messages will be eligible for deletion. If you haven't changed the default settings to meet your business' needs, see Creating Trading Partner Message Class Options for Purging.

If you are doing a save or a reorganization as part of the purge (but not using Uptime Maintenance), you cannot have any other jobs that use EEI files running. File locking will occur if other jobs are running.

  1. Either type DLTDTA in a command line and press F4 to prompt it or in the Cleo EEI Main Menu | 3. Archiving and Data Management panel, type 11=Delete selected data and logs and press Enter.
  2. The Purge data and log files panel appears. Fill in the fields to specify what data management operations you want EEI to perform.
    1. The Mark log records for deletion field specifies whether EEI should compare data on your system to the values in your TPMC Options and mark those records as Ready to Delete. Values are:
      • *YES - Mark all records and logs older than the values as Ready to Delete.
      • *NO - Do not mark any records or logs.
      • *UNMARK - All logs currently marked for deletion will be unmarked, without regard to the values in your TPMC Options.
    2. The Perform actual deletion field specifies whether EEI should delete all data that has been marked Ready to Delete. Value are:
      • *YES - Delete all data marked Ready to Delete.
      • *NO - Do not delete any data.
      Note: Once a record or log has been marked Ready to Delete, it remains marked. Therefore, deletion will pick up any data marked on previous runs of the DLTDTA command.
    3. The Print logs marked for delete field specifies whether EEI should print a report listing the data that has been marked Ready to Delete. Values are:
      • *ALL - Reports on all Ready to Delete data will be printed.
      • *NONE - No reports will be printed.
      • *SPECIFIC - Only user-specified reports will be printed.
      Note: If using *SPECIFIC, press F24=More keys then F9=All parameters for additional parameters to control Print selections.
    4. The Save data & logs before delete field specifies whether to save data marked Ready to Delete before it is actually deleted. This option will create a save catalog within EEI. You cannot have any other jobs running on the system during a save. Values are:
      • *OBSOLETE - Save only those log records marked Read to Delete, and all data associated with those log records. The log records will be saved even if the DLTLOG parameter specifies not to delete them.
      • *ALL - Save all connection data and log records to the device specified after records are marked for deletion.
      • *No - Do not perform any save operation.
      Note: The command SAVCNNDTA (Save Connection Data) is used when you select *OBSOLETE or *YES. However, only some of the SAVCNNDTA parameters are available when using DLTDTA.

      If you are using *OBSOLETE or *YES, press F24=More keys then F9=All parameters for additional parameters to control save parameters such as Device, Save file, etc.

      If you would like even more control over the save, run SAVCNNDTA separately before using DLTDTA.

    5. The Delete unreferenced message queues field specifies whether to delete all message queues that are no longer referenced by logs. Values are:
      • *YES - Delete any message queues in the current EXTOL message queue library (default name EXTINTMSGQ) that are no longer referenced by any log records.
      • *NO - Do not delete any unreferenced message queues.
    6. The Reorganize log files field specifies whether EEI should reorganize the remaining log files after deleting the log files marked Ready to Delete. You cannot have any other jobs running during a reorganization. Values are:
      • *YES - Reorganize the log files
      • *NO - Do not reorganize the log files

      The command RGZPHM (Reorganize Physical File Member) is used on each log file when you select *YES.

      Note: The empty space created by deleting records and logs will not be available for use until the log files are reorganized. If you use DLTDTA only to delete data, make sure you schedule down-time to run a reorganization later.

      Cleo recommends regularly scheduling purges with reorganization. The longer you put off a reorganization, the more space EEI needs to reorganize and, therefore, the longer EEI will need to be down for that reorganization. The commands RGZLOG or RGZALL can be used to reorganize logs independently of DLTDTA.

      Note: If the Save data & logs before delete field is set to *ALL or *OBSOLETE and you are reorganizing, reorganization will occur before the again and again after deletion.
    7. The Uptime maintenance library field specifies the use of an Uptime Library. This works by copying your current EEI Files Library and creating a temporary version or uptime environment that maintains active processing while the selected records are purged and/or reorganized. Finally, both libraries are merged with limited downtime, and normal processing resumes.
    8. The Execute exit point field specifies whether to call any RD (Ready to delete) exit points that you have set up in the Work with TPMC exit point panel. This exit point will be kicked off before deletion. Values are:
      • *YES - Call the exit point(s).
      • *NO - Do not call any exit points.
  • Uptime Maintenance
    Uptime Maintenance is an option that enhances the ability to reorganize files using the DLTDTA command. As part of normal command usage, you can purge with or without reorganizing (i.e. reclaiming freed-up memory), print logs marked for deletion, and other tasks. With Uptime Maintenance you can reorganize with a major reduction in the disruption of your ongoing processing of inbound and outbound records.
Parent topic: Purging


Uptime Maintenance

Uptime Maintenance is an option that enhances the ability to reorganize files using the DLTDTA command. As part of normal command usage, you can purge with or without reorganizing (i.e. reclaiming freed-up memory), print logs marked for deletion, and other tasks. With Uptime Maintenance you can reorganize with a major reduction in the disruption of your ongoing processing of inbound and outbound records.

Uptime Maintenance basically works by copying your current EEI Files Library and creating a temporary version or uptime environment that maintains active processing while the selected records are purged and/or reorganized. Finally, both libraries are merged with limited downtime, and normal processing resumes. This diagram gives a high-level view of how your EEI Files Library moves through the stages of uptime maintenance while maintaining the processing of inbound and outbound documents.

The actual processes needed to coordinate the starting, stopping, and merging on your system can be customized using available programs.

Process Summary

Using Uptime Maintenance (UM) as part of purging follows these basic steps.
  • Use the available Exit Point programs to customize the UM process.
  • Call the DLTDA command (Purge data and log files).
  • Specify the Uptime Maintenance library.

Calling the Exit Point programs with EPUPMAINTR (Exit Point Uptime Maintenance)

Use the EPUPMAINTR exit program to call any of the 7 Exit Points used for Uptime Maintenance. Each will be called at specific times during Uptime Maintenance processing.

Also use the optional EPUPSTRSTC to start and stop processing on your system automatically when using specific Exit Point programs. When starting processes, jobs must be submitted in order to use the proper library list.

Table 1. Exit Point Programs
Mode | Exit Point Program | Description
000 Shutdown System This program initiates DLTDTA processing (prior to allocating any files). This begins the process of preparing your Files Library for selected purging. Results:
  • EPUPSTRSTC called to stop custom processing;
  • Reorganization check is performed.
100 Send Notifications

This program initiates Uptime Maintenance processing (prior to creating the Uptime Maintenance library).

Results:
  • Uptime environment is created.
    • Creation of the UM library
    • Configuration of data with UM library.
150 Restart System

This program restarts the system once the Uptime library has been created. It is SAFE to return to the system.

Results:
  • EPUPSTRSTC called to start custom processing
  • Regular transaction resumes
  • Purge and Re-org occurs
199 Purge Complete – Merge Starting

DLTDTA complete. You are ready to reset your environment and begin to merge.

Results:
  • Release Locks in Environment
  • EXUMMRGLIB Command is called
Note: You have the option to delay the merge; this can be done by disabling the EXUMMRGLIB command.
900 Reset Environment – Merge Starting

Initiate merge (prior to merging Uptime Maintenance to EEI Files library).

Results:
  • The merge process begins.
  • EPUPSTRSTC called to stop custom processing.
  • Allocate UM and EEI Files Library.
    • Merge configuration data
    • Merge transactional logs
Note: No transactions will take place. This is downtime.
950 System Fully Available

Merging started (Now safe to return to system)

Results:
  • EPUPSTRSTC called to start custom processing
  • Merge Transactional Data
  • Update Acknowledgment and Secure statuses in pre-uptime maintenance connections.
999 | Merge Complete | This indicates the end of processing; the merge has completed. You also have the option of deleting the Uptime Maintenance library.

Where Exit Points occur during the UM Process

If we revisit the diagram, the Exit Points (defined by Mode) have been included. Note that only two (100 and 900) occur during actual system downtime.

Custom Considerations for Uptime Maintenance

1) Interactive User Library List

If users are going to be in EEI during Uptime Maintenance, their library list must be set appropriately. Set the library list for the job, then Call EUMLIBL to add the Uptime Maintenance Library ahead of the EEI Files Library. When called outside of Uptime Maintenance, the API leaves the library list unchanged.

2) Logging in during Uptime Maintenance mode

  • If logging in using the EXTOLOWN user, it sets the proper library list. For example, when logging in during Uptime Maintenance mode, the UM library is added above your files library in your library list. EXTOLOWN user profile uses EXTOLJOBD job description and its initial program does not change the library list. This is the default configuration of the EXTOLOWN user profile. Any modifications to this profile may change this functionality.
  • To maintain the proper user library list, logout is required at two points during the Uptime Maintenance - 1) after switching into Uptime Maintenance mode and 2) after switching back to normal processing.

3) Custom JobD Initial Library List

If your system runs EEI jobs through a custom JobD, the Initial Library List of the custom JobD must be set appropriately through the EPUPMAINTR 100 and 900 Exit Points.

Add the UM library to the custom JobD during 100 by using Call EUMJOBD Parm(&RtnCode ‘001’ &JobD &JobDLib &UMLib &EEIFileLib)

Remove the UM library from the custom JobD during 900 by using Call EUMJOBD Parm(&RtnCode ‘999’ &JobD &JobDLib &UMLib &EEIFileLib)

Parameters for the EUMJOBD API:
  • &RtnCode is 7 Characters (pass in as blanks and if not blanks on return, indicates an error occurred during processing)
  • Mode is 3 Characters (001=Add UM library to Initial Library List, 999=Remove UM library from Initial Library List)
  • &JobD is 10 Characters (name of the Custom JobD)
  • &JobDLib is 10 Characters (name of the library containing the custom JobD)
  • &UMLib is 10 Characters (name of the UM Library)
  • &EEIFileLib is 10 Characters (name of the EEI Files Library)
Parent topic: Using DLTDTA - Delete Data


Version Conversion

EEI allows you to quickly convert an existing message class to one that uses a different EDI standards version or release.

During version conversion, EEI analyzes your existing message class and the new standards you want to use. EEI uses this analysis to create a conversion map.

The conversion map outlines EEI's suggestions for where the existing message class' segments and elements should be mapped in a message class that uses the new standards. Looking at the conversion map report allows you to see what segments and elements could not be mapped, often because they are no longer included in the new standard.

You could adjust the mapping directly in the new message class. This is a quick fix if you are only converting one message class to the new standard.

However, if you are converting multiple message classes, Cleo recommends fixing the placement of the unaccounted-for elements in the conversion map and using version conversion again to recreate the new message class. When corrections are made in the conversion map, EEI will remember how to handle those elements the next time you need to run version conversion on a similar message class.

  • Using Version Conversion
    Use version conversion to to quickly convert an existing message class to one that uses a different EDI standards version or release.


Using Version Conversion

Use version conversion to to quickly convert an existing message class to one that uses a different EDI standards version or release.

  1. In the Cleo EEI Main Menu | 5. Mapping Menu | 3. Work with message class panel, type 3=Copy in the Opt field of the message class you want to convert. Press Enter.
  2. In the Copy message class panel, in the Conversion map field, type a new, unique name. EEI will use this to automatically create a new conversion map.
    If you already have a conversion map that you want to use,
  3. Fill in the rest of the Copy message class panel's fields as you normally would to copy a message class.
  4. Press Enter. Notice at the bottom of the Copy message class panel, a message appears stating the conversion map has been created. Then, confirm.
  5. The View Option panel appears, asking if you want to view the reports created. Always choose Y=Yes and press Enter.
    Note: New standards obviously introduce changes. Although EEI will be able to automatically convert many segments and elements, some elements may be moved, added, or not exist at all. If you do not look at the report, you will not be able to adjust the map for any missing or misplaced mappings.
  6. In the Work with Job Spooled Files panel, type 5=Display in your job's Opt field and press Enter.
  7. The Display Spooled File panel displays your Map Conversion Errors report. You have two options to fix any reported errors:
    • If you are only converting one message class to the new standard, you may want to adjust the mapping directly in the new message class.
    • If you are converting multiple message classes, Cleo recommends fixing the placement of the unaccounted-for elements in the conversion map and using version conversion again to recreate the new message class. When corrections are made in the conversion map, EEI will remember how to handle those elements the next time you need to run version conversion on a similar message class.
Parent topic: Version Conversion


Advanced Auto-Mapping

Advanced Auto-Mapping allows you to build a new message class based on an existing message class.

Note: As with all message classes, Cleo strongly recommends testing maps created with Advanced Auto-Mapping before using the message class in production.

When auto-mapping based off an existing message class, EEI automatically creates a trading partner and trading partner group.

To auto-map from an existing message class, in the Cleo EEI Main Menu | 5. Mapping Menu | 9. Advanced Auto-Map Entry panel, enter the new message class' name and description, then enter the reference message class.

EEI will create a message class that contains elements corresponding with the elements in that message class.

After the message class has automatically been created, go into your new map and make any necessary adjustments to make sure the message class will translate the new data according to your requirements.

  • Using Auto-Mapping
    Use auto-mapping to to build a new message class based on an existing message class, as well as a new trading partner and trading partner group.


Using Auto-Mapping

Use auto-mapping to to build a new message class based on an existing message class, as well as a new trading partner and trading partner group.

This feature is most commonly used when you receive data that cannot be translated because there is no message class and trading partner created and ready to translate.
  1. In the Cleo EEI Main Menu | 1. Mailroom | 2. Work with Interchanges panel, locate the interchange that has an Unwrap error and an unknown trading partner, signified by a "?" (question mark) in the Trading partner. Type A=Automap in its Opt field and press Enter.
  2. The Advanced Auto Map Entry panel appears.
    1. in the Message ID field, type the message ID that you want the new message class to be. (For example, 850.)
    2. In the Message class field, type a name for the new message class.
    3. In the Description field, type a description of the new message class.
    4. The Reference Message ID and Reference message class fields specify the message ID and name of the existing message class that you want to use as reference in creating the new message class.
    5. Press Enter twice and confirm.
  3. The Advanced Auto Map Entry panel changes to display details about the new message class, such as standard class, industry group, etc.
    1. In the Trading partner code field, type the name that you want the new trading partner class to be.
      On the line next to it, type a description for the trading partner.
    2. In the Automap search pattern ID, type a number. The default value is 001.
    3. Press Enter and confirm.
  4. In the Work with all interchanges by trading partner panel, notice the message across with bottom of the panel stating "SBMADVAM (Submit advanced auto-map) was submitted to the default job queue.
    Note: After the message class has automatically been created, go into your new map and make any necessary adjustments to make sure the message class will translate the new data according to your requirements.
    Note: Don't forget to translate the interchange now that you have a message class and trading partner for it.
Parent topic: Advanced Auto-Mapping


Maximum Values for EEI Items

Listing of the maximum allowed values for various items in EEI's unwrapper, translators, and splitter. (For example, maximum characters in an element, components per element, code tables, etc.)

Unwrapper and Translator Maximums

Maximum for... | Unwrapper | Inbound Translator | Outbound Translator
Number of elements |  | 6,000 | 6,000
Characters in one element | 100 | 100* | 100*
Components per element | 98 | 150 | 98
Characters in one component element | 100 | 100 | 100
Number of segments |  | 1,200 | 1,200
Segment counters |  | 99 | 99
Segments with formats attached |  | 500 | 250
Fields (all files and formulas) |  | 6,000 | 6,000
Field map overlap (one field) |  | 500 |
Fields to clear per format |  | 250 |
Field length in a file |  | 500 |
Key length for EFL |  | 2,000 | 2,000
Level test field length |  |  | 40
Accumulators |  | 10 | 10
Code tables | 50 | 500 | 500
Constants from constants table |  | 100 | 100
Number of formats** |  | 200 | 200
Relational conditions |  | 100 | 100
Record length |  | 32,000 | 9,900
State table entries |  | 1,500 | 1,500
FS/FD Formula/EFL |  | 900 |
FS Formula/EFL |  |  | 900

* Up to five elements per segment may be more than 100 characters, but no more than 4,096 characters.

** Formats includes user files, file set, and formulas

Splitter Processing Area Maximums

Maximums for... | Splitter
Number of formats | 200
Record formats for a file (excluding program-described) | 32


Pipelining

Pipelining is a feature that increases throughput and optimizes processing by separating compound inbound and outbound processes into individual functions that are run independently.

The Pipelining feature utilizes an assembly?line concept to break complex operations, such as inbound and outbound EDI data, into a series of smaller more individualized steps rather than one larger step. These individualized steps are arranged in a sequential manner to allow you to continually feed data into the “pipe” after a step completes rather than waiting for the entire process to complete prior to sending additional data.

Once initiated, each step remains active, reducing the initiation overhead. As each step completes its process, it becomes available and can immediately start another process. With 4?step pipelining, four operations can run continuously and in parallel instead of the traditional way where each operation runs on demand in a sequential manner.

How is Pipelining different from traditional configuration?

There are several differences between traditional configuration and Pipelining configuration. These differences include:

Each Pipeline step exists in a never-ending job
  • Saves all initiation time after 1st batch
    • Job creation/startup
    • Program loading
    • File opening
  • Saves many I/O’s if batches are similar
    • Map is re?loaded only if current batch uses a different message class than previous batch.
    • Dramatic time savings on small batches.
    • Initiation work can be greater than 90% of the work in many cases.
Each Pipeline step is implemented by a new command
  • PIP* commands are wrappers over standard EEI commands.
  • Listens on data queue for input triggering.
  • Sends data queue message upon completion.
  • Can optionally include EDI data in a data queue message (without files) at import/export completion.
  • Can optionally preserve user?defined correlation identifiers to allow “keyed” messages.
Better CPU utilization
  • Pipeline utilizes multiple jobs, or “workers”, as opposed to a single job.
  • The better CPU utilization can be seen with a single?core CPU. This is due to efficient task switching in i OS.

How is Pipelining similar to traditional configuration?

Even with its differences, there are many similarities between traditional and Pipeline configuration. These similarities include:
  • Pipeline uses the same EEI base programs.
  • One pipeline can handle complex batches – multiple Interchanges, Trading Partners, Message Classes, and inbound Filesets.
  • Automatic inbound FA reconciliation.
  • Automatic outbound FA generation – can be sent in a pipeline or via normal commands
  • Similar visibility in the Mailroom ? Display message by ref fields (DSPMSGREF)
  • Pipelining Criteria Checklist
  • Pipelining Data Queues
  • Pipelining Use Cases
    Example cases for pipeline usage.
  • Pipelining Implementation
    Implementation steps and best practices.
  • Program Templates
    These program templates may be customized to suit your Pipelining business requirements.
  • Parameters on Pipelining Commands
  • Pipelining Deployment
  • Pipelining Flow
    Pipelining is designed to allow you to insert customized code between each step in both the Inbound and Outbound processes. This is accomplished through the use of data queues that initiate each step in the cycle.
  • Pipelining Diagrams
    The following diagrams visualize the Pipelining workflow.
  • Pipelining - Additional Items


Pipelining Criteria Checklist

What are some characteristics that may warrant the use of pipelining? Do you:

Need fast turn-around time?
  • Sub-second turnaround possible.
Process a High Volume of transactions?
  • Hard to enumerate, but a constant flow.
  • Dependent on hardware and size of transaction.
Process small documents?
  • Single EDI document.
  • From a Web service (Web form.)
  • Small batches.
Require near real-time processing?
  • AS2.
  • Web service.
  • Some FTP processes may hinder results.
Suffer timing issues?
  • Program “waits” – Having to set waits to determine if a process is finished then continue.
  • Jobs running into each other.
  • Data being grabbed by another job of similar type.

If you answered yes to any of these questions, Pipelining may be an option. Please call customer support or your account manager for additional information.

Parent topic: Pipelining


Pipelining Data Queues

Pipelining can be configured using either keyed or non?keyed data queues. Reasons for using a keyed data queue include:

Often need to achieve reasonable throughput
  • Multiple request/response transactions at once.
  • Need to keep pipeline steps filled.
  • Funnel in - fan out.
Each request gets a unique key (Correlation ID)
  • Messages carry the key value at each step.
  • At the 'output' end, each request only sees the particular result for it's unique key.
Parent topic: Pipelining


Pipelining Use Cases

Example cases for pipeline usage.

Single Pipeline - One Direction

One inbound or one outbound pipe can be configured for documents needing to be sent or received at a high frequency. These documents, such as an inbound 214 in companies with a large number of trucks, may receive a large number of these documents in a short time period and may need to process them in a timely manner to avoid issues (such as queuing of jobs).

Single Pipeline - Both Directions

One inbound and outbound pipe can be configured for several reasons including ‘turn?around’ document pairs received at a high frequency. These documents, such as 204/990 or 270/271, often require a very quick turnaround.

Multiple Pipelines

Multiple pipeline environments (more than one inbound or outbound pipe) can be configured for several purposes, such as to increase total throughput, or even to maintain separation between processing streams. Generally, the most straightforward way to keep multiple pipelines organized is to create a complete set of data queues for each pipeline, with a naming convention that can readily identify within which pipeline a given queue is used. A related naming convention should be used for names of submitted batch jobs.

Note: The source code for a set of example commands and CL command processing programs is shipped in the pipelining library to aid in setting up multiple pipelines with a naming convention.

Multiple Entries to a Single Pipeline

Also, multiple “entries” into a single “pipe” can be useful. For example multiple PIPCRTAPPB or PIPCNNIMP jobs (entries into the outbound or inbound pipe respectively) allow for pulling data from multiple locations. Each of these jobs would feed data to a single subsequent step in the outbound/ inbound pipeline flow.

Parent topic: Pipelining


Pipelining Implementation

Implementation steps and best practices.

Before you implement, the following items should be reviewed/completed for Pipelining.
Note: All sample CL source required for the Pipelining feature is included in the QCLLESRC file within the EXTOL programs library (default EXTSYS) of the EEI installation.

Create a Library

As part of the Pipeline feature, you are provided with several CL program templates. It is recommended that you create a separate library to contain copies of the CL source which you will modify for your business requirements. Copy the following CL programs from the QCLLESRC file within the EXTOL programs library to the newly created library:
  • ALLUPC - Start all pipeline procedures.
  • SBMRCV3C
  • SBMCRT4C
  • ALLDOWNC - Close down pipeline procedures
Once copied, modify the following:
  • SBMRCV3C - PIPCNNIMP command parameters:
    • FILE
    • MBR
    • NETPORT
    • SCRIPT
    • NETID
  • SBMCRT4C - PIPCRTAPPB command parameters:
    • FSET
    • TOFILE
    • TRDPNR
    • GROUP
    • MSGID
    • MSGCLS
Note: Each of the jobs within the SBM* CL’s are shipped with the HOLD parameter set to *YES. Unless you want to release these jobs individually when the ALLUP command is run, you will need to set this parameter to *NO.
Note: Once copied and modified, the CL programs must be compiled before use.

Member Control

In order to maximize Pipeline’s performance enhancement, it is required that member control be used in conjunction with Pipelining.

If not already configured, Member Control should be configured at this time.

Please refer to EEI Technical Memos 188, 189, and 190 for more information on Member Control.

IMPORTANT: When using member control it is recommended a new member is created when the current one is a day old because the Purge process will not delete connections less than a day old.

This can be done by setting the parameter MAX MEMBER DATA AGE = 23:59:59

This is the maximum time a member will remain active.

You can also set MAX CONNECTIONS PER MEMBER.

If both parameters are utilized, then when either condition is met, a new member will be created.

Add Library to Current Library List

The custom Pipeline library created to house the Pipelining programs must be included in your current library list.

Add Library to Translation JOBD

Verify the library where your application files reside is included in the translation JOBD.

Change Job Queue Entry

Via the Change Job Queue Entry (CHGJOBQE) panel, change the Maximum active jobs that can be run in the sub?system.

When determining the value for this parameter, the Pipeline process requires nine (9) jobs and the shipped value is ten (10).

Parent topic: Pipelining


Program Templates

These program templates may be customized to suit your Pipelining business requirements.

Commands

The various commands associated with Pipelining can be divided into two groups:
  1. Template functions
  2. Pipelining specific commands

A descriptions of these groups follows.

Template Functions

These commands are example utility commands and CL programs shipped with source code; the intention is to use them as examples of how to start, stop, and control the pipeline jobs using your own interface programs. These commands can be customized to fit your business requirements.

  • ALLUP - Startup all Pipeline jobs.

    The ALLUP command is used to start a pipe. The command calls two programs (SBMCRT4C and SBMRCV3C) which in turn submit the appropriate commands to start the send and receive portions of Pipelining.

  • ALLUPN - Startup all Pipeline jobs in job set "N."

    The ALLUPN command is used to start a named pipe. It takes a parameter “N” which is used in the naming convention of the jobs. The command calls two programs (SBMCRT4NC and SBMRCV3NC) which in turn submit the appropriate commands to start the send and receive side of the named pipe. Each pipe has a set of data queues specific to its processing.

  • ALLDOWN - Shut down all Pipeline jobs.

    The ALLDOWN command is used to end a pipe. The command sends a “close down” (*DOWN) message to all pipeline data queues, which will end all jobs in the pipe. It will then clear all pipeline data queues, to prevent any messages arriving after the ALLDOWNN command is given from remaining in the queues for the next startup. If this clearing behavior is not desired, you may modify the shipped CL program to suppress it.

  • ALLDOWNN - Shut down all Pipelin jobs in job set "N".

    The ALLDOWNN command is used to end a named pipe. It takes a parameter “N” which is used in the naming convention of the jobs. The command sends a “close down” (*DOWN) message to all pipeline data queues, which will end all jobs in the named pipe. It will then clear all pipeline data queues in the set, to prevent any messages arriving after the ALLDOWNN command is given from remaining in the queues for the next startup. If this clearing behavior is not desired, you may modify the shipped CL program to suppress it.

  • CRTDTAQN - Create a set of data queues for job set "N".

    The CRTDTAQN command accepts two parameters. An “N” parameter which is used in the name of the data queues. The value should be the same as the corresponding pipe. A second parameter “DTAQLIB” specifies the library to contain the data queues. This command will create a set of data queues with the value of parameter N embedded in their names, using the same naming convention as the ALLUPN and ALLDOWNN commands. It is simply intended for convenience during the initial setup of environments running multiple pipes.

  • Pipelining Program Templates - Inbound
  • Pipelining Program Templates - Outbound
Parent topic: Pipelining


Pipelining Program Templates - Inbound

Pipeline Specific Commands

These Cleo product commands were created specifically for purposes of Pipelining. These commands can be broken down into inbound and outbound (including a Functional Acknowledgements) categories.

Inbound
The Inbound program (SBMRCV3C) consists of the following four (4) inbound commands:
Note: After issuing the ALLUP(N) command the inbound process is started by sending a data queue message to the trigger: SNDDTAQMSG DTAQ(CRTCNNIMPR) MSG(*START)
  • PIPCNNIMP - Create connection by import.

    This command is used to import EDI data into EEI, either from an i OS DB2 database file or from a data queue message. If EDI data is received other than through the normal Cleo communications program, this command will copy the data into an Cleo communications file member and create an appropriate connection log record.

    This command can be configured to either:
    1. "receive" EDI data, which will then be translated.
    2. "send" EDI data, to be sent using the Cleo communications facilities.

    The command has the ability to copy a range of records within a file, specified by record number. The starting and ending character positions of the EDI data within each record may also be specified, allowing keys or other control information to be bypassed by the copy.

    For importing from a data queue message, the data is expected to be in a format parseable by the unwrapping process, which essentially means that it contains EDI data with normal envelope segments. The unwrap process will skip over any non?EDI data that appears ahead of or after actual EDI interchanges. The optional parameters FROMCHAR and TOCHAR may be used if it is desired to further restrict the import to a substring of the complete data queue message.

    For importing from a database file, the command will accept data in an "unwrapped" format (1 EDI segment per record), "unwrapped" with continuation records (more than one record per EDI segment) or in a "wrapped" format (EDI segments separated only by a segment delimiter with no regard for record boundaries).

    For unwrapped data with continuation records, the position, length and contents (in hexadecimal format) of the continuation character string must be specified. For unwrapped data, the segment delimiter can be automatically determined by a search. If no segment delimiter exists in the data, one may be automatically added to the end of each segment. In addition, the data may be copied without any manipulation of existing segment delimiters.

    For EDI data imported as "received", command parameters are available to enter data into the fields in the Log of Connection records which normally refer to the communications session.

    For EDI data imported as "send", the parameters which provide communications information (for example: network ID, network port) are required.

    There may be two different control scripts associated with this processing. The script name (if any) specified on the SCRIPT parameter is used to update the Log of Connection record; it will also be used to send the connection if DIR(*SEND) is specified. The script name (if any) specified on the IMPORTSCR parameter is used during the file import process. If the EDI data being copied does not contain envelope segments, they may be created by WRTLINE statements in the control script specified on the IMPORTSCR parameter.

    This process does not determine any of its parameters on the fly. All the values used to determine the library, file, member, copy from/to record number, copy from/to character position and so on must be set when initially submitting the jobs. Therefore, multiple PIPCNNIMP will be necessary to pull data into the system from multiple locations. The command receives a generic start message to kick off processing unless *NONE is used in the RCVQ parameter. When *NONE is used, the process is executed immediately. It will send completion messages to 1 or 2 data queues depending on what was specified when the job was initially loaded. These messages will be formatted as follows:

    When parameter DIR is specified as *RECEIVE on the PIPCNNIMP command.

    Positions 1 thru 8 – ‘CRTCNN01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘C’

    Positions 12 thru 18 – ‘0000000’ (Connection Log#, for data just processed, in character form.)

    Positions 19 thru 80 – blanks

    When parameter DIR is specified as *SEND on the PIPCNNIMP command.

    Positions 1 thru 8 – ‘SNDCNN01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘C’

    Positions 12 thru 18 – ‘0000000’ (Connection Log#, for data just processed, in character form.)

    Positions 19 thru 80 – blanks

  • PIPUNWSTDB - Pipeline Unwrap

    The PIPUNWSTDB command uses a connection log number extracted from a data queue message to unwrap data as received from a public or private network in "wrapped" form, scan for various envelope segments and log their occurrence in logs of interchange, group, and message. This command acts similar to the UNWSTD command.

    Additional parameters for pipeline allow the specification of a data queue that is used to initiate the process and a data queue to send a completion message to when the process completes.

    The command receives a data queue message from the PIPCNNIMP command or, potentially, from a control script. If positions 1 thru 10 are equal to SNDCNN01 the job will extract the Connection Log# from positions 12 thru 18 of the data queue message and use this for processing. If positions 1 thru 10 are not equal to ‘SNDCNN01 ‘ the Connection Log# is defaulted to zero for processing. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘UNWSTD01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘C’

    Positions 12 thru 18 – ‘0000000’ (Connection Log#, for data just processed, in character form.)

    Positions 19 thru 80 – blanks

  • PIPTRNSTDB - Pipeline Translate Std > App

    The PIPTRNSTDB command will process Log of Connection records eligible for incoming translation (Unwrapped or Mixed with at least one message Unwrapped). Selection is done by connection log number which is extracted from a data queue message. This command acts similar to the STRTRNCNN command.

    Additional parameters for pipeline allow for the specification of a data queue that is used to initiate the process and a data queue to send a completion message to when the process completes.

    The command receives a data queue message from the PIPUNWSTDB command. If positions 1 thru 10 are equal to ‘UNWSTD01 ‘ the job will extract the Connection Log# from positions 12 thru 18 of the data queue message and use this for processing. If positions 1 thru 10 are not equal to ‘UNWSTD01 ‘ the Connection Log# is defaulted to zero for processing. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘STRTRN01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘T’

    Positions 12 thru 22 – ‘00000000000’ (Translation Job Master Control#, for data just processed, in character form.)

    Positions 23 thru 30 – blanks

    Positions 31 thru 40 – Message Queue Name

    Positions 41 thru 47 – Translation Job Return Code (for initial translation step)

    Positions 48 thru 80 – blanks

  • PIPSPLDTAB - Pipeline Split Date

    The PIPSPLDTAB command is used to initiate the splitting of incoming translation jobs to application files in the Pipeline environment.

    Additional parameters for pipeline allow the specification of 1 or 2 initiating data queues. If only one initiating data queue is desired, specify *NONE for the RCVQ2 parameter.

    You can specify the data queue to which a completion message will be sent upon process completion. The process will not commence until a message is received from both data queues.

    The command receives a data queue message from the PIPTRNSTDB command. If positions 1 thru 10 are equal to ‘STRTRN01 ‘ the job will extract the Translation Job Master Control# from positions 12 thru 22, the Message Queue Name from positions 31 thru 40 and the Translation Job Return Code from positions 41 thru 47 of the data queue message for use in processing. If positions 1 thru 10 are not equal to ‘STRTRN01 ‘ the Translation Job Master Control#, Message Queue Name and Translation Job Return Code are defaulted to zero or blanks for processing. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘STRSPL01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘T’

    Positions 12 thru 22 – ‘00000000000’ (Translation Job Master Control#, for data just processed, in character form.)

    Positions 23 thru 30 – blanks

    Positions 31 thru 37 – Translation Job Return Code (merged code for both translation steps)

    Positions 38 thru 80 – blanks

Parent topic: Program Templates


Pipelining Program Templates - Outbound

The Outbound program (SBMCRT4C) consists of the following four (4) outbound commands as well as one command for generating Functional Acknowledgements:
Note: After issuing the ALLUP(N) command the outbound process is started by sending a data queue message to the trigger: SNDDTAQMSG DTAQ(CRTAPPDTAR) MSG(*START)
  • PIPCRTAPPB - Pipeline Create App Batch

    The PIPCRTAPPB command is used to initiate the processing of application files for outgoing messages in the Pipeline environment.

    This command will analyze the data in the specified application file set, determine the trading partner message class for each document, create a message log record for each document, and translate each document.

    The data in the application file set may be for different trading partners, message classes, and/or networks.

    Additional parameters for pipeline allow the specification of a data queue that is used to initiate the process and up to 2 data queues to send completion messages to when the process completes.

    This Pipeline Create Application Batch does not determine any of its parameters on the fly. All the values used to determine the application file set, overriding library/file/member, Trading Partner Code, Functional Group, Message ID, Message Class, etc. must be set when initially submitting the jobs. Therefore, multiple PIPCRTAPPB jobs will be necessary to pull data into the system from multiple locations. The command receives a generic start message to kick off processing. It will send completion messages to 1 or 2 data queues depending on what was specified when the job was initially loaded. These messages will be formatted as follows:

    Positions 1 thru 10 are variable. If ‘*DFT’ specified for parameter SNDQFMT (or SNDQ2FMT if sending to multiple data queues) on the PIPCRTAPPB command:

    Positions 1 thru 8 – ‘CRTAPP01‘

    Positions 9 thru 10 – blanks

    If a value other than default is specified for parameter SNDQFMT (or SNDQ2FMT):

    Positions 1 thru 10 – ‘XXXXXXXXXX‘ (the value specified for the SNDQFMT or SNDQ2FMT parameters).

    Position 11 – ‘A’

    Positions 12 thru 20 – ‘000000000’ (Application Log#, for data just processed, in character form.)

    Positions 21 thru 80 – blanks

  • PIPCRTENVB - Pipeline Create Envelopes

    The PIPCRTENVB command is used to assemble previously translated messages (documents) into groups and interchanges and creates the envelopes.

    The messages assembled into groups and interchanges may be from different application data batches.

    Additional parameters for pipeline allow the specification of a data queue that is used to initiate the process and a data queue to send a completion message to when the process completes.

    The command receives a data queue message from the PIPCRTAPPB command. If *RCVQ was specified for parameter APPLOGSLT on the PIPCRTENVB command, the job will extract the Application Log# from positions 12 thru 20 of the data queue message and use this for processing. If *RCVQ was not specified the Application Log# is defaulted to zero for processing. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘CRTENV01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘A’

    Positions 12 thru 20 – ‘000000000’ (Application Log#, for data just processed, in character form.)

    Positions 21 thru 80 – blanks

  • PIPCRTCNNB - Pipeline Create Connections

    The PIPCRTCNNB command is used to assemble previously created interchanges into network connections.

    Additional parameters for pipelining allow the specification of a data queue that is used to initiate the process and a data queue to send a completion message to when the process completes.

    The command receives a data queue message from the PIPCRTENVB or PIPCRTFADB commands. If *RCVQ was specified for parameter APPLOGSLT on the PIPCRTCNNB command, the job will extract the Application Log# from positions 12 thru 20 of the data queue message and use this for processing. If *RCVQ was not specified the Application Log# is defaulted to zero for processing. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘CRTCNN01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘C’

    Positions 12 thru 18 – ‘0000000’ (Connection Log#, for data just processed, in character form.)

    Positions 19 thru 80 – blanks

  • PIPSNDCNNB - Pipeline Send Connections

    The PIPSNDCNNB command will start a communication session based on a network and script. This command acts similar to the STRCTLSCRB command.

    Additional parameters for pipeline allow the specification of a data queue that is used to initiate the process and a data queue to send a completion message to when the process completes.

    The command receives a data queue message from the PIPCRTCNNB command. If *RCVQ was specified for parameter CNNLOGSLT on the PIPSNDCNNB command, the job will extract the Connection Log# from positions 12 thru 18 of the data queue message and use this for processing. If *RCVQ was not specified the Connection Log# is defaulted to zero for processing. The program then attempts to retrieve the connection log record and, if you did not specify the information when initially submitting the PIPSNDCNNB job, uses this to provide the following pieces of data to the STRCTLSCRB command:

    Line description name

    Controller description name

    Device description name

    Network port

    Control script name

    Network ID

    Telephone number

    Connection number

    This allows for submitting the PIPSNDCNNB process in a generic fashion, allowing for the process to determine how to send the connection on the fly. This process will send 1 completion data queue message formatted as follows:

    Positions 1 thru 8 – ‘SNDCNN01’

    Positions 9 thru 10 – blanks

    Position 11 – ‘C’

    Positions 12 thru 18 – ‘0000000’ (Connection Log#, for data just processed, in character form.)

    Positions 19 thru 80 – blanks

  • PIPCRTFADB - Pipeline Create FA Data
    Note: The Functional Acknowledgement process is embedded in the outbound program (SBMCRT4C): After issuing the ALLUP(N) command the FA process is started by sending a data queue message to the trigger: SNDDTAQMSG DTAQ(CRTFADTAR) MSG(*START)

    The PIPCRTFADB command is used to generate outgoing acknowledgements. This command acts similar to the CRTFADTAB command.

    The Trading partner parameter allows the processing of a specific trading partner. Please note that if *ALL is specified here, all trading partners are INCLUDED unless excluded by being placed on the FA Trading Partner Omission List. To add/remove trading partners from the list, use the Work with TP FA Omission List command (WRKTPFAOL).

    Also, additional parameters have been added to specify a data queue that is used to initiate the process and up to 2 data queues to send completion messages to when the process completes.

    The command receives a generic start message to kick off processing. When the RCVQFMT parameter is *TPSELECT, the first 4 characters of the data queue message received will be checked. If this value is *ALL then all trading partners will be processed. If the value is other than *ALL then the first 6 characters of the message queue message will be used as the trading partner to be processed. Otherwise the initiating data queue message can be generic. Also, if the RCVQFMT is a value other than *TPSELECT, all trading partners will be processed. This process will send 1 or 2 completion data queue messages depending on what was specified when the job was initially loaded. They will both be in the following format:

    Positions 1 thru 10 are variable. If *DFT specified for parameter SNDQFMT (or SNDQ2FMT if sending to multiple data queues) on the PIPCRTFADB command.

    Positions 1 thru 8 – ‘CRTAPP01‘

    Positions 9 thru 10 – blanks

    If a value other than default is specified for parameter SNDQFMT (or SNDQ2FMT).

    Positions 1 thru 10 – ‘XXXXXXXXXX‘ (the value specified for the SNDQFMT or SNDQ2FMT parameters).

    Position 11 – ‘A’

    Positions 12 thru 20 – ‘000000000’ (Application Log#, for data just processed, in character form.)

    Positions 21 thru 80 – blanks

Parent topic: Program Templates


Parameters on Pipelining Commands

Several existing Cleo commands have been enhanced for Pipelining, as follows:
  • Addition of parameters that enable the command to send a data queue message on completion. The queue message contains appropriate triggering/selection information for the next process.
  • Addition of new “select by” options to enable more efficient processing. For example, enveloping and wrapping may be performed on a specific application data batch. Use of these options replaces an OPNQRYF over several log files with direct selection by key.
  • Modification of the underlying programs to ensure that program initiation and file open/close activity is minimized. The primary processing “engines” remain resident in memory with files open.
These parameters are:
  • SNDQ - Send to queue (library name/data queue name)

    A qualified name of an existing data queue to which a message will be sent upon completion of the current command.

    Special values:
    *NONE | No queue entry will be sent (default equal to prior behavior of command).
    *DFT | A default data queue name in the library specified by EXMSGQLIB. The actual default names vary by command.
  • SNDQFMT/RCVQFMT - Send to/receive from queue format name (a 10?character name)

    This parameter enables support of multiple types of queue messages. The types of messages vary somewhat among the commands. All of the pipeline commands implement the values *DFT and *I10DFT, and there are several additional types supported for importing (on PIPCNNIMP) and exporting (on PIPSNDCNNB).

    Special values:
    *DFT | A default format for each command. Typically, it includes a format identifier and an appropriate key value for selecting the unit of work.
    *I10DFT | The same as *DFT but with a 10?character prefix which serves as a customercontrolled transaction identifier.
    *EDIDATA | The message data contains an EDI data stream for import or export.
    *I10EDI | The same as *EDIDATA but with a 10?character prefix which serves as a customer?controlled transaction identifier.
    *I10KEYEDI | Only for export on the SNDQFMT parameter of PIPSNDCNNB. The data queue message is the same as *EDIDATA, but with the 10?character transaction ID sent as the data queue message key. Requires a keyed data queue with key length of 10 on the SNDQ parameter.
  • CNNLOGSLT - Select by Connection log number (a special value used to determine the connection log number for processing)

    This parameter is intended to replace usage of the CNNLOGNBR parameter from the STRCTLSCRB command. It causes the corresponding command to select all of the transaction sets that were created in a specified connection for processing. Use of this parameter is mutually exclusive with the other selection parameters.

    This parameter may only take the special values *RCVQ or *NONE.

    Special values:
    *RCVQ | The connection log number used for selection is read from the data queue messages received from the queue specified on the RCVQ parameter.
    *NONE | No selection by connection log is performed.
  • APPLOGSLT - Select by Application log number (a 9?digit number or special value)

    This parameter is used slightly differently on the CRTxxxxxxB commands versus the PIPxxxxxxB commands. On all of these commands, it causes the corresponding command to select all of the messages (transaction sets) that were created in the specified application data batch, and no other messages. Use of this parameter is mutually exclusive with the other selection parameters.

    On CRTENVLOGB and CRTCNNSNDB:

    This parameter represents an actual application data log number (9?digit number). The only special value allowed is *NONE.

    Special values:
    *NONE No selection by application log is performed (equivalent to zero). This is the default value, which preserves the prior behavior of the commands.

    On PIPCRTENVB and PIPCRTCNNB:

    This parameter may only take the special values *RCVQ or *NONE.

    Special values:
    *RCVQ | The application data log number used for selection is read from the data queue messages received from the queue specified on the RCVQ parameter.
    *NONE | No selection by application log is performed.
  • RCVQ - Receive from queue (library name/data queue name)

    A qualified name of an existing data queue on which the corresponding command will wait.

    Special values:
    *DFT | A default data queue name in the library specified by EXMSGQLIB. The actual default names vary by command.
    *NONE | No waiting or looping on data queue.
Parent topic: Pipelining


Pipelining Deployment

There are multiple methods available for initiating a pipe. Traditionally we have used the SNDDTAQMSG command to send a start message to a pipe. For Cleo Secure (ESX) Customers, there is a direct initiation via the RCVESXDTA program. The PIPCNNIMP command called by RCVESXDTA starts the pipe without the use of a data queue. See the RCVESXDTA Shipped Source for more details.
Note: When using Pipelining and Cleo Secure (ESX), the STRESXMON should be incorporated in the ALLUP program, and the ENDESXMON should be incorporated in the ALLDOWN program. This prevents receiving data while the pipe is down.
Parent topic: Pipelining


Pipelining Flow

Pipelining is designed to allow you to insert customized code between each step in both the Inbound and Outbound processes. This is accomplished through the use of data queues that initiate each step in the cycle.

This section is designed to provide you with a high?level description and flow of the programs used in the Pipelining sending and receiving processes.
  • Sending Process
    ALLUP | This command initiates the following processes (xxxx = job name suffix)
    1 | Call to SBMCRT4C. This CL will submit all commands used in the SENDING side of Pipelining. These include:
    1a | PIPGENxxxx – this job executes the PIPCRTAPPB command, which supports both RECEIVING and SENDING data queues and includes all parameters on the CRTAPPDTAB command. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = CRTAPPDTAR) before processing application files for outgoing messages. Once this is complete, a message is sent to the send data queue(s): SNDQ *DFT = CRTAPPDTAS SNDQ2 *DFT = CRTAPPDT2S This message includes a specific log number to be (potentially) used by the PIPCRTENVB command.
    1b | PIPENVxxxx – this job executes the PIPCRTENVB command, which supports both RECEIVING and SENDING data queues and includes all parameters on the CRTENVLOGB command. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = CRTENVLOGR). This message includes either a specific log number or a general START trigger. Once received, it begins assembling previously translated messages documents) into groups and interchanges. It also creates the envelopes, optionally assembles the interchanges into network connections, and sends the connections to the appropriate networks. Once this is complete, a message is sent to the send data queue (*DFT = CRTENVLOGS). This message includes a specific log number to be (potentially) used by the PIPCRTCNNB command.
    1c | PIPWRPxxxx – this job executes the PIPCRTCNNB command, which supports both RECEIVING and SENDING data queues and includes all parameters on the CRTCNNSNDB command. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = CRTCNNSNDR). This message includes either a specific log number or a general START trigger. Once received, it begins assembling previously created interchanges into network connections. It also optionally sends the connections to the appropriate network(s). Once this is complete, a message is sent to the send data queue (DFT = CRTCNNSNDS). This message includes one or more specific log numbers to be (potentially) used by the PIPSNDCNNB command.
    1d | PIPSNDxxxx – this job executes the PIPSNDCNNB command, which supports both RECEIVING and SENDING data queues and includes all parameters on the STRCTLSCRB command. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = STRCTLSCRR). This message includes either a specific log number or a general START trigger. Once received, it begins the process of starting a communications session based on a network or script. Once this is complete, a message is sent to the send data queue (*DFT = STRCTLSCRS). This includes a specific log number. This send queue is not needed for normal communications, but it may be useful for triggering postprocessing if the send is to one of the special networks: *FILE, *TAPE, or *FTPXXXXX.
    1e | PIPFADXXX – this job executes the PIPCRTFADB command, which supports both RECEIVING and SENDING data queues. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = CRTFADTAR) and then starts the FA process. Once this is complete, a message is sent to the send data queue: SNDQ *DFT = CRTCNNSNDR Populating this queue, then starts the PIPCRTCNNB process.
  • Receiving Process
    2 | Call to SBMRCV3C. This CL will submit all the commands used in the RECEIVING side of the Pipelining. These include:
    2a | PIPIMPxxxx ? this job executes the PIPCNNIMP command, which supports both RECEIVING and SENDING data queues and includes all parameters on the CRTCNNIMP command. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = CRTCNNIMPR) and then takes the specified file and creates an inbound connection. Once this is complete a message is sent to these data queue(s): SNDQ *DFT = STRUNWSTDR SNDQ2 *DFT = CRTCNNIM2S OR SNDQ2 = STRSPLDT2R The CRTCNNIM2S is optional and can be used to kick off a user?defined process. The STRSPLDT2R is the second RCVQ2 for the PIPSPLxxxx job.
    2b | PIPUNWxxxx – this job executes the PIPUNWSTDB command, which supports both RECEIVING and SENDING data queues. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = STRUNWSTDR). Once received, it begins un?wrapping an entire connection or a specific range of data within a single connection. Once this is complete, a message is sent to the send data queue (*DFT = STRUNWSTDS). This message includes one or more specific log numbers to be (potentially) used by the PIPTRNSTDB command.
    2c | PIPTRNxxxx – this job executes the PIPTRNSTDB command, which supports both RECEIVING and SENDING data queues. The process waits for a message to be received (and cleared) in the receive data queue (*DFT = STRTRNCNNR). This message includes a specific log number at the level of connection, interchange, group, or message) before translating any unit of incoming data, from an entire connection down to a specified individual message (transaction set), within a single connection. Once this is complete, a message is sent to the send data queue (*DFT = STRTRNCNNS). This message includes a specific log number to be (potentially) used by the PIPSPLDTAB command.
    2d | PIPSPLxxxx – this job executes the PIPSPLDTAB command, which supports both RECEIVING and SENDING data queues. The process waits for messages to be received (and cleared) in the receive data queue(s): RCVQ *DFT = STRSPLDTAR RCVQ2 *DFT = STRSPLDT2R The RCVQ message includes a specific log number. Once these are received, it begins the splitting of data from a specified translation batch. This could represent anything from an entire connection down to a single message. Once this is complete, a message is sent to the send data queue (*DFT = STRSPLDTAS). This message includes a specific log number. This send queue can be used to trigger additional processing of translated incoming data.
Parent topic: Pipelining


Pipelining Diagrams

The following diagrams visualize the Pipelining workflow.

Unmodified Pipelining Flow Diagram

Modified Pipelining Flow Diagram

Parent topic: Pipelining


Pipelining - Additional Items

As part of the Pipeline feature, several additional items are included:

Data Queues

The *DTAQ objects are found in the message queue library (default EXTINTMSGQ) of the EEI installation.

Two optional data queues enable customization:
  • CRTAPPDT2S ? SNDQ2 can be used to trigger a process to clear out and re?populate the application files with the next batch of data to send.
  • STRSPLDT2R ? RCVQ2 is used as a trigger from the user's system to indicate when it is OK to populate the application files with incoming data.

Display Data Queue Utility

With the implementation of Pipelining, there is an increased need to view data queue information and entries while analyzing the process. Two commands are available for this use:
  • DSPDTAQINF – displays header level information about a data queue. Drill down access to the data queue entries also exists on this screen.
  • DSPDTAQE ? displays the entries in a data queue without modifying the contents.

Data Areas

These data areas can be used within Pipelining to perform specific actions:
  • EXPIPTRNM? Y=Attempt to translate Mixed status connections

    When set to Y, the un?wrapper will forward connections in a Mixed (as well as Unwrapped) status to the translator. When set to N only connections with an Unwrapped status are forwarded to the translator.

  • EXTRNEXITP? Pipeline post?Translation Exit Program Name

    This data area can be populated with a custom program name to be executed at the completion of translating.

  • EXUNWEXITP ? Pipeline post?Unwrap Exit Program Name

    This data area can be populated with a custom program name to be executed at the completion of unwrapping.

  • EXPIPMSGQ

    The first position in the data area is used to control the creation of message queues in the message queue library from processes such as translation. Possible values include: D= delete always, E = keep if error, and Blank = keep always.

Parent topic: Pipelining


Setting up E-mail Services on the IBM i

Take these steps to configure an IBM i to send e-mail.

Please contact Support for assistance if required.

  1. Sign on as QSECOFR.
  2. Execute the Configure TCP/IP command (CFGTCP).
  3. Select 1. Work with TCP/IP interfaces. Typically, the address of your AS400 on your network has a line type *ELAN on the Work with TCP/IP Interfaces panel.
  4. Select 2. Work with TCP/IP routes. A network may consist of many interconnected networks. A route must be defined for your system to communicate with a system on another network. A typical entry may be:
    • Route Destination *DFTROUTE
    • SubnetMask *NONE
    • NextHop (your controlling router or gateway server)
    • Preferred interface *NONE

    ATCP/IP interface must be defined before defining a route. A TCP/IP interface implicitly defines a DIRECT route. This is because interfaces define a route to a network that the AS/400 is directly connected to. Routes added using the AS/400 route commands are called INDIRECT routes because they define a route to a network that the AS/400 is not connected to directly.

    The NEXTHOP internet address for a route definition must exist on a network that one or more TCP/IP interfaces are connected to. The NEXTHOP internet address usually defines a router or gateway.

  5. Use the defaults for selections:
    • 3(Change TCP/IP attributes)

    • 4(Work with TCP/IP port restrictions)

    • 5(Work with TCP/IP remote system information)

  6. Select 10. Work with TCP/IP host table entries. Enter the IP address(es) and name(s) of the server(s) on your network.
  7. Select 12. Change TCP/IP domain information. Enter information for your AS400’s Hostname and Domain name. Make the Hostname search priority *REMOTE. For the Domain name server, enter the DNS server(s) on your network.
  8. Select 20. Configure TCP/IP applications | 12. Configure SMTP | 3. Change SMTP attributes.
  9. Exit to the Configure TCP/IP Applications menu. Select 16. Change POP attributes. Change the Message split size to *NOMAX.
  10. Enter these commands:
    • ENDTCPSVRSERVER(*SMTP)
    • ENDMSFOPTION(*IMMED)
    • STRTCPSVRSERVER(*SMTP)
    • STRMSFMSGOPT(*RESET) NBRMSFJOB(1)
    Note: All other TCP/IP settings are left at the default values.


Enhancements to DSPMSGREF

In EEI v6.5, users can press F11=Combine Ref Flds to combine reference fields to search Reference field 1, 2 and 3 for the desired value. Users can also press F17=Match Case to match data with case sensitivity; by default, case is ignored.

Combined Reference Fields

When F11 is pressed, the reference fields change from individual lines to one line. This will allow users to search all fields for a desired value.

Match Case

When F17 is pressed, the reference fields can be searched with upper and lower case values.

Note: To use combined fields or match case by default upon entering DSPMSGREF, see the EEI User Manual - Pointing DSPMSGREF to Authorization List.


Creating Envelope Field Map Codes for Trading Partner and Message Parameters (Outbound only)

Creating map codes in an envelope map automatically gives EEI the trading partner, group code, message ID, and/or message class to use during translation. Mapping these codes on the envelope means the parameters do not need to be specified at run time before translation.

  1. In the Cleo EEI Main Menu | 5. Mapping | 2. Work with application file set panel, type 8=Envelope map on your file set's Opt field. Press Enter.
  2. In the Work with application file set envelope format panel, type 5=Work with file set envelope fields in the Opt field of the file containing data that can be used to identify your trading partner. Press Enter.
  3. In the Work with application file set envelope field panel, press F9=Create to enter create mode.
  4. The Map sequence field specifies the order in which multiple mappings of a single field are performed.
  5. The Map code field specifies the data's relationship to the envelope. The most commonly used values are:
    • C - Map to message class; defines which field will be used to determine the message class
    • E - Indicates that the value from his field will be mapped to an envelope element.
    • G - Map to group code; defines which field will be used to determine the group code
    • M - Map to message ID; defines which field will be used to determine the message ID
    • T - Map to trading partner; defines which field will be used to determine the trading partner
    Note: If map codes G (Group Code), M (Message ID), T (Trading Partner), and C (Message Class) are not specified in the envelope map, they must be specified in the parameters of the CRTAPPDTA command at runtime.
    Note: If the fields mapped to the T, C, M or G map codes do not contain the appropriate value, also attach a code table to convert the value.
  6. In the Field name field, type the name of the file field that contains data corresponding to the Map code. For example, if you are mapping the trading partner code, type the name of a field that contains the trading partner code.
    Note: If you don't have a field that corresponds directly to the code, choose a field that is closely related. For example, if you don't have the trading partner code in your files, choose a field containing data that is unique to your trading partner and does not change. This could be an internal customer number, an account number, a company name, etc.

    You can use a code table to convert this unique value to one EEI can use with the map code. For example, account number to trading partner ID.

    Note: You can prompt a selector panel of fields by pressing F4.
  7. Press Enter. The Change file set envelope field details panel appears.
    1. Determine if you need to manipulate the data.
      • If the data in the field directly corresponds to the map code (for example, trading partner ID code and trading partner ID fields), proceed to Step 8.
      • If the data does not directly correspond to the map code (for example, trading partner ID code but account number field), proceed to Step b.
    2. In the Code translation directions field, type O for Outbound. Press Enter.
    3. A new field appears. In the Code table reference field, type the name of the code table that will convert the data.
      Note: You may have to create your own code table. However, EXTOL provides a number of code tables that correspond to the map codes. For example:
      • Group - CST_GRP - Customer number to group code
      • Message ID - CST_MSG - Customer number to message ID
      • Trading Partner - CST_TPCD - Customer number to trading partner code

      If using an EXTOL-provided code table, make sure you change the values in the code table to match your data.

  8. Press Enter and confirm.
  9. Press F9=Change to return the Work with application file set envelope field panel to change mode. Notice the field an map code appear in the field's Field source/destination column.
    Create the following map codes:
    Map Sequence | Map Code | Field Name | Use Code Table
    10 | T | OHSOLD | CST_TPCD
    20 | C | OHSOLD | CST_810MC
Next:

If you are using this section as part of your first-time message class creation process, create a message class.


AFTP Checklist

This checklist supplements the manual by providing a quick overview and guide to prepare you for setting up Automated FTP communications.

If you would like step-by-step documentation for any given section, refer to the specific documentation topic for more details.

Before setting up AFTP communications

Make sure you have the answers to these questions:

  1. What is the:
    • Server's IP address?
    • Username?
    • Password?
  2. What are the directories used for local and remote?
  3. Are you responsible for maintaining the server?
    • If yes, should data be deleted, moved, or renamed?
      • If moved, what is the target folder?
      • If renamed, what is the extension?
  4. How often do you want to check for data on the remote server? Do you want to poll the remote server at regular intervals or at scheduled times?
    Note: The answer to these questions determines the AFTP group.
  5. Do you run nightly backups of the EEI files library?

The following objects need to be created one time on a system:

  1. Create a library named EXT_FTP using the CRTLIB command.
  2. Create a file named QTXTSRC using the CRTSRCPF EXT_FTP/ QTXTSRC command. This file is a text source member in library EXT_FTP.
    Note: Naming the file QTXTSRC keeps you from having to change the file name if copying control scripts from the *AFT_EXAMPLES network.
  3. Create a message file named EXUSRMSG in library EXT_FTP using the CRTMSGF EXT_FTP/EXUSRMSG command.

    The message file will contain the USR**** messages used in both the FTPBUILD and FTPCLNUP commands in control scripts under the *FTP_EXAMPLES network.

    Note: Naming the file EXUSRMSG keeps you from having to change the file name if copying control scripts from the *FTP_EXAMPLES network.

The following objects need to be created per network:

  1. Create a network. In the Cleo EEI Main Menu | 4. Trading Partners and Networks | 6. Work with networks panel, press F9=Create.
    Note: The network’s name must begin with *AFT. For example, *AFT_ABC.
  2. Create the directories used to hold the stream files.
    Note: Giving the directories the same name as your network will make the directories unique for that network.

    For example:

    CRTDIR ‘/ABC’

    CRTDIR ‘/ABC/IN’

    CRTDIR ‘/ABC/OUT’

    Note: To view the directories, run the WRKLNK command. For example, wrklnk ‘/ABC’.
  3. Create an inbound port using QTEMP library. The Replace/add records field should be A (Add) for the inbound port.

The following objects need to be created per control script:

  1. Copy the appropriate example control scripts depending on the answer to the question: “Are you responsible for maintaining the server?”
    • If yes, copy the control script that is doing the desired function (FTPCLNUP to delete, rename, etc.) from the *AFT_EXAMPLES network to your new network.
  2. If copying control scripts from the *AFT_EXAMPLES network, the USR**** messages need to be created in the EXTSYS/EXUSRMSG message file. The messages you create in the message file are based on responses from the remote server.
    Note: Often, different servers may use the same messages. If you are communicating with multiple servers and those servers have messages in common, you can use the same message IDs instead of creating new ones.
    Note: In EEI v6.5, new messages can be created from the Change Control Script Parameter panel by paging down to where the Message File information is displayed and pressing F14=WRKMSGD.
  3. Create the members (ADDPFM command) needed in the QTXTSRC file starting with the appropriate member prefix.
    Note: In EEI v6.5, this step can be ignored; members are created automatically.
    Note: EXAMPLE is the member prefix in the following examples:
    • EXAMPLE_IN - Log in member
    • EXAMPLE_LI - Log in list member
    • EXAMPLE_CI - Cleanup in member
    • EXAMPLE_OU - Output member
    • EXAMPLE_GT - Log in get member
    • EXAMPLE_LO - Log list out member
    • EXAMPLE_CO - Cleanup out member