Method and apparatus for electronic data interchange

Abstract: A programmable machine system (10) and method for performing electronic data interchange among a variety of trading partners. The machine (10) is programmed so that it can define, enter and translate business transaction data in a variety of different dictionary-structured formats thereby providing the user with the flexibility to work with electronic data in various formats without requiring reprogramming of the machine.

Description: BACKGROUND 1. Technical Field This invention relates to methods and apparatus according to the preambles of claims 1,3 and 9, respectively. 2. Discussion Traditionally, business transactions among trading partners have been documented primarily on paper thereby resulting the self-evident problems associated with the storage and transmittal of a large number of physical documents. In an attempt to overcome these problems, the trend has been to use electronic data interchange (EDI) to transmit and receive various business transactions among trading partners. Examples of such transactions include Releases, Advance Ship Notices, Purchase Orders, Purchase Order Acknowledgements, Requests for Quotes, Quotes, Invoices and Bank Remittances. Thus, instead of documenting these transactions on paper, the data are transmitted electronically (typically via a modem or digital data line connection) between computer systems operated by each trading partner. There may or may not be involved a third party service to receive, store, and forward these electronic business transactions. In order to permit the translation and use of documents exchanged between the computer systems, there must be established some type of standards for the definition of transactions. Such standards that have been implemented include ANSI ASC X12 (set up by the American National Standards Institute), EDIACT (Electronic Data Interchange for Administration, Commerce and Transport) and TDCC (Transportation Data Coordinating Committee) formats. These formats utilize element, segment and transaction dictionaries. These dictionaries are extremely flexible in that they have only a few mandatory requirements and a wide variety of options. Thus, a particular trading partner can specifically tailor a business transaction such as an Invoice to its own needs while still being within the standard format. For purposes of this invention, the term "dictionary-defined" transaction format is a format which has been agreed upon by a standard's organization which may be comprised of a group of trading partners, agencies, countries, departments within an organization, etc. that use a three-tiered dictionary concept. The 3 tiers are as follows: 1) Tier 1 is the definition and identification of individual, unit data items known as elements. Examples of elements are date, date qualifiers, quantity, items number etc. An element consists of a datum having an assigned fixed data length or variable data length. 2) Tier 2 is the definition of records known as segments which are uniquely identified and consist of particular groupings of elements in a particular organization for the ultimate purpose of defining a part of a transaction. Preferably, but not necessarily, the grouping of elements in a particular segment should have some logical relationship. Some elements may be required and others may be optional within a particular segment. 3) Tier 3 is the complete and full definition of transactions which are uniquely identified. Transactions are defined in terms of their segments in a particular order. Some segments may be required and others may be optional in a particular transaction definition. Also, groups and subgroups of segments within a transaction may be further defined to indicate multiple repetitions or iterations of the group and/or subgroup (loops). The flexibility provided by dictionary-defined transactions unfortunately also causes some real-world problems. In practice, larger trading partners are individually tailoring the information required in each of their transactions so that, while they do meet the dictionary-defined format, the completed transaction formats chosen by each are quite different. Thus, if one trading partner wants to do business via EDI with a variety of other trading partners, at least one of the trading partners must be capable of configuring and utilizing its computer system so that it can meet all of the requirements dictated by the other trading partners. For purposes of this invention, the term "dictionary-structured" transaction format is one that meets or approximates the guidelines of a dictionary-defined format but is individually tailored by a given trading partner. Thus, a "dictionary-structured" transaction format may be the same as, may be different from, may deviate from, may be a subset of, or may be a superset of that format specified by the "dictionary-defined" format guidelines. There are several software programs for use with electronic data exchange currently on the market. They include: EDI*PC™ (General Electric Corporation; Rockville, Maryland, U.S.A.) TELINK™ (EDI, Inc.; Hanover, Maryland, U.S.A.) METRO * Translator™ (Metro.Mark Integrated System, Inc.; Roslyn, New York, U.S.A.) However, prior to the present invention, they are believed to have had the following drawbacks: They attempt to produce trading partner specific transactions through a combination of operator selective input with a generalized format covering multiple trading partners. They cannot produce exacting dictionary-structured transaction formats and "other part" formatting to the specific trading partner requirements as is done by the present invention. "ST1 user manual", dated July 20, 1988 by Supply Tech, Inc., describes how to use ST1, a sybsystem product of Supply Tech, which is designed to allow an automotive production parts supplier to receive fixed length Releases and send fixed-length Advance Ship Notices electronically with the major auto companies using an IBM compatible microcomputer. SUMMARY OF THE INVENTION The problem of the present invention is to enable a trading partner to define the formats of a dictionary-structured business transaction which provide the basis for the subsequent entry and translation of business transaction data for transmission among a variety of other trading partners. All this is to be accomplished without requiring programming changes to the user's machine system. The invention solves this problem by the features specified in claim 1, 3 or 9 respectively. Advantegeous further developements are described in the respective dependent claims. The programmable machine system according to the preferred embodiment of the present invention includes an input means for defining a dictionary-structured transaction format that has a plurality of elements in a particular organization. Provision is made for selecting a particular system component such as a printer, screen or the like which is typically not well suited for using the dictionary-structured format to interface with a human operator. An overlay generator generates an overlay that includes a second format associated with the selected system component. The second format has elements or fields that are related to the elements in the dictionary-structured format. The overlay generator also generates a mapping between the related elements of the two formats. Data that are entered in the second format are translated into the dictionary-structured format so that they can be later transmitted in that format to a trading partner. Also, data received in a dictionary-structured format from a trading partner can be translated into the second format. BRIEF DESCRIPTION OF THE DRAWINGS The various advantages to the present invention will become apparent to those skilled in the art upon reading the following specification and by reference to the drawings in which: Figure 1 is a schematic diagram illustrating programmable machine systems of two trading partners utilizing the present invention; Figure 2 is a high level flow chart illustrating the major steps performed by the programmable machine system in carrying out certain aspects of the invention; Figures 3A and 3B together constitute a flow chart of how the system builds a particular overlay and mapping therefor; Figure 4 is a diagram showing the relationship among the three tiers (element, segment, transaction) of dictionary-defined transactions and dictionary-structured transactions; Figure 5 is a submenu which shows how the overlay generator is accessed and how the three-tier dictionary of dictionary-defined transactions is accessed; Figure 6 is the main menu which shows how data entry and file translation, which require overlays, are invoked; Figure 7A is a representation of a screen which is used to identify a data entry overlay; Figure 7B is a representation of a screen which is used to add and delete segments used in an overlay; Figure 7C is a representation of a screen which is used to define or change the attributes of a segment used in a particular overlay; Figure 7D is a representation of a screen which is used to add and delete elements used in a particular overlay; Figures 7E and 7F are a representation of screens which are used to define or change the attributes of an element used in a particular overlay; Figure 7G is a representation of a screen which is used to define or change the overall data entry screen attributes used by the Overlay Generator when it builds the data entry screen associated with a particular data entry overlay; Figure 7H is a representation of a screen which shows the actual physical appearance of a data entry screen; Figure 8 is a pictorial representation of the types of overlays presently produced by this overlay generator; Figure 9 is a matrix representation of the relationship of the elements in a data entry overlay to the coordinate position of their associated fields on a data entry screen; and Figure 10 is a representation of the elements on a data entry overlay to their position in the transmission data stream in dictionary-structured format. BRIEF DESCRIPTION OF APPENDICES Appendix 1 is a pseudocode flow diagram of how an overlay is used programmatically for data entry and subsequent translation into a dictionary-structured transaction; Appendix 2 is a pseudocode flow diagram of how an overlay is used programmatically for translating dictionary-structured transactions into formatted printed output; and Appendix 3 contains two pseudocode flow diagrams of (1) how an overlay is used programmatically for translating transactions into dictionary-structured formats from formats composed of fixed-field, fixed-length records contained in a file, and (2) how an overlay is used programmatically for translating transactions into formats composed of fixed-field, fixed-length records contained in a file from dictionary-structured formats. DESCRIPTION OF THE PREFERRED EMBODIMENT Figure 1 illustrates a communication network for performing electronic data interchange between the programmable machine systems 10 and 12 of various trading partners. In order to simplify the description of the present invention and to provide a concise description of the best mode for practicing this invention, it will be described in connection with a specific example utilizing programmable machine system 12. However, it should be understood at the outset that this invention can be used by different computer equipment and implemented in different software languages. Assume that the machine system 10 belongs to a large customer and that machine system 12 belongs to a vendor of that customer. The customer will often dictate the dictionary-structured transaction format that all of its vendors must use. One of its primary features is that the present invention permits the vendor's computer system to define, enter and translate business transaction data for transmission not only to just one customer but also to other customers which may and usually have different dictionary-structured transaction format requirements. The basic system configuration includes an IBM microcomputer such as an IBM XT, AT, PS/2 or any IBM compatible microcomputer that uses an MS-DOS operating system and which can accommodate the boards and devices of the following system components. The processor 14 communicates with a fixed hard disk 16 of 10 megabytes or more as well as with floppy disk drive(s) 18. A terminal including a keyboard 20 and display screen 22 provides a user interface with input/output capabilities. A printer 24 with parallel interface is employed for providing hard copy. Finally, a modem 26 is used to provide bidirectional communication between processors of the various trading partners. The processor 14 operates under the instructions of an application program which is typically contained on a hard disk and entered into the internal memory 28 of the processor in a conventional manner via disk drive 18. The application program of the specific embodiment of this invention was written in the COBOL language and compiled by a compiler commercially available under the trademark "Professional COBOL", supplied by Microfocus, 2463 E. Bashore Road, Palo Alto, California, U.S.A. The application program contains various modules as illustrated in Figure 1. These modules are periodically loaded into the processor 14 depending upon which functions the user desires to perform as indicated by his commands entered into the keyboard 20. Figure 2 is a high level flow chart illustrating the major steps performed by the programmable machine system 12 in carrying out certain aspects of the invention. Only the direct and basic relationships in functionality of the steps are shown in Figure 2. Specifically, alternate module calling sequences are not shown; additional module functions are now shown; utility modules (such as view and print) are not shown; indirect updates (such as overlay element update affecting the mapping) are not shown; and initial updates (such as overlay selection initializing default values for all overlay data) are not shown. However, the use of such additional module functions will become clear from the other Figures and the descriptions set forth below. The present invention is particularly concerned with the module which will be referred to as the "Overlay Generator". The source code for the Overlay Generator module may readily be written without undue effort by those skilled in the computer programming arts relating to EDI and associated business transactions upon studying the disclosure of the present invention herein. The overlay generator module is used for a variety of purposes. Appendix 1 describes how an overlay is used to enter data via the keyboard 20 and later to translate it into a dictionary-structured transaction ready for transmission to a trading partner. Appendix 2 describes how an overlay is used for translating dictionary-structured transaction data (e.g., received from a trading partner via modem 26) into formatted printed output for use on the printer 24. This capability is useful for viewing or printing the transaction in a more user friendly format since the data, as received, are in a format that is not very understandable by ordinary human operators. The second half of Appendix 3 describes how an overlay is used to translate dictionary-structured transaction data into formats composed of fixed-field, fixed-length records contained in a file. This capability is useful for presenting the data in a consistent, fixed format that can be more easily processed by other application programs. The first half of Appendix 3 describes how fixed-field, fixed-length records contained in such a file can be translated into a dictionary-structured transaction format ready for transmission to a trading partner or for other purposes. The foregoing text will concentrate on describing how one particular overlay is generated and used for entering data which are stored on hard disk 16. Once the data are stored in a dictionary-structured format using the overlay, it can be used in a variety of manners as described in connection with Figures 5 and 6 above. In addition, it can be transmitted to the trading partner via modem 26. Likewise, transaction information received via modem 26 from a trading partner can be stored in hard disk 16, with the overlay generator module being capable of translating it into more user-friendly form such as mapping the data entries onto appropriate pixel positions or fields on display 22. Thus, while the foregoing description will focus in on a specific example, it should be understood that the present invention has a much broader applicability. The hard disk 16 is used primarily for both storing computer application programs and records or files of data that can be accessed by the processor 14. The stored data include the dictionaries corresponding to the tier 1, tier 2 and tier 3 structure for a dictionary-defined transaction as discussed above. Figure 4 illustrates the conceptual relationship between the information in the transaction, segment and element dictionaries. The element dictionary, being the most basic, includes an identification code (e.g., 354), a title ("e.g., "Number of Line Items"), data type (e.g., "N⊘"), and the minimum and maximum data field lengths (e.g., "1" and "4", respectively). The segment dictionary includes an identification code and one or more functionally related elements positioned in a defined sequence. The identification code CTT in Figure 4 thus defines a segment utilizing element numbers 354, 347, etc. in that order. Also included is the designator (M or O) which indicates whether or not the element is required (mandatory) or optional in this segment. The transaction dictionary stored on disk 16 includes an identification code for each transaction (e.g., "850" denotes a Purchase Order transaction), and one or more functionally related segments in a defined sequence. Also included is a designator which indicates whether or not the segment is required (mandatory) or optional in this transaction. The transaction dictionary would contain both the mandatory and optional segments for each transaction. In practice, a trading partner will decide what information it will require for particular transactions and typically provide each of its trading partners with a manual (implementation guide) which sets forth the chosen dictionary-structured format. Thus, the first task is to appropriately configure the trading partner's system 12 so that it can accommodate the demands dictated by others for performing electronic data interchange therewith. Upon starting up the system, the screen 22 will display the main menu set forth in Figure 6. By selecting the option labeled "Maintain System and Security Files" the menu of Figure 5 will be displayed. Pursuant to the present invention, an overlay is first generated for each selected system component (also sometimes referred to as the "other part"). A system component can be any device (e.g. printer, screen, disk, etc.) where information is preferably communicated in a more desirable user-friendly or application-friendly format than the dictionary-structured format. In Figure 5, overlays can be generated by entering one of the options 6 through 9. Option 6 is associated with the display 22 and keyboard 20 for purposes of entering data. Option 7 is associated with the printer 24 whereas options 8 and 9 enable other system components to provide certain desirable conversions of data listings. A data entry overlay for subsequent use for data entry onto hard disk 16 via keyboard 20 and display 22 may be constructed so as to be very specific and to minimize keyboard input. This is accomplished by: selecting only the segments and elements required; using reserved words to call up data (such as address) from other files and to define data edits; designating element values as constants, formulae, or defaults; changing the length of the element; changing the element name; and positioning the data field represented by that element on the display 22. The first step in this process is to enter Option 6 (Figure 5) and proceed to define the overlay by entering an Overlay Code and a Transaction Type Code in the spaces provided in the screen of Figure 7A. The Transaction Type Code typically is that of the corresponding dictionary-defined transaction. Examples of ANSI ASC X12 Transaction Type Codes are: Invoice = 810, P.O. = 850. The Overlay Code normally designates a particular trading partner. Thus, the screen of Figure 7A illustrates that a Purchase Order (for trading partner DU1) has been entered. Segments are now added or deleted to each overlay using the manipulation capabilities of the Overlay Generator module. The screen format shown in Figure 7B is for a given Overlay (DU1:850) which is accessed when a given transaction is defined and entered in the screen of Figure 7A. The software automatically fetches those mandatory segments from the stored dictionary for the given transaction and displays them on the screen. Then, the user is given the opportunity to modify this basic set of segments. The segments which make up the dictionary-structured transaction are identified by their Segment IDs in Figure 7B which are the same as those assigned to the corresponding dictionary-defined transaction. The user can edit this screen as desired to select the segments, and "Occurs" and "Loops". Some segments are repeated multiple times at their specific location in the transaction. "Occurs" refers to the maximum number of times a segment is permitted to appear at that location. Within transactions, specific groups of logically related segments occur repetitively. The repetition of a group is referred to as a "loop". The attributes of each segment can be further modified to the exact requirements of the desired dictionary-structured transaction using the manipulation capabilities of the Overlay Generator using the screen format shown in Figure 7C by entering the appropriate line number in Figure 7B associated with the segment that is desired to be modified. These further attributes are as follows: SEGMENT NAME A field for the name of the particular segment. REQUIREMENT CODE O = Optional. The segment does not need to be used. M = Mandatory. This segment must be used in the Transaction. F = Floating. MAXIMUM USE The maximum allowable number of times this segment may be used at this location in the transaction. The number enclosed in the parentheses is the dictionary-defined number allowed for the maximum use but is not a limiting factor. TYPICAL USE This is the number of times the elements in this segment are to appear as a table on the data entry screen. This field is only relevant if the "Maximum Use" is greater than one, and all the elements will fit one line on a screen. POSITION OF SEGMENT THAT ENDS LOOP If this segment is the first segment of a loop, this field indicates the last segment in the loop. If this segment does not start a loop, this value must be zero. MAXIMUM LOOPS If this segment is the first segment of a loop, this is the maximum number of times it can complete the loop. The number in this field must be zero if there is no loop. HL LEVEL (Hierarchical Level) allows you to depict, flexibly, the relationships among HL segments. This field shows, relatively, where this HL falls in relationship to others defined. For example, the Shipment HL may be designated level "1", the Order HL may be designated level "3", and the Item HL may be designated "6". The fields labeled "SEGMENT POSITION" refer to the ordinal position that the segment being defined holds within this rendition of this transaction. The field labeled "SEGMENT CODE" refers to the segment ID, the 2-to-3 characters which identifies the segment. The elements within each segment now can be added or deleted using the manipulation capabilities of the Overlay Generator using the screen format shown in Figure 7D. The elements for each segment which make up the dictionary- structured transaction are identified by their relative position within segment. (Note that elements 4 and 5 have been deleted in the previous step.) The attributes of each element can be modified to the exact requirements of the desired dictionary-structured transaction using the screen format shown in Figure 7E which is accessed by entering the appropriate sequence number in Figure 7D. As with the segments, the fields labeled "ELEMENT POSITION" and "ELEMENT CODE" refer to each element's position within that segment and its dictionary-defined code. The modifiable attributes are as follows: ELEMENT CODE This is the code of the element that belongs in this sequential position of the segment being defined. DESCRIPTION Free-Form Description. DATA TYPE Defines the type of data the element must contain. Codes are: AN Alphanumeric ID Identifier (Must be specific code as defined by ANSI) NN Fixed Decimal Numeric DT Date TM Time (24 hour clock HHMM format) R Floating Decimal Point Numeric REQUIREMENT CODE Mandatory, optional, or conditional. MINIMUM LENGTH Minimum number of characters the element must contain. If the Element Type is "N" or "R", this count does not include the sign or decimal point. MAXIMUM LENGTH Maximum number of characters the element can contain. If the Element Type is "N" or "R", this count does not include the sign or decimal point. DEFAULT CODE BLANK "Default Value" is not used. D Default. When the data entry screen is used, the contents of the "Default Value" field will be displayed to be accepted or overridden. C Constant. The element and its related value will not be displayed on the data entry screen. When the data are transmitted, this element will be sent with whatever information is indicated in the "Default Value" field. If the Requirement Code is "CF" or "CP", this element will be transmitted only if the paired element (the following element if "CF" and previous element if "CP") exists. F Formula. Use the formula in the field "Default Value". This element will not appear on the data entry screen. HEADINGS Up to three lines of title for this element. This is how the element will be labeled on the data entry screen. DASHES A Y or N switch to indicate whether to display a line of dashes between the title lines and the data for this element. The user uses the manipulative capabilities until all of the element attributes have been defined as desired. It should be appreciated that the present invention enables the user to precisely define what information is going to be included in a particular transaction. Unlike prior art approaches which "hard code" a set format for one particular trading partner or a group of trading partners, the present invention permits a user to define a unique transaction format for one or more trading partners, store it, and then use the same equipment without further program modifications to define a totally different transaction format for a different trading partner. Once a transaction format has been defined in accordance with the process just described, the user exits back through to the screen in Figure 7B. In addition to setting these very specific parameters already mentioned, the user can set some overall transaction parameters for doing the mapping to the data entry screen. To this end, the screen of Figure 7G is accessed by the user by entering Option "T" in the screen of Figure 7B. The screen of Figure 7G contains various fields where the user can enter information to build default attributes of the data entry screen. These attributes are outlined as follows: COLUMN WIDTH This field can set up the data entry screen in columns. Each element placed on the screen will start in a position that is an even increment of the "Column Width". For example, if the "Column Width" is 10, then the elements on the data entry screen will start on positions: 10,20,30,40,50,... only. Most typically this is set to 1 to allow mapping in any area of the screen. MINIMUM GAP BETWEEN FIELDS This sets the minimum number of spaces between each element on a data entry screen. REVERSE VIDEO ON ENTRY(Y/N) Y = When an element is filled in on the data entry screen, it will have a white background and the characters will be black. N = Black background with white characters. DEFAULT LINE SPACING Number of blank lines between an element and the first heading of the next element down. MANDATORY FIELD CHARACTER The character that will appear just before a keyed area on a data entry screen when both the segment and the element are mandatory. (This field may be left blank). DASHES (Y/N) Dashes are dotted lines just under a heading. The dashes indicate the maximum size of the element. Y = The dashes will appear. N = The dashes will not appear. Dashes are not necessary for data entry if you are using reverse video which also shows field size. CONTINUATION CHARACTER If a segment has a typical use of 2 or more and the entire segment will fit on one line of the screen, a table will be generated on the screen for the element in this segment. The Continuation Character will appear before the first element in each row of the table after the first row. The character that is to be displayed, to denote multiple table entries of the same data (without replacing the heading). OVERLAY DESCRIPTION This is where identification of the trading partner and transaction are assigned to the overlay. Exiting from screen 7G to screen 7B again, the next step is to select the "B" (build) option to have the system complete the first attempt at mapping of the dictionary-structured data to the (in this case) data entry screen. Exiting from this screen (Figure 7B) now brings up a manipulation screen like that shown in Figure 7H. Figure 7H shows the actual, physical appearance of a data entry screen and the software allowed spatial adjustment of displayed fields and titles for the data field of each element designated to receive keyed input. If further tailoring of the display screen is desired, the user can use this screen (Figure 7H) to physically move the displayed fields to other areas of the screen thereby changing the mapping or can bring up any of the previously described screens to make additions, deletions, or title changes. After a field on the data entry screen is repositioned, the overlay generator module adjusts the formatting of the data entry screen and the mapping between the data entry fields and the elements in the dictionary-structured format. At this point in time the transaction format information is stored in a file on hard disk 16. This file contains a series of elements in the appropriate order for that transaction format. The file also contains identification information for each element, its position and its length. The file also contains a coordinate which is associated with the related field in the other system component or "other part" which will be described. A simplified representation of the overlay file is set forth in Figure 8 where overlays for three different transactions are pictorially represented. The overlay for transaction format DU1:850 consists of ordered segments BEG, N1, etc. and their associated elements. The elements are in the specified order and each element has the following information: its dictionary-defined identification code, its position within the segment, its field length, and its mapping coordinates. For example, the third element in the segment BEG is code number 324 and the adjacent identifier (03) signifies that it is the third position in that segment. A typical number for its length would be 10. The mapping coordinate (X5, Y2) defines where the field for that element appears on the data entry screen. The definition of the location for each field is discussed in connection with "building" the screen. The overlay generator module operates in a similar manner to generate the other overlays pictorially represented in Figure 8. Assume that during the screen building process, the user located the fields in the character positions shown in Figure 9 which represents a simplified data entry screen. The overlay generator, during the mapping process, would locate the character position of the first element in the transaction format file and insert those mapping coordinates (X5, Y2) in the appropriate field in the data entry overlay. The other elements likewise contain their respective mapping coordinates. If the user decides to rebuild a new screen, the elements in the transaction format file remain in their same order but the mapping coordinates will change to correspond to their new location on the screen. The overlays for the other system components (e.g., printer) are arranged in similar fashion but contain mapping coordinates which are associated with that particular device. The flow chart of Figure 3 describes in more detail how the machine system builds the data entry overlay. Appendix 1 describes in detail how this overlay can now be used to enter and translate data for transmission to a trading partner. Briefly, data (e.g., price) associated with a given element (e.g., E212) are entered into the related fields on screen 22 by the user via keyboard 20. The entered data and the element mapping coordinate are stored in an intermediate file. The data are each associated with a mapping coordinate for each associated element. Before it is time to actually transmit the data, a software module instructs the CPU 14 to read each element from the pertinent overlay, along with its associated mapping coordinate (see Figure 10). Software uses this mapping coordinate as a pointer to the intermediate file where is fetches the data having a corresponding mapping coordinate. Thus, data D2 would be placed in the sixth position since it is associated with the sixth element E323 of the dictionary-structured format (see Figure 8). This reordering sequence continues until the data are all arranged in the appropriate sequence. Then, they can be transmitted to the trading partners in dictionary-structured format. In view of the foregoing, it should be appreciated that the present invention provides the user with a tremendous amount of flexibility without requiring a change in the software. Thus, it is not necessary to rewrite the software every time a new trading partner dictates a different dictionary-structured transaction format.

