帳票クリエータ for .NET WebService クラウド環境サンプル

はじめに

帳票クリエータのWebServiceを使用して、帳票を作成する方法を解説します。

帳票クリエータの使い方、フォームファイルや設定ファイルの作成方法等に関しては、マニュアル・その他資料を参考にしてください。
また、ここではJavaScriptとjQueryを使用して説明しています。

動作環境の作成

ここではクラウド環境としてMicrosoft Azureを利用して動作させています。
帳票クリエータWebServiceを動作させるためには、以下の環境が必要です。

  • .NET Framework 3.5 以降
  • Microsoft Internet Information Services (IIS)
  • ASP.NET

IISはパイプラインモードがクラシック、IIS6互換が有効になっている必要があります。
Azure上にこれらの環境を構築する方法は、開発者ブログにて紹介していますので、そちらを参考にしてください。

インストールの詳細はデベロッパーズマニュアルを参照してください。

設定ファイルの配置と調整

WebServiceのインストールが完了したら、次は帳票クリエータの実行に必要なファイルをサーバ上に配置します。
このサンプルではデベロッパーズマニュアルの単票出力サンプルからダウンロードできるDcHokenSample.zipを解凍し、Cドライブ直下に配置しています。

フォルダ構成

次に設定ファイル(HokenSample.dcx)をマッピングツールで開きパスの設定を行います。
マッピングツールのツールバーから「設定ファイルプロパティ」を選択し、「パス」のタブを選択します。
帳票出力先のドキュメントファイルパスを外部から参照しやすいクリエータWebServiceのフォルダである「C:\inetpub\wwwroot\DCSample」へ、
一時ファイルパスをIISの権限で参照できる場所、今回は「C:\DcHokenSample」へ、
ソースファイルパスをソースファイル(HokenSample.csv)を配置した「C:\DcHokenSample」へと設定しています。

マッピングツール - パス設定

これでサーバ側の準備は完了です。

サーバへのリクエストの作成

帳票クリエータの WebService の CreateDocument を実行して帳票を作成するリクエストを、以下のように JavaScript で作成します。

なお、以下の JavaScript では説明を簡略化するため、configuration にサーバ上の絶対パスを指定しています。
システム構築時には、初期化パラメータなどを利用して、絶対パスが閲覧できないようにされることをお勧めします

// 動作しているクラウドサーバのURLです。
var serverUrl = "https://demo.hos.co.jp/";
// 動作している帳票クリエータWebサービスの名前です。
var serviceUrl = "DCWebService/";

/**
* ドキュメントファイルを作成する。
*/
function createDocument() {
  // 出力形式をHOS独自形式とPDFから選択します。
  var fileType = null;
  if ($("#file-type-binary").is(":checked")) {
    fileType = "binary";
  } else {
    fileType = "pdf";
  }

  return $.ajax({
    type : "GET",
    // CreateDocumentを指定します。
    url : serverUrl + serviceUrl + "Service.aspx/CreateDocument",
    data : {
      // configurationにはサーバ上に配置した設定ファイルの絶対パスを指定します。
      "configuration" : "C:/DcHokenSample/HokenSample.dcx",
      "fileType" : fileType,
      "callback" : "getJsonp"
    },
    dataType : "jsonp",
    jsonpCallback : "getJsonp",
    success : function(data, type) {
      // CreateDocumentでは作成した帳票のサーバ上でのパスが戻ってきます。
      // ここでは設定ファイルのドキュメントファイルパスに指定したパス+ファイル名が戻ってきます。
      var fullPath = data.DocumentFileNameList[0];
      // 戻ってきたパスからファイル名を取り出して、webから見えるurlへと変換します。
      var fileName = fullPath.replace(/^.*[\\\/]/, "");
      var outputDocUrl = serverUrl + serviceUrl + fileName;

      $("#doc-url").attr("href", outputDocUrl).attr("download", fileName).text(outputDocUrl);
    },
    error : function(xhr, status, err) {
      alert(xhr.status + ": " + xhr.statusText + "\n" + $(xhr.responseXML).text());
    }
  });
}

このコードで動作するサンプルを下に用意してあります。
(このページの実際のソースは、コメントを省略し、一部の表記を変更しております。)

実際の動作サンプル

出力形式