× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi guys,

someone also had this problem
Here is my situation:
One of our clients wanted to replace a printing software though our software
but did not want to change any of his programs.
In this way he wanted to call a program, for a couple of actions (i.e.
OpenPrtF, ClosePrtF, GetHeaderData, GetDetailData, PrintHeader,
PrintDetailData, PrintNextPage, PrintAnEmptyPage and a branch of other
actions).

I solved this by writing a wrapper program that calls exported procedures
(one procedure for each action) in a service program.
In my original concept the wrapper program was running in a named activation
group and the service program was created with activation group *CALLER. But
there were also a couple of procedures that got called placed in other
service programs with either activation group *CALLER or a named activation
group.

As far as good and everything run ok. But then our client saw the named
activation groups and insited on only using the default activation group.
("The former software did not use named activation groups!")
In this way I had to change the activation group of all my programs and
service programs to activation group caller. Even though I predicted several
problems. But the client is the king!
An a lot of problems came up. First he overwrote my printerfile and a couple
of other things, but that's an other point.

And now the problem I fighted almost 2 days:
I have to keep the printerfile open until he executes the close procedure.
But now there are several situations where no close procedure is called, but
the must be printer file an RCLRSC.
If after a RCLRSC the next spoolfile must be created, blows up with MCH3402
(Tried to refer to all or part of an object that no longer exists.) when
writing a row, even though before writing I checked with %OPEN if the
printerfile is already opened.
If Not %Open(MyPrtF);
Open MyPrtF;
EndIf;

Write MyFormat;

I checked it by debugging my service program. The Open-Statement gets not
executed, but the WRITE fails.

Then I tried the following:
Always open the printer file and check %Error and %Status:
Open(E) MyPrtF;
If Not %Error or (%Error and %Status = 1215);
Close(E) MyPrtF;
OpenPrtFProcedure();
Else;
WriteProtocolFile(SDSMsgTxt)
EndIf;

Write MyPrtF;

Now the procedure gets executed, but instead of closing and reopening the
printerfile the ELSE-Branch is executed and I still get MCH3402, but the
write no longer fails.
IMHO it seems to be a bug.

BTW now the client complains about the severity 40 error message of MCH3402
in the joblog and I must remove it. (No idea how to realize.)

.... "The former software could handle this without errors!"
I'm wondering, why he wanted to replace the former software that could
handle everything better)


Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)

"If you think education is expensive, try ignorance." (Derek Bok)

"What is worse than training your staff and losing them? Not training them
and keeping them!"



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.