XML error

Bjeenie

New Member
Hi,

I have a webservice where i load in data for syncronizing tables on the website to tables to our local database.

I have a table websync, this table contains in a clob-field an XML-object.
this XML object contains a dataset of a few tables.

When theres a new visitor who registers himself it creates this websync-record with all his data in an XML with charset ISO8859-1.
(i've tried with UTF-8, but this gives me gigantic more errors)

when i start the webservice it gets an XML from this procedure:

DEFINE OUTPUT PARAMETER strClobIn AS LONGCHAR NO-UNDO.
DEFINE TEMP-TABLE tt-websync NO-UNDO LIKE websync.
DEFINE VARIABLE teller AS INTEGER NO-UNDO.
FOR EACH websync WHERE websync.expok = 2 USE-INDEX expok.
IF teller <= 1 THEN DO:
CREATE tt-websync.
BUFFER-COPY websync TO tt-websync.
END.
teller = teller + 1.
END.
TEMP-TABLE tt-websync:WRITE-XML("LONGCHAR",
strClobIn,
TRUE,
"ISO8859-1",
?,
TRUE,
?).

i get it with this code:

RUN vanWebservice IN hPortType (OUTPUT cResult) NO-ERROR.

cResult here is a longchar offcourse.

now what is the problem?
i always get this message:
LONGCHAR conversion error -2 at character 23457. (11682)

now according to progress knowledge this is because it can't understand a character in the XML. But this i don't get.

when i don't write the xml to a longchar but directly to a file and open the file in an Internet Explorer, it doesn't show an error.
when i write it to a longchar and then do a copy-lob to a file and open the file in an internet Explorer, it doesn't show an error.

When i run that procedure that examins the xml and syncronises everything with both of those non-error-showing-XML's, it works perfectly. without any error!

what's wrong, and what can i do to make it work after all?

extra: when you ask why i send an xml with the websync-record in it, and not just the xml in the xml-field of that record, it's because in first place i wanted to get an xml of everything that should be synced. but we have a lot of visitors and the xml was above 1MB, and this gave trouble too. so now for safety reasons i go 1 at the time. (i could go more, but just to be safe)

can you help me with this?
thx!
Thomas
 
Top