番号付け:グループ単位で明細行に連番を振る

「抽出データの番号付け」手順

デザイナの [新しい手順]-[抽出データを作成する]-[他の抽出データから(番号を振って)] メニューを選びます。

f:id:xoblos:20210814184723p:plain

f:id:xoblos:20210814184742p:plain

入力ファイルと出力結果の例

input.xml の内容

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
  <ROWS>
    <伝票番号>125007</伝票番号>
    <商品名>ノートB5</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125007</伝票番号>
    <商品名>ボールペン黒</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125007</伝票番号>
    <商品名>ボールペン赤</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125008</伝票番号>
    <商品名>定規</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125008</伝票番号>
    <商品名>マーカー</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125009</伝票番号>
    <商品名>鉛筆</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125009</伝票番号>
    <商品名>スケッチブック</商品名>
  </ROWS>
  <ROWS>
    <伝票番号>125009</伝票番号>
    <商品名>消しゴム</商品名>
  </ROWS>
</Root>

xoBlosビューアで表示した input.xml

f:id:xoblos:20210814184846p:plain

xoBlosビューアで表示した output.xml(出力結果)

f:id:xoblos:20210814184911p:plain

番号付け設定ファイル

「番号付け設定ファイル名」で指定する設定ファイル(XMLファイル)です。文字コードUTF-8で保存してください。<項目名> には、「明細行番号」の他に「連番」、「レコード番号」などの任意の名前が付けられます。

番号付け_グループ内連番.xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
  <Number>
    <OutputItem>
     <項目名>明細行番号</項目名>
   <変化監視項目>伝票番号</変化監視項目>
  </OutputItem>
 </Number>
</Root>

「グループ単位で明細行に連番を振る」応用

上記の例では、「伝票番号」ごとに「明細行番号」を振り付けていますが、この「伝票」-「明細」のような2階層でのデータ表現は、ビジネスシーンではよく登場します。

明細行を持つ帳票(見積書、納品書、請求書、受領書など)、プロジェクトごとの原価レコード、日別の売上レコード、などです。

業務要件やシステム要件によっては、グループ単位で連番を振ることにより、実装を効率的に行えることもあります。

例えば、OBC 勘定奉行の会計仕訳データ(CSV)では、伝票番号単位で明細1行目(先頭レコード)には、第1項目(A列)に「*」(アスタリスク)を入れるというデータ仕様があります。この場合、「抽出データの番号付け」手順で「伝票番号」ごとに連番を振り、後続手順で連番「1」のレコードに「*」を付けるという手法がとれます。