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



As always, first try it without specifying the regular expression (i.e.
remove ": \w{50}"). Then if that works, ensure regular expression is
correct.


"WEB400" <web400-bounces@xxxxxxxxxxxxxxxxxx> wrote on 04/08/2019 04:53:49
PM:

From: Stephen Piland <Stephen@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
To: "web400@xxxxxxxxxxxxxxxxxx" <web400@xxxxxxxxxxxxxxxxxx>
Date: 04/08/2019 04:54 PM
Subject: Re: [WEB400] IWS REST GET Variable Length PATH_PARM Input
Sent by: "WEB400" <web400-bounces@xxxxxxxxxxxxxxxxxx>

Thanks again Nadir for the very good details. I'm still having an
issue though.

It did detect and recognize varchar(50) as seen below in the Service
properties. However when I call the GET method in Postman, I get a
HTTP 400 when I specify anything less that 50, but it works with
exactly 50 and returns a HTTP 200.

https://urldefense.proofpoint.com/v2/url?

u=http-3A__-257Bserver-257D_web_services_CACRTV_12345678901234567890123456789012345678901234567890&d=DwICAg&c=jf_iaSHvJObTbx-
siA1ZOg&r=1i-jGlz0-JTK1aLHcsU-

ew&m=Hjfm5qnM2AF_0C9elAGbLkCT3at29sAjhRFj4WA2Z_k&s=2xoEyVCcuMmPpAex8KrYwO7HhqfkEEmXNxsPvvKfzuQ&e=


Procedure name:

CACRTV

HTTP request method:

GET

URI path template for method:

{id: \w{50}}

HTTP response code output parameter:

HTTPSTATUS

HTTP header array output parameter:

HTTPHEADERS

Allowed input media types:

*ALL

Returned output media types:

*JSON


Input parameter mappings:

Parameter name

Data type

Input source

Identifier

Default Value

INECOMMORDERNO

varchar

*PATH_PARAM

id

*NONE






RPG Code...
Dcl-Proc CACRTV;

Dcl-pi *n;
inECommOrderNo varchar(50) const;
httpStatus int(10);
httpHeaders char(100) dim(10);
rtnOrder likeds(rtnOrderInfo);
End-pi;

From: Stephen Piland
Sent: Saturday, April 6, 2019 12:59 PM
To: 'web400@xxxxxxxxxxxxxxxxxx' <web400@xxxxxxxxxxxxxxxxxx>
Subject: RE: IWS REST GET Variable Length PATH_PARM Input

For clarity sake, I've reworked my procedures/srvpgm to be a stand
alone RPG pgm. I tried in the PCML both CACTST (object) and
RETRIEVE which is the MainProcedure. I'm still getting ZUI_53179.
Reference notes below...

Nadir.. Where are you getting your information from? Is there a
reference or white paper? I'd like to not have to bug the group so
much but I find documentation lacking from IBM. I appreciate your
help. My one wish would be for 7.3 but stuck on 7.1 for a while.

Modified PCML on IFS...
</struct>
<!-- 50 -->
<program name="CACTST" path="/QSYS.LIB/CCLIB.LIB/CACTST.PGM">
<data name="INECOMMORDERNO" type="varchar" length="50"
usage="input">
<data name="HTTPSTATUS" type="int" length="4" precision="31"
usage="inputoutput" />
<data name="HTTPHEADERS" type="char" length="100" count="10"
usage="inputoutput" />
<data name="RTNORDER" type="struct" struct="RTNORDERINFO"
usage="inputoutput" />
</program>
</pcml>

Prototype below...
dcl-pr retrieve extpgm('CACTST');
rtnECommOrderNo varchar(50) const;
httpStatus int(10);
httpHeaders char(100) dim(10);
rtnOrder likeds(rtnOrderInfo);
End-Pr;

From: Stephen Piland
Sent: Thursday, April 4, 2019 7:11 PM
To: 'web400@xxxxxxxxxxxxxxxxxx' <web400@xxxxxxxxxxxxxxxxxx<
mailto:web400@xxxxxxxxxxxxxxxxxx>>
Subject: Re: IWS REST GET Variable Length PATH_PARM Input

Finally have the necessary PTFs installed and I've created PCML 6.0
to the IFS for a module that contains 2 procedures. One would be
for a POST and one for a GET. I have tried to deploy the web
service and when I pick the modified or unmodified PCML in IWS, I
get the error message below. Any ideas? Thanks!

ZUI_53179: The PCML file is not valid for the program object
specified. Click on the Browse button to navigate the directory and
find the correct PCML file. Correct the path and try the request
again or specify another program object


Originally generated PCML for varchar InECommOrderNo...
<program name="RETRIEVE" entrypoint="RETRIEVE">
<struct name="INECOMMORDERNO" usage="input">
<data name="length" type="int" length="2" precision="16"
usage="inherit" />
<data name="string" type="char" length="length" usage="inherit"
/>
</struct>
<data name="HTTPSTATUS" type="int" length="4" precision="31"
usage="inputoutput" />
<data name="HTTPHEADERS" type="char" length="100" count="10"
usage="inputoutput" />
<data name="RTNORDER" type="struct" struct="RTNORDERINFO"
usage="inputoutput" />
</program>


Modified PCML for varchar inECommOrderNo...
<program name="RETRIEVE" entrypoint="RETRIEVE">
<data name="INECOMMORDERNO" type="varchar" length="50"
usage="input">
<data name="HTTPSTATUS" type="int" length="4" precision="31"
usage="inputoutput" />
<data name="HTTPHEADERS" type="char" length="100" count="10"
usage="inputoutput" />
<data name="RTNORDER" type="struct" struct="RTNORDERINFO"
usage="inputoutput" />
</program>
--



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.