Is it possible to map External Content Type to Office Item Type without using SharePoint Designer?

555 views Asked by At

I need to connect Outlook to the External list and have to map its content type to the Office Item Type for that, but unfortunately I can't see it in SPD2013. Possibly it is because BDC model uses OData, which has limited support in SPD2013 (my question about it).

So, is it possible to map External Content Type to Office Item Type without using SharePoint Designer? If so, how can I do it?

Thank you in advance.

PS: SharePoint 2013 RTM.

1

There are 1 answers

0
MikhailSP On BEST ANSWER

Hurray! After three days of unsuccessful googling and asking this question everywhere :-) I tried to investigate it myself and at last, I have found a way to do it!

It appeared that it is quite easy to map it by hand. For that you have to make 2 changes in the BDC model file (xml with a .bdcm extension):

Add property with the name of Office item type to the entity

<Entities>
    <Entity Name="AbsenceCalendar" DefaultDisplayName="AbsenceCalendar"  Namespace="MyNameSpace" Version="1.0.0.0" EstimatedInstanceCount="2000">
<Properties>
    <Property Name="OutlookItemType" Type="System.String">Appointment</Property>
    ...
</Properties>
...

Map necessary fields to the Office Item Type. For instance, for mandatory fields of Appointment Office Item Type it could look like

<Method Name="ReadSpecificAbsenceCalendarEntity" DefaultDisplayName="Read Specific AbsenceCalendarEntity" IsStatic="false">    
......    
  <Parameter Name="@AbsenceCalendarEntity" Direction="Return">
     <TypeDescriptor Name="AbsenceCalendarEntity" DefaultDisplayName="AbsenceCalendarEntity" TypeName="Microsoft.BusinessData.Runtime.DynamicType">   
       <TypeDescriptors> 
           <TypeDescriptor Name="Title" DefaultDisplayName="Title" TypeName="System.String"> 
              <Properties>
                <Property Name="OfficeProperty" Type="System.String">Subject</Property>
              </Properties>
           </TypeDescriptor>
           <TypeDescriptor Name="StartDate" DefaultDisplayName="StartDate" TypeName="System.DateTime">
              <Properties>
                 <Property Name="OfficeProperty" Type="System.String">Start</Property>
               </Properties>
            </TypeDescriptor>
            <TypeDescriptor Name="EndDate" DefaultDisplayName="EndDate" TypeName="System.DateTime">
                <Properties>
                       <Property Name="OfficeProperty" Type="System.String">End</Property>
                 </Properties>
            </TypeDescriptor>
.......