アプリ版:「スタンプのみでお礼する」機能のリリースについて

Notesユーザーが人事異動なので、MailBoxのサーバが変わった場合に、
新着メールのお知らせのPopUpが出ない時があります。
ロケーションのサーバの変更は正しく行っているのですが、直りません。

色々と調べると、 notes.ini の環境変数に問題があるというのが、
教えてGoo から分かりました。
しかし、notes.ini を手作業で修正するのをユーザーにやらすわけには
行かないので、Notes DBを作り、その中で Lotus Script でやりたいと
思っています。

= 処理概要==

Notesの「notes.ini」内の環境変数の中で

 NewMailSeqNum=4180
 NewMailSeqNum49256FB3:0010EA61=4180

という変数がありますが、この2つの変数の値の変更を Lotus Script で 0 に
設定する。

 Call session.SetEnvironmentVar("NewMailSeqNum","0",True)

「NewMailSeqNum」に関しては、上記でいいのですが、
もうひとつ「NewMailSeqNum」の後ろに英数字がある環境変数の変更なのですが、
端末やNotesのユーザーによって?後ろの英数字が違います。

この場合どのように変更したらいいか教えてください。

また、後ろの値を求めるのが難しいのでしたら、「NewMailSeqNum」を notes.ini から
Script で削除する方法を教えてください。

以上、宜しくお願い致します。

A 回答 (1件)

Lotus Script はもう 5年以上も触ってないのですが、ヘルプを読み返してみると「Environments」みたいに環境変数のコレクションを取得することができないんですね。


これが出来るんだったらコレクションの中身をループして名前の先頭 13文字が "NewMailSeqNum" の変数を取得できるのに・・・なんて考えてました。

そこで、VBScript によって Notes.ini を別のファイルに転記する方法を考えてみました。
転記する際に "NewMailSeqNum" で始まる行はスキップします。

適宜手直しして使ってみてください。
ただし自己責任でね。

' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' FileSystemObject を使い、
' Notes.ini の中身を一時ファイルに転記しつつ、
' "NewMailSeqNum" セクションと
' "newMailSeqNum" + レプリカID セクションをスキップする。
' オリジナル Notes.ini のファイル名を yyyymmddhhnnss + ".ini" に変更
' 一時ファイルのファイル名を "Notes.ini" に変更
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Const targetPath = "C:\Lotus\Notes\"
Const orgFileName = "Notes.ini"

' 一時ファイルのファイル名を決定
Dim tmpFileName
tmpFileName = fso.GetTempName

Dim orgIni ' Notes.ini を TextStream で開く
Set orgIni = fso.OpenTextFile(targetPath & orgFileName, 1, False)

Dim newIni ' 一時ファイルを TextStream で開く
Set newIni = fso.OpenTextFile(targetPath & tmpFileName, 2, True)

Dim lineString ' ファイルから読み込む 1行文字列のバッファ

Do Until orgIni.AtEndOfStream
lineString = orgIni.ReadLine
' "NewMailSeqNum" 以外のセクションを転記する
If Left(lineString, 13) <> "NewMailSeqNum" Then
newIni.WriteLine(lineString)
End If
Loop

orgIni.Close
newIni.Close


' オリジナルの Notes.ini を退避させるために、現在日時を取得
dim currentTime
currentTime = Now()

' オリジナル Notes.ini のファイル名を変更
fso.GetFile(targetPath & orgFileName).Name = _
Right("0000" & Year(currentTime), 4) & _
Right("00" & Month(currentTime), 2) & _
Right("00" & Day(currentTime), 2) & _
Right("00" & Hour(currentTime), 2) & _
Right("00" & Minute(currentTime), 2) & _
Right("00" & Second(currentTime), 2) & _
".ini"

' 一時ファイルのファイル名を "Notes.ini" に変更する
fso.GetFile(targetPath & tmpFileName).Name = orgFileName
    • good
    • 0
この回答へのお礼

お忙しいところありがとうございます。

VBScriptでファイルを作成し、NotesDBの文書に
添付ファイルとして貼り付けて、そこからダブル
クリックで実行するようにやったところ旨くいきました。

本当にありがとうございました。

お礼日時:2006/08/23 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!