0
Answered

Identity Broker for chris21 errors when attempting to write to fax attribute

Nick Mathas 13 years ago in UNIFYBroker/Novell Identity Manager updated by anonymous 8 years ago 8

Here is an error I am getting when I attempt to write the fax attribute (alttele) to CHRIS21... I think this is the same error reflected twice.

Identity Broker Errors:

Timestamp Severity Source Module Message
26/07/2011 3:26:26 PM Warning Save entities to connector failed. Connector "Save entities Count:1 to connector Chris21 Person Connector failed with reason GTR result has an invalid status=""fail"" attribute.

Chris21 GTR returned no additional error messages.. Duration: 00:00:00.1552735
Error details:
System.IO.InvalidDataException: GTR result has an invalid status=""fail"" attribute.

Chris21 GTR returned no additional error messages.
at Unify.Framework.Chris21GtrWorker.CheckStatusAttribute(IChris21GtrCommandLine chris21GtrCommandLine)
at Unify.Framework.Chris21GtrWorker.CheckUpdateResult(IChris21GtrRecord updateResultRecord)
at Unify.Communicators.Chris21GtrCommunicatorBase.Update(IChris21GtrEntity entity)
at Unify.Connectors.Chris21GtrConnectorBase`1.SaveEntity(IConnectorEntity entity)
at Unify.Connectors.Chris21GtrConnectorBase`1.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.ConnectorToWritingConnectorBridge.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.EventNotifierWritingConnectorDecorator.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
at Unify.Framework.Adapter.SaveEntity(IAdapterEntity entity, Boolean reflect)
at Unify.Framework.AdapterNotifierDecorator.SaveEntity(IAdapterEntity entity, Boolean reflect)
at Unify.Adapters.NovellIdentityManagerIdentityBrokerDriverAdapter.PerformSubscribeModifyAction(XElement actionNode, IAdapter adapter)"

Timestamp Severity Source Module Message
26/07/2011 3:26:26 PM Warning Adapter request to save entity to adapter space failed. Adapter "Adapter request to save entity bb2a8727-836e-4c78-a7e0-8871b03367a9 to adapter space 53e85508-7648-409c-bd3a-0737028eba29 failed with reason GTR result has an invalid status=""fail"" attribute.

Chris21 GTR returned no additional error messages.. Duration: 00:00:00.3388672
Error details:
System.IO.InvalidDataException: GTR result has an invalid status=""fail"" attribute.

