別の業務(プロセス)の実行

xoBlos 業務手順種の中には、「別の業務の実行」手順という手順種があります。

メニューからだと [新しい手順]-[定義済みの業務を実行] で作成できます。


「別の業務の実行」手順のオンラインヘルプより抜粋

この手順は別の業務定義ファイルを実行します。

複数の業務で共通の処理があるときなどは、その部分を別の業務定義ファイルで独立させることにより、次のような利点があります。

共通部分に変更が生じたら、共通部分の業務定義だけを修正、テストできる。
それぞれの業務がシンプルになり、メンテナンスしやすくなる。
最初はひとつの業務内にすべての手順を記述して、業務が増えてきた時に共通部分を抜き出して別の業務定義にすることもできます。

(抜粋ここまで)


この記事では、一旦 xoBlos のUIや設定から離れて、親プロセスからサブプロセスを呼び出すことで、 同じビジネスプロセスを複数のビジネスプロセスで再利用できるようになるといった観点や、ひとつのプロセスから別プロセスを呼び出す要件や設計手法にはどんなものがあるか、といった観点で考えてみたいと思います。

  1. 複数のプロセスから、共通のプロセスを実行する。
  2. ひとつのプロセスから、手順の多いプロセスを1手順にまとめて実行する。
  3. ひとつのプロセスから、手順の多いプロセスを繰り返し実行する。
  4. ひとつのプロセスから、共通処理のプロセスを実行後に、後続の各処理(複数プロセス)を実行する。

上述リストの 1. に関しては、下図のような概念イメージとなります。

上述リストの 2. や 3. に関しては、下図のような概念イメージとなります。

上述リストの 4. に関しては、下図のような概念イメージとなります。

次回からは、これらのテーマを膨らませていきたいと思います。

制御シートキーワードをフランス語で考えてみる

制御シートキーワードを英語で考えてみる https://xoblos.hatenablog.jp/entry/2023/02/02/074630

上記の記事の続きです。

2024年7月26日から8月11日まで、第33回オリンピック競技大会がフランスパリを中心に開催されますので、フランス語でも試してみました。

データ部分の左上 En haut à gauche de la partie données
行方向単位行数  Numéro de ligne de l'unité de direction de ligne
列方向単位列数  Unité de direction des colonnes nombre de colonnes

対象範囲の右下  En bas à droite de la zone cible
最下行判断列   Colonne de jugement de la rangée du bas
非空白判断列   Colonne de jugement non vide
非空白判断行   Ligne de jugement non vide

概念の整理にもなります。

(ligne)と(colonne)
複数形の(lignes)と(colonnes)
左上(en haut à gauche)と右下(en bas à droite)
データ部分(partie de données)と対象範囲(plage cible)
行方向(direction des rangées)と列方向(direction des colonnes)
単位行数(numéro de ligne de l'unité)と単位列数(numéro de colonne d'unité)
最下行(rangée du bas)と非空白(non vide)

 

哲学者のデカルトベルクソンサルトル、数学者のポアンカレ、小説家のバルザックモーパッサンプルースト、ヴェルヌなども、こんな言葉を使っていたかもと想像を巡らせます(未検証)。

取得したWebページからExcel表を生成する

Webサービス呼び出し」事始め https://xoblos.hatenablog.jp/entry/2024/01/19/141043

取得したHTMLページをxoBlosで扱えるようにする (1) https://xoblos.hatenablog.jp/entry/2024/01/30/153210

取得したHTMLページをxoBlosで扱えるようにする (2) https://xoblos.hatenablog.jp/entry/2024/02/02/151927

上記の一連の記事の続きです。ここまでで、Webから取得したHTMLファイルを、 xoBlos 用にフラット化したXMLにするところまではできています。

まずは、xoBlosビューア(表のアイコンをクリック)でフラット化したXMLを確認し、 Excel表に出力したいデータのタグ名(項目名)を見つけます。

