カスタム連携を設定する
1️⃣はじめに
カスタム連携とは
カスタム連携では、デクセコが連携に対応していないSaaSや、ユーザー企業様社内にあるシステムやファイルとの各種連携を可能にします
現在カスタム連携に対応しているのは以下の連携です
- アカウント連携
- メンバーマスタ連携
カスタム連携では、ユーザー様が任意のホストマシンで「ランナー」を実行し、そのランナーで実行するスクリプトコードをデクセコから登録します。スクリプトコードはランナー上で実行されるため、ランナーを起動しているホストマシンから到達できるネットワーク内に連携したいシステムがあれば、アカウント連携をすることが可能です。
カスタム連携を利用するには、TypeScriptやDenoの知識が必要です。
システム構成イメージ

2️⃣カスタム連携を利用するには
1. ランナーを実行するホストマシンの準備
ランナーの実行には、Denoのインストールが必要です。Denoのインストール方法から各OSに合ったインストール方法を選択し、インストールをしてください。以下はWindowsのPowershellを使ったインストールコマンドの例です。
WindowsのPowershellを使ったインストール例
irm https://deno.land/install.ps1 | iexDenoのインストールが終わったら、以下のコマンドを実行しDenoコマンドが実行できるかを確認してください
$ deno --version
deno 1.44.4 (release, x86_64-pc-windows-msvc)
v8 12.6.228.9
typescript 5.4.52. ランナーの実行
予めデクセコ上からAPIキーを発行してください(参考: APIを利用する)
ホストマシンで、以下のコマンドを実行します
deno run --reload -A https://raw.githubusercontent.com/oro-creation/dxeco-runner-v2/main/cli.ts --api-key "{APIキー}" --name "{任意のランナー名}"カスタム連携のテスト時は以下のオプションを付けてランナーを起動することをおすすめします(カスタム連携の実行開始が速くなり、テストのトライ&エラーがし易くなります)
--interval=5000これで、ランナーが起動し、デクセコにランナーが登録されます
ランナーのソースコードはGitHubで公開をしております
カスタム連携は、常に指定したランナーで実行されます。ランナーは常時起動するようにしてください。ランナーが起動していない場合、連携は「ランナーがアクティブではありません」といった内容で失敗します
3. カスタム連携の設定
デクセコ側で、カスタム連携を設定します。
デクセコが標準で連携に対応していない場合、カスタム連携を設定できます。
カスタム連携の設定画面
アカウント連携の場合
「契約SaaS詳細」もしくは「アカウント」画面から設定できます。
メンバーマスタ連携の場合
メニュー> Settings > メンバーマスタ連携の画面から、「カスタム連携」より設定できます。

IT資産マスタ連携の場合
メニュー > Settings > IT資産マスタ連携の画面から「カスタム連携により設定できます」
カスタムIT資産マスタ連携は、カスタム連携設定時に、通常のIT資産マスタ連携同様に連携対象のIT資産マスタを選択する必要があります

カスタム連携に使用するランナーとスクリプトコードの設定について
いずれの連携種別においても、カスタム連携設定画面では、以下のような画面が表示されます。
ここで、スクリプトコードを実行するランナーと、スクリプトコードを記述します。
このスクリプトコードが返したデータが実際にデクセコ上のデータとして取り込まれます(例えばアカウント連携の場合、アカウント情報を返すことで、デクセコ内にアカウント情報として取り込みがされます)
右部にある「サンプルコードから選択」で、サンプルとなるコードを引用することも可能です

ランナーを選択します。先程のランナーの起動が成功している場合、ここにランナー名の一覧が表示されます(表示されない場合、もう一度ランナーの起動を試し、右側のリロードボタンをクリックしてください)

デフォルトのサンプルコードが初期値で記述されているため、そのまま「テスト実行」をクリックします。しばらくすると、サンプルコードがランナー上で実行され、結果が表示されます。

ランナー側でも、実行されていることがログから確認できます

何らかのエラーが発生した場合、以下のようにエラー内容が表示されます

