Download Method and apparatus for electronic data interchange
Transcript
United States Patent [19] [11] [45] Jackson Patent Number: Date of Patent: 4,951,196 Aug. 21, 1990 [54] METHOD AND APPARATUS FOR ELECTRONIC DATA INTERCHANGE EDI News, Mar. 1988, p. 9. EDI Trade Show brochure, pp. 12-15, date unknown. [75] Inventor: Primary Examiner-Clark A. Jablon Attorney, Agent, or Firm-Harness, Dickey & Pierce Angela G. Jackson, Lincoln Park, Mich. [73] Assignee: Supply Tech, Inc., South?eld, Mich. [21] Appl. No.: 190,147 [22] Filed: May 4, 1988 [51] Int. Cl.5 ..................... .. G06F 15/21; G06F 15/24 [52] [58] US. Cl. ........................................ .. 364/401 Field of Search ....................................... .. 364/401 [56] References Cited [57] ABSTRACI‘ A programmable machine system and method for per forming electronic data interchange among a variety of trading partners. The machine is programmed so that it can de?ne, enter and translate business transaction data in a variety of different dictionary-structured formats thereby providing the user with the ?exibility to work with electronic data in various formats without requir ing reprogramming of the machine. PUBLICATIONS “STl User Manual”, dated Jul. 20, 1988 by Supply Tech, Inc. (108 pages). 48 Claims, 26 Drawing Sheets Identify Overlay l v Manipulate visual tarmat of print a data entry overlays l Select seqments G establish their Hard Disk order Det ermine overlay mapping & iormat or other part ) Transaction ID: | ) Segment IDs and then’ order within transaction Manipulate transaction parameters: title. speno. etc. - > Hdppinq l > Trnnsactlon parameters > ..__.._— Element Ins and their order within segment. select elements & establish their ) semen: parameters order [ I ) Element parameters . L.—_____ gianinulate nlqment parameters: loops. occuranou, etc. Manipulate element parameters: data Y-Ype. size. etc. Only the direct and blsic relationships and lunctionility Hr! shown. speci?cally, alternate nodul- calling sequences are not shown: additional nodule runction: are not nhpvn: utility module: (such an view and print) at: not shown: indirect updates [such as overlay element update ltlactinq the mapping] are not shown.and initial. update: (luch ll overlay selection initializing datault values tor Q overlay data] are not Ihown. US. Patent Aug. 21, 1990 Sheet 1 of 26 4,951,196 no? Keyboard (s) I—'__———‘ I'_T_-— -_-—-> CPU 1,__-_->Pr1nters (Processor) L___.____v > Internal Memory Hard Disk Displays -— I_________ ___-—> Modem <._.-_-> L—_—_—_ | Telephone Connection -127 Keyboard _--._---->I \20 Floppy CPU __..__ <'—- Modem (Processor) 14 <______> ‘ ) Display Disk Unit \ 22 18 P1515125] Memory 28 _ Hard Disk 26 < > L__ - -_| r—'——"— > Printer L 24 A . . lication Pro rams Overlay Generator program modules Data entry, print , file translation, dictionary handling program modules Other application program modules Files . Overlays for data entry, print, file translation . Element, segment, transaction dictionaries (dictionary-defined transactions) . Data as received, as entered, and as translated into and from the dictionary-structured formats Other application files FIGURE 1 US. Patent Aug. 21, 1990 Sheet 2 of 26 4,951,196 Identify Overlay V Manipulate visual format of print & data entry overlays B V V Select segments & establish their order Hard Disk l Determine overlay L- ) Transaction IDs mapping & format of other part I _- ) Segment IDs and their order within transaction V Manipulate transaction parameters: title , spcng, Mapping | etc . __-__-—---- > Transaction parameters | --—-——> Element IDs and their \________-__-_-_ I Select elements & establish their ) order I F V order within segment; Segment parameters Element parameters Manipulate segment parameters: loops . occurances , etc. --V Manipulate element parameters: data type, size, etc. Only the direct and basic relationships and functionality are shown. Specifically, alternate module calling sequences are not shown: additional module functions are not 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. FIGURE 2 US. Patent Aug. 21, 1990 Sheet 3 of 26 Read segment hdr to determine 4,951,196 B overlay type \element fit in lInitialize record Flat File Build? remaining part >no. and postion Y of record? I N 4 v Increment record v no, , Initialize reset postion within record row/column < v |.< l v - Update record no. v in Element Read next segment parameters a I \ action? ‘L A postion immediately beyond element lExit >mapping End of Trans Y [routine E] v v Locate next element in order for this segment End of l Increment record >_ segment” F 31 FIGURE 3 (A) Y US. Patent Aug. 21, 1990 Calculate row and column based on ' - Sheet 4 of 26 Reset column, increment row element ' s offset v Save calculated row and column in Element parameters 1 v Update mapping with header and attribute data v Increment immed iately beyond element FIGURE 3 (B) 4,951,196 US. Patent Aug. 21, 1990 Sheet 5 of 26 4,951,196 Data-Entry-Process-Main. ?t'litiiiit?iitiitiiiit*i Perform Entry-Loop until all transactions have been entered. Position to first transaction in list to format. Perform Format-Loop until end of entered transactions list. Stop Run. Entry-Loop. tititiitttttiii‘kttitiittiitittitttiniki*t?ittitttitttttt If transaction requires a different overlay Load Dictionary structured transaction overlay Load screen images which were created during the build process for the current overlay Initialize intermediate work file Display scr‘een image loaded from screen image file part of overlay Reference first element in dictionary structured transaction. Perform Field-Entry-Qrocess until end of transaction. Add transaction to list of transactions to format. Field-Entry-Process . - If currently displayed screen is not the screen indicated by the current element Display the screen image element indicated by the current Use the element row/column calculated during the build process to position to the proper field on the screen. Check the intermediate work file for data value corresponding to the current element. If the value exists on the intermediate work file Move the intermediate value to the input value area Else If ‘there is a default value defined in the overlay for this element Move the default value to the input value area Else Move spaces to the input value area Set error condition to true. Perform Accept-Loop until error condition is false_. Write Input value to Intermediate work file. Reference next element in dictionary structured transaction. FIGURE 4 (A) US. Patent Aug. 21, 1990 Sheet 6 of 26 Accept-Loop. 4,951,196 . Accept the input value cursor position from the console at the designated If the input value is blank If the element is mandatory Display an error message Go to end of accept loop Edit the input value according words specified in the to data type and reserved element definition in the overlay. If the input value is acceptable Set the error condition to false Else Display an error message Format-Loop. iii*tii'kitt?ii*itiitiititt*ttt?iiititttitttttitittttttttittti If a different overlay is required perform New-Overlay-Process Initialize formulas. Open Data Entry Intermediate file for input. Move spaces to segment work area. Position at first element in overlay. Perform Format-Process until end of transaction. Perform Close-Process. Get next transaction in list to format. Format-Process. Locate the current segment in the overlay based on the current element. If element is a constant Move constant value to intermediate element value Else If element is a formula Move calculated formula value to intermediate element value Else Locate element on Data Entry Intermediate file (to use intermediate element value from file) If the current segment is not the segment that is in the segment work area Calculate any formulas depending segment Perform Write-Segment FIGURE 4 (B) on values in this US. Patent Aug. 21, 1990 Format the Sheet 7 of 26 I 4,951,196 intermediate element value according to its data type, minimum length, and maximum length. Place an element separator in the current position of the segment work area, and increment the current position of the segment work area . Place the intermediate element value into the segment work area starting at the current position, and increment the current position to point to the character just past the end of the data that were just placed in the segment work area. - Reference next element in overlay. New-Overlay-Process. If Xl2 formatted transaction file is open perform Close-Process Open X12 formatted file for output Write the X12 Interchange, group, and transaction headers. Load dictionary structured transaction overlay‘ Close-Process. Perform Write-Segment. Write X12 transaction, group, and interchange trailers . Close X12 formatted file. write-segment. Strip any trailing element separators from the end of the segment work area, decrementing the current position for each element separator stripped. Place a segment terminator at the current position of the segment work area, write the segment work area to the X12 formatted data file. Move spaces to the segment work area“ Move the current segment name to the segment work area. Set the current position of the segment work area to the position immediately following the segment name . FIGURE 4 (C) US. Patent Aug. 21, 1990 Sheet 8 of 26 4,951,196 X12-TO-PRINT-FORMAT-MAIN. itttitititiititit'k'kittti Load dictionary structured transaction overlay. Load flatfile image which was created during the build process for the current overlay. Initialize flatfile image work file. Set first-line to 99 , last-line to 0 Open X12 data file for input. ‘Position to first segment in X12 data file. Perform Segment‘Loop until end of transaction. Perform Print-Image-Process. Close files. Stop Run. it’!!!ttitt~ktittittiiitiliititittitttiitt***t*tt*t***tt Segment-Loop. ' ttttiit*tixttttttitttt*t***t*t*t***tit*ittt*ti*ttitttt'k Locate segment in overlay fK' (by segment name or use of type elements) . If segment is defined in the overlay Get first element in segment Perform Element-Loop thru Element-Loop-Exit until all elements in segment have been processed Get the next segment in the input X12 transaction. Element-Loop. If element is blank Get next element in segment go to Element-Loop-Exit Locate proper element description in overlay. If element has a default code of Use this element to ‘8' establish a qualifier/qualified relationship for printing Go to Element-Loop-Exit Use line and column positions contained in the overlay element description to find the position into which the current element data are to be placed. If this element will overlay a value already loaded into the print image work file Perform Print-Image-Process FIGURE 5 (A) US. Patent Aug. 21, 1990 Sheet 9 of 26 4,951,196 Place the element data into the print image work file at the position in the line indicated by the overlay element description. If current specified line is greater than last-line Move current line to last-line Else If current specified line is less than first-line Move current line to first-line Get the next element in the segment. Element-Loop-Exit. Exit. Print-Image-Process. Print the print image work last-line. Initialize the print last-line. file from first-line to , image work file" from Set first-line to 99 , last-line to 0. FIGURE 5 (B) first-line to US. Patent Aug. 21, 1990 Sheet 10 of 26 4,951,196 FLAT-FILE-TO-Xl 2-1-‘ORMAT-MAIN. tiitttiti?ttk*tt*itttikil**** Position to first transaction in flat file. Perform Format-Loop until end of flat file. Perform Close-Process. Close Flat file. Stop Run. Format-Loop. ttttiit'kttiit*t?xtitittttt'k*tt?ttitiittt‘ktitittititittttittiti If a different overlay is required perform New-Overlay-Process Initialize formulas. Move spaces to segment work area. Position at first element in overlay. Perform Format-Process thru Format-Process-Exit until a new header record is encountered or end of flat file. Format-Process. Locate the current segment in the overlay based on the current element. If element is a constant Move constant value to flat element value Else If element is a formula Move calculated formula value to flat element value Else Locate element from flat file If a header record is encountered in the flat file or the end of the flat file is reached go to Format-Process-Exit If the current segment is not the segment that is in the segment work area Calculate any formulas depending on values in this segment Perform Write-Segment Format the flat element value according to its data type, minimum length, and maximum length. Place an element separator in the current position of the segment work area, and increment the current position of the segment work area. Place the intermediate element value into the segment work area starting at the current position, and increment the current position to point to the character just past the end of the data that were just placed in the segment work area. Reference next element in overlay. Format-Process-Exit. Exit. FIGURE 6 (A) US. Patent Aug. 21, 1990 Sheet 11 0f 26 4,951,196 New-Overlay-Process. If X12 formatted transaction file is open perform Close-Process Open X12 formatted file for output Write the X12 Interchange, group, and transaction headers. Load dictionary structured transaction overlay. Close-Process. Perform Write-Segment. Write X12 transaction, group, and interchange trailers . Close X12 formatted file. Write-segment. Strip any trailing element separators from the end of the segment work area, decrementing the current position for each element separator stripped. Place a segment terminator at the current position of the segment work area. Write the segment work area to the X12 formatted data file . Move spaces to the segment work area. Move the current segment name to the segment work area. Set the current position of the segment work area to the position immediately following the segment name . titttiiitikittiiitiii*ii X12-TO-FLAT-FORMAT—MAIN . tt'ktttttitit*ttittiiti*i Load dictionary structured transaction overlay. Load flatfile image which was created during the build process for the current overlay. ' Initialize flatfile image work file. Set first-record-type to 99, last-record-type to 0 Open X12 data file for input. Open the flat file for output. Position to first segment in X12 data file. Perform Segment-Loop until end of transaction. Perform Flat-Image-Process. Close files. Stop Run. ttittiittttiiittitittilttiittitit'tttttttittttttttttttt Segment-Loop. tiit‘littintttttitititittittt*i*******ittit*ttttitttttt Locate segment in overlay 'K‘ (by segment name or use of type elements) . If segment is defined in the overlay Get first element in segment Perform Element-Loop thru Element-Loop-Exit until all elements in segment have been processed Get the next segment in the input X12 transaction. Element-Loop. If element is blank Get next element in segment go to Element'Loop-Exit Locate proper element description in overlay. FIGURE 6 (B) US. Patent Aug. 21, 1990 Sheet 12 of 26 4,951,196 If element has a default code of ‘5' Use this element to establish a qualifier/qualified relationship for printing Go to Element-Loop-Exit Use record type and position contained in the overlay element description to find the position into which the current element data are to be placed. If this element will overlay a value already loaded into the flat image ‘dork file Perform Flat-Image-Process Place the element data into the flat image work file at the position in the record indicated by the overlay element description. If current specified line is greater than last-record-type Move current line to last-record-type Else If current specified line is less than first-record-type Move current line to first-record-type Get the next element in the segment Element-Loop-Exit. Exit. Flat-Image-Process. Write the flat image work file from first-record-type to last-record-type. Initialize the flat image work file from first-record-type to last-record-type. Set first-record-type to 99, last-record-type to 0. FIGURE 6 (C) US. Patent Aug-21,1990 Sheet 13 0f 26 4,95 ’ PURCHASE ORDER TRANSACTION SEGMENT TITLE ST BEG TRANSACTION SET HEADER N1 N3 NAME STREET ADDRESS N3 N4 STREET ADDRESS CITY/STATE PER ITD DTM P01 ADMINISTRATIVE COMMUNICATIONS CONTAC TERMS OF SALE/DEFERRED TERMS OF SALE DATE/TIME REFERENCE BASELINE ITEM DATA JZX ITEM DESCRIPTION CTT TRANSACTIONS TOTALS SE TRANSACTION SET TRAILER (END) BEGINNING SEGMENT (PURCHASE ORDER) TRANSACTION SET CTTOl CTT 354 c'r'roz NUMBER OF LINE ITEMS M NO 347 c'r'roa" HASH TOTAL 01/04 0 R WEIGHT 01/10 0 R SEGMENT _ EL MENT TITLE w M123. 354 NUMBER OF LINE ITEMS ELEMENT FIGURE 7 Total number of line items in a transaction set° US. Patent Aug. 21, 1990 Sheet 14 of 26 4,951,196, Your Company Name Goes Here MAINTAIN SYSTEM AND SECURITY FILES 1 CONFIGURATION 2 _ - 1O ELEHENTs TRADING PARTNERs - 11 SEGHENTs 3 PART NUMBER CROSS REFERENCE - 12 TRANSACTIONs L LOG-ONs 5 SECURITY 6 DATA ENTRY OVERLAYs ---- -- 7 PRINT OVERLAYs --------- - 8 X12 TO FLAT OVERLAYs ----- 9 FLAT T0 X12 OVERLAYs -_-_. L) These items represent the (three tier) dictionary-defined transaction formats. I Specifically incorporated here are the ANSI ASG X12 and TDCC dictionaries [which are co-mingied) . ,-) This is a Supply Tech product in which the Overlay Generator is used to generate dict ionary-structured transaction formats. nn=Select , E=Exit Option: Enter option FIGURE 8 US. Patent Aug. 21,1990 Sheet 15 of 26 4,951,196 Your Company Name Goes Here STXI? MAIN MENU 1 MAINTAIN SYSTEM AND SECURITY FILES -- 1D ENTER INVOICES 2 SEND/RECEIVE TRANSACTIONS — 11 ENTER PRODUCT ION RELEASES 3 PROCESS INCOHING TRANSACTIONS - 12 ENTER PURCHASE ORDERS A PROCESS OUTCOING TRANSACTIONS »- 13 ENTER PURCHASE ORDER ACKNDHLEDGE 5 ARCHIVE TRANSACTIONS - 14 ENTER ADVANCE SHIP NOTICES 6 RESTORE TRANSACTIONS 7 PRINT MANAGEMENT REPORTS 8 CONVERT X12 T0 FLAT FILE - 9 CONVERT FLAT FILE T0 X12 nn=$e1ect,E=Exit [---------- -- 15 ENTER PRODUCTION STATUSs -)These menu items direct the user to trading partner-specific data entry screens which are generated via an overlay. The entered data are translated also using the overlay. -)These menu items invoke the translation l between transactions in a dictionarY~ structured formats to/from fixed file formats Option: using an overlay. Enter ootion FIGURE 9 US. Patent Aug. 21, 1990 Sheet 16 of 26 Your Company Name Goes Here DATA ENTRY OVERLAYS SELECTION OVERLAY CODE TRANSACTION CODE WI 850 PURCHASE ORDER FIGURE 10A 4,951,196 US. Patent Aug. 21, 1990 Sheet 17 of 26 Your Company Name Goes Here 4,951,196 DUI :850 - PURCHASE ORDER DATA ENTRY OVERLAY SEGMENT SELECTION SEGT‘IENT OCCURS LOOPS TRANSACTION SET HEADER BEGINNING SEGMENT (PURCHASE 0RD) SELLER ADDRESS ADDRESS CITY/STATE/ZIP SHIP-TO ADDRESS ADDRESS CITY/STATE/ZIP IDDDD BASELINE ITEH DATA DESCRIPTION TRANSACTION TOTALS TRANSACTION SET TRAILER nn=$el,A=Add,D=Dlt,B=Build,V=Vieu,P=Print,T=Trn Hdr,E=Exit Enter option FIGURE 10B Option: US. Patent Aug. 21, 1990 Sheet 18 of 26 Your Company Name Goes Here DU1 :850 - PURCHASE ORDER 0m ENTRY 0mm SEG?ENT UPDATE BEG - BEGINNING SEGMENT (PURCHASE ORDER] SEGMENT POSITION SEGHENI CODE SEGMENT NAME 02 BEG BEGINNING SEGMENT NEOUIREHENT c005 nAxlnun USE TYPICAL USE H > [H] 000001 (000001 ) 01 POSITION 0F sEGnENT THAT ENDS LOOP nAxInun LOOPS 00 (N1) 000000 (000001) G=Chanoe,V=Vieu,E=Exit 4,951,196 Option: Enter option FIGURE 10C US. Patent Aug. 21, 1990 Sheet 19 of 26 Your Company Name Goes Here 4,951,196 DUI :BSO — PURCHASE ORDER DATA ENTRY OVERLAY ELEMENT SELECTION SEGMENT POSITION 1 2 BEG BEG O1 O2 353 092 3 4 BEG BEG O3 O6 326 323 BEG - BEGINNING SEGMENT (PURCHASE ORDER] ' ELEMENT C - TRANSACTION SET PURPOSE C - PURCHASE ORDER TYPE P. O. NUMBER P.O.' DATE nn=SeIect.A=Add,D=DeIete, M=Move, V=Vieu,U=Update Se9,E=Exit Enter option FIGURE 10D Option: