コラボフローのクラウド申請フォームでYahoo! Shopping のデータをLookup 参照する

クラウドワークフローのコラボフローで、 API Server 経由でYahoo! Shopping のデータをLookup 参照する方法

杉本和也
リードエンジニア

最終更新日:2025-05-22

この記事で実現できるYahoo! Shopping 連携のシナリオ

こんにちは!リードエンジニアの杉本です。

コラボフロー(www.collabo-style.co.jp/ )は誰でも簡単に作れるクラウドベースのワークフローサービスです。コラボフローでは、申請フォームにJavaScriptを組み込むことで、外部のREST APIをコールして入力補完や連携を行うことができる機能を提供しています。この記事では、Yahoo! Shopping のデータをCData API Server 経由でコラボフローの申請書入力画面から参照できるようにします。このLookup 参照により、申請フォームの入力を便利にすることができます。

API Server の設定

以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなYahoo! Shopping OData サービスを作成していきましょう。

CData API Server を使い始める

CData API Server は、オンプレミス型・AWS でのホスティングに対応しています。無償トライアルを提供していますので、自社のニーズにフィットするオプションを選択してお試しください。
30日間の無償トライアルへ

まずは製品の概要を知りたい、という方は5分でCData API Server を体験できる製品ツアーをご利用ください。
製品ツアーへ

デプロイ

API Server は内蔵のJetty サーバー上で動作します。Windows をお使いの場合は、スタンドアロンサーバーとして起動するか、IIS に組み込んで使用することが可能です。また、お使いのJava サーブレットコンテナにAPI Server のWAR ファイルを配置して実行することもできます。具体的なセットアップ方法については、こちらのヘルプドキュメントをご覧ください。

Yahoo! Shopping への接続

Salesforce Connect からYahoo! Shopping のデータを操作するには、まずYahoo! Shopping への接続を作成・設定します。

  1. API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。 接続を追加
  2. 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Yahoo! Shopping」を選択します。
  3. 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
    CData コネクタの追加方法はこちら >>
  4. それでは、Yahoo! Shopping への接続設定を行っていきましょう! 接続設定
  5. ユーザー資格情報の接続プロパティを設定せずに接続できます。 接続すると、CData 製品はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、CData 製品にアクセス許可を与えます。CData 製品がOAuth プロセスを完了します。

  6. 接続情報の入力が完了したら、「保存およびテスト」をクリックします。

ユーザー資格情報の接続プロパティを設定せずに接続できます。 接続すると、CData 製品はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、CData 製品にアクセス許可を与えます。CData 製品がOAuth プロセスを完了します。

API Server のユーザー設定

次に、API Server 経由でYahoo! Shopping にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。

  1. 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
  2. 次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
  3. その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。

Yahoo! Shopping 用のAPI エンドポイントの作成

ユーザーを作成したら、Yahoo! Shopping のデータ用のAPI エンドポイントを作成していきます。

  1. まず、「API」ページに移動し、 「 テーブルを追加」をクリックします。
  2. アクセスしたい接続を選択し、次へをクリックします。
  3. 接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。

OData のエンドポイントを取得

以上でYahoo! Shopping への接続を設定してユーザーを作成し、API Server でYahoo! Shopping データのAPI を追加しました。これで、OData 形式のYahoo! Shopping データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。

コラボフローで、Yahoo! Shopping のデータに連携する

コラボフローからAPI Server に連携するためのJavaScript の準備

コラボフロー上で使用するAPI Server との接続用JavaScriptを準備します。