flat.xml をxoBlosビューアで表示した図

xoBlosビューアでの操作のコツは、タグ名(項目名)部分を要所要所クリックして、表示を最適にすることです。上図の例では、項目名 tda.a_7 に欲しいデータが入っていることがわかりました。

このXMLファイルは、xoBlos で扱えるxoBlos XML形式ですので、後はExcel表を生成」手順で、ひな形シートに入力して表を生成できます。不要な行はうまくスキップさせましょう。

【ひな形シート】

件名はC列に一旦読み込み、不要な改行コードを CLEAN 関数で削除してB列に表示しています。

【生成制御シート】

【入札情報.xlsx:実行結果の生成された入札情報】

取得したHTMLページをxoBlosで扱えるようにする (2)

取得したHTMLページをxoBlosで扱えるようにする (1) https://xoblos.hatenablog.jp/entry/2024/01/30/153210

上記の記事の続きです。
XMLの規格の中には、エンティティ参照(Entity reference)と呼ばれるエスケープ文字の規格があります。簡単に言うと、XMLデータとして記述するときに、&< とは記述できず、&amp; &lt; と記述する必要があるということです。

文字
置き換えテキスト
& &amp;
< &lt;
> &gt;
" &quot;

下図のような「変換(XML→抽出データ)」手順でHTMLファイルを変換しようとすると、文字(値)としての半角 &(アンパサンド)が含まれるとエラーとなります。&エスケープ用の開始記号だからです。

>" は、「変換(XML→抽出データ)」手順ではエラーとしていません。< は、元々のHTMLにデータ(値)として < があると、ブラウザ表示などが破綻するため、単独で < はないものとの前提で動作します。

この半角 & の問題を解決するために、xoBlos Ver 1.8 から追加された、「作業変数へセット」「変数値の出力」手順のテキストファイル対応の機能が使えます。

取得したHTMLファイルを1行ずつ処理し、半角 & を別の文字列(空にして削除、全角エスケープ表記の &amp; など)に変換します。手順の設定に関しては、下記の記事を参考にしてください。

CSVファイルのテキスト一括置換(解決編) https://xoblos.hatenablog.jp/entry/2024/01/29/040801

半角 & を全角 に変換する設定が下図です。

取得したHTMLページをxoBlosで扱えるようにする (1)

Webサービス呼び出し」事始め https://xoblos.hatenablog.jp/entry/2024/01/19/141043

上記の記事で、「Webサービス呼び出し」機能を使用してWebページをHTMLファイルとして保存する方法を記載しました。

今回の記事では、「変換(XML→抽出データ)」機能を使って、HTMLファイルを xoBlos XMLファイルに変換する方法を解説します。「変換(XML→抽出データ)」手順は、xoBlos XML形式以外の他システムで作成されたXMLファイルを、xoBlosで扱えるように データ構造変換を行う手順です。

表データと相性の良いxoBlos XML構造 https://xoblos.hatenablog.jp/entry/2018/11/23/153425

XMLフラット化:外部公開されているXMLデータを活用する https://xoblos.hatenablog.jp/entry/2021/08/13/020135

XHTMLのように、HTMLをXMLで記述したファイル形式もありますが、 HTML形式はブラウザでの表示を最大の目的として設計されているため、 厳密なXML標準にのっとっていないHTMLファイルが多くWebには存在します。

xoBlosの「変換(XML→抽出データ)」機能は、XML形式(XML標準仕様でタグ付けされた形式)のファイルを入力するという前提で動作します。

とはいいながら、Web上の数多くのHTMLファイルは、開始タグと終了タグの対応付けなど、XML規則に準じて作成されているものが多く、この性質をうまく利用して、「変換(XML→抽出データ)」手順で簡易的な変換が実行できるのです。

もちろん、ブラウザでの表示が崩れてしまうような、HTML形式でもタグ付けに妥当性がないファイルには適用できないのですが。

