Jim, What's wrong with the classic approach of a separate physical for each record format, a multi-format (NOT join) logical to replace the original physical, and a record format selector program to accommodate writes to the logical which don't specify a record format? This capability has been around since CPF Release 1.0 and was put there specifically to make migrating S/3 apps to the S/38 easier, back when the S/38 was the "official" upgrade path for S/3 users. Dave Shaw Spartan International, Inc. Spartanburg, SC To subscribe to the MAPICS-L mailing list send email to MAPICS-L-SUB@midrange.com or go to www.midrange.com and follow the instructions. -----Original Message----- From: Jim Langston [mailto:firstname.lastname@example.org] Dan, No. This has been a thorn in my side for a long time. It was very common in the S36 days to have a single file with two different file formats, but with DDS you can only specify one of the formats. I have tried different things with join logicals, etc.. to no avail. I finally found a solution that works. I give no DDS to the file itself. I then create 2 physical files with the DDS for the file layouts for the 2 records. These files never contain any data. In my program I open the real file as program defined. I then add ot my D-Specs an external data structure to those two files I made with the DDS of the record layouts. This here is a real world example of how this looks and works. Please note that although I am opening these up as Primary files, they work just fine as full procedural. This snippet was taken from a one shot file update program I wrote: FARFILE UP F 222 DISK D FileNM_DS E DS ExtName(ARFileNM) D Based(FileNM_DS@) D Prefix(NM_) D FileNM_DS@ S * D D FileCR_DS E DS ExtName(ARFileCR) D Based(FileCR_DS@) D Prefix(CR_) D FileCR_DS@ S * IARFile NS I 1 222 ARBuffer C *InzSR BegSR C C Eval FileNM_DS@ = %Addr(ARBuffer) C Eval FileCR_DS@ = %Addr(ARBuffer) C C EndSr +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: email@example.com +---
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.