***
*** (C) Copyright International Business Machines Corp. 2002.
*** All Rights Reserved
*** Licensed Materials - Property Of IBM
***
*** Welcome to WebSphere Data Interchange Version 3.1
***
***
***

For information on how to set up MQSeries for WebSphere Data Interchange
see the wdi_mq_setup.txt file in the samples directory.

On Windows platforms the MQSeries Services Trigger Monitor does not
fully support PROCESS definitions that contain file paths having embedded
blank characters e.g. "C:\Program files\".  Instead run the MQSeries trigger
monitor program runmqtrm as described in wdi_mq_setup.txt. 


*** Install instructions for WebSphere Data Interchange V3.1 W2K

1)  Perform subsequent steps as a user with DB2 administrator authority.

2)  After the InstallShield installation, the directory structure within the
    installation directory is as follows:

    bin
    bind
    ddl
    deinstl (AIX only)
    ixf
    help
    lib
    runtime
    runtime/adf
    runtime/aex
    runtime/dicmd
    runtime/dicts
    runtime/dtds
    runtime/edi
    runtime/eex
    runtime/fak
    runtime/prt
    runtime/qry
    runtime/rcv
    runtime/rpt
    runtime/trk
    runtime/wrk
    runtime/xex
    runtime/xml
    samples

3)  Change directory to the ddl directory

4a) Issue the commands:

     db2 create db ediec31e
     db2 create db edict31e

    This process will create the databases. When this process has completed
    successfully the databases have been built. When the DB's have been
    created, issue the commands:

     altrec31
     altrct31

    This process will alter some of the default parameters related to log file
    size and number of primary and secondary logs.

4b) Change to the DB2 directory which contains the bind files for the DB2 utilities.  
    If installing on Windows, this typically has a name like C:\Program Files\SQLLIB\bnd.
    If installing on AIX, this typically has a name like /u/<db2 instance>/sqllib/bnd, 
    where <db2 instance> is the id of the instance owner.
    (See DB/2 Quick Beginnings "Binding Database Utilities") 

    Note for AIX installations: You may need to specify a different file for the messages
    for example /tmp/bind.msg, if you do not have write authority to the current directory.

    db2 connect to ediec31e
    db2 bind @db2ubind.lst messages bind.msg grant public
    db2 bind @db2cli.lst messages clibind.msg grant public
    db2 connect reset

    db2 connect to edict31e
    db2 bind @db2ubind.lst messages bind.msg grant public
    db2 bind @db2cli.lst messages clibind.msg grant public
    db2 connect reset

    Change the current directory back to the ddl directory.

5)  Issue the commands:

    db2 -tf ediec31.ddl -l ec31.log
    db2 -tf edict31.ddl -l ct31.log

    This process creates the WebSphere Data Interchange V3.1
    tables, indices, views, etc.

6)  The next step will issue GRANT statements necessary for WDI Client access
    to the newly created tables. The default is to issue GRANTs to public. 
    You may wish to change public to specific userids or a group of authorized
    users.

7)  Issue the commands:

     db2 -tf grntec31.ddl -l grntec31.log
     db2 -tf grntct31.ddl -l grntct31.log

8)  Change directory to the ixf directory

9)  Issue the following commands in sequence:

     a) loadec31
     b) loadct31

    This process will load initial data into the DB2 tables. The loading may
    generate warnings, just ignore them.

10) Change directory to the bind directory

11) The next step will issue GRANT statements necessary for WebSphere Data Interchange
    Server access to the newly created tables. The default within bindgrnt.fil is to
    issue GRANTs to public. You may wish to change public to specific userids
    or a group of authorized users.

12) Issue the command:

     db2 -tf bindgrnt.fil -l bind.log

    This process will BIND the WebSphere Data Interchange V3.1
    DB2 packages and GRANT execute authority to public.

13) The installation for the WebSphere Data Interchange V3.1
    is complete. 
    
--------------------------------------------------------------------------

*** Install instructions for WebSphere Data Interchange V3.1 AIX

1)  Perform subsequent steps as a user with DB2 administrator 
    authority. If AIX, be sure you also have ROOT authority.

2)  Run the InstallShield installation 
    (wdi.exe for Windows or wdi.aix for AIX).