以下は現在提供しているサンプルコードの一覧です
サンプルコード名 | 概要 |
デフォルト | 固定のデータを返すサンプルコード |
kyを使ったREST APIの呼び出し(dxeco) | kyライブラリを使い、REST APIを呼び出すサンプルです。例として、デクセコAPIからメンバー一覧を取得します。デクセコ以外のAPIを呼び出すように修正するなど、適宜書き換えをしてください |
CSVファイルからの取得 | CSVライブラリを使い、ホストマシン上またはホストマシンから到達できるネットワーク上にあるCSVファイルを読み込み、アカウント一覧を取得します |
astralを使ったWebスクレイピング(Figma) | astralを使い、Webスクレイピングを使ったログインと、アカウント一覧の取得を行います。コードはFigmaを参考にした例です |
playwrightを使ったWebスクレイピング(Figma) | playwrightを使い、Webスクレイピングを使ったログインと、アカウント一覧の取得を行います。コードはFigmaを参考にした例です |
スクリプトコードからデクセコに送ることのできるデータについて
以下は、各連携で実装するスクリプトコードが返すべきデータのフィールドの説明です
カスタムアカウント連携
フィールド名 | 型 | 説明 |
identifier | string | 連携先SaaSの識別子情報(ID情報など) |
name | string | アカウント名 |
email (必須) | string | アカウントのメールアドレス |
subemails | string[] | アカウントのサブメールアドレス一覧 |
image | string | アカウントの画像URL |
type
| ‘Default’ | ‘NoCharge’ | アカウントの種類 (※デフォルト値: Default)
Default : 通常のアカウント
NoCharge: 無課金アカウント |
lastActiveAt | string | 最終アクティブ日時 ※タイムゾーン付きのISO 8601形式
例: "2023-01-01T12:00:00+09:00" |
tagNames | string[] | タグ名一覧(権限情報など) |
カスタムメンバーマスタ連携
フィールド名 | 型 | 説明 |
identifier | string | 連携先SaaSの識別子情報(ID情報など) |
code | string | 社員番号 |
email (必須) | string | メールアドレス |
name | string | 名前 |
department | string | 部署 |
position | string | 役職 |
subemails | string[] | サブメールアドレス一覧 |
image | string | 画像 |
values | Record<string, string | number | null>
(※カスタムフィールドのコードと値のRecord) | カスタムフィールド値 |
カスタムIT資産マスタ連携
フィールド名 | 型 | 説明 |
fieldMdmToolDeviceId | string | IT資産の識別に使うフィールドコード
※このフィールド同士が一致するIT資産が存在する場合は、そのIT資産の値を上書きします。存在しない場合は新規で作成します |
fields | ReadonlyArray<AdaptorCustomField> | 連携するフィールド一覧 |
assets | ReadonlyArray<AdaptorAsset> | 連携するIT資産一覧
※IT資産のフィールド値のうち、連携されるのはfieldsに含まれるフィールドのみとなります
型情報の詳細は@oro-creation/dxeco-runner-v2のtypes.tsをご覧ください |
カスタム連携の作成が完了したら、保存をクリックします。
同期が実行され、データが取り込まれます

カスタム連携を修正したい場合、同じくツールチップから「カスタム連携を編集する」を選択してください

実行頻度について
設定されたカスタム連携は
通常の連携機能と同様に設定直後、もしくは日次で夜間に実行されます。
実行を停止したい場合は、カスタム連携設定の削除を行ってください。
以上が、カスタム連携のご説明となります。ご不明点がございましたらデクセコ担当者にご連絡ください
トラブルシューティング
⚠️Webスクレイピングでブラウザが起動しない旨のエラーが出る
ランナーでWebスクレイピングを実行する場合、ホストマシンのOSによっては別途ブラウザをインストールする必要になることがあります。Ubuntuの例だと、以下のコマンドを実行し、chromiumをインストールしてください
sudo apt update
sudo apt install chromium-browserWebスクレイピングのコード側では
const browser = await launch({
path: '/usr/bin/chromium-browser',
args: [
'--headless=new', // ヘッドレスモードで実行する場合は追加
'--ignore-certificate-errors', // 自己証明書の警告をスキップしたい場合は追加
'--no-sandbox', // rootユーザーで実行する場合は必須で追加
]
});という様にブラウザの実行ファイルをpathで指定してください
補足情報
ランナーのソースコード
ランナー自体のソースコードはGitHubで公開をしております