IM-BIS for Accel Platform Office365 for IM-BIS 連携ガイド 第4版 2023-10-01

6.4. Office 365 ファイルアップロードジョブ

Office 365 ファイルアップロードジョブの仕様について説明します。
../../_images/overview1_highlight_o365_job.png

処理概要

  • Office 365 連携設定情報と、案件終了処理にて登録された Office 365 連携タスク情報をもとに、Office 365 へのファイルアップロード処理を行います。
  • 連携対象となる案件は、完了案件 および 過去案件です。
  • API の実行時や SharePoint REST API の実行時に例外が発生した場合、その時点でジョブの実行を中断します。
    この場合は、後続の Office 365 連携タスクは処理されません。

処理の流れ

Office 365 ファイルアップロードジョブの処理の流れを説明します。
以下の図は、ジョブの処理の流れをおおまかに図示したものです。
../../_images/office365_job_flow.png

それぞれのフェーズでの処理内容を説明します。

Office 365 プロバイダ 有効確認

BIS システムユーザが連携済みの Office 365 プロバイダすべてに対し、SharePoint REST API を使用して疎通確認を行います。

注意

すべてのプロバイダに対して疎通確認が失敗した場合、ジョブの実行を中断します。
疎通確認が失敗する原因としては、以下の可能性が挙げられます。
  • リフレッシュトークンの有効期限が切れている
  • 対象のサイトが削除されている
  • 対象のサイトへのアクセス権限が付与されていない
疎通確認が失敗した場合は、ログメッセージを参照し、対処してください。

Office 365 連携タスク取得

ジョブの処理対象となる Office 365 連携タスクを取得します。
取得の条件はジョブパラメータで指定が可能です。詳細は「 Office 365 ファイルアップロードジョブの設定 」を参照してください。

コラム

Office 365 連携タスクは以下のソート条件で取得し、取得された順序どおりに処理します。

  • システム案件ID の昇順 ( imbis_t_o365_rel_queue.system_matter_id ASC )
  • 連携キューID の昇順 ( imbis_t_o365_rel_queue.relation_queue_id ASC )

Office 365 連携設定情報取得

処理対象の Office 365 連携タスクに関連する Office 365 連携設定情報を取得します。

コラム

案件終了処理実行時点での設定情報ではなく、最新の設定情報を参照して動作します。

注意

Office 365 連携設定情報が削除されたなどの理由により存在しない場合、当該の Office 365 連携タスクの処理を中断し、後続の Office 365 連携タスクの処理に移ります。

案件(連携元)情報取得

Office 365 に連携するための連携元情報を取得します。連携元情報とは、具体的には以下のような情報を指します。
  • IM-FormaDesigner 画面アイテム入力情報
  • IM-FormaDesigner 「ファイルアップロード」アイテムに添付されたファイル情報
  • IM-Workflow 案件情報
  • IM-Workflow 案件プロパティ情報

注意

連携対象の案件情報や添付ファイル情報が削除されたなどの理由により存在しない場合、当該の Office 365 連携タスクの処理を中断し、後続の Office 365 連携タスクの処理に移ります。

Office 365 列 連携情報作成

Office 365 連携管理画面の高度な設定 」にて、「アップロードするファイルの列の設定」を行っている場合のみ実行します。
Office 365 列 への連携情報を作成します。

注意

Office 365 列 への連携情報作成の際に、以下のようなチェックを実施します。
  • Office 365 には存在しない列を連携対象として設定している
    (※ Office 365 連携設定後に Office 365 列を削除した場合に発生します。)
  • 連携元として指定した IM-Workflow の案件プロパティが案件情報のユーザデータに存在しない

  • Office 365 の「1 行テキスト」列に 255 文字を超える値を連携しようとしている

チェックの結果 OK と判断された列は Office 365 列への連携を行います。
チェックの結果 NG と判断された列は Office 365 列への連携を行いません。
この場合は、ログファイルに WARN ログを出力します。
ログファイルを確認し、必要に応じて Office 365 から列の値を更新してください。
チェックの結果がいずれの場合でも、当該の Office 365 連携タスクの処理は継続します。

アップロード先フォルダ作成

Office 365 連携管理画面の高度な設定 」にて、「アップロード先にフォルダを作成する」で「はい」を選択している場合のみ実行します。
Office 365 連携設定の登録 」で指定したアップロード先に、新規フォルダを作成します。
作成するフォルダ名は「案件番号_案件名」です。
なお、アップロード先にすでに対象フォルダが存在する場合は、作成処理は行いません。

コラム

案件番号および案件名に、SharePoint 2013 上のフォルダにおける禁則文字が含まれている場合、それぞれを以下の文字列に置換してフォルダを作成します。
  • 案件番号 : “MATTER_NUMBER”
  • 案件名 : “MATTER_NAME”
Office 365 ファイルアップロードジョブにおける判定対象の禁則文字は次のとおりです。
” # % * : < > ? \ |
フォルダ名に関する制限の詳細については Microsoft 社のサポートサイトを参照してください。

参照画面 PDF ファイル出力

Office 365 連携設定の登録 」にて、「(連携)種類」として「PDF」を選択している場合のみ実行します。
Office 365 にアップロードする参照画面 PDF を出力します。
出力した PDF のファイル名は「案件番号_案件名.pdf」です。
PDFの出力には「wkhtmltopdf」を利用します。

注意