Note: If new data is to be loaded into any tables do 3 and 4 else
      go to 5.
  
3)  Change directory to the ixf directory where WDI was installed.

4)  Issue the following command:

     loadmsgs

    This process will load new messages into the DB2 table. The loading
    may generate warnings, just ignore them.

5) Change directory to the bind directory where WDI was installed.

6) The next step will issue GRANT statements necessary for WebSphere 
    Data Interchange Server access to the modified tables. The default 
    within bindgrnt.fil is to issue GRANTs to public. You may wish to 
    change public to specific userids or a group of authorized users.

7) Issue the command:

     db2 -tf bindgrnt.fil -l bind.log

    This process will BIND the WebSphere Data Interchange V3.1
    DB2 packages and GRANT execute authority to public.

8) The installation for the WebSphere Data Interchange V3.1 
    is complete.

9) On AIX be sure that the correct permissions are granted to
   access the directories where the software was installed. 

--------------------------------------------------------------------------
20 January 2003 - CSD5

P8009404
IF A TRANSLATION TABLE IS CREATED WITH MORE THAN 407 ENTRIES  
AND IT IS COPIED TO A NEW TABLE, ONLY 407 ENTRIES ARE COPIED. 

P8009540
EDIFACT DATA TAGGED ONTO THE END OF A SUCCESSFUL XML USING SEND/ 
RECEIVE MAPS. THE PROBLEM OCCURS WHEN THE XML DATA PRODUCED HAS
FEWER BYTES THAN THE EDIFACT DATA CREATED IN THE TRANSLATION
PROCESS, A RARE EVENT WHEN CONSIDERING XML TAG LENGTH.

P8009174
When a type of MQ is specified on an ADF WDI currently writes the 
file out to a MQSeries queue one record per-messaage.  This needs 
to be changed so that the entire file is written out to the queue 
as a single MQSeries message.                                     

P8009505
NULL CHARACTERS ADDED TO FILE DURING NETWORK TRANSFERS
WHEN A XML FILE IS BEING CREATED WITHIN WEBSPHERE DATA 
INTERCHANGE NULL CHARACTERS ARE ADDED TO THE END             

P8009542
For EDI->XML data transformation maps, output data being written 
to an MQSeries queue is being truncated when the output xml data 
reaches a certain size, roughly 4-5K. 

P8009437
Create a PERFORM DELETE USAGE command with the following keywords:
          
 a) DIR (X)  where X can be S(send) or R(receive), default is R            
    send and receive                                                       
 b) TPTID(xxx) where xxx is the Mapname, 30 characters                     
    send and receive                                                       
 c) TPID(xxx) where xxx is the internal Trading partner ID, 35 bytes       
    send                                                                   
 d) TPNICKN(xxx) where xxx is the EDI Trading Partner Nickname (profile    
    send and receive                                                       
 e) APPLTPID(xxx) where xxx is the Application Trading Partner nickname,   
    send and receive, this is a new keyword                                
 f) APPSNDID(xxx) where xxx is the Application Sender ID, 35 characters    
    receive                                                                
 g) AGENCY(xxx) where xxx is the responsible agency code, 8 characters,    
    default is blank                                                       
 h) VERSION(xxx) where xxx is the version, 8 characters, default is blank  
 i) REL(xxx) where xxx is the release, 8 characters, default is blank      
 j) APPRECID(xxx) where xxx is the Application Receiver ID, 35 characters  
    receive                                                                

The PERFORM DELETE USAGE will have the following syntax: 
             
format for send usage                                                    
  PERFORM DELETE USAGE WHERE DIR(S) TPTID(mapname) APPLTPID(atpid)       
  TPNICKN(etpid) TPID(intpid)                                            

format for receive usage                                                 
  PERFORM DELETE USAGE WHERE DIR(R) TPTID(mapname) APPLTPID(atpid)       
  TPNICKN(etpid)                                                         
  APPSNDID(appsenderid) || APPRECID(appreceiverid)                       
  AGENCY(agency) VERSION(version) REL(release)                           

format to delete all usages for a given map                              
  PERFORM DELETE USAGE WHERE DIR(S/R) TPTID(mapname)                     