Claims: A method of interchanging electronic business transaction documents between a first party and at least one second party by means of a programmable machine system operated by said first party and comprising a key board (20), a processor (14), a memory (16), at least one component such as a printer (24) or display (22) or flat file, a device (26) for receiving electronic business transaction documents from said second parties, each of the second parties having at least one document to be transmitted to the first party, each of these documents to be transmitted to the first party by a second party comprising a set (E353, E092, E324, E323) of data elements specifically associated with a given document of said second party and each set being different from each other set of data elements for other documents of the second party, each second party transmitting the data elements of each document in a particular order, characterized by: a) storing a plurality of overlay files (CA1:850, DU1:850) in said memory (16) in said programmable machine system (12) operated by said first party, each overlay file being specifically associated with one document of one of said second parties and each overlay file comprising a definition of the ordered set of data elements of the document of said one of said second parties stored therein together with mapping coordinates (X5, Y2; X2, Y3) which map each data element of said set to a field in said printer (24) or display (22) or flat file in said programmable machine system (12); b) receiving, at said programmable machine system (12), a stream of data elements defining a business transaction document from one of said second parties, c) retrieving the overlay file (DU1:850) for the document received from said one of said second parties in step b) from the memory (16) and using the mapping coordinates (X5, Y2; X2, Y3) therein to map each data element in the received stream to a given field in the printer (24) or display (22) or flat file in said programmable machine system (12), d) thereafter, electronically receiving, at said programmable machine system (12), a further stream of data elements defining a further business transaction document from a second party, e) retrieving the overlay file (CA1:850) for the document received in step d) from the memory (16) and using the mapping coordinates therein (X5, Y2; X2, Y3) to map each data element in the received further stream to a given field in the printer (24) or display (22) or flat file in said programmable machine system (12). The method of claim 1 wherein said device (26) can also transmit to a second party, characterized by: f) entering data elements into the fields in the display (22) or flat file in said programmable machine system (12) by said first party; g) retrieving the overlay file (DU1:850) associated with the entered data elements of the business transaction document to be transmitted to said one or said further one of said second parties from the memory (16) and using the mapping coordinates (X5, Y2; X2, Y3) therein to order the entered data elements into the ordered sequence defined by the data elements in the selected overlay file, thereby creating a stream of data elements defining said business transaction document ready for transmission to said one or said further one of said second parties, and h) transmitting said stream of data elements from step g) in the ordered sequence to this second party. A method of interchanging electronic business transaction documents between a first party and at least one second party by means of a programmable machine system being operated by said first party and comprising a key board (20), a processor (14), a memory (16), at least one component such as a printer (24) or display (22) or flat file, a device (26) for transmitting electronic business transaction documents to said second parties, each of the second parties having at least one document to be received from the first party, each of these documents to be received from the first party comprising a set (E353, E092, E324, E323) of data elements specifically associated with said second party and being different from each other set of data elements for other documents of the second party, the first party transmitting the data elements of each document in a particular order, characterized by a) storing a plurality of overlay files (CA1:850, DU1:850) in said memory (16) in said programmable machine system (12) operated by said first party, each overlay file being specifically associated with one document of one of the second parties, with each overlay file comprising a definition of the ordered set of data elements of the document of said one of said second parties stored therein together with mapping coordinates (X5, Y2; X2, Y3) which map each data element of said set to a field in said printer (24) or display (22) or flat file in said programmable machine system; b) entering data into the fields in the display (22) or flat file in the programmable machine system (12) by said first party; c) retrieving the overlay file (CA1:850, DU1:850) associated with the entered data elements of the business transaction document to be transmitted to one of said second parties from the memory (16) and using the mapping coordinates (X5, Y2; X2, Y3) therein to order the entered data into the ordered sequence defined by the data elements in the selected overlay file, thereby creating a stream of data elements defining said business transaction document ready for transmission to said one of said second parties; d) transmitting said stream of data elements in the ordered sequence to said second party; e) repeating steps b) through d) at least once for at least one further document, of at least one of said second parties. The method of claim 2 or 3, characterized in that a keyboard (20) is used to enter data elements into the fields on a display (22). The method of claim 4, characterized by: moving data entry fields on the display (22) to generate a desired screen format; and updating the mapping coordinates (X5, Y2; X2, Y3) in the overlay file (DU1:850) to provide a new map from the new data entry fields to their associated data elements in the overlay file (DU1:850). The method according to claim 4 or 5, characterized in that each business transaction document is identified with a transaction code (850, 810), and wherein each business transaction document must include certain segments made up of selected data elements, wherein the method further comprises: storing a data element dictionary in the memory (16), said data element dictionary including an identification code (E353, E092, etc.) and certain parameters for each data element that can be used by one of said second parties in its documents; storing a segment dictionary in the memory (16), said segment dictionary including an identification code (CTT, ST, BEG, etc.) for each segment which is defined by a group of data elements in a particular order; storing a transaction dictionary in the memory (16), said transaction dictionary including a transaction code (850, 810) for each transaction which is defined by a plurality of segments in a particular order; entering a transaction code (850, 810) into the keyboard (20); automatically displaying, on the display (22), mandatory segments for the entered transaction code (850, 810); adding additional segments to the displayed mandatory segments to thereby specifically tailor the transaction document as required by one of said second parties thereby generating a listing of data elements in an ordered sequence for a given second party's document; using the listing to create a data entry screen on the display (22); moving fields on the data entry screen to generate a desired screen format; and creating said overlay file (DU1:850) by combining the listing with coordinates of the fields on the data entry screen associated with the data elements in the listing. The method of claim 6, characterized in that said memory is a disk memory (16), and wherein the method comprises: using the overlay file (DU2:850) to translate segments in a transmission received from one of said second parties to data elements which are stored in a flat file on the disk memory (16). The method of claim 6, characterized in that said memory is a disk memory (16), and wherein the method comprises: using the overlay file (DU2:850) to translate data which are stored in a flat file on the disk memory (16) to the ordered sequence defined by the overlay file (DU2:850) ready for transmission to one of said second parties. A programmable machine system (12) for interchanging electronic business transaction documents between a first party and a plurality of second parties, each of the second parties having at least one document to be transmitted to the first party, each of these documents to be transmitted to the first party by a second party comprising a set (E353, E092, E324, E323) of data elements specifically associated with said corresponding one of said second parties and being different from each other set of data elements specifically associated with the other second parties, each second party transmitting the data elements of each document in a particular order, said programmable machine system (12) being operated by the first party and including a keyboard (20), a processor (14), a memory (16) and at least one component such as a printer (24) or display (22) or flat file, said machine system (12) further including a device (26) for receiving and transmitting electronic business transaction documents from and to said second parties, characterized by: a plurality of overlay files (CA1:850; DU1:850) stored in the memory (16), each overlay file being specifically associated with one document of one of said second parties, and each overlay file comprising a definition of the ordered set (E353, E092, E324, E323) of data elements of the document of said one of said second parties stored therein together with mapping coordinates (X5, Y2; X2, Y3) which map each data element of said set to a field in said printer (24) or display (22) or flat file in said programmable machine system. (12) The programmable machine system (12) of claim 9, characterized in that said memory (16) contains a data element dictionary including an identification code and certain parameters for each data element that can be used by one of said second parties in its documents, a segment dictionary including an identification code (CTT, ST, BEG, etc.) for each segment which is defined by a group of data elements in a particular order and a transaction dictionary including a transaction code (850, 810) for each transaction which is defined by a plurality of segments in a particular order. The programmable machine system (12) of claim 9 or 10, characterized in that said memory is a disk memory (16), wherein the overlay file is used to translate data elements of a transmission received from one of said second parties to data elements which are stored in a flat file on the disk memory.

Inventors: JACKSON ANGELA GAIL, JACKSON, ANGELA GAIL
Applicants: SUPPLY TECH INC, SUPPLY TECH, INC
Application year: 1990
Main classification: G06F17
IPC codes: G06F17