|
Scott,------------------------------------------------------------------------------
Thanks for getting back to me. Let me go thro' your points one by one.
1. Override is being performed in Trigger only.
2. Code is back to back as shown.
3. The DLTOVR is failing with CPF9841 - Override not found at specified
level. This looks to be happening because the OVRDBF is not being found
at correct level but I don't know why. This only occurs when trigger is
executed as a result of a change from a program compiled with a specific
ACTGRP
Stevie
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: 07 January 2009 11:44
To: RPG programming on the IBM i / System i
Subject: Re: Trigger program - open / close file question
Hi Stephen,
We have another application however that updates / writes to the file
with the associated trigger program. This application is separate from
our main system but does reference some of the files. This application
is build over a service program / activation group.
I don't understand what that has to do with the problem? You aren't
doing the override (the one you show in the code sample below) in the
service program, are you? That code SHOULD be in the trigger, not the
service program.
There's no difference between the way a service program opens a file and
the way a program opens a file, with the possible exception of timing.
(Most srvpgms I've worked with open files when a certain procedure is
called, whereas most programs open files automatically when they
start... so the timing is different...)
I can't see why that timing would matter to your trigger -- unless of
course the override isn't happening in the trigger as it's supposed to.
I seem to be getting an issue with the override I am setting in the
trigger, specifically the level that it is being set at (OVRDBF not
being set then the DLTOVR fails). I need this override to work for
standard OPM RPG programs and ones that run within the specific
activation group.
I don't understand. If the override is in the trigger it makes no sense
for you to say it has to work with both OPM and ILE. After all, it's
only affecting the trigger, right? And the trigger can't possibly be
written in multiple languages, can it?
However, *CALLLVL should work fine -- in fact, that's what I'd
recommend, because the override should apply only to the trigger, NOT to
the whole activation group or to the whole job! So *CALLLVL is the
right choice. The question is, why is the DLTOVR failing? Either the
override was already deleted, or the OVRDBF is at a different call level
than the DLTOVR.
I know I can change the OVRSCOPE to *ACTGRPDFN but I am not sure if
this will cause me further issues or if there is a better way.
Alternatively I can also use the error extension of the callp on the
ovrdbf and dltovr. Any pointers for me.
I would definitely stick with *CALLLVL. I would investigate further to
see why the DLTOVR is failing. Verify that the override has been run
successfully, and that the call stack entry containing the ovrdbf hasn't
ended, and that the dltovr is issued at the same call stack level.
Eval wCmd = %Trim('OVRDBF File(HSCTLL) ' +
'SHARE(*NO) Secure(*Yes) ' +
'OVRSCOPE(*CALLLVL) ')
CallP qCmdExc(wCmd : %Len(wCmd))
If not %Open(HSCTLL)
Open HSCTLL
Endif
Eval wCmd = %Trim('DLTOVR File(HSCTLL)')
CallP qCmdExc(wCmd : %Len(wCmd))
Is the OVRDBF and DLTOVR really back-to-back in the same routine, as
you've shown here? If it is, then I really don't understand how the
DLTOVR could fail! Or, in reality, are the OVRDBF and DLTOVR in
separate procedures?
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
CONFIDENTIALITY NOTICE: If you have received this email in error,==============================================================================
please immediately notify the sender by e-mail at the address shown.
This email transmission may contain confidential information. This
information is intended only for the use of the individual(s) or
entity to whom it is intended even if addressed incorrectly. Please
delete it from your files if you are not the intended recipient.
Thank you for your compliance. Copyright 2009 CIGNA
list
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
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.