ユーザーがExcelにエクスポートできるようにする

管理者は、ユーザーがビジュアライゼーションをExcelにエクスポートできるようにインスタンスを構成します。ビジュアライゼーションからExcelへの書式設定されたデータのエクスポートを参照してください

ノート:

Chromiumブラウザに必要な共有ライブラリをインストールする必要があります。

トピック:

動作保証 - Excelにエクスポートするためのシステム

Oracle Analytics ServerでのExcelへのエクスポートの使用について動作保証されているオペレーティング・システムは次のとおりです。

サポートされているプロセッサ

プロセッサ OSバージョン OS更新レベル Oracle JDKバージョン* 詳細情報
Linux x86-64 Oracle Linux 8 0+ 1.8.0_341+ Oracle Fusion Middlewareインストーラは、JDK 1.8.0_341+をサポートしています。
Microsoft Windows x64 2012, 2016, 2019 SP 0+ 1.8.0_341+ -

* Oracle Analytics Serverでは、Oracle JDKのみがサポートされます。その他のOpenJDKなどはサポートされていません。

NodeJSおよびモジュールのインストール

Excelへのエクスポートを構成する最初のステップは、NodeJSとそのモジュールをインストールすることです。

免責事項: このソリューションでは、お客様がサード・パーティのソフトウェア(NodeJSおよびモジュール)をダウンロードしてインストールする必要があるため、ライセンスへの影響やセキュリティの脆弱性はお客様の責任となります。

ノート:

  1. https://nodejs.org/en/downloadから、オペレーティング・システム用の最新のLTSバージョンのNode.js (バージョン18.18.0以上)をダウンロードしてインストールします。
  2. package.jsonを作成または変更して、次のNPMモジュールを依存関係として含めます:
    NPMモジュール バージョン
    express ^4.17
    jquery-deferred ^0.3.1
    log4js 6.4.1
    html-to-xlsx ^2.2.0
    puppeteer 20.7.4
    Sample package.JSON
    {
       "name": "exportexcel",
       "version": "1.0.0",
       "description": "",
       "dependencies": {
          "express": "^4.17",
          "jquery-deferred": "^0.3.1",
          "log4js": "6.4.1",
          "html-to-xlsx": "^2.2.0",
          "puppeteer": "20.7.4"
       }
    }
    
  3. 必要に応じて、次のコマンドを使用してNPMレジストリおよびプロキシを構成します:
    To set npm registry - npm config set registry <registry url> 
              To set proxy - npm config set proxy http://<username><password>@proxy-server-url>:<port>      
                       npm config set https-proxy http://<username><password>@proxy-server-url>:<port> 
              Note: username and password are optional
  4. npm installを実行して、表にリストされているNPMモジュールをインストールします。

ノード・プロセスの環境変数の設定

NodeJSプロセスを開始する前に、仮想マシン上のNodeJSインストールおよびOracle Analytics Serverプラットフォームを指すように環境変数を構成する必要があります。

  1. ノード・プロセスの環境変数を設定します。
    環境変数 説明 必須かどうか
    NODE_PATH nodejsがノードパッケージを検索する環境変数。これは、node_modulesディレクトリへのパスです。たとえば、

    <Directory where node_modules are installed>/node_modules

    PUPPETEER_EXECUTABLE_PATH Puppeteerがchrome実行可能ファイルを検索する環境変数。これは、chrome実行ファイルへのパスです。Chromiumをダウンロードするデフォルトの場所は、次のとおりです:

    Linux: $HOME/.cache/puppeteer

    Windows: [drive]:\users\<user>\.cache\puppeteer

    chrome実行ファイルへのパスは、次のとおりです:

    Linux: $HOME/.cache/puppeteer/chrome/<version>/chrome-linux64/chrome

    Windows: [drive]:\users\<user>\.cache\puppeteer\chrome\<version>\chrome-win64\chrome.exe

    Chromiumをダウンロードするデフォルトの場所を変更するには、 https://pptr.dev/guides/configurationを確認してください。

    TMP_DIR xlsxファイルが一時的に格納される書込み可能なディレクトリ。設定しない場合、デフォルトはオペレーティング・システムの一時ディレクトリです。 いいえ
    LOG_DIR ログ・ファイルの書込み先となる書込み可能なディレクトリ。設定しない場合、デフォルトはオペレーティング・システムの一時ディレクトリです。 いいえ
    EXCEL_NODE_PORT エクスポートExcelサービスがリスニングするポート。この環境変数が設定されていない場合、サーバーはポート3001で起動します。 いいえ
  2. Oracle Analytics Serverプラットフォームで必要な環境変数を設定します。
    環境変数 説明 必須かどうか
    OAS_FORMATTED_EXPORT_ENABLED Oracle Analytics Serverプラットフォームによって検索され、Excelのエクスポート機能を有効にする環境変数。これを設定すると、NodeJS設定が完了し、ノード・プロセス(excelエクスポート・サービス)が実行されます。使用可能な値 - true/false。

    ノート:

    環境変数の設定が完了したら、システムを再起動する必要があります。

NodeJSプロセスの起動および停止

環境変数を設定したら、管理者としてNodeJSプロセスを起動および停止できます。ユーザーがExcelへのエクスポートを開始する前に、NodeJSプロセスを起動する必要があります。

  1. 次のサンプル・スクリプトを使用して、NodeJSプロセスを起動します:
    Linuxの場合:
    LOG_DIR=<log directory> #Writable log directory
      
    mkdir -p ${LOG_DIR}
      
    "nohup" "node" "bi/modules/oracle.bi.tech/obitech-serverside-exportexcel-bundle.js" > 
    ${LOG_DIR}/biexportexcel.log &
    i=0
    max_attempts=60
    excelAppPID=0
    echo "Export excel app is starting..."
    while [[ i < max_attempts ]];
    do
       pgrep -f "bi/modules/oracle.bi.tech/obitech-serverside-exportexcel-bundle.js"
       if [ $? != 0 ]; then
           i=$((i+1))
           sleep 1
       else
           echo "Export excel app is running"
           exit 0
       fi
    done
    echo "Export excel app failed to start after 60 seconds"
    exit 1
  2. 次のサンプル・スクリプトを使用して、NodeJSプロセスを停止します:
    Linuxの場合:
    excelAppPID=$(pgrep -f "bi/modules/oracle.bi.tech/obitech-serverside-exportexcel-bundle.js")
    if [ $? != 0 ]; then
    excelAppPID=""
    fi
      
    if [ -n "${excelAppPID}" ]; then
    echo "Stopping Export excel App with pid: ${excelAppPID}; killing (SIGTERM) ..."
    kill $excelAppPID
    fi