All values that are not required will default to blank.  DIR will default
to R.  If both APPSNDID and APPRECID are entered, APPSNDID will be used. 
    
P8009548 
&TCN NOT WORKING WHEN A LITERAL IS USED TO SET IT.
REQUIRES A CHANGE TO THE CS GEN CODE. 

P8009475
OUTBOUND JOB ABENDING WITH OC4         
 

*************************************************************************
*******  End of WebSphere Data Interchange V3.1 CSD 5 README.TXT  *******
*************************************************************************

6 December 2002 - CSD4
The following problems have been resolved in this corrective service disc:

P8009469
UNABLE TO OPEN FILE WHEN APPTYPE(MQ) SPECIFIED 

P8009237 - IC34372
PERFORM ENVELOPE FAILS WITH TR0836 BECAUSE HOST STANDARD NOT
FOUND IN EDIVSCST.  HOST STANDARD SHOULD NOT BE REQUIRED.  

P8009151
VN1045 ERROR IN INB1MSG FOR NETWORK ID IINWIN ON SENDFILE 

P8009438
ABEND OCCURS IF A DUPLICATE GROUP IS DETECTED

P8009441 
UW94676 IN ERROR. 
After applying ptf, CONTRL message generated for CONTV21      
contains incorrect value of "8" in DE 0083 Action Code in the 
UCM.  The action code should be "7".

P8009458 - IC34906
WDISERVER VARIOUS ISSUES WITH CONTRL FUNCTIONAL ACKNOWLEDGE.
RECEIVE MAP USAGE SET TO CONTV21.

P8009229
WHEN TR0016 ISSUED ALONG WITH TR0008 CONDITION IS NOT REFLECTED
IN THE FA.

P8009101
PERFORM REMOVE TRANSACTIONS LOCKING OUT TRANSLATOR WITH
INTERMITTENT DEADLOCKS AND TIMEOUTS.  FF0457 ALSO OCCURS.

P8009517
PRINT FILE BEING DELETED ON FAILED TRANSLATION 
                     
*************************************************************************
*******  End of WebSphere Data Interchange V3.1 CSD 4 README.TXT  *******
*************************************************************************

18 October 2002 - CSD3
The following problems have been resolved in this corrective service disc:

P8009235 - IC34365
DUPLICATE INTERCHANGE DETECTED WHEN USING MINIMAL TRADING
PARTNERS AND INTERCHANGE RECEIVER ID IS THE SAME. 

P8009236 - IC34370
COMMAND CHAINING QUITS AFTER TRANSLATION ERRORS DETECTED.  AS A 
RESULT, FA'S NOT SENT AND 2ND PHASE OF TRANSLATION NOT EXECUTED.

P8009299
Enhancement - ADD ABLITY TO USE USR FOLDER VALUES IN PERFORM COMMAND        

P8009241 - OW56079
&ISA16 VALUE NOT BEING DELIVERED IN MAPPING 

P8009209 - IC34239
SEND DATE ON ENV EXTRACT NOT FILLED WITH FIX TO FIX TRANSLATE AND SEND.

p8009249 - IC34414
WDISERVER - FACODE IN &ERR LITERAL NOT BEING SET AS EXPECTED. 
&ERR(1,100,12,"INVALID VALUE") SETS UCD01 (DE 0085) TO 13.    

p8009358
WDISERVER DEAD LETTER QUEUE CONTAINS GARBAGE AFTER EXCEPTIO  

p8009374
ABEND OCCURS ON PERFORM DEENVELOPE.

p8009386
COMMAND CHAINING ADF TO EDI USING EDISERVR WITH CSD2 FAILS.

p8009400
Need to generate Interchange Acknowledgements (CONTROL) with      
appropriate "error code"  and "Action code" when a duplicate envelope
is encountered during the receive translation of EDIFACT data and    
when the PERFORM command has DUPENV(N) option.                       
Currently DI errors out in the above scenario and doesn't generate   
any acknowledgements.                                                       
                                                    
*************************************************************************
*******  End of WebSphere Data Interchange V3.1 CSD 3 README.TXT  *******
*************************************************************************
--------------------------------------------------------------------------

30 July 2002 - CSD2
The following problems have been resolved in this corrective service disc:

