Example | Synchronizing Additional Appointment Fields

An example illustrates how to synchronize additional text information from Aurea CRM to a user defined field in Outlook appointments and vice versa.

Assumption: You have created a (generic) field Text_New for the MA table in Aurea CRM and added a text field Additional Information for meetings in Outlook.

The realization consists on the following steps:

  1. Adding the additional field to forms.xml. You have to add the field Aurea CRM Text_New to ensure that this field is exchanged during synchronization.

    Add <field fieldname='Text_New'/> to the <form type="vevent"><table tablename="Contact"> section.

    <form type='vevent'>
     <table tablename='Contact'>
      <field fieldname='StatNo'/>
      <field fieldname='SeqNo'/>
    ...
      <field fieldname='Text_New'/>
     </table>
    ...
    </form>
  2. Adding the additional field to the style sheet SyncML_gw2mm.xslt.

    Add the nodes listed below to the <xsl:template name='Convertvevent'> <!--other fields--> section:

    <xsl:template name='Convertvevent'>
    ...
    <!--other fields-->
    <xsl:if test='syncml:Text_New'>
     <xsl:element name='field'>
       <xsl:attribute name='name'>Text_New</xsl:attribute>
       <xsl:attribute name='tablename'>Contact</xsl:attribute>
       <xsl:attribute name='fieldname'>Text_New</xsl:attribute>
       <xsl:value-of select='syncml:Text_New'/>
     </xsl:element>
    </xsl:if>
  3. Adding the additional field to the style sheet SyncML_mm2gw.xslt.

    Add the nodes listed below to the <xsl:template name='ConvertContact'> section:

    <xsl:template name='ConvertContact'>
    <!--Reminder-->
    ...
    <!—Reminder end -->
    <xsl:if test='syncml:Text_New'>
     <xsl:element name='Text_New' namespace='SYNCML:SYNCML1.1'>
      <xsl:value-of select='syncml:Text_New'/>
     </xsl:element>
    </xsl:if>
    ...
  4. Adding the additional field to the mapping table FieldMapping.xml.

    Add the field to the "mappable fields" list:

    <Appointments>
     <MappableFields>
      <FieldExtName MapFieldID="1" MSExFieldName="Additional Information"/>
     </MappableFields>
     <FieldMapping>
      <Map UpdFieldName = "Text_New" MapFieldID="1"/>
     </FieldMapping>
    </Appointments>
    Note: In case you want to map a field, which is part of the standard EWS field schema (e.g. "location" you have to use the following convention to declare the field:

    <FieldFullName MapFieldID="1" MSExFieldFullName="Location" OLDisplName="Location"/>

    For user defined fields, connector assumes that they are of type PT_TSTRING if there is no MSExFieldType attribute specified.

  5. Restart CRM.interface application pool and connector service.