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



I agree Charles - there's something badly mixed up in the whole question.

I wrote the article referenced and it doesn't even use QzhbCgiParse. It is describing using RPG code to _provide_ a web service. It also does not use IWS which is now (although not at the time I wrote the article) an option for providing a web service. But as you've noted, IWS provides access to the query string without the use of QzhbCgiParse.

We really need Robert to explain exactly what he's trying to do.



On Jul 27, 2020, at 1:04 PM, Charles Wilt <charles.wilt@xxxxxxxxx> wrote:

That's unlikely to provide your answer...

First off, you need to clarify what you are doing?

Calling web service?

Create a web service (with or with IWS?)

Charles

On Mon, Jul 27, 2020 at 10:43 AM Robert Rogerson <rogersonra@xxxxxxxxx>
wrote:

I think I found it here (
https://ibmsystemsmag.com/Power-Systems/02/2012/rest-web-services-with-rpg
).

Thanks for putting me on the right path Charles.

Rob

On Mon, Jul 27, 2020 at 12:27 PM Robert Rogerson <rogersonra@xxxxxxxxx>
wrote:

Charles, if I add *fixed then does this stop the need to append x'00' to
the end of cmdstr when calling the api?

I checked in the config file for my HTTP server instance and could not
find %%MIXED%%. So I did a Google search and did find . Electronic
business and Web serving IBM HTTP Server for i (

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/rzaie/rzaiepdf.pdf
).
It mentions

CGIConvMode:
Module: mod_cgi
Syntax: CGIConvMode mode

One of the modes listed is %%MIXED so I'm thinking this may be what you
were referring to. But this also got me thinking, from how I understand
this, CGIConvMode is in module the module mod_cgi which is not loaded
(LoadModule cgi_mod?).

Should I be loading cgi_mod?

OK, while writing this I just saw another post from you that I was doing
it wrong. Thanks

In the past I did try to find how to access the environment variable
QUERY_STRING but the only reference I could find to access it was using
the QzhbCgiParse api which you pointed out is wrong.

So how should I be accessing QUERY_STRING? (I don't mind if you just
point me to a document but I couldn't find one.

Thanks,

Rob

On Mon, Jul 27, 2020 at 10:26 AM Charles Wilt <charles.wilt@xxxxxxxxx>
wrote:

Looks ok, though you should be using option(*trim:*string) to
automatically
trim and null terminate the cmdStr parm.

Did you see the note in the docs?

This API does not work with the %%MIXED%% CGI input mode.

Are you by chance using mixed? (would be in your Apache config)

Charles



On Mon, Jul 27, 2020 at 6:21 AM Robert Rogerson <rogersonra@xxxxxxxxx>
wrote:

This is posted to both the RPG and the Midrange-L mailings lists.

I'm using IWS to call a REST API. I'm using QzhbCgiParse to retrieve
the
passed parameter(s) from the QUERY_STRING. When I call the API all I
see
is a 1 page dump in QPSRVDMP in QEZDEBUG with the user data FFDC but
can't see anything other than
.SYMPTOM STRING-
5770 SP/QZHBCGI MSGMCH3601
I've used Google and the IBM API docs to research but I can't see the
issue. My prototype and same call follow.

Dcl-Pr QzhbCgiParse extproc('QzhbCgiParse');
cmdStr char(65535) const options(*trim: *varsize);
outFmt char(8) const;
targetBuf char(65535);
targetSize int(10) const;
responseLen int(10);
errorCode char(56);
End-Pr;

//--------------------------------------------------------------
// GetInputParameter Get the passed parameter from QUERY_STRING
//--------------------------------------------------------------
dcl-proc GetInputParameter;
dcl-pi *n varchar(100);
pSearchParameter varchar(20) const;
end-pi;

dcl-s cmdStr char(65535);
dcl-s outFmt char(8) inz('CGII0100');
dcl-s targetBuf char(65535);
dcl-s targetSize int(10);
dcl-s responseLen int(10) inz(0);
dcl-s errorCode char(56);
dcl-s pos uns(5);

cmdStr = '-value ' + pSearchParameter + x'00';
QzhbCgiParse(cmdStr:outFmt: targetBuf: %size(targetBuf) :
responseLen
:errorcode);
dump(a);
If responseLen > 0;
pos = %SCAN(X'25':targetBuf);
Return %Trim(%Subst(targetBuf:1:pos-1));
Else;
Return ' ';
Endif;
end-proc;

I've commented out the call to QzhbCgiParse and the program completes
without error and produces a dump (dump(a)). When I uncomment the
call
to
QzhbCgiParse the program fails but produces no dump for dump(a). It
does
however create the QPSRVDMP dump I mentioned earlier.

Any help would be greatly appreciated as I've come to a brick wall.

Thanks,

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

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.