P8009127
While performing a performance test using PERFORM TRANSFORM 
100 time I received an 0C4 Return Code 11.  If I add 1 more 
transaction it doesn't abend.  - This has been corrected.                                

P8009187
The F record is missing data.  The File type is missing as is the 
record count. 
Because of the order in which the adf were being processed the     
record count was unitilized when the record was being written to the  
tracking file.                                                        

P8009191
ENHANCEMENT - LOGIC TO CVT C&D TO RAWDATA
Created a new flag to indicate if RAWDATA was specified on the SENDFILE
command.  If it was specified the EDIRFH2 and EDIMQSR network programs 
will strip off C and D records.                        

P8009196
When an EDI to XML translation is done an abend occurs because a 
member variable is being initilized with the maximum size of the  
dictionary when later code is expeciting it to be initilized to   
zero.    
Changed the default constructor to initialze the member variable
to zero.                

*************************************************************************
*******  End of WebSphere Data Interchange V3.1 CSD 2 README.TXT  *******
*************************************************************************

09 July 2002
The following problems have been resolved in this Corrective Service Disc 1:

P8008550
On AIX and Win NT, when                            
DataInterchange fails to initialize, it doesn't       
give an indication of the reason for failure. On the  
Host, the DB2 error code is displayed. Please put a   
printf or display a message that shows the DB2 sql    
error code, e.g. -818, when DI cannot be successfully 
started.                                              

P8008572, OW54365, OW54366
When a map is regenerated the control string is first deleted from   
the database then the new control string is added to the database.      
during the time that the new control string is being generated it is    
possible for a translation to fail because the control string is not    
found.                                                                                                                    
The problem is solved by putting a lock on the control string  
before the control string is deleted and releasing the lock when the    
control string has been regenerated.  Translations will wait  
on the lock if they happen to occur during small window when the   
control string is being regenerated.                                    

P8008971
The current version of ANSI C++ distinguishes between memory       
allocated with new and new[]. A delete call must (according to the 
standard) match the new call, i.e. whether or not it has []        
There are many array variables in DIAPILIB.CPP and DIAPI.H which   
are allocated memory using "new []" but use "delete" instead       
of "delete []" for deallocating the memory.                         

Changed "delete" to "delete []" for character arrays.       

P8008996
TRANSLATE AND SEND TO MQ BREAKS TRANSLATED MSG INTO 
Customers need to be aware that when using large values for the
Maximum Message Length that their process needs to have the authority to
allocate large ammounts of memory.  The AIX operating system provides  
the /etc/security/limits file for the root user to set these limits on 
user programs.  By changing the value of the "data" tag for the user to
-1 the root user can allow a user program to grow as large as the      
system has memory resources to support.  Once changes to the limits    
file are made the user must log off of the machine and log back        
on the system.                                                         

P8009057
ADD A "PERFORM PROCESS" COMMAND 
We have a RECEIVE AND PROCESS command that requires that a
receive be done in order to get command chaining to work. 
Add a PERFORM PROCESS command the just skips the RECEIVE  
part and goes directly to the PROCESS part.  This is to   
allow command chaining to be used with file I/O also.  

P8009066, OW54237, OW54238
In reviewing source part editrxml, an error in a 
comment appears to invalidate adf->xml translation. 
The translated EDI file fails to be written to      
the virtual array for post-processing.                                          

P8009092, OW54194, OW54429
HOST - ADF TO XML PRODUCING EMPTY TAGS WHEN NO DATA        
When a loop is mapped using a structure that has no data   
the mandatory XML segments (tags) that start the loop and end 
the loop are being created and empty.                         
                                        
The segments that start a loop are currently being forced  
by the translation process because they usually do not have   
any elements.  When a structure is used to qualify the loop   
translation forces out the segments but we don't know that    
there is no data for the structure until we get to the CS     
instructions following the first segment.                     

Translation code will be changed to check the length of    
the data created during a recursion level,  if the length     
is equal to the size of the segment id + segment delim, then  
we didn't create any data for the loop and we need to set     
the terminate flag for the current loop level.                

P8009103, OW55460, OW55462
When processing multiple transaction from a queue for EDI to XML,      
a signal 11 occurs cause the transaction not to process. This occurs      
with both the adapter and using ediservr to process transactions.                                                   

