|
Yes - but you are using IWS - not rolling your own with RPG as that
article describes. The article by the way shows how to get the value.
IWS provides a mechanism to get the values passed to your RPG code -
don't recall the details but it is in the documents and in IBM's on-line
tutorials.
David must be asleep or he'd have yelled at us long ago to move this
topic to WEB400 which is where it should be. I suggest you do that if you
have problems because the IBMers responsible for IWS follow that forum but
not this one.
Jon
On Jul 27, 2020, at 1:36 PM, Robert Rogerson <rogersonra@xxxxxxxxx>wrote:
Charles
Jon, I think you misunderstood my reply referring to your article.
had already pointed out that using QzhbCgiParse was the wrong approach.I
pointed to your article as the correct way to accomplish what I'm tryingto
do.program..
Sorry for this misunderstanding.
In my prior reply, I gave an example of what I'm trying to do. Does your
article not cover how I should be correctly extracting the parameter?
Thanks,
Rob
On Mon, Jul 27, 2020 at 1:20 PM Robert Rogerson <rogersonra@xxxxxxxxx>
wrote:
I'm creating a webservice and using IWS. I'm then using Postman to test
the webservice. All the endpoints call procedures in a service
procedure
So I have an endpoint /web/server/claims which will call the RPG
GetAllClaimsGetAllClaims which returns all claims. I have tested this with Postman
and it works correctly.
My next step is to add a filter. So I call the same endpoint but this
time I pass a parameter of whid. So the endpoint now becomes
/web/server/claims/?whid=93 which will call the RPG procedure
QUERY_STRING tobut this time I need to extract the parameter passed in the
https://ibmsystemsmag.com/Power-Systems/02/2012/rest-web-services-with-rpgreturn only claims for warehouse 93.
I'm trying to understand how to extract the parameter whid=93 from the
QUERY_STRING. I thought the article I posted gave an example of this.
Thanks,
Rob
On Mon, 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 (
rogersonra@xxxxxxxxx>).
Thanks for putting me on the right path Charles.
Rob
On Mon, Jul 27, 2020 at 12:27 PM Robert Rogerson <
notwrote:to
Charles, if I add *fixed then does this stop the need to append x'00'
the end of cmdstr when calling the api?
I checked in the config file for my HTTP server instance and could
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/rzaie/rzaiepdf.pdffind %%MIXED%%. So I did a Google search and did find . Electronic
business and Web serving IBM HTTP Server for i (
charles.wilt@xxxxxxxxx).you
It mentions
CGIConvMode:
Module: mod_cgi
Syntax: CGIConvMode mode
One of the modes listed is %%MIXED so I'm thinking this may be what
understandwere referring to. But this also got me thinking, from how I
doingthis, 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
usingit 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
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 <
affiliaterogersonra@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 <
retrievewrote:
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
all Ithe
passed parameter(s) from the QUERY_STRING. When I call the API
butsee
is a 1 page dump in QPSRVDMP in QEZDEBUG with the user data FFDC
thecan'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
completesresponseLenissue. 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) :
: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
Itcallwithout error and produces a dump (dump(a)). When I uncomment the
to
QzhbCgiParse the program fails but produces no dump for dump(a).
mailingdoes
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)
mailingaffiliatelist
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxxrelated
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
questions.
Help support midrange.com by shopping at amazon.com with our
link: https://amazon.midrange.com--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
affiliaterelatedlist
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
questions.
Help support midrange.com by shopping at amazon.com with our
list--link: https://amazon.midrange.com
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxxrelated
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
questions.
Help support midrange.com by shopping at amazon.com with our
relatedlink: 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
list--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
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxxrelated questions.
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
link: https://amazon.midrange.com
Help support midrange.com by shopping at amazon.com with our affiliate
--
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 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.