PCML (which is what is being generated into the module) is intended for use primarily by the Java toolbox. Therefore it only accommodates return values of a size and style that are usable by the Java interface - and that means a four byte integer is the only acceptable return value. Change your test code to return a 10I and you'll see.

What RTNPARM does under the covers is to move the return value to be the first parameter, the real fist parm becomes the second, the second becomes the third, etc. And that makes it all acceptable to the toolbox interface.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Dec 11, 2018, at 2:30 PM, Alan Shore <ashore@xxxxxxxx> wrote:

Hi
Those drumbeats you are hearing - are NOT drumbeats
Its me banging my head on the desk
I pulled back my service module and my service program
Removed the RTNPARM

It was
dcl-pr GetCustInf LikeDS(CustInfo)
RTNPARM;
inCstDiv packed(2:0) const;
inCstNbr packed(9:0) const;
end-pr;
and

dcl-pi GetCustInf LikeDS(CustInfo)
RTNPARM;
inCstDiv packed(2:0) const;
inCstNbr packed(9:0) const;
end-pi;

changed to
dcl-pr GetCustInf LikeDS(CustInfo);
inCstDiv packed(2:0) const;
inCstNbr packed(9:0) const;
end-pr;
and

dcl-pi GetCustInf LikeDS(CustInfo);
inCstDiv packed(2:0) const;
inCstNbr packed(9:0) const;
end-pi;

NOW it wont compile
I put the RTNPARM back in
It compiles

When it doesn’t compile - the error is
*RNF0320 30 1 Errors were found while generating the program information to
be placed in the module.

But no actual errors in the listing
So I run DSPJOBLOG to see if anything is there and all I see is
Compilation stopped. Severity 30 errors found in program.

When I place the cursor on that and press F1
This is all I get
Additional Message Information

Message ID . . . . . . : RNS9308 Severity . . . . . . . : 50
Message type . . . . . : Completion
Date sent . . . . . . : 12/11/18 Time sent . . . . . . : 14:15:49

Message . . . . : Compilation stopped. Severity 30 errors found in program.
Cause . . . . . : The RPG compiler found at least one error in the program
of severity greater than that specified in the GENLVL option on the
CRTRPGMOD or CRTBNDRPG command.
Recovery . . . : Correct the errors in the program. Compile again.


But I have no idea what the error is




Alan Shore
E-mail : ASHORE@xxxxxxxx
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
‘If you're going through hell, keep going.’
Winston Churchill


-----Original Message-----
From: Alan Shore
Sent: Tuesday, December 11, 2018 2:05 PM
To: midrange-l@xxxxxxxxxxxx
Subject: RE: [EXTERNAL] Re: Question concerning Integrated Web Services

Hi Scott
Thanks for the reply

Let me give that a go and see what happens

All of this is brand new to me - exciting - but being the pathfinder in our company - exasperating when I come across such problems and there no one to bounce ideas off, in the next cubicle

Now I know how Lewis and Clark felt
If they got lost - they couldn’t walk into the nearest deli and ask for directions

Wait a minute - they were men
Men don’t ask for directions



Alan Shore
E-mail : ASHORE@xxxxxxxx
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
‘If you're going through hell, keep going.’
Winston Churchill


-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Tuesday, December 11, 2018 1:51 PM
To: midrange-l@xxxxxxxxxxxx
Subject: Re: [EXTERNAL] Re: Question concerning Integrated Web Services

Alan,

I don't see why the identifier name matters?

To test this, I put together a quick program like this (I know the return values aren't useful in a business context, it was just to see if the web service worked)

**free

ctl-opt nomain option(*srcstmt) pgminfo(*pcml:*module);

dcl-proc GetStringForDivCust export;

dcl-pi *n;
division packed(2: 0) const;
customer packed(9: 0) const;
Result char(100);
end-pi;

select;
when division=1 and customer=1000;
result = 'Data to test result here';
when division=2 and customer=2000;
result = 'Other test data here';
other;
result = 'Customer/Division not found';
endsl;

end-proc;

Then, I deployed this web service by setting "division" and "customer"
as input, and "result" as output.

resource name: divcust
path template: /{incstdiv:\d+}/{incstnbr:\d+}

Division is *PATH_PARAM and identifier INCSTDIV Customer is *PATH_PARAM and identifier INCSTNBR

Worked perfectly for me, no errors. The only thing I can think of is that you're using RTNPARM and a return value rather than parameters, which seems like an odd thing to do. Remember, the input/output of a web service comes via the URL or from a document such as JSON or XML. Why would you use a feature like RTNPARM saying "use a return value but make it really be a parameter under the covers". That's really confusing, and there's no real notion of that concept in other programming languages, which makes this a real headache.

Just use parameters, as I have above, and this should work fine. It did for me.



On 12/11/2018 12:33 PM, Alan Shore wrote:
Hi Scott
Apologies - first of all - misspelt it - it should be RTNPARM Which
has nothing to do with IWS I was just having an exasperated moment
trying to go past the problem I was having where the identifier name
being swapped out



--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx 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 Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx 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 ...

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.