ページビューの合計

2018年8月20日月曜日

#Notes 文書からファイルサーバーの特定ファイルを開く

This time I will get the value of the field in the NotesForm and set up to open the PDF file stored in the file server that matches that value.

みなさま、こんにちは!!
さて最近は別の作業でなかなかブログを書くことができず、申し訳ありません。
当ブログも2016年7月の開設から2年が経過しました。
振り返ると、今回の記事がちょうど100本目になります。
・・・まだまだですね(汗

今回は以前から実現したいと思いつつ、実際の切り替えが年度末である必要があり、のんびりしていたのですが、気付くと今年も半分過ぎようとしており、あわてて手がけた内容になります。

まず最終目的としては、Notesの文書内にあるフィールド(今回は「受注NO」というフィールド)の値を取得して、ファイルサーバーにある"受注NO".pdfを開きたいというものになります。
現在運用しているアプリケーションでは、リッチテキストフィールドに"受注NO".pdfを添付ファイルとして扱っています。
画面としては、下記のようなものになります。


ふたつ添付ファイルがありますが、今回は右側の「受領書」欄のみを対象とします。

もちろんこの状態でも問題ないのですが、Notesのアプリケーションサイズを抑えたいのもひとつなのですが、いちいち添付ファイルを貼り付ける手間を省きたいという点が一番の目的になります。

なお少し余談になりますが、スキャンした伝票の名前を"受注NO".pdfに変更する過程については、伝票のバーコードを複合機でスキャンする際に処理させており、自動で所定のフォルダ内に保存するという処理で完結しております。

まずは受領書欄にボタンを追加し、ファイル名を指定してpdfを開くことができるか、ためしてみます。


ボタンには直接ファイルパスを指定して以下の式を設定しました(テストデータとして、受注NO、"49396550"というものを指定しています)。
※半角¥マークはバックスラッシュに変換されますので、意図的に全角で記載しております。
※弊社ではファイルサーバーをクライアントのXドライブにマッピングしておりますので、このような式になりますが、直接サーバーを指定する場合は、"¥¥¥サーバー名¥¥ファイルパス"で指定してください。
※"¥"は""でエスケープする必要がありますので、ご注意ください。
・・・恥ずかしながら、今回も私はつまづいておりました(大汗



@Command([Execute];"X:¥¥globalscan¥¥test¥¥49396550.pdf")



それではNotesクライアントからPDFが起動できるか、確認してみましょう。


!!

しばらく確認して気付きました。
デザイナーをインストールしている端末を作り直したため、AdobeReaderがインストールされてませんでした(汗

ということで、インストールして無事指定したPDFが開くことを確認しております。

このままではすべての文書から同じPDFを読み込んでしまいますので、フォーム内の"受注NO"を取得して、それぞれ特定のPDFファイルを開くことができるように変更します。

それでは先ほど設定したボタンの式を、以下に書き換えます。


NO:=juno;
@Command([Execute];"X:¥¥globalscan¥¥test¥¥"+NO+".pdf)"


フォームの受注NOフィールドである"juno"を変数"NO"に取得して、呼び出すファイルパスに組み込んだだけのものになります。


それではテストとして、先ほどの文書をコピーして、受注NOを49396550からダミーである"12345678"に変更してみます。


あわせてファイルサーバー側にもダミーのPDFを準備して、ファイル名を"12345678.pdf"にしておきます。


それではボタンを押して、正しく指定したPDFファイルが開くか確認します。


少しわかりにくいかと思いますが、AdobeReaderが起動し、"12345678.pdf"が開いたことが確認できました。


@関数のみで解決する、実に簡単な改善ではありますが、実務担当者の負担は大きく下がることになるようです。

引き続き、ユーザー視点での思いつきや閃きがあれば、記事にさせて頂きます。

0 件のコメント:

コメントを投稿