[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference ilbbak::ibi_focus

Title:FOCUS, from INFORMATION BUILDERS
Moderator:ZAYIUS::BROUILLETTE
Created:Thu Feb 19 1987
Last Modified:Mon May 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:615
Total number of notes:1779

279.0. "Update problem" by RTOEU::ASCHWARZ () Thu Nov 02 1989 05:32

    
    
    I have the problem to modify many records to one record.
    
    I work with a sequential file and a header file with unique keys.
    If I have a related record between the sequential and the header
    file I would like to set a flag in the sequential file.
    But only the first incoming record will be updated, not the following
    records, which have the same relation to the header file.
    
    
    For example:
    
               sequential file             header file
               ---------------             -----------
    
               Proj_nr   Flag              Proj_nr
    
               123                         123
               123                         456
               456
               456
               789
    
    
    The result which I would like to have after modify:
    
               Proj_nr   Flag
    
               123       Y
               123       Y
               456       Y
               456       Y
               789
    
    The result which I get:
    
               Proj_nr   Flag
    
               123       Y
               123
               456       Y
               456
               789
                                                      
    
    Is it not possible to read and modify sequential?
    
    
    Any ideas would be very helpful!
    Thanks in advance
    
    Annette
    
                     
T.RTitleUserPersonal
Name
DateLines
279.1RTOEU::ASCHWARZThu Nov 02 1989 08:3833
    
    
    I solved the problem with the following procedure:
    
    
    MODIFY FILE PV6FOC
    FIXFORM FROM SELECT
    
    MATCH PROJ
         ON MATCH COMPUTE VAL/A20 = PROJ;
         ON MATCH GOTO COMP
    
    CASE COMP
         MATCH PROJ
         ON MATCH COMPUTE FLAG = 'Y';
         ON MATCH UPDATE FLAG
         ON MATCH GOTO CONT
    ENDCASE
    
    CASE CONT
         NEXT PROJ
         ON NEXT IF PROJ NE VAL GOTO TOP;
         ON NEXT COMPUTE FLAG = IF PROJ EQ VAL THEN 'Y' ELSE ' ';
         ON NEXT UPDATE FLAG
         ON NEXT GOTO CONT
         ON NONEXT GOTO TOP
    ENDCASE
    
    DATA ON SELECT
    END 
    -RUN    
        
                                     
279.2need more infoMILPND::MADDENThu Nov 02 1989 08:454
    Could you post the master descriptions and the modify fex you are
    working with?  Are you trying to modify a FOCUS file or an RMS file?
    I was aware of a READ interface for RMS but is there a READ/WRITE 
    interface for RMS?
279.3RTOEU::ASCHWARZFri Nov 03 1989 07:26155
    Here are the masterfiles and .fex.
    I work with two Focus-files.
    
    

JOIN CLEAR

-*=================================
-* RMS ----> FOCUS ----> PV6neu.FTM
-*=================================

DEFINE FILE PV6
PROJ/A20 = PROJ;
END

TABLE FILE PV6
PRINT ACCNO CC SUPNO NAME DM IDATE
BY PROJ  
ON TABLE HOLD AS PV6NEU
END

-*==================================
-* PV6neu.FTM -----> PV6alt.FOC
-*==================================

MODIFY FILE PV6ALT
FIXFORM FROM PV6NEU

MATCH PROJ
ON MATCH INCLUDE
ON NOMATCH INCLUDE

DATA ON PV6NEU
END
-RUN


-*=================================
-* JOIN PV6alt  ----> WIP-Header
-*=================================

JOIN PROJ IN PV6ALT TO ALL PN IN WIP

TABLE FILE PV6ALT
PRINT ACCNO CC SUPNO NAME DM IDATE GEBUCHT OK       
BY PN
IF OK NE 'D'
ON TABLE HOLD AS SELECT
END
-RUN


-*=============================================================================
-* if PROJ in PV6alt = PN in Wip-Header then write record to PV6_OK 
-*=============================================================================

JOIN CLEAR

MODIFY FILE PV6_OK
FIXFORM FROM SELECT

MATCH PN
ON MATCH INCLUDE 
ON NOMATCH INCLUDE

DATA ON SELECT
END
-RUN

-*=================================
-* JOIN PV6alt ----> WIP-Header
-*=================================

JOIN CLEAR
JOIN PROJ IN PV6ALT TO ALL PN IN WIP

TABLE FILE PV6ALT
PRINT ACCNO CC SUPNO NAME DM IDATE GEBUCHT OK PN     
BY PROJ
IF OK NE 'D'
ON TABLE HOLD AS SELECT1
END

-*================================================================
-* if PROJ in PV6alt = PN in Wip-Header then mark record in PV6alt
-*================================================================

MODIFY FILE PV6ALT 
FIXFORM FROM SELECT1

MATCH PROJ
ON MATCH COMPUTE VERGLEICH/A20 = PROJ;
ON MATCH GOTO COMP

CASE COMP
MATCH PROJ
ON MATCH COMPUTE OK = 'D';
ON MATCH UPDATE OK 
ON MATCH GOTO CONT
ENDCASE

CASE CONT
NEXT PROJ
ON NEXT IF PROJ NE VERGLEICH GOTO TOP;
ON NEXT COMPUTE OK = IF PROJ EQ VERGLEICH THEN 'D' ELSE ' ';
ON NEXT UPDATE OK
ON NEXT GOTO CONT
ON NONEXT GOTO TOP
ENDCASE
DATA ON SELECT1     

END
-RUN

 
    PV6.mas
    
    FILENAME=PV6,SUFFIX=FIX,$
    SEGNAME=ONE,SEGTYPE=S1,$
    FIELDNAME=ACCNO,ALIAS=,FORMAT=A6,A6,$
    FIELDNAME=CC,ALIAS=,FORMAT=A3,A3,$
    FIELDNAME=SUPNO,ALIAS=,FORMAT=A8,A8,$
    FIELDNAME=NAME,ALIAS=,FORMAT=A40,A40,$
    FIELDNAME=DM,ALIAS=,FORMAT=P12.2,Z11.2,$
    FIELDNAME=IDATE,ALIAS=,FORMAT=A8,A8,$
    FIELDNAME=PROJ,ALIAS=,FORMAT=A10,A10,$
    
    PV6alt.mas (same as PV6_ok.mas)
    
    FILENAME=PV6ALT,SUFFIX=FOC,$
    SEGNAME=ONE,SEGTYPE=S1,$
    FIELDNAME=PROJ,ALIAS=,FORMAT=A20,$
    FIELDNAME=ACCNO,ALIAS=,FORMAT=A6,$
    FIELDNAME=CC,ALIAS=,FORMAT=A3,$
    FIELDNAME=SUPNO,ALIAS=,FORMAT=A8,$
    FIELDNAME=NAME,ALIAS=,FORMAT=A40,$
    FIELDNAME=DM,ALIAS=,FORMAT=P12.2,$
    FIELDNAME=IDATE,ALIAS=,FORMAT=A8,$
    FIELDNAME=GEBUCHT,ALIAS=,FORMAT=A1,$
    FIELDNAME=OK,ALIAS=,FORMAT=A1,$
    
    Wip.mas  (header-file)
    
    FILENAME=WIP,SUFFIX=FOC,$
    SEGNAME=PRO,SEGTYPE=S1,$
    FIELDNAME=PN,,A20,FIELDTYPE=I,$ 
    SEGNAME=DEC,PARENT=PRO,SEGTYPE=S1,$
    FIELDNAME=DECNR,,A9,FIELDTYPE=I,$
    FIELDNAME ...         
    |
    |
    V
    ETC.