The sequence of events involves inbound processing of a standard          
envelope followed by outbound processing of a different envelope standard 
followed by inbound processing of a standard different than the outbound  
standard.  In this case, the translator retained the segment id from the  
first envelope inbound and concluded that the second inbound envelope     
was the same and so reused the envelope control string.  Unfortunately,   
it was the control string from the intervening outbound processing.       

The fix is to clear the segment ID of the last envelope when the envelope 
standard changes.                                                         
Additional problems were caused by the "E" envelope being applied to an   
"ISA" header causing a memory exception.  This was trapped by edixproc    
(erroneously) resulting in the reported signal 11.          

P8009104, OW55210, OW55211
Add functionality to the EDIQSS module to be able to create files that
do not exist on the system.  Functionality also needs to be added to  
EDIFF04 to call this new functionality if an QS_NOEXIST extended      
return code is returned from the EDIQSS module.                       
                                                                      
We also needed to make changes to the RFH2 header to allow documents  
to be routed once they have been placed on an outgoing MQSeries queue 
we will change the RFH2 network program to populate the following     
RFH2 Elements:                                                        
   - SenderId                                                         
   - SenderQual                                                       
   - ReceiverId                                                       

P8009108
When the EDIRFH2 network program has to create a new header, it is not 
ensuring that the data following the header is alligned on a full word.                                             
The code to create a new folder had to change to pad the new folder    
with spaces for the alignment.  

P8009115, OW54496, OW55293
XML TRANSLATION PERFORMANCE ISSUES 
The customer noticed performance problems processing a series of  
identical transactions with XML output.  The problem was identified  
as CPU intensive processing in the XML Post-Processor.               
Significant reduction in CPU consumption was realized by buffering
the XML dictionary file for the post-processor and adding indexed    
segment and element searches.                                        

P8009135, OW54672, OW55064
The XML input file has data in it with tags, and there are tags 
in the out put, but there is additional data in the output tags 
that are not in the XML input file. Extraneous data is in the   
output file that should not be there. No errors are issued.     

P8009137
This PTR contains code to track the implementation of the EDICYCL  
Network Program.    
Additionally, there is a problem where a physical file name passed 
edirfh2 (from an & in Trans Data) is not correctly being processed.                                            

P8009146, OW55204, OW55206
Enhancement that creates a 'DELFILE' command to delete the
appfile created during a dual transaction.                  
The 'DELFILE' keyword will delete the appfile used in a     
TRANSLATE AND SEND, TRANSLATE AND ENVELOPE or TRANSLATE TO STANDARD
command.                              

P8009152, OW54980, OW55394
CUSTOMER TRIED TO DO A TRANSACTION STORE SEARCH, WITHOUT A
SEARCH CRITERIA, AND THE SYSTEM HUNG..                    
Display the current date in the transaction added date (from) field
as the default for panel TF03.                                        
                                                     
P8009155, OW55389, OW55390
The WDI Adapter abends in EDITR when an EDIFACT map is used.
Subsequent investigation revealed that the error                
occurs when an user validation table that is exactly 8         
characters is used.                                            

P8009156
This problem is seen in Inbound translation where the INPUT      
EDI is plain text file. The problem occurs when a newline character 
doesn't exist at the end of the EDI file. When DI attempts to       
translate this file it returns with an error (RC=8 and ERC=6).      
The print file has the message "TR0200 Severity :08  Interchange    
envelope header is missing or invalid 1 bad records found in        
requestor << N/A >>'s input file EDI_IN before encountering         
End-of-File in RECEIVE-FILE processing mode". Also it looks         
like DI is trying to translate two transactions when there is       
only one in the input.                                              

P8009157, OW55199, OW55201
ADD ONEMSG(Y) FOR SEND PROCESSING                           
Added functionality to handle the ONEMSG(Y) flag for the    
TRANSLATE AND SEND command.  To do this I inserted a document  
break record into the queued data so that as we are sending the
data we can cause the MQSeries queue to be flushed before      
sending more data.  This causes each document to be placed in  
its own MQ message.
  
Changed the code to provide these functions.                        

*************************************************************************
*******  End of WebSphere Data Interchange V3.1 CSD 1 README.TXT  *******
*************************************************************************