Можно ли сопоставить внешний тип контента с типом элемента Office без использования SharePoint Designer?

Мне нужно подключить Outlook к внешнему списку и сопоставить его тип контента с типом элемента Office для этого, но, к сожалению, я не вижу его в SPD2013. Возможно, это связано с тем, что модель BDC использует OData, которая имеет ограниченную поддержку в SPD2013 (мой вопрос по этому поводу).

Итак, можно ли сопоставить внешний тип контента с типом элемента Office без использования SharePoint Designer? Если да, то как мне это сделать?

Заранее спасибо.

PS: SharePoint 2013 RTM.


person MikhailSP    schedule 28.11.2012    source источник


Ответы (1)


Ура! После трех дней безуспешных гуглений и задавания этого вопроса везде :-) Я попытался исследовать это сам и, наконец, нашел способ сделать это!

Оказалось, что его довольно легко сопоставить вручную. Для этого необходимо внести 2 изменения в файл модели BDC (xml с расширением .bdcm):

Добавить к объекту свойство с названием типа элемента Office

<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>
...

Сопоставьте необходимые поля с типом элемента офиса. Например, для обязательных полей типа элемента офиса назначения это может выглядеть так:

<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>
.......
person MikhailSP    schedule 29.11.2012