シーズ・アイランズ(手順種の島々)

「業務」とは、xoBlos のデータ処理の実行単位であり、ファイルのコピーや、データの変換など、一連の処理(これをxoBlosでは「手順」と呼んでいます)のまとまりです。

xoBlos の「手順」には色々な種類(手順種)がありますが、デザイナの [新しい手順] メニューから、どんな手順種があるか確認してみましょう。

f:id:xoblos:20210731122938p:plain

f:id:xoblos:20210731122953p:plain

f:id:xoblos:20210731123010p:plain

f:id:xoblos:20210731123026p:plain

corabo:タイムアウト値の設定方法

●業務の受付時間(処理が終わるまで待機する制限時間)
http://xoblos.hatenablog.jp/entry/2016/11/19/135920


●サイトのセッションタイム
======================================
設定対象‥‥「<xoBlosHome>\web\corabo\Web.config」
======================================

設定箇所
A)
<authentication mode="Forms">
<forms cookieless="UseCookies" timeout="★" />
</authentication>

B)
<membership defaultProvider="AraelMembershipProvider" userIsOnlineTimeWindow="★">

C)
<!-- timeout は <Forms> の timeout と同じ値にする-->
<sessionState mode="StateServer" timeout="★" />


★部分は、同じ値をいれてください。異なるものをいれましたら、
最小の値が優先されます。分単位の設定になります。(例「30」→30分)
→つまるところ、前節の業務の受付時間が上回るようであれば
 セッション切れのエラーを得て仕舞う訳です。

=======================================

定義ファイルの修正は、メモ帳などのテキストエディタにて実施ください。
保存の際、拡張子には充分ご注意ください。
また対象の定義ファイルは、為念でバックアップを残してください。

xobQuery:データベースとロマンスの時代(1980年代)

xobQuery(ゾブクエリ)は、xoBlosに標準機能として組み込まれている便利な仕組みであり、以下のようなことができます。

  • Excelブック、XMLCSVの入出力・変換を、制御シートの仕組みを使わないで実現。
  • 複数CSVファイルのXMLファイルへの変換など、設定が難しくなりがちな処理を1手順で実現。
  • クエリ(SQL)を記述することによる、データのDB処理を実現。

