XSLT:ユースケース(利用シーン)一覧

xoBlos「変換(XSLTで)」手順、いわゆるXSLT変換手順の、ユースケース(利用シーン)を列挙してみます。この一覧は、今後増えていく予定です。

XMLXML 変換

  • 外部XMLデータを xoBlos 形式XMLに変換する
  • xoBlos 形式XMLと、同構造のXMデータ同士の相互変換をする
  • xoBlos 形式XMLを外部XMLデータに変換する

XMLJSON 変換

  • xoBlos 作業変数用 JSON データを作成する
  • xoBlos 形式XMLデータを JSON 形式に変換する

XML → テキスト 変換

  • カンマ、タブ以外のデリミッタで区切りデータを作成する
  • 固定長テキストデータを作成する
  • ラベル印刷用などの差し込みデータを作成する

XML → HTML(XHTML) 変換

  • xoBlos 形式XMLデータから、HTML(XHTML)データへ変換する
  • xoBlos 形式XMLデータから、HTML TABLE(表)データを作成する

HTML(XHTML) → テキスト、XML 変換

  • HTML(XHTML)データからテキスト形式、またはXML形式でデータを抽出する
  • HTML TABLE(表)からテキスト形式、またはXML形式でデータを抽出する

制御シートキーワード:「区分」分類階層が多いとき、6階層を超えるとき

生成用制御シートの「区分」キーワードに関する記事です。

分類項目に指定できる「区分」には、階層の大きい方から数えて、大大大分類、大大分類、大分類、中分類、小分類、詳細行の6種類があります。

よくある質問として「分類が6階層を超えるとき、どのように指定するか?」というのがあります。例えば、

 大大大分類 事業部
 大大分類  部
 大分類   課
 中分類   顧客コード
 小分類   商品区分
 詳細行   商品コード

という分類階層の上に、「年度」という分類項目を指定したいときです。

もし、金額など数値の集計(加算)や、レコードの集約だけが目的の場合は、「取得データの組合せ」キーワードを活用してみてください。

%事業部%_%部%_%課% という組合せで大分類項目の「#担当部門」、%商品区分%_%商品コード% という組合せで小分類項目の「#商品」のように結合します。入力項目名には先頭に # を付けるのと、_(アンダーバー)を入れて結合することを忘れないでください。こうすれば、大大分類項目「年度」が指定できます。

この手法は、分類階層が多いときで、処理速度を改善したいときにも使えます。レコード集計やレコード集約だけの目的であれば、極端な話、全分類項目をアンダーバーで結合し、大分類項目のように組合せれば、処理速度がアップします。

カレントディレクトリ(フォルダ)のフルパスを取得する

業務定義ファイル(.xbt または .xob ファイル)があるフォルダのフルパス名を取得し、変数に格納して利用するサンプルです。

カレントディレクトリ(フォルダ)のフルパスを、「外部アプリの実行」手順で取得します。(出力結果は CD.txt に保存)

カレントディレクトリを返す環境変数 %CD% を、echo コマンドで CD.txt に出力(リダイレクト)しています。

f:id:xoblos:20210906072921p:plain

CD.txt を繰り返し基準ファイル(1回実行)にして、項目変数として利用します。

f:id:xoblos:20210906072955p:plain

この例では、生成用制御シートの「固定値」キーワードの指定値(セル I15)を、制御シート書き換え設定で、項目変数 "Item1" に書き換えています。

f:id:xoblos:20210909150004p:plain

f:id:xoblos:20210906073022p:plain

該当変数を業務の中で何回も使う場合で、毎回繰り返し手順を設定するのが面倒な場合は、項目変数の値を1回だけ作業変数にセットして使用する手法もあります。 $(tmp:"カレントフォルダ") のような形式で使用できます。(次の記事は、業務変数からセットする例ですが、項目変数からも同様にできますので参考にしてください。)

業務変数(入力パラメータ)から作業変数を計算する https://xoblos.hatenablog.jp/entry/2021/09/05/140108