(function () { 'use strict'; // Setting Propeties const AutocompleteSetting = { // Autocomplete target field for Collaboflow InputName: 'fid0', // Collaboflow item detils line number ListRowNumber : 15, // Autocomplete tartget field for API Server ApiListupFiledColumn : 'yahooshopping_column', // Key Column Name for API Server resource ApiListupKeyColumn : 'yahooshopping_keycolumn', // Mapping between Collaboflow field and API Server column Mappings: [ { PartsName: 'fid1', // Collabo flow field name APIName: 'yahooshopping_column1' // API Server column name }, { PartsName: 'fid2', APIName: 'yahooshopping_column2' }, { PartsName: 'fid3', APIName: 'yahooshopping_column3' }, { PartsName: 'fid4', APIName: 'yahooshopping_column4' } ] }; const CDataAPIServerSetting = { // API Server URL ApiServerUrl : 'http://XXXXXX', // API Server Resource Name ApiServerResourceName : 'yahooshopping_table', // API Server Key Headers : { Authorization: 'Basic YOUR_BASIC_AUTHENTICATION' }, // General Properties ParseType : 'json', get BaseUrl() { return CDataAPIServerSetting.ApiServerUrl + '/api.rsc/' + CDataAPIServerSetting.ApiServerResourceName } } let results = []; let records = []; // Set autocomplete processing for target input field collaboflow.events.on('request.input.show', function (data) { for (let index = 1; index < AutocompleteSetting.ListRowNumber; index++) { $('#' + AutocompleteSetting.InputName + '_' + index).autocomplete({ source: AutocompleteDelegete, autoFocus: true, delay: 500, minLength: 2 }); } }); // This function get details from API Server, Then set values at each input fields based on mappings object. collaboflow.events.on('request.input.' + AutocompleteSetting.InputName + '.change', function (eventData) { debugger; let tartgetParts = eventData.parts.tbl_1.value[eventData.row_index - 1]; let keyId = tartgetParts[AutocompleteSetting.InputName].value.split(':')[1\; let record = records.find(x => x[AutocompleteSetting.ApiListupKeyColumn] == keyId); if (!record) return; AutocompleteSetting.Mappings.forEach(x => tartgetParts[x.PartsName].value = ''); AutocompleteSetting.Mappings.forEach(x => tartgetParts[x.PartsName].value = record[x.APIName]); }); function AutocompleteDelegete(req, res) { let topParam = '&$top=10' let queryParam = '$filter=contains(' + AutocompleteSetting.ApiListupFiledColumn + ',\'' + encodeURIComponent(req.term) + '\')'; collaboflow.proxy.get( CDataAPIServerSetting.BaseUrl + '?' + queryParam + topParam, CDataAPIServerSetting.Headers, CDataAPIServerSetting.ParseType).then(function (response) { results = []; records = []; if (response.body.value.length == 0) { results.push('No Results') res(results); return; } records = response.body.value; records.forEach(x => results.push(x[AutocompleteSetting.ApiListupFiledColumn] + ':' + x[AutocompleteSetting.ApiListupKeyColumn])); res(results); }).catch(function (error) { alert(error); }); } })();
  • 「CDataAPIServerSetting」のそれぞれのプロパティには構成したSSH ServerのURLとAPI Serverの認証情報をそれぞれ設定してください。
  • 「AutocompleteSetting」はどのフィールドでオートコンプリートを動作させるか? といった設定と、APIのプロパティとのマッピングを行います。
  • 今回はCollaboflowのデフォルトテンプレートで提供されている「12a.見積書・注文書」で利用しますので、デフォルトでは商品名のフィールドを、ProductテーブルのNameと紐付けて、Autocompleteを行うように構成しています。値が決定されたら、KeyとなるProductIDを元に「型番、標準単価、仕入単価、御提供単価」をそれぞれAPIから取得した値で自動補完するようになっています。

コラボフロー側でJavaScriptを登録

JavaScriptを作成したら、後はコラボフローにアップするだけです。

  • コラボフローにログインし「アプリ設定」→「フォーム設定」に移動します。
  • CollaboFlow
  • フォーム一覧から使用するフォームを選択します。
  • CollaboFlow
  • フォーム編集画面に移動後、「カスタマイズ」タブをクリックし、ファイルをアップロードから作成したJSファイルをアップロードし、保存します。
  • CollaboFlow
  • これでAPI Server 経由でYahoo! Shopping のデータを取得し、自動入力補完する機能がコラボフローの申請フォームに追加できました。

まとめと30日の無償評価版のご案内

このように Yahoo! Shopping 内のデータをコラボフローで利用することができるようになります。CData API Server は、30日の無償評価版があります。是非、お試しいただき、コラボフローからのデータ参照を体感ください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。