This message may be more appropriate in the rpg400-l group, as it appears to be a question on an RPG Compile.
Did you look at the compile listing?
The error messages will give you the Line number of where the error is.
I doubt everyone has time to determine what message id's mean, so you should probably include the message text:
RNF0256. Specification found between procedures
RNF0257. Form-Type entry for main procedure not valid or out of sequence
RNF7023. The Compiler cannot determine how the program can end.
Just in case the RNF0256 is generated for a rouge comment, you could convert all Comments to // instead of *, otherwise make sure the * is in column 7.
Are you on V7R1?
Are you using RDI?
You might need to show what is in JGVWSDL/QWSDL2RPG,WS000101.
Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the author and do not necessarily represent those of the company.
-----Original Message-----
From: WEB400 [mailto:web400-bounces@xxxxxxxxxxxx] On Behalf Of Jan Grove Vejlstrup
Sent: Friday, May 19, 2017 6:34 AM
To: web400 Midrange <web400@xxxxxxxxxxxx>
Subject: [WEB400] Using WSDL2RPG to generate testprogram
Hello,
I've just loaded and installed the program WSDL2RPG. Now I try to generate a little test-program for the web-service WriteBizMessage described in the wsdl:
http://igh2.exigo.ch/DataExpert2/DE_WebService.svc?singleWsdl
The generated program comes here:
* =====================================================================
* Generated by WSDL2RPG 1.16.5 / 08.03.2017
* Built on Mai 19, 2017 (13:59:27)
* Built for V7R2M0
* Based on WS_PGM 1.16.5 - 08.03.2017
*
=====================================================================
* Sample program to show how to call the
* BasicHttpBinding_IDE_WebService_WriteBizMessage()
* Web service.
*
=====================================================================
* Pre-Compiler tags used by STRPREPRC to retrieve creation
* commands from the source member.
*
---------------------------------------------------------------------
* >>PRE-COMPILER<<
* >>CRTCMD<< CRTRPGMOD MODULE(&LI/&OB) +
* SRCFILE(&SL/&SF) +
* SRCMBR(&SM);
* >>COMPILE<<
* >>PARM<< TRUNCNBR(*NO);
* >>PARM<< DBGVIEW(*LIST);
* >>PARM<< OPTION(*EVENTF);
* >>END-COMPILE<<
* >>EXECUTE<<
* >>CMD<< CRTPGM PGM(&LI/&OB) +
* MODULE(*PGM) +
* BNDSRVPGM(*LIBL/WS000 +
* *LIBL/WSDL2RPGRT +
* ) +
* DETAIL(*BASIC) +
* ACTGRP(*NEW);
* >>END-PRE-COMPILER<<
*
=====================================================================
H DEBUG
H OPTION(*SRCSTMT : *NODEBUGIO)
H EXTBININT(*YES)
*
FQSYSPRT O F 80 PRINTER OFLIND(*in70)
*
* Include generated web service stub module to
* define the prototype of the web service procedure
* and the required type definitions (aka reference fields).
/DEFINE PROTOTYPE_WS000101
CPY /COPY JGVWSDL/QWSDL2RPG,WS000101
/UNDEFINE PROTOTYPE_WS000101
*
* Program entry point
D WSKWC001...
D PR
*
* Prints a given message to QSYSPRT.
D printMsg...
D PR extproc('print')
D i_text 128A value varying options(*nopass)
*
* Sends a message to the command line.
D sndMsg...
D PR extproc('sndMsg')
D i_text 128A value varying
*
*
=====================================================================
* Program entry point
*
=====================================================================
D WSKWC001...
D PI
*
* Web service error message text
D errText S like(wsdl_errText_t ) inz
*
* Request SOAP headers and message
* These fields needs to be filled with reasonable values
* right before calling the web service.
D parameters DS likeds(tns_WriteBizMessage_t)
D inz
* Response SOAP headers and message
* This structure contains the result values returned by
* the web service.
D WriteBizMessageResponse...
D DS likeds(tns_WriteBizMessageResponse_t)
D inz
*
* Text of messages sent to the command line
D text S 128A varying inz
*
* Dynamic array index fields
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/free
// Enable/disable http api debug log
// (Enable the http api debug log in case of problems with the web service)
// BasicHttpBinding_IDE_WebService_Port_setHttpDebug(
// *ON: '/tmp/httpapi_debug.txt'); // Default path of
http api
// Specify a proxy server if your network requires it.
// BasicHttpBinding_IDE_WebService_Port_setHttpProxy(
// 'your.proxy.server': 8080);
// Set the parameter values of the request message
// of the web service.
// assign values here
parameters.username = 'string';
parameters.password = 'string';
parameters.bizMsg = 'string';
parameters.attachment.Content = 'base64';
parameters.attachment.FileExtension = 'string';
// Enable preemptive authetication
// 1. parameter: WSDL_AUTH_BASIC or WSDL_AUTH_MD5_DIGEST
// 2. parameter: (optional) cTrue for proxy authentication
// cFalse for server authentication
(default)
// BasicHttpBinding_IDE_WebService_Port_setPreemptiveAuthentica...
// tion(
// WSDL_AUTH_BASIC);
// Now let's call the web service.
WriteBizMessageResponse =
BasicHttpBinding_IDE_WebService_WriteBizMessage(
parameters:
errText);
// If the Web service finished successfully ...
B01 if (not BasicHttpBinding_IDE_WebService_Port_isError());
// ... get response data from response data structure
sndMsg('*** Success ***');
X01 else;
// ... else show error messages ordered by priority:
// 1. HTTP error information
text = %char(
BasicHttpBinding_IDE_WebService_HttpError_getCode()
) + ': ' +
BasicHttpBinding_IDE_WebService_HttpError_getText()
;
sndMsg(text);
// 2. SOAP error information
B02 if (BasicHttpBinding_IDE_WebService_SoapError_getCode()
<> '');
text = BasicHttpBinding_IDE_WebService_SoapError_getCode()
+ ': ' +
BasicHttpBinding_IDE_WebService_SoapError_getText()
;
sndMsg(text);
E02 endif;
// 3. XML parser error information
B02 if (BasicHttpBinding_IDE_WebService_XmlError_getCode()
<> 0);
text = %char(BasicHttpBinding_IDE_WebService_XmlError_get...
Code())
+ ': ' +
BasicHttpBinding_IDE_WebService_XmlError_getText()
;
sndMsg(text);
E02 endif;
E01 endif;
B01 if (%open(QSYSPRT));
close QSYSPRT;
E01 endif;
*inlr = *on;
/end-free
*
*
=====================================================================
* *** private ***
* Prints a given message to QSYSPRT.
*
=====================================================================
P printMsg...
P B
D PI
D i_text 128A value varying options(*nopass)
*
* Local fields
D lineOutput DS 80 inz
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/free
B01 if (not %open(QSYSPRT));
open QSYSPRT;
E01 endif;
B01 if (%parms() >= 1);
lineOutput = i_text;
E01 endif;
write QSYSPRT lineOutput;
/end-free
P E
*
*
=====================================================================
* *** private ***
* Sends a message to the command line.
*
=====================================================================
P sndMsg...
P B
D PI
D i_text 128A value varying
*
* Local fields
D msgKey S 4A inz
*
* Qualified message file name
D qMsgF DS qualified inz
D name 10A
D lib 10A
*
* API error code
D errCode DS qualified inz
D bytPrv 10I 0
D bytAvl 10I 0
D excID 7A
D reserved 1A
D excDta 256A
*
* Send Program Message (QMHSNDPM) API
D QMHSNDPM PR extpgm('QMHSNDPM')
D i_msgID 7A const
D i_qMsgF 20A const
D i_msgData 32767A const options(*varsize )
D i_length 10I 0 const
D i_msgType 10A const
D i_callStkE 32767A const options(*varsize )
D i_callStkC 10I 0 const
D o_msgKey 4A
D io_ErrCode 32767A options(*varsize )
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/free
clear qMsgF;
qMsgF.name = 'QCPFMSG';
qMsgF.lib = '*LIBL';
clear errCode;
errCode.bytPrv = %size(errCode);
QMHSNDPM('CPF9897': qMsgF: i_text: %len(i_text): '*INFO'
: '*CTLBDY': 1: msgKey: errCode);
return;
/end-free
P E
*
If I compile it I receive the messages RNF0256, RNF0257 and RNF7023. I can't find the reasons for these messages. What do I do wrong?
Best regards
Jan
--
This is the Web Enabling the IBM i (AS/400 and iSeries) (WEB400) mailing list To post a message email: WEB400@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/web400
or email: WEB400-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/web400.
As an Amazon Associate we earn from qualifying purchases.