× 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.



Mark, not sure what you mean here. The programs are just standard API
programs called like any other IBM API program. You can create a module and
bind to make a program just like any other program.

dcl-pr IBMUIM_OpenDisplayApplication extpgm('QUIOPNDA');
OaHandle char(8);
OaPnlGrp char(20) const;
OaScope int(10) const;
OaExtPint int(10) const;
OaFulScrHlp char(1) const;
OaErrCode likeds(ApiErrC) options(*varsize);
end-pr;

You definitely cannot use pointers to call the programs but you can make
just normal calls. Does not need to be a program. Could be called from a
service program.

IBMUIM_OpenDisplayApplication(MyHandle:
'MyPanelGrp*LIBL ':
1:
0:
'N':
ErrorReturn);

Interestingly enough I was working on a utility and was thinking about
using Panel Groups for output and along comes this question.

If I mis-understood your response, apologies in advance.

On Mon, Jun 15, 2020 at 9:25 AM Mark Waterbury <
mark.s.waterbury@xxxxxxxxxxxxx> wrote:

Liam,

I don't think your approach can ever work, no matter what you do.

UIM was designed and built into OS/400 V1R1, and was made available to
customers to create our own UIM panels starting around V2R1, so that was
all way before ILE ever existed.

As a result, you must pass a value that is a 20 character qualified name
of the *PGM to call as the "exit program." (This could optionally use
"*LIBL" in positions 11-20).

So, as far as I know, that requires you to compile your exit as a
stand-alone ILE *PGM, (e.g. CRTBNDRPG), and not try to use an ILE
"procedure."

I checked the "Application Display Programming" manual, last updated at
V6R1, and it concurs.

Hope that helps,

Mark S. Waterbury




On Monday, June 15, 2020, 12:14:00 PM EDT, Henderson, Liam <
liam.henderson@xxxxxxxxxxxxx> wrote:





In the panel group I've got the following setup:


:CLASS NAME=exitcl
BASETYPE='PTR'.
:ECLASS.

:VAR NAME=exitopt
CLASS=exitcl.

:VARRCD NAME=exit
VARS='exitopt'.

:LISTACT ENTER='CMD ?CHGSAVF FILE(&lib./&fil.) &prm.'
PROMPT='CMD ?CHGSAVF FILE(&lib./&fil.) &prm.'
HELP=genhlp
USREXIT='CALL exitopt'
OPTION=2.2=Change Save File


In the RPG I've got a data structure with a procedure pointer in it:

Dcl-DS DS1;
PTR Pointer(*PROC);
End-DS;

I then populate the pointer with the address of my exit procedure in the
RPG and put the dialogue variable:

// Put exit program
PTR = %PAddr('EXIT_OPT');
QUIPUTV(WK0HANDLE : DS1 : %Len(DS1) : 'EXIT' : ErrDS);

My exit procedure isn't doing anything at the moment, as it fails before
it gets there:
Dcl-Proc EXIT_OPT;
Dcl-PI *n;
pLST LikeDS(EUIQALX) Const;
End-PI;
Return;
End-Proc;


Regards.
Liam.






Liam Henderson | Application Consultant
Getronics
T. +441908992044 | M. +447985875181 | E. Liam.Henderson@xxxxxxxxxxxxx |
W. www.getronics.com









Getronics Services UK Limited - Registered in England and Wales with No:
07966594. VAT No: GB 130 6848 20.
Registered Office - Getronics, Holland House, 4 Bury Street, London, EC3A
5AW, UK

The information transmitted is intended only for use by the addressee and
may contain confidential and/or privileged material. Any review,
re-transmission, dissemination or other use of it, or the taking of any
action in reliance upon this information by persons and/or entities other
than the intended recipient is prohibited. If you received this in error,
please inform the sender and/or addressee immediately and delete the
material. Thank you.

Legal disclaimer: http://www.getronics.com/legal/

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Vernon
Hamberg
Sent: 15 June 2020 16:33
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: UIM Exit Programs in RPG/ILE

CAUTION: This email originated from outside of the organization. Do not
click links or open attachments unless you recognize the sender and know
the content is safe.

Hello Liam

How are the parameters defined? I guess I don't feel like burrowing into
the documentation! Heh!

Vern


--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.