Можно ли сопоставить внешний тип контента с типом элемента Office без использования SharePoint Designer?
Мне нужно подключить Outlook к внешнему списку и сопоставить его тип контента с типом элементов Office, но, к сожалению, я не вижу его в SPD2013. Возможно, это связано с тем, что модель BDC использует OData, которая имеет ограниченную поддержку в SPD2013 ( мой вопрос по этому поводу).
Итак, возможно ли сопоставить внешний тип контента с типом элемента Office без использования SharePoint Designer? Если так, как я могу это сделать?
Заранее спасибо.
PS: SharePoint 2013 RTM.
1 ответ
Ура! После трех дней безуспешного поиска в Google и повсюду задавая этот вопрос:-) Я попытался исследовать это сам и, наконец, я нашел способ сделать это!
Оказалось, что это довольно легко отобразить вручную. Для этого вам нужно внести 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>
...
Сопоставьте необходимые поля с типом элемента Office. Например, для обязательных полей типа элемента в офисе назначения это может выглядеть
<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>
.......