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: