That was my original route but got nixed (and I didn't disagree) due to how 
"BIG" that code would be
 
Master Fields = 52 in 1 file
Environment fields 220 across 7 files (some are common, such as SKU#)
 
Thanks for everyones input, working on cpl ideas from this list and will kepp 
y'all posted

Joe Pluta <joepluta@xxxxxxxxxxxxxxxxx> wrote:
> From: Mark Allen
> 
> I have a "rules" file whichcontains the following fields:
> 
> MFD - master field name (a field name in file MMST)
> MFV - value for field name above
> EFL - environment file name (could be 1 of 7 for example INVMST)
> EFD - environment field name (field name from file named above i.e.
DEPT)
> EFV - environment field value (value for field name above)
> 
> the user selects a record in the MMST file (ie. SKU: 12345) and it
shoudl
> then populate based on the rules each fo the fields/values in the
> appropriate environment file:
> 
> Example:
> 
> Rules file:
> 
> MFD=CORG
> MFV=US
> EFL=INVMST
> EFD=BUYR
> EFV=123
> So if the CORG field='US' in the SKU record selected from the MMST
file I
> want the BUYR field in INVMST to be set to 123
> 
> What I have "tentatively" done (and I don't like it) is shown as a
"small
> snippet" below, FYI In the MMST file I have 20+ fields and I have (as
of
> right now) 7 environment files which have multiple (5-50 approx.
fields)
> 
> IF MFD='CORG' and CORG (a fld in MMST) = MFV and EFD='BUYR'
> eval BUYR=EFV
> endif
> 
> My "befuddled" mind right now sees that I would ahve to this the above
for
> EVERY field in in every file??
> 
> Gotta be an easier way???????????//

Use RPG, break it into two pieces of logic: the first checks to see if
there is a match, the second updates the appropriate file.

/free

// See if data matches
match = (MFD = 'CORG' and CORG = MFV)
or (MFD = 'FLD2' and FLD2 = MFV)
(...)
or (MFD = 'FLDN' and FLDN = MFV);

// If a match, update a field
if match;
// File select 
select;

// Update INVMST
when EFL = 'INVMST';
getINVMST();
// Field select
select;
// BUYR field
when EFD = 'BUYR';
BUYR = EFV;
// Additional fields
(...);
endsl;
putINVMST();

// Additional files
(...);

endsl;
endif;

/end-free

Very readable, very fast. Yes, you have to maintain it to add fields,
but the tradeoff is simplicity and debuggability.

Joe




This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2026 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.