2017-06-28 28 views
0

Lotus Notesクライアントを使用して、添付ファイル付きの電子メールを送信するJavaプログラムを作成しています。同僚は私にこの仕事を可能にするvbaスクリプトを私に与えました。スクリプトは次のとおりです:nsfファイルへのJava Lotus Notes API/VBAパス

Set Session = CreateObject("Notes.NotesSession") 
UserName = Session.UserName 
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf" 
Set Maildb = Session.GetDatabase("", MailDbName) 

ローカルノートデータベースファイルが正常に開き、電子メールを送信できます。私はNSFファイルにgetDatabaseメソッドに正確なパスを与える場合、それは魔法のように動作

Session s = NotesFactory.createSession(); 
Database database = s.getDatabase("", "PATH TO NSF FILE"); 

それに同じ値を与える:今私は「Notes.jarに」Lotus NotesのAPIとJavaでこれを再現してみましたvbaスクリプトのMailDbNameとして動作しません。私の質問は、どのようにvbaで動作しますが、Javaでは動作しませんか? getDatabaseメソッドに正確なパスを与えることは、自分のもの以外の他のデバイスでは機能しません。だから私はどのようなデバイスでこれを動作させるのですか?

多くの感謝!

+0

動作しない正確なコードを表示してください。私たちに推測させてはいけません。つまり、「vbaスクリプトのMailDbNameと同じ値」をどのように与えているかを正確に示してください。また、VBAスクリプトが実行されているマシンとその実行方法についても教えてください。どのマシンでJavaコードが実行されていて、どのように実行されていますか? –

答えて

1

ローカルのメールファイルの複製がある場合、通常はNotes/Dataディレクトリにあります。これはNotesのルートディレクトリとみなされます。 これが最初の例で開く理由です。 2番目の例では、開こうとしているデータベースがNotes/Dataディレクトリ内のフォルダにあるように聞こえます。

通常、メールデータベースを開く場合は、Javaを使用する場合はDbDirectoryクラスのopenMailDatabaseメソッドを使用し、LotusScriptのNotesDatabaseクラスのOpenMailメソッドを使用します。

+0

ありがとうございます!パラメータとして空の文字列を持つgetDbDirectoryとopenMailDatabaseというセッションを使用すると、完全に機能しました:) – Chrisser

関連する問題