2

シナリオ: 「個人またはグループ」タイプの列 x を持つ SharePoint のドキュメント ライブラリ。VBA マクロ (または VSTO アドイン) 内から、ドキュメントの MetaProperty にアクセスして、ユーザー名を設定/取得しようとしています。ContentTypeProperties コレクションを介して値にアクセスしようとすると、

タイプ不一致エラー (13)。

MetaProperty オブジェクトの Type プロパティは、それがmsoMetaPropertyTypeUser. このタイプの MetaProperties を操作する方法の例が見つかりません。誰でもこれを経験したことがありますか?

ありがとう!

4

2 に答える 2

1

やったよ。

ここでの秘訣は、MOSS users のユーザー インデックスに対応する文字列を 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;
于 2008-11-10T18:46:15.907 に答える
1

次のようなことができるはずです:

    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 の列名にインデックスを付けることで利用できるようにする必要があります。

于 2008-09-05T13:30:58.010 に答える