xobQuery(ゾブクエリ)のこのような利点を見ると、DBMS(データベース管理システム)、複数ユーザーによる共有利用、エンドユーザーとDB技術者との職能分離など、難しく、敷居が高くなりがちなデータベース技術を、もっとデータ処理を簡易に行いたいユーザー向けに敷居を低くしたツールであることがわかります。

 リレーショナルデータベース(RDBは、関係モデルに基づいて設計されたデータベースであり、現代データベース技術の主流をなすものであり、関係(リレーション)は表(table)として表現されます。 ということは、ExcelでVLOOKUP関数やSUMIF関数を駆使してデータ処理を実現してこられた方々などには、違和感なく、すんなりと入っていける世界なのです。データベース言語の標準規格であるSQLも、英語(自然言語)をベースにしていて、極端な話、SELECTとUPDATEの2つの動詞だけでもDB処理を組み立てられます。

さて気を楽にするために、1980年代にタイムトリップしてみましょう。

「実用例で学ぶ R:BASE5000」という本が1986年に刊行されていて、その第1章「データベースとは」より転載します。日本では16ビットパソコン、NEC PC-9800シリーズがベストセラーになっていた時代です(Microsoft Windows 2.0 はまだ上陸していず、表計算ソフト Lotus 1-2-3ジャストシステム一太郎、などがよく使われていた時代)。

  • データベースは、情報、つまりデータの集合です。
  • データベースの多くの情報は、テーブル(表)に格納されています。
  • テーブルは、行とカラムで構成されています。
  • 複数のテーブルはある共通のカラムに基づいて関係づけることができます。
  • データベース中の複数のテーブルで、一対他、マスターファイル・トランザクションファイルの関係を記録・管理するシステムを設計することができます。

 引用文献:「実用例で学ぶ R:BASE5000」1986年、著者:アラン・シンプソン、翻訳者:西脇弘、発行所:啓学出版株式会社

CAL数と登録できるユーザー数

xoBlos コントローラーで登録できるユーザー数は、ご契約(ご購入)いただいたCAL数(Client Access License 数)となります。

ただし、組み込みのシステム管理者ユーザー(sys*****)が1つ必ず存在しますので、ご利用可能なユーザー数は、CAL数+1(100CAL の場合は101名)となります。

 

Excelブック名をデータとして活用する。この情報はどこからやって来たか?

データ収集系の仕組みを構築しているとしましょう。データ収集は、xoBlosの活用法として頻繁に使われる分野です。

例えば、数百から数千の大量のExcelブックが存在し、そこからデータを抽出して、数万行のリスト形式データを作成する業務の場合、出力結果に欲しい項目として、「そのデータの出処、出典、典拠」があります。

つまり、そのデータがどのExcelブックからやって來たかという情報がわかれば、出力データからその大元の典拠ブック(入力ファイル)をトレースすることができるのです。

こんなときは、xoBlos抽出用制御シートの %BookName を使えば簡単です。次の例では、%BookName で取り出したExcelファイル名を、「ブック名」という項目名で出力しています。
出力項目名   ブック名     顧客名  商品名  売上金額
対象セル    %BookName  A2   B2   G2

また、ブック名に命名規則(ネーミングルール)がある場合、ファイル名から分類(カテゴリ)情報を抽出することも効果的です。

   売上計画記入表_第1営業部_user1.xlsx
   売上計画記入表_第1営業部_user2.xlsx
   売上計画記入表_第1営業部_user3.xlsx
   売上計画記入表_第2営業部_user4.xlsx
   売上計画記入表_第3営業部_user5.xlsx

上記のような命名規則がある場合、制御シートの「文字列の切り出し」キーワードを使って所属名とユーザー名を切り出して出力できます。
「文字列の切り出し」9で9文字目からまず切り出し、次に「文字列の切り出し」-6で末尾の拡張子を取り去ります。

前回までのデータに今回データを追加/累積していく

抽出データ(XMLデータ)を累積していくパターン

データの追加/累積の要件がある場合、まずは抽出データ(XMLデータ)を累積していくパターンでできるか考えてみましょう。設定面で最も簡易な方法となる場合が多いのです。

Excel表を生成」手順の [基本データ] では、抽出データ(XMLデータ)をワイルドカード指定したり、複数ファイル指定したりができます。

「抽出データの並べ替え」手順でも、抽出データ(XMLデータ)をマージ(併合)することができます。

Designer:抽出データのマージ
https://xoblos.hatenablog.jp/entry/2017/03/24/114220

前回までのデータは特定のフォルダに保管しておき、ファイル名により今回データとマージ(併合)できる必要があります。

Excelシートに追加していくパターン

ちょっとしたコツがありますが、「オフセット基準セル」キーワードと空行データを使って、Excelシートに追加(追記)していくこともできます。

Designer:累計/累積データの取り扱い
https://xoblos.hatenablog.jp/entry/2018/03/15/173538

制御シートキーワード:オフセット基準セル (4)
https://xoblos.hatenablog.jp/entry/2021/07/15/035506

xbtrun(ゾボットラン):-l ログ出力のための設定ファイル(log_config_file)

これまでの記事では、コンソールに出力されるログを、最も簡易な方法でファイルにリダイレクト出力する方法を解説してきました。もっと様々な要件を満たすログ出力のためには、-l オプションが用意されています。

 ヘルプ(-? オプションで表示)より抜粋

-l log_config_file
ログ出力のための設定ファイル(指定しないとコンソールに出力します)

 

ログ出力のための設定ファイル(log_config_file)のサンプルを次に載せます。

logConfig.xml のような名前(名前は任意)を付けたXMLファイルを、メモ帳やテキストエディタで編集し、この例では文字コードUTF-8で保存してください。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\xxxxx\xxxxx\xxxxx\xbtrun.log" />
      <StaticLogFileName value="true" />
      <appendToFile value="true" />
      <maximumFileSize value="1000KB" />
      <maxSizeRollBackups value="10" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
      <lockingmodel type="log4net.Appender.FileAppender+MinimalLock" />
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>
</configuration>

 

実行コマンドラインは次のようになります。xbtrun.exe のフルパスは省略しています。-f オプションには .xbt ファイルまたは .xob ファイルを指定します。

xbtrun.exe -f sample.xbt -l C:\xxxxx\xxxxx\xxxxx\logConfig.xml

ログは、設定ファイルの中で

    <file value="C:\xxxxx\xxxxx\xxxxx\xbtrun.log" />

で指定された位置に出力されます(ログファイル名は任意です)。

このログ出力のための設定ファイルは、log4net 仕様となっていますので、その他の設定方法に関しては、ネット上の log4net に関する記事を参照してください。

また、xoBlos コントローラーのWebアプリ(corabo)や、xoBlos クライアントの出力ログも log4net 仕様ですので、設定値に関しては以下の記事も参考にしてください。

corabo:ログファイルのサイズ上限と、1日に作成される個数を増やす
https://xoblos.hatenablog.jp/entry/2018/01/08/150253

corabo:ログファイルのログレベル
https://xoblos.hatenablog.jp/entry/2018/01/25/175002