2021年度第1回合同TFデータ連携分科会

データ連携基盤に向けて（３）
企業間情報交換を容易に実装するために2021年11月5日

1目次
１．データ連携基盤とは２．ビジネスコンポーネント（BC）ライブラリ
プログラム内のデータを文字列に相互変換する仕組み
３．相互変換ソフトウェア
プログラム内のデータを文字列に相互変換する仕組み
４．BDAA変換ソフトウェア
ビジネス文書プロファイル合意形成（BDAP/BDAA）

2

データ連携基盤とは再掲
連携元のプログラム内のデータを連携先のプログラムにコピーする仕組みを簡単に作るソフトウェア群
１） プログラム内のデータを文字列に相互変換する仕組み

データ ⇒ 文字列 ・・・ 文字列 ⇒ データ

２） 文字列をプログラム間で相互伝達する仕組み（通信等となるが、本資料では詳細は割愛）

3

プログラム内のデータを文字列に相互変換する仕組み（１）
再掲
データとは・ 取り敢えず、取引情報
国連CEFACT CCL（Core Component Library）に基づくデータモデル
約2万個の情報項目（国連CEFACTおよびSIPSが定義しているコードリスト、IDリスト一覧も含む）
・ 機能：生成、コピーなど
・ 言語：取り敢えず、JAVA
・ 成果物：ビジネスコンポーネント（BC）ライブラリ4

ビジネスコンポーネント（BC）ライブラリ（１）・ 国連CEFACT CCL（Core Component Library）に基づくデータモデル
約2万個の情報項目（22937個：CCL 21A）からデータモデル化
・ ABIE：クラスに対応（1330個）
・ BBIE：基本型の配列型のインスタンス変数に対応（8434個）
・ ASBIE：クラス型の配列型のインスタンス変数に対応（4457個）
・ uDT：基本型（20個）「コード型、ID型、単位付き数量型、文字列型など」
その他に国連CEFACTおよびSIPSが定義しているコードリスト、IDリスト一覧も含む
・ ビジネスコンポーネント

352個） で構成、（ACCは606個）

ABIEをACC単位に集約したクラス（基本型（20個）を含む

・ ABIEコンポーネント
但し、未着手BCのメソッドを限定してたABIE単位のクラス
・ 集約によりBCのメソッドが多くなったため、間違ったメッソド利用をコンパイル時チェックで検出可能とする（例えば、BCのDocumentは281組×6個のメソッド以上を持つ）
5

ビジネスコンポーネント（BC）ライブラリ（２）・ 機能：
但し、テスト中・ 生成（ new Xxxx() ）・ コピー（ cp( ) ）・ 変数代入（ stXxxx( i, オブジェクト ) stXxxx( オブジェクト ) ）・ 変数参照（ gtXxxx(i) -> オブジェクト gtXxxx() -> オブジェクト ）・ 変数追加（ ptXxxx(i) -> オブジェクト ptXxxx() -> オブジェクト ）既にオブジェクトがあればその値、無ければ生成など
・ 言語：JAVA

6

ビジネスコンポーネント（BC）ライブラリ（３）・開発方針コンパクトに書ける。
Set(stXxxx)を使う場合

通常の場合

AccessContolList acl = new AccessContolList().stAccessRightCode(new Code().setValue(“1”).setlistID(“10001”)).stTypeCode(new Code().
.setValue(“99”).setlistID(“20001”)).stIncludedLaboratoryObservationParty(new Party().
.stName(new Text().setValue(“名前”)).stCustomerID(new ID()
.setValue(“A0001”)));

AccessContolList acl = new AccessContolList();Code c1 = new Code();c1.setValue(“1”);c1.setlistID(“10001”);
acl.setAccessRightCode(c);Code c2 = new Code();c2.setValue(“99”);
c2.setlistID(“20001”);
acl.setTypeCode(new Code().
Party p = new Party();
Text tx = new Text();
tx.setValue(“名前”);
p. setName(tx);
ID id = new ID();
id.setValue(“A0001”);
p.setCustomerID(id);acl.setIncludedLaboratoryObservationParty(p);7ビジネスコンポーネント（BC）ライブラリ（４）・開発方針
コンパクトに書ける。
Put(ptXxxx)を使う場合

通常の場合

AccessContolList acl = new AccessContolList()

AccessContolList acl = new AccessContolList();Code c1 = new Code();c1.setValue(“1”);c1.setlistID(“10001”);
acl.setAccessRightCode(c);Code c2 = new Code();c2.setValue(“99”);
c2.setlistID(“20001”);
acl.setTypeCode(new Code().
Party p = new Party();
Text tx = new Text();
tx.setValue(“名前”);
p. setName(tx);
ID id = new ID();
id.setValue(“A0001”);
p.setCustomerID(id);acl.setIncludedLaboratoryObservationParty(p);acl.ptAccessRightCode().setValue(“1”).setlistID(“10001”)
acl.ptTypeCode().setValue(“99”).setlistID(“20001”))
acl.ptIncludedLaboratoryObservationParty().ptName().setValue(“名前”)
acl.ptIncludedLaboratoryObservationParty().ptCustomerID().setValue(“A0001”)));

