|
> 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 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.