「変換(XML→抽出データ)」手順は、新設するときは [新しい手順]-[抽出データを作成する]-[XMLファイルから] を選んで作成します。

手順の設定はものすごく簡単で、[入力ファイル名][出力ファイル名][出力文字コード] を指定するだけです(あらゆる手順設定の中で最も簡単)。

手順を右クリック→[この手順を実行] で実行してみます。

前段手順で指定したURLから取得した page.html

xoBlos XML形式に変換された flat.xml

多くのWebページは、ここまでの手順設定でxoBlos XMLに変換できるのですが、この例のような入札情報などで、コンテンツデータの中に半角 &(アンド記号)が含まれていた場合は、XML変換時に失敗してしまいます。次のようなケースです。

<td class="text"><a href="/jp/supply/nyuusatsu/ippan/pdf/__icsFiles/afieldfile/2024/01/22/20240122_Emerald.pdf">
Emerald Library & Information Sciences eJournal Collection1式の利用(PDF: 120KB)</a>
</td>

なぜ失敗するのか、その場合の解消手段に関しては、次回の記事に掲載します。

取得したHTMLページをxoBlosで扱えるようにする (2) https://xoblos.hatenablog.jp/entry/2024/02/02/151927

CSVファイルのテキスト一括置換(解決編)

CSVファイルのテキスト一括置換(課題編) https://xoblos.hatenablog.jp/entry/2024/01/26/163018

前回記事の解決編です。

この例でのCSV全行処理:全角スペースを半角スペースに変換」手順は、新設するときは [新しい手順]-[作業変数へセット]-[テキストファイルから] を選びます。

手順の [名前] は任意に好きな名前を付けてください。[処理の動作設定] バー右端の [?](ヘルプ)もクリックしてみてください。

[作業変数定義] [...] をクリックして、[作業変数定義の編集] 画面で設定します。 

この例では、[作業変数の名前] を「LINES」、[マッチ位置の指定] を 「*」にして、[対象:全て、全件(行)] にしています。「*」の意味合いについては、画面下部のガイダンスを参照してください。

[値の編集 Excel式]SUBSTITUTE(A1," "," ") を指定し、Excelの SUBSTITUTE 関数で半角スペースを全角スペースに全置換しています。通常は、このようにA1セルを文字列置換用に使用します。

ここまでで、変数上での文字列置換は完了しました。

ここまで来たら、[新しい手順]-[変数値の出力]-[テキストファイルへ] を選んで「変数→テキスト」手順を作成し、任意のファイル名を付けて作業変数をテキストファイルに出力します。

[テンプレート文字列] は、全行処理で各行1個で賄えるので、「TEXT」のような任意の名前を付けます。穴埋めスロットの感覚です。

[行の末尾の種類] 「改行(CR+LF)」にしましょうWindowsの改行コードです。

実行すると、CSVファイルのテキスト一括置換が実現できます。




CSVファイルのテキスト一括置換(課題編)

CSVファイル(カンマ区切りファイル)はテキストファイルの一種なので、メモ帳やテキストエディタのように、一括置換したい要件ってありますよね。

今回の記事は、xoBlos Ver 1.8 から追加された、「作業変数へセット」「変数値の出力」手順のテキストファイル対応の機能を使って、その要件を実現してみる企画です。

まずはサンプルとしての課題から。

上図のCSVファイルは、空白(スペース)を半角で表現した、文字コードシフトJISのテキストファイルです。このテキストの半角スペースを、全て全角スペースに一括置換したいとします。

Ver 1.7 までのxoBlosだと、CSVXML の手順からExcel表生成に持ち込み、各項目を「文字列編集」機能でそれぞれ全置換してから、XMLに抽出した上でXMLCSVで変換、などのひと手間が必要でした。

Ver 1.8 だと、以下のような2手順で可能です。

予告編

(次の記事に解決編があります)

CSVファイルのテキスト一括置換(解決編) https://xoblos.hatenablog.jp/entry/2024/01/29/040801