|
I got something like this working, using Pete Hall's template at http://www.martinvt.com/Code_Samples/Trigger/trigger.html I think your problem may be that the offsets in the buffer are not numbers of bytes from the beginning of the buffer but differences between the memory addresses of the "old" and "new" data and the beginning of the buffer. Thus, you find the old data by looking at the memory address is calculated as the address of the buffer plus the "old" offset; similarly with the new data. If you set up externally described (by the file that the trigger is attached to), pointer-based, prefixed data structures, then things get pretty easy to work with - you set the basing pointers using the above logic, and then you can refer to field names just as if you had read in the record (of course, you need the prefixes to distinguish between the old and new versions). I'm a long way from being an expert on these, but I think trying to use %subst is heading in the wrong direction. . . . I think if you look at the template, this will all make sense. hth PS: As I discovered, the ALWREPCHG(*YES) is crucial RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> writes: >I am not performing any data access to any files but am now having >problems >replacing the new output version of the file to the buffer. Here is how I >am getting the after image before attempting to fill in the field: > >C Eval OUTDS = %subst(PARM1:NEWOFF+1:NEWLEN) >* >This is retrieving the data correctly * > >And here is how I am attempting to replace the new version of the file >into >the buffer. I am getting a data mapping error. I know the starting >position is wrong but how do I get the correct starting position for the >%REPLACE? The OUTDS is an external datastructure of the "after" image. > >C EVAL PARM1 = >%REPLACE(OUTDS:PARM1:NEWOFF+1:NEWLEN) > >Thanks... >Eric Mike Naughton Senior Programmer/Analyst Judd Wire, Inc. 124 Turnpike Road Turners Falls, MA 01376 413-863-4357 x444 mnaughton@xxxxxxxxxxxx
As an Amazon Associate we earn from qualifying purchases.
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.