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