on 04-03-2006 3:16 PM
Hello,
I have a Problem with Smart Synchronization (MI 2.5 SP09).
I developed a smart sync application (type twoWay), which allows modifying of item values in syncbo.
The application itself seems to be ok. If I modify a value, I don't get any errors and if i read the SyncBo again (after modifying)
it shows the correct data. The Problem occurs if I try to synchronize with the middleware.
The client trace file doesn't show any errors but the Log Monitor gives the following output:
1 1 I 03.04.2006 15:31:43
MEREP_ARECEIVER has started for run number 0000002170 and runtime counter 1
2 1 D 03.04.2006 15:31:43
Return code 0 (RECEIVER ENABLED)
3 1 I 03.04.2006 15:31:43
Forced correction of XML document encoding from UTF-8 to sap*
4 1 A 03.04.2006 15:31:43 Unknown error
5 1 E 03.04.2006 15:31:43
<Dump>Dereferenzierung der NULL-Referenz.</Dump>
6 1 E 03.04.2006 15:31:43 <Dump><?xml version="1.0" encoding="sap*"?>
<Message xmlns="" clientID="" id="wSBPpTNwEbPTyzLSCZ71P7jVswLMoxsL" schemaVersion="2.0"
synchronous="false"><Delta action="modify" objectID="0001001594" objectType</Dump>
7 1 E 03.04.2006 15:31:43
<Dump>="ZMSC_ORD03"><pre><code>7CD0DC76B9CF4F499FE5C1B325107389
</code></pre>
<PostStateIDtype="changedID">
wSBPpTNwEbPTyzLSCZ71P7jVswLMoxsL</PostStateID><F pos="1">000004000020</F><Delta ac</Dump>
8 1 E 03.04.2006 15:31:43
<Dump>tion="modify" objectID="0001001598" objectType="030"><F pos="1">000004000020</F>
<F pos="2">0010</F><F pos="3">AD-S-E1</F><F pos="4">0001</F><F pos="5">Sichtprüfung aussen</F>
<F pos="6"></F><F pos="7"></Dump>
9 1 E 03.04.2006 15:31:43
<Dump>1.000</F><F pos="8">SEZ</F><F pos="9">0.2</F>
<F pos="10">H</F><F pos="11">HUR</F>
<F pos="12">H</F><Fpos="13">HUR</F><F pos="14">1.000</F></Delta></Delta></Message></Dump>
10 1 I 03.04.2006 15:31:43
MEREP_ARECEIVER has finished for run number 0000002170 and runtime counter 1
I have no clue what this error means.
After modifying and synchronizing the modified syncbo instances an the client always have the following status:
PositionStatus: G
ProcessingStatus: IN_SYNC
Status: S
The Processing Status is always "IN_SYNC" and doesn't change any more.
So it's obvious that the syncbo instances are not processed correctly by middleware. It seems to me that the data the middleware
receives is not correct or not as expected. So the middleware tries to process or transform the data and at this moment an error occurs.
I would be very glad if somebody has a hint or a solution for this problem.
Regards,
Andreas
hello andreas,
could you please check.
your xml has two
<F pos="1">000004000020</F>
entries. this could
be one reason.
if this is just a typo error, try avoiding the umlaut
in the data: "Sichtprüfung aussen".
regards
jo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jo,
the dump has indeed two Entrys with
<F pos="1">000004000020</F> (I uploaded the whole log as html <a href="http://people.freenet.de/boristheblade/SAP/dump.html">here</a>)
This Number is the <b>"ORDERID"</b>. This field is listed in TopStructure and in every ChildStructure (see below).
<SyncBO id="ZMSC_ORD03" version="4" type="twoWay" allowCreate="false" allowModify="true" allowDelete="false" reqDirectSync="true">
<TopStructure name="TOP">
<Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
<Input type="create">false</Input>
<Input type="modify">false</Input>
</Field>
<b><Field name="ORDERID" type="C" length="12" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field></b>
<ChildStructure name="010">
<Field name="SYNC_KEY" type="N" length="10" decimalLength="0" signed="false" isKey="true" isIndex="true">
<Input type="create">false</Input>
<Input type="modify">false</Input>
</Field>
<b><Field name="ORDERID" type="C" length="12" decimalLength="0" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field></b>
[...]
But the entry I have changed ist this one
<F pos="14">1.000</F>
This entry is an entry in
<ChildStructure name="030">
[...]
<Field name="WORK_ACTUAL" type="P" length="14" decimalLength="3" signed="false" isKey="false" isIndex="false">
<Input type="create">false</Input>
</Field>
Do you think the Umlaut could cause some problems in middleware?
Regards,
Andreas
I guess I know the reason for my problem. I deployed my application again and synchronized <b>before</b> changing an entry. And it worked.
I've always started the MI from Developer Studio, changed some entrys and synchronized afterwards and this did not work. So the error occurs every time if I change a value before I've have synchronized.
hello andreas,
great that you had it worked out right.
first, having two
<F pos="1">000004000020</F>
elements in the message is already a malformed smartsync
message. im wondering how this had happened.
regarding the aumlaut, this is dependent on your system.
some non-unicode middleware system doesn't support this
and parsers do usually throw some exceptions.
now, looking in the dump, the download requests were also
not properly parsed. this might have something to do with
the code page on your client. might be worth checking as
well.
regards
jo
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.