Чтение / запись метаданных Person из документа Word, хранящихся в SharePoint с использованием VBA или VSTO? - PullRequest
2 голосов
/ 05 сентября 2008

Сценарий: библиотека документов в SharePoint со столбцом x типа «Персона или группа». Из макроса VBA (или надстройки VSTO) мы пытаемся получить доступ к MetaProperty в документе, чтобы установить / получить имя пользователя. Любая попытка получить доступ к значению через коллекцию ContentTypeProperties выдает

Ошибка типа MisMatch (13).

Свойство Type объекта MetaProperty говорит, что оно msoMetaPropertyTypeUser. Я не могу найти примеры того, как работать с MetaProperties этого типа. У кого-нибудь есть опыт с этим?

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 ноября 2008

Я сделал это.

Суть в том, чтобы узнать, что если вы поместите строку, соответствующую индексу пользователя в пользователях MOSS, в пользовательское свойство документа Word, MOSS распознает его и найдет соответствующего пользователя для сопоставления поля.

так что вам просто нужно позвонить http: ///_vti_bin/usergroup.asmx используйте функцию GetUserInfo и извлеките из нее индекс пользователя (ID).

MOSSusergroup.UserGroup userGroupService = new MOSSusergroup.UserGroup();
userGroupService.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Xml.XmlNode node = userGroupService.GetUserInfo(userLogin);
string index = node.FirstChild.Attributes["ID"].Value;
1 голос
/ 05 сентября 2008

Вы должны быть в состоянии сделать что-то вроде этого:

    using (SPSite site = new SPSite("http://yoursite/subsite"))
    {
        using (SPWeb web = site.OpenWeb())
        {
            SPList list = web.Lists["DocLibraryName"];
            SPListItemCollection items = list.GetItems(list.Views["All Documents"]);
            foreach (SPListItem item in items)
            {
                item["Modified By"] = "Updated Value";
            }
        }
    }

Любые метаданные для документа должны быть доступны путем индексации имени столбца SPListItem.

...