業務変数(入力パラメータ)から作業変数を計算する

業務変数(入力パラメータ)で「年度」を入力

f:id:xoblos:20210905135217p:plain

入力「年度」から作業変数「前年度」「当年度」「翌年度」を計算した結果

f:id:xoblos:20210905135321p:plain

この例では、入力「年度」と作業変数「当年度」は同じ値です。

設定後の手順で、$(tmp:"前年度") のような形式で作業変数を利用できます。ファイル名設定、シート名設定、制御シート書き換え設定などで活用してください。

上図実行前の「代入(JSON→変数)」手順での設定

[新しい手順]-[値の読み込み]-[JSON → 変数] メニューで手順を作成します。

f:id:xoblos:20210905135233p:plain

[読み込むJSON文字列] に、業務変数 $(val:年度) を当て込んでいます。上記の入力例では、置換後に { "年度":"2021" } と設定されます。

[作業変数定義] の「前年度」の設定

[値の編集 Excel式] を #-1 として、前年度を求めています。

f:id:xoblos:20210905140627p:plain

f:id:xoblos:20210906011100p:plain

[作業変数定義] の「当年度」の設定

[値の編集 Excel式] が # となる以外は、「前年度」の設定と同じです。

[作業変数定義] の「翌年度」の設定

[値の編集 Excel式] が #+1 となる以外は、「前年度」の設定と同じです。

Designer:先頭の n 行のみを出力する

レコード件数(行数)が多いデータで試作やテストをしているときに、効率よく素早く処理確認するために、件数を絞って実行したいときがあります。また、TOP 10 などのランキング出力の要件も多そうですね。

手順の組み立て例

  1.  レコードの並べ替えが必要なときは、「抽出データの並べ替え」手順で並べ替えを行う。
  2. 「抽出データの番号付け」手順レコード番号(通し番号)を振る
  3. Excel表を生成」手順「高度選択条件」キーワードで、先頭 n レコードのみを選択出力する。

 

制御シート例(先頭の10行のみを選択出力する例)

f:id:xoblos:20210902071344p:plain

出力結果

f:id:xoblos:20210902071355p:plain

 

お問い合わせ先について

本サイトの記事に関するお問い合わせ先は、以下のようになります。

製品サブスクリプションをご利用(または、製品をご購入)されているお客様

お問い合わせは、xoBlos テクニカルサポートのメール宛先までお寄せください。

製品のご利用を検討中、またはソリューションや製品を探されているお客様

xoBlos(ゾブロス)の製品に関するお問い合わせは、下記のURLまでお寄せください。 https://www.xoblos.com/contact/

制御シートキーワード:「区分」シート固定

Excel表を生成」手順の制御シートで、「区分」キーワードに "シート固定" を使うときのサンプルです。"シート固定" は、シート内で場所が固定されているセルを表し、ヘッダー領域に固定値や、レコード共通データをセットするときなどに使用します。以下に簡単なサンプルを載せます。

入力データとしては、業務変数(入力パラメーター)「作成者」を実行時に入力し、

f:id:xoblos:20210830092822p:plain

次のような抽出データ(XMLデータ)を入力します。このサンプルでは、抽出データの「年度名」と、業務変数(入力パラメーター)「作成者」を、出力帳票のヘッダー領域にセットしています。

f:id:xoblos:20210830092545p:plain

「Temp」ひな形シート

f:id:xoblos:20210830092620p:plain

生成制御シート(「区分」に "シート固定" を指定しています)

f:id:xoblos:20210830092645p:plain

「入力項目名」ですが、入力データにある「年度名」、入力データにない「#控表示」「#作成者」というように、入力データにない項目は、項目名の先頭に "#" を付けます。

制御シートの書き換え設定

業務変数(入力パラメーター)「作成者」の値で、制御シートのセル J15(オレンジ色のセル)を書き換えています。

f:id:xoblos:20210830092729p:plain

 

出力結果

f:id:xoblos:20210830093913p:plain