|
No problem. https://code.midrange.com/56a6d66a6d.html is extracted code.
Very OLD code! I know it's ugly and needs a rewrite, but getting something
that ain't broke changed is hell.
Top is what is assigned as the trigger. It reads the routing file just by
library and file name. If it finds a match for the event and timing that
fired the trigger, with a blank delete code, it calls the program. The
next part is the trigger buffer that gets copied into all trigger handlers,
as well as this routing program.
Lastly is an old retired after update program. It gets the trigger buffer
passed in. It overlays the before and after buffers with a data structure
that looks like the file, and then we can start with our logic.
UISOURCE is a field in all of our files. It tracks if the update came via
the green screen, web front end, or an interface. No journaling here yet,
so that was put in to help run down source of data issues.
Kevin Bucknum
Senior Programmer Analyst
MEDDATA/MEDTRON
Tel: 985-893-2550
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Offile
Craig Richards
Sent: Tuesday, February 27, 2018 7:47 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: Trigger-happy
I'll try it and find out.
So to be clear -
When your GENERIC program gets called does it try to find a match on the
forthe file
File / Library / TriggerTime / TriggerEvent
That looks to me like how it would work?
Sorry for the 20 questions :-)
Craig
On 27 February 2018 at 13:44, Craig Richards <craig@xxxxxxxxxxxxxxxx>
wrote:
This simple solution looks very promising.
I'm wondering a couple of things though:
- Is the Delete Code used by your program to identify triggers no
longer used or active?
- If the generic trigger program is going to call different programs
for different events/times should they be included in the index on
trigger.( are they on another index or do I misunderstand? )program
- Is the UISOURCE something specific to your system?
thanks,
Craig
On 27 February 2018 at 13:40, Vernon Hamberg
<vhamberg@xxxxxxxxxxxxxxx>
wrote:
Is this a place for a procedure pointer? And would the pointer be
different if the program is changed, or would it always point to what
was found the first time?
On 2/27/2018 7:31 AM, Craig Richards wrote:
Thanks all for replying - that was very instructive.
I've only had a chance for a quick look for now but I appreciate
your links and sharing and I'll make time to investigate further.
Kevin, I like the simplicity of this approach and I can see the ease
with which things can be switched on and off.
I'm assuming that because you have both the program name and
library in your file, that the program is called through a variable.
And if you are calling a program via a variable, if I remember
correctly it will resolve it every time?
If my memory and assumptions are correct that tells me that you
could actually change the called program ( the one in the file ) and
get currently active jobs to recognise it immediately rather than
them working with a QRPLOBJ version until they sign off.
Can you confirm this?
thanks kindly,
Craig
On 27 February 2018 at 13:07, Kevin Bucknum
<Kevin@xxxxxxxxxxxxxxxxxxx>
wrote:
All of our files that have triggers get the same program as the
whichOfWhen the trigger fires, we take the file, library, event type, and
time, and go out to a file. If there is an active entry, we call
the program and pass along the buffer that is needed. You can have
multiple entries and call multiple trigger handlers as needed. Not
as sophisticated as Alan Campin's program, but it has worked well
for us over the years. The file looks like this:
Key Field Length Dec Type From To Text
TGDLCD 1 A 1 1 DELETE CODE
K2 TGFNM 10 A 2 11 FILE NAME
K1 TGFLIB 10 A 12 21 FILE LIBRARY
K3 TGSQ 5 0 P 22 24 TRIGGER SEQUENCE
TGDESC 50 A 25 74 DESCRIPTION
TGPNM 10 A 75 84 PROGRAM NAME
TGPLIB 10 A 85 94 PROGRAM LIBRARY
TGTIME 1 A 95 95 TRIGGER TIME
TGEVNT 1 A 96 96 TRIGGER EVENT
UISOURCE 1 A 97 97 ENTRY SOURCE
Kevin Bucknum
Senior Programmer Analyst
MEDDATA/MEDTRON
Tel: 985-893-2550
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf
triggerCraig Richardsprogram do
Sent: Monday, February 26, 2018 4:38 PM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Trigger-happy
One technique I’ve seen for triggers is to have the actual trigger
nothing more than forward the trigger buffer data on to another
program.
That way the logic can be changed without having to remove the
program from the file which requires exclusive access.continuing to
( I know this doesn’t solve the issue of currently running jobs
access the old object )particular
One part of my application won’t like this but I could resolve my
problem by putting the program in the same library as the file (
(RPG400-L)affiliateIBM
recommend anyway ) but I’d be interested to find out if anyone elsesubscribe,
uses
this as a general approach?
Thanks,
Craig
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To
unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
(RPG400-L)link: http://amzn.to/2dEadiD--
This is the RPG programming on the IBM i (AS/400 and iSeries)
affiliatemailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
--link: http://amzn.to/2dEadiD
This is the RPG programming on the IBM i (AS/400 and iSeries)
affiliatemailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our
----link: http://amzn.to/2dEadiD
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link: http://amzn.to/2dEadiD
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.