8

プログラム内のデータを文字列に相互変換する仕組み（２）
再掲
文字列とは・ 取り敢えず、XMLメッセージ （次にJSONメッセージ）
・ 固定長メッセージ、CSVメッセージは、今後の課題
取引情報的には・ 国連CEFACTメッセージ（CCBDA、NDRに従ったXMLメッセージ）
・ 各種EDIのXMLメッセージ（選定中）9プログラム内のデータを文字列に相互変換する仕組み（３）再掲
相互変換とはBC（データ） ⇔ メッセージ（文字列）相互変換の課題
・ メッセージからBCへの変換：メッセージ内の要素に対応するBC内の要素が無い
CCLに新規追加（CCLの更新は年2回、追加は原則受理されている）
・ BCからメッセージへの変換： BC内の要素に対応するメッセージ内の要素が無い
メッセージに無い要素は当該取引では使用しないため問題では無いが、使えるBCの要素を確認する機能（Validation）が必要

10

プログラム内のデータを文字列に相互変換する仕組み（４）再掲
相互変換の成果物
・ 国連CEFACTメッセージ ⇔ BC
汎用国連CEFACTメッセージマッピングソフトウェア
各国連CEFACTメッセージに対応するValidationソフトウェア
・ 各種EDIのXMLメッセージ ⇔ BC
メッセージ定義から生成したマッピングソフトウェア、Validationソフトウェア（メッセージ定義は、XMLスキーマ生成用を流用予定）

検証方法
・ BC、マッピングソフトを使ったプログラムを作成し、評価する。
（ISO20022導入ガイドの商流情報処理に適応予定）

11相互変換ソフトウェア（１）・ 国連CEFACTメッセージ ⇔ BC
・汎用国連CEFACTメッセージマッピングソフトウェア
・各国連CEFACTメッセージに対応するValidationソフトウェア
国連CEFACTおよびSIPSに登録されているメッセージ
unmasharller() XML -> オブジェクト（木構造型）
CCLに登録されていない要素は、XMLデータとしてBC内に格納
mashaller() オブジェクト（木構造型） -> XML
CCLに登録されている要素だけをXML化
validate()
deep/shallow 配下のオブジェクトも検証/そのオブジェクトのみ検証
upper/lower/restricted 上限数制約/下限数制約/制限制約
MAはXML名前空間名の検証
gMAクラス
汎用国連CEFACTメッセージマッピング
メッセージMAクラス（メッセージのルートタグ名のクラス）
国連CEFACTおよびSIPSに登録されているメッセージマッピング
12相互変換ソフトウェア（２）再掲
・ 各種EDIのXMLメッセージ ⇔ BC
メッセージ定義から生成したマッピングソフトウェア
Validationソフトウェア（メッセージ定義は、XMLスキーマ生成用を流用予定）

13

プログラム内のデータを文字列に相互変換する仕組み（５）【参考】SIPSの新たな取り組み(データ連携基盤)

成果物（予定）の構成
メッセージ
マッピング定義

コア構成要素ライブラリ

マッピングソフト生成ツール

メッセージ定義
国連CEFACT XMLメッセージ
各種EDIメッセージXMLJSONCSV
固定長BC化ツール

マッピング
ソフト

ビジネスコンポーネント（BC）ライブラリ
Java
Javascrip…

Java
Javascrip
…
拡張予定

拡張予定

成果物の配布方法
・ 使用制限の無いオープンソース
・ 当面はSIPS内で配布
・ Zipファイル、Gitlab/Github
配布方法は検討中のため今後変更となることがあります。

拡張予定プログラム内のデータを文字列に相互変換する仕組み（６）再掲
メッセージ間の相互変換の課題
国連CEFACTメッセージ ⇔ BC ・・・ BC ⇔ 各種EDIメッセージ

交換可能範囲
マッピング
マッピング

メッセージ

メッセージ
BCオブジェクト

