今回、Visual Basic 6.0 から SharePoint Portal Server を操作するのには コラボレーション ソリューション プラットフォームとしての Microsoft SharePoint Portal Server 2001 を参考にした。他に情報源として SharePoint Portal Server メーリングリスト もあるが、ここにはプログラムの話題は少なかった気がする。

VB の [プロジェクト(P)] -> [参照設定(N)] にて、"Microsoft PKMCDO for Microsoft Web Storage system", "Microsoft ActiveX Data Objects 2.5 Library" あたりを追加しておくと、入力支援(自動的にメソッドやプロパティを探)してくれるから便利。

# やっぱり<pre>使うときは、こまめに改行しなきゃ……

'// コピー
Dim doc As New PKMCDO.KnowledgeDocument
doc.DataSource.Open コピー元URL
doc.Copy コピー先URL
'//フォルダ作成
Dim folder As New PKMCDO.KnowledgeFolder
Dim arrExpectedContentClasses As Variant
'smartfolder という設定が要るらしい(たぶん)
folder.ContentClass = "urn:content-classes:smartfolder"
folder.DataSource.SaveTo _
	作成するフォルダのURL, _
	, _
	adModeReadWrite, _
	adCreateOverwrite + adCreateCollection
arrExpectedContentClasses = Array( _
	"urn:content-classes:basedocument", _
	"urn:content-classes:knowledgefolder", _
	"urn:content-classes:smartfolder")
folder.ExpectedContentClass = arrExpectedContentClasses
folder.DataSource.Save
'//フォルダの存在を調べる
'//(オープン時にエラーが出るかどうかで判定(^^;)
Dim folder As New PKMCDO.KnowledgeFolder
Dim result As Boolean
On Error Resume Next
folder.DataSource.Open url
If Err = 0 Then
	result = True
Else
	result = False
End If
'//フォルダ内のファイル/フォルダ一覧を取得
Dim folder As New PKMCDO.KnowledgeFolder
Dim rs As ADODB.Recordset
folder.DataSource.Open url
Set rs = folder.Items
'ファイルの一覧
While Not rs.EOF
	Dim url As String
	url = rs.Fields("DAV:href") 'ファイルのURLを取得
	MsgBox url
	rs.MoveNext
Wend
'フォルダの一覧
Set rs = folder.Subfolders
While Not rs.EOF
	Dim url As String
	url = rs.Fields("DAV:href") 'フォルダのURLを取得
	MsgBox url
	rs.MoveNext
Wend
'//ドキュメントプロファイルのプロパティ情報を取得
Dim doc As New PKMCDO.KnowledgeDocument
doc.DataSource.Open url
MsgBox doc.displayName()
MsgBox doc.BestBetKeywords
MsgBox doc.BestBetCategories
MsgBox doc.Categories
MsgBox doc.Title
MsgBox doc.Description
'//独自追加したプロパティも拾えるみたい
MsgBox doc.Property(
 "urn:schemas-microsoft-com:office:office#プロパティ名")
'//ファイルのチェックイン
Dim k_version As New PKMCDO.KnowledgeVersion
Dim rs As ADODB.Recordset
Set rs = k_version.checkin(url)

tags: SharePoint Portal Server zurazure

Posted by NI-Lab. (@nilab)