Chris21 GTR returned no additional error messages.
at Unify.Framework.Chris21GtrWorker.CheckStatusAttribute(IChris21GtrCommandLine chris21GtrCommandLine)
at Unify.Framework.Chris21GtrWorker.CheckUpdateResult(IChris21GtrRecord updateResultRecord)
at Unify.Communicators.Chris21GtrCommunicatorBase.Update(IChris21GtrEntity entity)
at Unify.Connectors.Chris21GtrConnectorBase`1.SaveEntity(IConnectorEntity entity)
at Unify.Connectors.Chris21GtrConnectorBase`1.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.ConnectorToWritingConnectorBridge.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.EventNotifierWritingConnectorDecorator.SaveEntities(IEnumerable`1 entities)
at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
at Unify.Framework.Adapter.SaveEntity(IAdapterEntity entity, Boolean reflect)
at Unify.Framework.AdapterNotifierDecorator.SaveEntity(IAdapterEntity entity, Boolean reflect)
at Unify.Adapters.NovellIdentityManagerIdentityBrokerDriverAdapter.PerformSubscribeModifyAction(XElement actionNode, IAdapter adapter)"


FaxNumberConvertPolicy.xml

For some reason the "Facsimile Telephone Number" has some additional attributes; here is a copy of the XDS document prepared by NIM:

<nds dtdversion="3.5" ndsversion="8.x">
<source>
<product version="3.5.10.20070918 ">DirXML</product>
<contact>Novell, Inc.</contact>
</source>
<input>
<modify cached-time="20110726071119.208Z" class-name="User" event-id="W2K3-R2-001-NDS#20110726071119#1#1" qualified-src-dn="O=RES\OU=Users\OU=User\CN=AA102974" src-dn="\SAWWFT\RES\Users\User\AA102974" src-entry-id="36924" timestamp="1311679942#6555">
<association state="associated">102974</association>
<modify-attr attr-name="Facsimile Telephone Number">
<remove-value>
<value timestamp="1311679942#6535" type="structured">
<component name="faxNumber">3333</component>
<component name="faxBitCount">0</component>
<component name="faxParameters"/>
</value>
</remove-value>
<add-value>
<value timestamp="1311679942#6555" type="structured">
<component name="faxNumber">2222</component>
<component name="faxBitCount">0</component>
<component name="faxParameters"/>
</value>
</add-value>
</modify-attr>
</modify>
</input>
</nds>

Problem is actually unrelated to chris21, and appears to be because NIM is sending the fax number to Identity Broker in a different format.

Standard:

<nds dtdversion="3.5" ndsversion="8.x">
  <source>
    <product version="3.5.10.20070918 ">DirXML</product>
    <contact>Novell, Inc.</contact>
  </source>
  <input>
    <modify cached-time="20110726084423.989Z" class-name="User" event-id="W2K3-R2-001-NDS#20110726084423#1#1" qualified-src-dn="O=RES\OU=Users\OU=User\CN=AA102974" src-dn="\SAWWFT\RES\Users\User\AA102974" src-entry-id="36924" timestamp="1311679942#6671">
      <association state="associated">102974</association>
      <modify-attr attr-name="Telephone Number">
        <remove-value>
          <value timestamp="1311679942#6664" type="teleNumber">5555</value>
        </remove-value>
        <add-value>
          <value timestamp="1311679942#6671" type="teleNumber">5554</value>
        </add-value>
      </modify-attr>
    </modify>
  </input>
</nds>

Fax:

    <nds dtdversion="3.5" ndsversion="8.x">
      <source>
        <product version="3.5.10.20070918 ">DirXML</product>
        <contact>Novell, Inc.</contact>
      </source>
      <input>
        <modify cached-time="20110726071119.208Z" class-name="User" event-id="W2K3-R2-001-NDS#20110726071119#1#1" qualified-src-dn="O=RES\OU=Users\OU=User\CN=AA102974" src-dn="\SAWWFT\RES\Users\User\AA102974" src-entry-id="36924" timestamp="1311679942#6555">
          <association state="associated">102974</association>
          <modify-attr attr-name="Facsimile Telephone Number">
            <remove-value>
              <value timestamp="1311679942#6535" type="structured">
                <component name="faxNumber">3333</component>
                <component name="faxBitCount">0</component>
                <component name="faxParameters"/>
              </value>
            </remove-value>
            <add-value>
              <value timestamp="1311679942#6555" type="structured">
                <component name="faxNumber">2222</component>
                <component name="faxBitCount">0</component>
                <component name="faxParameters"/>
              </value>
            </add-value>
          </modify-attr>
        </modify>
      </input>
    </nds>

Here is a copy of the NIM rule that strips the additional attributes from Fax Number (This has been applied as a Command Transformation Rule on the Subscriber Channel):

<rule>
<description>Format Facsimile Telephone Number</description>
<comment name="author" xml:space="preserve">UNIFY Solutions</comment>
<comment name="version" xml:space="preserve">1.0</comment>
<comment name="lastchanged" xml:space="preserve">22/07/2011</comment>
<conditions>
<and>
<if-op-attr mode="regex" name="Facsimile Telephone Number" op="equal">.+</if-op-attr>
</and>
</conditions>
<actions>
<do-reformat-op-attr name="Facsimile Telephone Number">
<arg-value type="string">
<token-xpath expression="*@attr-name = 'Facsimile Telephone Number'//value1/component@name='faxNumber'"/>
</arg-value>
</do-reformat-op-attr>
</actions>
</rule>

FaxNumber Convert Policy, the paste of the policy left out some key syntax

Just saw your email about this Patrick and had already spoken to Nick. Looks like he has worked out how to extract a componenet of a structure attribute with XPATH.

Awesome, thanks Eddie. Hope it wasn't too much trouble!

Updated billing key, fix version.

Hi Nick,

Please close this issue if you're satisfied with the fix you put in place, or re-open if you'd like me to revisit some kind of a fix in the adapter.