ビジネス文書プロファイル合意形成( BDAP/BDAA )で交換可能範囲を拡張
・ BDAAマッピングソフトウェアを相互変換の成果物とする予定

15

BDAA変換ソフトウェア
再掲

マッピング

メッセージから交換可能範囲のBCへのマッピング
メッセージ
BCオブジェクト

マッピング

交換可能範囲のBCからメッセージへのマッピング

メッセージ
BCオブジェクト

16

参考

ビジネス文書プロファイル合意形成について
Business Document Assembly Profile/Business Document Assembly Agreement( BDAP/BDAA )2020年8月3日

17

標準メッセージの課題

参考・ 国連CEFACTの標準メッセージ開発状況
１） CCLの拡充によって標準メッセージを構成する情報項目が充足してきた。
２） 情報項目が増大したことで、標準メッセージが大きくなり扱い難くなった。
３） CCBDA（Core Component Business Document Assembly）の手法で制限を掛け、扱い易い大きさのメッセージを開発できるようになった。
・ 標準メッセージの状況- 標準メッセージは、業界等の企業群からの要望（必要な情報項目）をまとめられて作られている。（各企業から見ると大きい）- 各企業から見ると使わない情報項目が生じてしまい、企業間で使う情報項目の調整が必要となっている。（手間がかかる。）- 各企業がシステム開発する際に全ての情報項目を実装しなくなり易く、相互運用性が劣化する。
・ 課題- 企業間で情報項目の使い方の調整に手間がかかる。
- 各企業のシステムに実装される情報項目に差異が生じ易い。
18

基本方針

参考

・ 対策
- CCBDA手法を使い、各企業が必要十分な情報項目だけのメッセージにする。
- 送信企業と受信企業の両方が使える情報項目だけで業務を行う。
SenderAlwaysSending
BIE

Standard
mandatory
Mismatching

ReceiverWantedreceiving
BIE

送信企業

必須
情報項目

必須
情報項目

受信企業
任意
情報項目

任意
情報項目
不可
情報項目

不可
情報項目

Receivable
BIE

Sendable
BIE

Mismatching
Unhandled
BIE
NonSending
BIE
Business Document
Assembly Profile

optional
Business Document
Assembly Profile

合意案- 元のメッセージ構造が同じであるため、共通な情報項目が明確に抽出可能
19

基本方針

参考・ 対策の課題
１） 送信企業が送りたいが、受信企業が受け取れない情報項目により出来ない業務パターンが生じる。（納入時間の指定など特別な依頼など）
２） 受信企業が必ず受け取りたい情報項目が受け取れないことで、出来ない業務パターンが生じる。（贈答用品でのしを付けるかどうかなど）
３） 送信企業が送信出来ない受信企業の任意項目のデフォールトが送信企業の希望と異なることで出来ない業務パターンが生じる。（標準の色が都合が悪いなど）
送信企業

必須
情報項目

必須情報項目

受信企業
任意
情報項目

任意情報項目

２

不可
情報項目

不可
情報項目

１

２
３

１
None

20

拡張方針

参考・ 拡張対策
１） 受信企業が受け取れない情報項目を受け取れる情報項目にマッピングする。
（Aggregate Mapping）
２-１） 送信企業の任意を必須に変更する。（To mandate）
２-２） 送信企業が希望する値を常にマッピングする。（Default Mapping）
３） 送信企業と異なる情報項目に希望する値をマッピングする。
（Default Mapping）
送信企業

必須情報項目

必須
情報項目

受信企業
任意情報項目

任意情報項目２-１

不可情報項目

不可情報項目

１

２-２
３

１
None

21

BDAP/BDAAソフトウェア

再掲

・ BDAA算出ソフトウェア
２つ（送信側と受信側）のBDAPからBDAAを算出する
・ BDAP/BDAAエディタ
BDAP/BDAAを作成したり、編集する・ BDAA変換ソフトウェア
BDAAを基づいてメッセージとBCを相互変換する

22

活動スケジュール
2Q
TF

第1回

3Q

4Q

第2回

第3回

（分科会）

BCプロト作成
BC基本設計BC生成ツール作成
BCプロト作成
BC生成ツール作成・改修

マッピングソフトプロト作成
マッピング基本設計

マッピングソフト生成ツール作成
マッピングソフトプロト作成
マッピングソフト生成ツール作成・改修

BDAAマッピングプロト作成

BDAAマッピング生成ツール作成
BDAP/BDAA検討

BDAA/BDAA検討

BDAAマッピングプロト作成
BDAAマッピング生成ツール作成・改修

23