メモ (サンプルコード)
ポータブルデバイスのフォルダを選択し、ファイルをコピーまたは移動 (Shell.Applicationを使用)
コピー:copyFol.copyHere item
移動:copyFol.moveHere item
Sub Click(Source As Button)
Dim ShellApp As Variant
Dim fol As Variant
Dim folItem As Variant
Dim SrcFol As Variant
Dim copyFol As Variant
Dim ParentFolderObject As Variant
Dim strDirectoryPath As String
Dim selectFolderTitle As String
Dim selectFolder As String
Dim tempFolder As String
Dim i As Integer
tempFolder = "C:\temp"
Set ShellApp = CreateObject("Shell.Application")
Set fol = ShellApp.BrowseForFolder(0, "ポータブル デバイス上のフォルダーを選択してください。", 0, "")
If fol Is Nothing Then
Msgbox "フォルダを選択してください。"
Exit Sub
Else
Print fol.Title
Print fol.Self.Path
End If
selectFolderTitle = fol.Title
selectFolder = fol.Self.Path
Print "selectFolder: " & selectFolder
' CStr() でキャストする必要しないとエラーが発生
Set SrcFol = ShellApp.Namespace(Cstr(tempFolder))
Set copyFol = ShellApp.Namespace(Cstr(selectFolder))
Dim folder As Variant
Dim item As Variant
Dim chkItem As Variant
Dim copyFolder As Variant
Set folder = SrcFol.Items()
Set copyFolder = copyFol.Items()
If copyFolder.Count > 0 Then
For i = 0 To copyFolder.Count - 1
Set chkItem = copyFolder.Item(Cint( i )) ' CInt() でキャストする必要しないと正常に動作しない
If chkItem.IsFolder = True Then
Print "copyフォルダ" & chkItem.Name
Else
Print "copyフォルダ file 有" & chkItem.Name
Exit Sub
End If
Next
End If
For i = 0 To folder.Count - 1
Set item = folder.Item(Cint( i )) ' CInt() でキャストする必要しないと正常に動作しない
strMsg = strMsg & item.Name & " / " & Cstr(item.Size) & " / " & Cstr(item.ModifyDate) & Chr(13) & Chr(10)
Print strMsg
'移動の場合
'copyFol.moveHere item
'コピーの場合
copyFol.copyHere item
Next
Msgbox strMsg
End Sub
Agent(エージェント)が失敗している。
調べると以下のエラーが・・
Agent Manager: Error validating execution rights
アドレス帳を開いて、サーバー文書を開いてアクセス権の再設定
1.サーバー文書を開く。
2.セキュリティタブを開く。
3.「可能なプログラムの制限」のカテゴリにユーザーを追加
・制限なしで署名または実行:
・他のユーザーとして実行するエージェントを署名:
・制限付き LotusScript/Java エージェントの署名または実行:
・シンプルアクションと式エージェントの実行:
・他のユーザーとして実行するスクリプトライブラリを署名:
サーバー再起動後、Agentを起動。
正常に動作。
メールボックスがいっぱいになってきたので、
アーカイブを実施するとエラーが発生。
エラー:「サーバーへのパスが見つかりません。接続のトレースは、[プリファレンス] ダイアログの [トレース] (Notes) または、Trace コマンド (Domino) を使用します。」
メールボックスを開けるし、Pingも通る。なお且つその他のNotesDBも開ける。
調査すると、アーカイブの設定の基本タブの内容の箇所でアーカイブ先がサーバーになっている。
通常、ローカルワークステーションだったはず。
ヘルプを見てLotus Notes クライアントベース(実行先)をローカルにする必要が
あるたみたいが、ローカルに変更してもアーカイブ先がサーバーのままだ。
なぜ?
現状
現在の種類
アーカイブの実行場所:ローカルワークステーション
アーカイブ元のサーバー:XXXXX
アーカイブ先サーバー:ローカル <= ここがおかしい
いろいろ調べるとLotus Notes クライアントベース(実行先)をローカルではなくlocalにすると正常に
アーカイブできた。
これは、おそらくマルチ言語対応している際に、文字だけ変えて中のコードを変えていないのが
原因ではないかとおもう。 これはバグ?
変更内容 アクション - アーカイブ - 設定 - 基本タブ
アプリケーションで実行するアーカイブの種類
・Lotus Notes クライアントベース(実行先): ローカルからlocalに変更
現在の種類
アーカイブの実行場所:ローカルワークステーション
アーカイブ元のサーバー:XXXXX
アーカイブ先:ローカルワークステーション <= ここが変更されていることを確認
正常にアーカイブができた。
Domino Designerを開きます。
プリファレンスの [一般]-[エディター]-[テキスト・エディター] を開き、
「行番号の表示」にチェックをいれます。
デフォルトではオフになっています。