EDI Standard and Tool - 2 IEEM 5352 Enterprise Integration
Interchange Envelop Interchange Envelop (EDI Document Format) ISA (Interchange Group Start) GS (Functional Group Start) ST (Transaction Set Start) SE (Transaction Set End) GE (Functional Group End) IEA (Interchange Group End) Detailed Segment (with Data Elements)
Transaction Set / Message Structure Element Codes Elements Composite Elements Segments Transaction Sets/ Messages ST
EDI EX*tender - Architecture EDI Overview The View from 50,000 ft Client/Server Communication The EX*tender Mailbox Any to Any Translation System Auditing Application Integration
SAP PeopleSoft Oracle Apps COMPANYCOMPANY Trading Partners
SAP PeopleSoft Oracle Apps Trading Partners EDI Format Company ERPERP
TP-1 TP-2 Trading Partners EDI Format Company ERPERP TP-3 VAN
EX*tender Server from 50,000 Feet
Company ERPERP EDI Format TRANSLATORTRANSLATOR Native Format (udf) Inbound Outbound EDI EX*tender
TP-1 TP-2 Trading Partners Company ERPERP TP-3 VAN TRANSLATORTRANSLATOR xlate
Oracle Apps Environment ORACLEORACLE TRANSLATORTRANSLATOR Inbound (INV) (PO) Outbound EDI EX*tender EDI Gateway UDF/ FF EDI
High Level Architecture mbox mgr com server in bound out bound EX*tender
High Level Architecture Translator EX*tender Mailbox:../mbox/TP1/inedi../mbox/TP2/inedi../mbox/TP3/inedi UNIX File System../db../script../log edi_dbms client Database
EDI EX*tender Client/Server Communication
Allows Server (translator) to be controlled by Client Start and stop the translation engine Change the number of running translator processes Collect performance data Communication via SQL*Net and Oracle DBMS_PIPE Facilitated by UNIX server process (edi_dbms) Edi_dbms services called through PL/SQL API edia - administrative functions (restricted) ediu - user functions (unrestricted) edic - contains functions common to edia and ediu
Monitor Tables SQL*Net Client Oracle RDBMS edi_dbms PL/SQL API dbms_pipe IPC Insert Monitor Data dbms_alert EDI Engine Monitor Change Number of Servers Start Engine Stop Engine OS Start/Stop /TP1 /inedi /inff /out /TP2 /inedi /inff /out File System OS Validations System Call Delta Monitor Start/Stop (Mailbox)
EDIU API’s create_mbox- create TP mailbox submit_hostfile- submit file for translation IsEngineRunning- check if translator is running ScriptExists- check if mapping script exists DirectoryExists- check if directory exists create_directory- create directory get_number_of_servers - get number of translators running AnybodyHome- check if edi_dbms is responding get_engine_status- get status of all translator processes FixDM- used if delta monitor ends abnormally For details see document: Technical Reference.doc
EDIA API’s shutdown- shutdown the translator refresh_dictionary- used when dictionary is added shutdown_audit- shutdown audit process configure- part of setup process adjust_audit_flags- changes audit data written to DB start_engine- starts the translator stop_engine- stops the translator change_number_of_servers- changes the number of server processes start_audit- starts the audit process start_com- starts the outbound device process start_delta_monitor- starts the performance monitor stop_delta_monitor- stops the performance monitor For details see document: Technical Reference.doc
EDI EX*tender The Mailbox
EDI EX*tender Mailbox Each Trading Partner has a mailbox Implemented as directories in the file system inedi- for edi documents translatation inff- for user defined file (UDF) translation out- default destination for translated documents –More than one mailbox root is possible (mbox_aliases) default is $EDIPATH/mbox –Mailbox supported by edi_mbox –Documents in../inedi and../inff are automatically submitted to the translator by edi_mbox –Automatic submission controlled by MBOX_SCAN_??? see configuration file, $EDIPATH/.edirc –Mailbox also interacts with edicopy and ‘scan’ command of console application
Translation Engine EDI EX*tender $EDIPATH/mbox/ TP1 /inedi /inff /out TP2 /inedi /inff /out TP3 /inedi /inff /out TP4 /inedi /inff /out Mailbox Root EDI-FF(TP1 to TP3) FF-EDI(TP1 to TP3)
BUYER /inedi /inff /out SELLER /inedi /inff /out Oracle Apps EDI Gateway POO Translation Engine Outbound Device VAN Seller’s Organization X X ASNI X ASNI EDI EX*tender
EDI EX*tender Mailbox Which Trading Partner Owns EX*tender?
EX*tender Server Any to Any Translation
Mailbox Optional Pre-process (script) De-group Re-group Translate (script) Optional Post-process (script) Recipient Pick up from mailbox Send to TPTo Mailbox EDI EX*tender
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender
edi-mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender edi-mbox mbox1/TP1/inedi /inff /out /TP2/inedi /inff /out... mbox2/TP3/inedi /inff /out... mboxn/TPn/indedi /inff /out
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender
edi-mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender UDF/FF EDI or $$$MSGSTART ST/SE Message Queue edi-manager TranslateTranslate
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender
edi-mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender edi_server Memory UDF/FF Translation scan script Flat File Message map script EDI Message
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender
edi-mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender edi_server Memory EDI Translation EDI Dictionary consulted Flat File Message map script EDI Message (Automatic memory population )
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender
edi_mbox edi_server edi-com Recipient Pick up from mailbox Send to TPTo Mailbox edi_manager EDI EX*tender optional translator component provides event driven and scheduled svc provides communication services used to extend translator capabilities interface to database, , fax, etc edi_com
edi_mbox edi_logger edi_mbox edi_com edi_server /TP1 /inedi /inff /out /TP2 /inedi /inff /out Asynch X.25 TCP/IP Bisynch Disk In Bound Message Queue edi_manager Out Bound edi_server Audit Tables Setup Tables Monitor Tables SQL*Net Forms Client edi_mbox edi_audit File
EDI EX*tender System Audit
EX*tender Auditing Audit tracks all actions performed by EX*tender All translator processes communicate with edi_logger Each file passing through the translator is assigned a ‘session’ number Each audit record identifies a particular session except for system level audit records which are associated with translator start session Audit records are perodically written to the database by edi_audit During idle times, edi_audit summarizes session activity
edi_mbox edi_manager edi_server edi_com edi_logger sndevtlog snderrlog $EDIPATH/log/edi_answer_log $EDIPATH/log/edi_answer_log.old IPC edi_audit readwrite idle time move move $EDIPATH/log/edi_answer_log.old.xyz edi_audit parse insert Database * Error: audit needs recovery
EDI EX*tender Application Integration
EDI EX*tender Application Integration Implemented by an Outbound Device Outbound Devices are managed by edi_com There are four types of Outbound Devices Scheduled Scheduled, Event Driven Periodic Periodic, Event Driven Outbound Devices are cached by edi_com when EX*tender is started An Outbound Device is an interface to the Operating System via a Shell Script
Scheduled Outbound Device Similar to UNIX cron process Can specify up to 4 times the device should execute Can specify the period (in days) the device should execute –Period = 0 means execute daily –Period = 1 means execute every other day When a device is marked as event driven it will execute –only if it has been the destination of a translation When a device is not event driven it will –unconditionally execute at its scheduled time
Periodic Outbound Device Also similar to UNIX cron process Specify a period in days and minutes Device will execute when the period expires When a device is marked as event driven it will execute only if it has been the destination of a translation When a device is not event driven it will unconditionally execute when the period expires A special case, an event driven periodic device with Period = 0 days, 0 minutes Executes immediately after message is translated Watch out for gotcha!!
Outbound Device Specifics An Outbound Device is a UNIX shell script The script must be in $EDIPATH/script The script is named according to the Outbound Device If device is named: 810out then shell script is named: $EDIPATH/script/810out.com Data translated to the device is written to the file: $EDIPATH/tmp/com/810out.lhot When device executes the data file is renamed to: $EDIPATH/tmp/810out.dat This is the file that an event driven device processes
Event Driven Outbound Device For an Outbound Device called 810out Device is executed only if $EDIPATH/tmp/com/810out.lhot exists Messages translated to 810out will be appended to 810out.lhot Just before executing the outbound device –810out.lhot is moved/appended to $EDIPATH/tmp/810out.dat After processing the data file, the outbound device must delete the file to prevent the data from being processed again
Scheduled Outbound Device Not Event Driven Unconditionally executes daily Executes at Midnight and 12 noon
Periodic Outbound Device Event Driven Executes each time a file is translated to this device Periodic Outbound Device
Outbound Device Usage in Translation Outbound Device Executes each time a file is translated to this device
translator edi_com $EDIPATH/tmp/com 810out.lhot 1 $EDIPATH/tmp 810out.dat move 2 $EDIPATH/script/810out.com execute 3 (move) process 4 Event Driven Outbound Device (810out) 1. Documents translated to Outbound Device 810out are written to 810out.lhot When its time to execute the outbound device: 2. edi_com moves/appends 810out.lhot to $EDIPATH/tmp/810out.dat 3. if $EDIPATH/tmp/810out.dat exists then 810out.com is executed by edi_com out.com process the translated data and deletes the file when finished