wkhtmltopdf は2023年1月にアーカイブされました。そのため、wkhtmltopdf のセットアップと運用は非推奨となりました。
wkhtmltopdf のインストーラが提供されている環境では、現行どおり wkhtmltopdf を利用する事は可能です。
弊社テクニカルサポートセンターでの問合せ対応も引き続き可能です。
上記の状況で継続利用する以外の場合は、wkhtmltopdf の代わりに IM-PDFDesigner for Accel Platform の利用を検討ください。

コラム

参照画面の PDF は、案件終了時ではなく、Office 365 ファイルアップロードジョブの実行時に都度出力します。
そのため、案件終了時における参照画面ではなく、最新の状態の参照画面を PDF 出力したファイルが Office 365 に連携されます。

コラム

PDF 出力のオプションとして「forma-pdf-config」を適用します。
設定については「IM-FormaDesigner セットアップガイド」の「forma-pdf-config」を参照してください。

コラム

案件番号および案件名に、SharePoint 2013 上のファイルにおける禁則文字が含まれている場合、それぞれを以下の文字列に置換してファイル名を決定します。
  • 案件番号 : “MATTER_NUMBER”
  • 案件名 : “MATTER_NAME”
Office 365 ファイルアップロードジョブにおける判定対象の禁則文字は次のとおりです。
\ / : * ? ” < > | # { { } } % &
ファイル名に関する制限の詳細については Microsoft 社のサポートサイトを参照してください。

注意

参照画面の PDF 出力は、対象の案件の処理者の権限にて実行されます。
そのため、Office 365 ファイルアップロードジョブの実行時に、対象の案件の処理権限者がすべて物理削除されている場合、PDF 出力処理を行うことができません。
この場合は、当該の Office 365 連携タスクの処理を中断し、後続の Office 365 連携タスクの処理に移ります。

注意

当処理中に例外が発生した場合、ジョブの実行を中断します。
そのため、例外発生時に処理対象となっていた Office 365 連携タスクで作成した以下リソースが Office 365 上に残ります。
  • アップロード先フォルダ
必要に応じて Office 365 から操作して削除してください。

ファイルアップロード

Office 365 に、画面アイテム「ファイルアップロード」に添付されたファイル、または参照画面 PDF ファイルをアップロードします。

コラム

アップロード先フォルダに同名のファイルがすでに存在する場合、拡張子の前に (n) を付加してアップロードを行います。
※ n = 1以上の整数

コラム

ファイル名に、SharePoint 2013 上のファイルにおける禁則文字が含まれている場合、以下の文字ファイル名に置換してアップロードを行います。
  • “FILE_NAME”
Office 365 ファイルアップロードジョブにおける判定対象の禁則文字は次のとおりです。
\ / : * ? ” < > | # { { } } % &
ファイル名に関する制限の詳細については Microsoft 社のサポートサイトを参照してください。

注意

当処理中に例外が発生した場合、ジョブの実行を中断します。
そのため、例外発生時に処理対象となっていた Office 365 連携タスクで作成した以下リソースが Office 365 上に残ります。
  • アップロード先フォルダ
必要に応じて Office 365 から操作して削除してください。

Office 365 列 更新

Office 365 連携管理画面の高度な設定 」にて、「アップロードするファイルの列の設定」を行っている場合のみ実行します。
アップロードしたファイルの Office 365 列 を更新します。

コラム

SharePoint REST API を利用し、Office 365 列 を更新します。
SharePoint REST API の実行の結果、Office 365 Web 画面上での制御範囲外の値を登録できたり、送信値と登録値が異なる場合があります。
Office 365 がどのような送信値を許容し、値をどのように Office 365 に登録するかは、Office 365 の仕様によります。
具体例として、以下の挙動を確認しています。
  • Office 365 列「1 行テキスト」の最大文字数の設定を “10” としている場合でも、10 文字を超える値で列を更新することが可能

  • Office 365 列「数値 (1、1.0、100)」および「通貨 ($、、€)」では、数字の丸めが行われる

    送信値 : 12,345,678,901,234,567,890
    登録値 : 12,345,687,901,234,600,000

注意

当処理中に例外が発生した場合、ジョブの実行を中断します。
そのため、例外発生時に処理対象となっていた Office 365 連携タスクで作成した以下リソースが Office 365 上に残ります。
  • アップロード先フォルダ
  • アップロードファイル
必要に応じて Office 365 から操作して削除してください。

Office 365 連携タスク削除

アップロードが完了した Office 365 連携タスク情報を削除します。

ログメッセージ

  • Office 365 ファイルアップロードジョブに関するログメッセージは、次のログファイルに出力されます。

    %CONTEXT_PATH%/WEB-INF/log/product/bis/bis_office365_job.log

コラム

ログメッセージ上では Office 365 連携タスクのことを「キュー」と表記します。

コラム

ジョブ実行の結果が WARN または ERROR の場合は、当ログファイルを参照してください。
なお WARN および ERROR は、以下の状態として定義しています。
  • WARN

    システム例外は発生していないが、なんらかの理由によって設定どおりの連携ができなかったり、ファイルアップロードが行えていない Office 365 連携タスクが存在する状態です。
    WARN の場合は、基本的にはジョブの実行を中断せず後続の処理を継続実行します。
    連携対象の案件情報が削除されているなど、連携のために必要な情報が存在しないために取得できない場合や、列の連携情報の作成時に連携不可な情報がマッピングされている場合などが相当します。
  • ERROR

    システム例外が発生したため、ジョブの実行を中断した状態です。
    データベースアクセスに失敗した場合や、Office 365 への HTTP 通信時にタイムアウトが発生した場合などが相当します。

注意

Office 365 連携 でPDFを出力する場合、javascript-delayオプションが必要となるため、wkhtmltopdfの0.10.0以降をご利用ください。