Hi,

I'm working on a System-Link POC and I have found the source for a program that does the standard XML parsing. It is USRLPI1R in source file #PSIMQSSMP in AMXLIBx. I have not used it yet, but I was interested in whether the "sessionHandle" and "workHandle" have a fixed length. With this "Procedure" it may resolve our problems. Have a look at it.

Regards,

Alan McKenzie
P O Box 786341, SANDTON, 2146, South Africa
Mobile: +27 (0)82 453 7990 | Fax: +27 (0)86 685 8284
E-mail: A.McKenzie@xxxxxxxxxxxxxxxxx | Skype: RhinoMcK
“To err is human; to forgive, divine.” Alexander Pope
 Please consider the environment before printing this mail

-----Original Message-----

Today's Topics:

1. XML-INTO - new to this... (Wyatt, Chris (FGWA-IL))


----------------------------------------------------------------------

message: 1
date: Sun, 2 Mar 2014 00:02:19 +0000
from: "Wyatt, Chris (FGWA-IL)" <Chris.Wyatt@xxxxxxxx>
subject: [MAPICS-L] XML-INTO - new to this...

Hello all,

This has me tearing my hair out on a weekend... Boo.

I'm attempting to parse some XML. I'm trying to use the new(er) opcodes as opposed to the old string methods. I thought it was/is the most straightforward you can imagine...

I'm trying to pull the 'true' value out of the LoginResponse attribute.

Here's the XML... (Yes, it's MAPICS)

<?xml version='1.0' encoding='UTF-8'?>
<System-Link version='1.0' hostVersion='1.0'>
<LoginResponse actionSucceeded='true'>
<SessionHandle value='-3369e2f8:1445eea302e:-799f'/>
</LoginResponse>
<Response sessionHandle='-3369e2f8:1445eea302e:-799f' workHandle='-3369e2f8:1445eea302e:-799e' systemTimestamp='2014-02-28 20:54:41.668' systemTimeZoneOffset='-6:00'>
<UpdateResponse name='updateObject_ItemRevision' actionSucceeded='true'/>
</Response>
</System-Link>

Here's my code... (variable "rpns" is my xml)

D* Local fields
D retField S N inz(*off)
D LoginResponse DS qualified
D action...
D Succeeded 10

/FREE

// was the login request successful?
xml-into LoginResponse
%xml(rpns:'path=System-Link/LoginResponse +
case=any doc=string');
if LoginResponse.actionSucceeded='true';
retField = *on;
ENDIF;

I'm getting this error...

The XML document does not match the RPG variable; reason code 1.

Cause . . . . . : While parsing an XML document, the parser found that the
XML document does not correspond to RPG variable loginresponse and the
options do not allow for this. The reason code is 1. The exact subfield for
which the error was detected is loginresponse. The options are
"path=System-Link/LoginResponse case=any doc=string". The XML document name
is *N; *N indicates that the XML document was not an external file.

In the process of trial and error, I've also received reason code 4 and 5.

What am I doing wrong?!? I've messed with the path, the options, the DS. It's making me crazy.

Thank you for your help.

Christopher Wyatt



This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 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].