× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Jonathan and all other interested parties,

While it appears that the C record IO apis would do what I wanted, I went with the open/close extfile scenario, partly because I think the other programmers will understand it better, and partly because it means one less logical file to create.

The relationship between the files and conditions are actually in a multi-format logical file, where the format name includes a facility ID that is used in constructing the library name for that facilities files. Records in that multi-format LF determine which facility-specific file I need to add/update, and by getting the format name from the file info data structure, I can extract the facility ID and use it to construct the library name, then use that with the EXTFILE parm on the F-spec to open the appropriate facility-specific file, process it, and leave it open. The next time around, if the file is open, but the library has changed, I close it and open the new one.

If performance turns out to be a problem, I may go back to the record IO apis, but I'm guessing not. The way triggers are set up for this application is for a single RPGLE program to be the actual trigger program attached to the file, and that program reads a file of other trigger programs to run whenever a trigger event occurs. And some of the files have 4-5 trigger programs listed in that file, so with that much processing already going on for a single trigger event, my guess it that my program's processing will hardly be noticed. Time will tell.

Thanks everyone for all the suggestions.

*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
pdow@xxxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxxx> /

Jonathan Mason wrote:
Hi Peter

You would need to have the relationships between the files and conditions coded somewhere, whether it's within the trigger program or as database records in a control file. Either way, the trigger program would still need to determine the relationship in order to know which files to update.

Personally I would create a control file with details of relationships and files in, and then use SQL to perform the updates. That way you can use PREPARE to specify which files you want to update accordingly.

I use a control file with file names, field names, parent key fields and status indicators and values in to control the building of SQL statements for my prompt window programs - it makes life a whole lot easier.

All the best

Jonathan
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Peter Dow (ML)
Sent: Thursday, May 08, 2008 6:18 PM
To: RPG programming on the AS400 / iSeries
Subject: Writing to multiple physical files with the same format


Hi Everyone,

I have a situation where multiple facilities are using a common file
that is related to individual files in separate libraries for each
facility. I would like to have a trigger program on the common file
that can write to one or more of the individual files based on some
condition. In other words,

COMMONFILE commonkey

FACILITY1 commonkey, facility1key
FACILITY2 commonkey, facility2key
FACILITY3 commonkey, facility3key

A trigger occurs due to an update on COMMONFILE, and based on some
condition, I want to write a record to FACILITY1 and FACILITY3.

Is there anyway to do this without having to hardcode knowledge of the
individual files? My first thought was a multiformat logical, but that
requires knowing specific format names that correspond to the physical
files. And although it is possible to create a logical file with a
single format that includes all the individual physical files, it is not
possible for an RPG program to use that file, at least not by defining
the file on an F-spec.

*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
pdow@xxxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxxx> /


--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.