In the figures which illustrate an example embodiment of this invention:
With reference to the accompanying drawings, a detailed description of the present invention will be provided.
The computer system generally includes a communications interface 26, such as an Ethernet card, to communicate to the electronic network 10. Other computer systems 13 and 13A may also be connected to the electronic network 10. One skilled in the art would recognize that the above system describes the typical components of a computer system connected to an electronic network. It should be appreciated that many other similar configurations are within the abilities of one skilled in the art and all of these configurations could be used with the methods of the present invention.
In addition, one skilled in the art would recognize that the “computer” implemented invention described further herein may include components that are not computers per se but include devices such as Internet appliances and Programmable Logic Controllers (PLCs) that may be used to provide one or more of the functionalities discussed herein. Furthermore, “electronic” networks are generically used to refer to the communications network connecting the processing sites of the present invention, including implementation by using optical or other equivalent technologies.
One skilled in the art would recognize that other system configurations and data structures and electronic/data signals could be provided to implement the functionality of the present invention. All such configurations and data structures are considered to be within the scope of the present invention.
The present invention is directed to an EDI Document Object Model, or EDI DOM, (hereinafter also referred to as “model”), which allows for an electronic interchange document to be represented as an in-memory hierarchical model based upon a set of enumerated values specified in the EDI document. With such a model, various types of client software and applications can be utilized in order to manipulate, extract, and set segment, element, and/or sub-element information stored within the model as well as create matching schema (meta message definition). This allows one to readily generate an interchange or document from the model at run-time that may be mapped/transformed to another structure. That is, a user is able to parse and pull particular information from a first electronic document, whereby that information may correspond to segment data, element data or sub-element data, and pull that information into a second electronic document in the same EDI format or in another EDI format.
The EDI DOM contains the classes or objects that serve as a container for EDI document elements. The overall object model is shown in
EDI documents are represented as a collection of data elements, segments, functional groups and transaction sets. The EDI DOM according to the present invention takes advantage of this type of representation, and stores that information as objects in a hierarchical manner in a memory, to allow specific data to be retrieved from an electronic document according to those representations.
Referring now to
The fundamental entities of an EDI document, which is represented by a Document node 210 in
In the present invention, data of an EDI document is stored as new fields within the HL (hierarchical loop) segment according to the hierarchical model shown in
The HL segment comprises four elements: HL01230A; HL02240A; HL03250A; and HL04240A. These four elements have the following definitions HL01—Hierarchical element ID (“element identifier Data element”)
In a conventional EDI electronic document, the document entity, the segment entity or entities, the transaction set entity or entities, and the functional group entity or entities are stored in a sequential manner in the electronic document. Headers (see Header 310 in
This can be seen more clearly in
Within the EDI hierarchical message m 856420, and more particularly, within the EDI hierarchical Message Details 450 is the Hierarchical Loop segment 460. Within the Hierarchical Loop segment 460 are the above-referenced HL01461, HL02462, HL03463, and HL04464.
This is also shown in
Described below is the algorithm creating intended logical model schema definition.
1. Identify the local element pertaining to hierarchical loop in the flat logical model schema and its complex type definition, say t1. In the example noted in
2. Create a global group say g1 and move the contents of complex type t1 to this group except the HL segment. For the example in
3. For each enumeration value defined in the HL03 element of the HL segment:
4. Ask user regarding the hierarchy to be created between the record types defined in HL03 element. E.g., Shipment (S) is the parent of Shipment T are (T) and Shipment Tare (T) is the parent of Item (I).
5. For each local element created in Step 3a, do the following:
6. For the selected local element, get its complex type say t2.
7. Create a local element with name HL of anonymous complex type
8. Add a group reference in the complex type t2 pointing to the global group created in Step 2.
9. If the selected element in Step 6 is immediate parent of more than one record types (e.g., Shipment (S) can be immediate parent of Shipment Tare (T) and of Item (I).
10. If the selected element in Step 6 is immediate parent of just one record type
Using the intended hierarchical logical model definition built at tooling time, users can use the mapping tools to map the hierarchal message instance to another structure or generate code at tooling time for manipulating the hierarchal structure etc.
The invention can take the form of an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid-state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/Output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.
This application is related in some aspects to the commonly owned and co-pending application entitled “A Scalable Logical Model for EDI and System and Method for Creating, Mapping and Parsing EDI Messages”, filed Sep. 5, 2006, assigned attorney docket number CA920060033US1, and assigned serial number (to be provided), the entire contents of which are herein incorporated by reference. This application also is related in some aspects to the commonly owned and co-pending application entitled “Message Validation Model”, filed Sep. 5, 2006, assigned attorney docket number CA920060034US1, and assigned serial number (to be provided), the entire contents of which are herein incorporated by reference. This application is also related in some aspects to commonly owned, and co-pending published patent application number US 2004-0103071 A1, entitled “Meta-Model for Associating Multiple Physical Representations of Logically Equivalent Entities in Messaging and Other Applications”, filed Nov. 6, 2003, and published May 27, 2004, the entire contents of which are herein incorporated by reference.