CRMシステムとの連携

   表2の1のCRMシステムへの注文情報更新処理について詳しく見ていく。CRMシステムとの連携処理が追加されたことにより、従来のビジネスプロセスにはCRMシステムへの連携処理を行う"Invoke"アクティビティーが追加される(図2)。

CRMシステムへの注文情報更新処理
図2:CRMシステムへの注文情報更新処理

   この追加された"Invoke"アクティビティーからCRMシステムが提供する注文情報更新処理用のサービス呼び出しを行うことになる。

   サービス呼び出しの設計ではビジネスプロセスから直接CRMシステムが提供しているインターフェースを呼び出しても構わないが、ビジネスプロセスを より柔軟にするためには連携するシステム固有のデータ構造やシグニチャがビジネスプロセス自身には含まれないほうが都合がよい。

   ビジネスプロセスは一般的なインターフェースに対して処理を行い、システム固有の具体的なインターフェースへのマッピングはビジネスプロセスの外部 で実装するようにしておけば、プロセスの汎用性が高くなり、同種のデータを扱う多くのシステムとの連携や連携対象システムの変更などが容易になる。
 

サービス呼び出しの設計
図3:サービス呼び出しの設計

データ構造とマッピング

そこで、今回の例ではもともと注文情報の入力に使用していたデータ構造を一般的なものと想定し、CRMシステムが提供するインターフェースで定義されているデータ構造へのマッピングをビジネスプロセスの外部で実装することを考える。

ビジネスプロセスで使用している一般的なデータ構造、およびCRMシステムが提供するインターフェースで定義されているデータ構造は次のとおりである。

データ構造名項目型説明
OrderorderNumberint注文番号
orderedDatedate注文日
deliveredDatedate配送日
customerCustomer顧客情報
orderedProductOrderedProduct (配列)注文商品情報
Customeridintお客様番号
namestring名前
addressstring住所
mailAddressstringメールアドレス
OrderedProductidint商品番号
namestring名前
pricestring価格
quantitystring注文数
表3:ビジネスプロセス内でのデータ構造

データ構造名項目型説明
CRMCustomercustIDint顧客ID
custNameString顧客名
custAddressString顧客住所
custEmailStringメールアドレス
orderInfoCRMOrderInfo注文情報
CRMOrderInfoorderIDint注文番号
orderDatedate注文日
orderProductCRMProduct商品
orderStatusString注文状況
CRMProductproductIDint商品番号
quantityint注文数
表4:CRMシステムが要求するデータ構造

このとき、マッピングの仕様は以下のようになる。なお、表5ではOrderオブジェクトのorderNumber項目であれば Order.orderNumber、のようにオブジェクトとその項目をドットでつなげてどのオブジェクトのどの項目であるかをあらわしている。

マッピング元マッピング先備考
Order.orderNumberCRMOrderInfo.orderID
Order.orderedDateCRMOrderInfo.orderDate
N/ACRMOrderInfo.orderStatusステータスを設定
Customer.idCRMCustomer.custID
Customer.nameCustomer.name
Customer.addressCRMCustomer.custAddress
Customer.mailAddressCRMCustomer.custEmail
OrderedProduct.idCRMProduct.productID
OrderedProduct.quantityCRMProduct.quantity
表5:マッピング仕様

従って、注文情報更新処理では、表3に定義されるデータを用いてビジネスプロセス内からサービスの呼び出しを行い、外部のマッピング処理により表5の仕様に基づいて表4のデータへ変換を行う。その後、変換されたデータをCRMシステムへ渡すことにより処理を実現することになる。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30