|
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Kevin Bucknum
Sent: Tuesday, February 27, 2018 8:01 AM
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: RE: Trigger-happy
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 file for
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 the
Behalf( 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 trigger.
When 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
Of--
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
affiliateprogram 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 (IBM
which
recommend anyway ) but I’d be interested to find out if anyonesubscribe,
else 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)
(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
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.