Lotus Notes Troubleshooting
Novell Cool Solutions: Tip
By Perry Nuffer
Digg This -
Slashdot This
Posted: 19 Jan 2006 |
Problem
My Lotus Notes driver is returning a strange error when trying to remove a non-present value from a person document of the Notes Address Book. The driver returns the following error:
<status event-id="dsasdk01#20041118161252#1#2" level="retry">NotesSubscriptionShim: processModifyEvent Failure synchronizing to Notes. ID = 4362. Message: Vector must contain objects all of the same class</status>
Solution
The "Vector must contain objects all of the same class" error can occur when an attribute within eDirectory is of one type (type="string", for a value of syntax "Case Ignore String"), and this attribute is being mapped to a Notes document field of different type (type="int", for a value of data type "Number List").
To remedy this problem, it is necessary to use a policy that inserts the appropriate XML text, such as type="int" into each XDS value element.
Note: This solution works for all supported IDM OS's.
<modify class-name="User" src-dn="\Sam"> <association state=associated>0DEB716EFBCC809487256E910076D11D</association> <modify-attr attr-name="Telephone Number"> <remove-value> <value type=string>555-2222</value> </remove-value> <add-value> <value type=string>555-1212</value> </add-value> </modify-attr> <modify-attr attr-name="PhoneExtension"> <remove-value> <value type=int>1234</value> </remove-value> <add-value> <value type=int>4321</value> </add-value> </modify-attr> </modify>
Example
Depending on the circumstances, a policy similar to the XSLT policy below can provide the needed text insertion.
<xsl:template match="value[ancestor::*[@attr-name='PhoneExtension']]"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:attribute name="type"> <xsl:value-of select="'int'"/> </xsl:attribute> <xsl:apply-templates select="node()"/> </xsl:copy> </xsl:template>

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com