概念: 設計
CCDS API は、データ ソースへの接続、データ ソース内でのオブジェクトの作成、XML の解析、日付の変換など、データ ソースを作成する際に頻繁に利用する項目について、インテグレーション オペレーターを支援するために設計されています。
名前空間
JavaScript エンジンにより、組み込み関数へのアクセスが提供されます。
Adaptive Planning
"adaptive" 名前空間または "ai" (Adaptive Planning
) namespace (エイリアス)これは、jQuery (https://jquery.com/) などの普及している JavaScript ライブラリと似ています。// JavaScript short namespace example. ai.log.logError('this is a log'); // JavaScript long namespace example. adaptive.log.logError('this is a log');
ルートの「
ai
」名前空間の下には、JavaScript がインターネットや Adaptive Planning
Discovery/Integration 機能これらの公開 JavaScript API は、ガイドとして Node.js (https://nodejs.org/) API を使ってモデリングされます。関数
関数によるデータの取得や設定で、API の一貫性を保ち、カプセル化を実現し、設定メソッドや取得メソッドを明示的に許可します。また、関数は C# オブジェクトのカプセル化を行い、JavaScript 言語の関数のみを公開し、JavaScript と C# の境界を不必要に越えないようにすることで、パフォーマンスを向上させます。取得メソッドは get プレフィックス以下を考慮し、設定メソッドは set プレフィックス以下を考慮します。
var isEnabled= item.getIsEnabled(); item.setIsEnabled(true);
関数コンテキスト
CCDS から呼び出される各関数は、コンテキスト オブジェクトを受け取ります。コンテキストには、処理に役立つ読み取り専用のオブジェクトが含まれています。
function importData(context) { var tableId = context.getTableId(); var tables = context.getDataSource().getTables(); var setting = context.getDataSource().getSetting('password'); }
コンテキストは、C# から渡されたオブジェクトで構成されています。パフォーマンスを向上させるために、各オブジェクトを JavaScript オブジェクトにカプセル化することで、JavaScriptでの C# オブジェクトの公開を避けています。これにより、JavaScript と C# の境界を越えた通信を管理できます。たとえば、コンテキストにテーブルを求める場合、C# オブジェクトは JavaScript オブジェクトで折り返して返されます。オブジェクト階層がある場合、JavaScript オブジェクト内の各組織を折り返します。テーブルの列を求めると、JavaScript で折り返されたオブジェクトのリストを返します。
制限事項
以下の制限は、実行中の CCDS スクリプト処理セッションに適用されます。
設定 | 説明 | デフォルト値 | 適用設定変更が可能? | テナント設定変更が可能? |
|---|---|---|---|---|
最大ヒープ サイズ (MB 単位) | V8 エンジンで消費可能な RAM 量。 | 800 | はい | はい |
CPU 時間制限 | V8 エンジンでの CPU 使用可能時間。 | 10 分 | はい | はい |
実行時間の上限 | CPU リソースを使用中かどうかにかかわらず、V8 エンジンの実行が可能な最大時間。 | 60 分 | はい | はい |
ネットワーク呼び出しの遅延時間 | 1 秒 | はい | はい | |
1 秒あたりのログ限度数 | スクリプトから 1 秒間に作成されるログの最大数。 | 5 | はい | はい |
1 時間あたりのログ限度数 | スクリプトから 1 時間に作成されるログの最大数。 | 1000 | はい | はい |
ネットワーク使用量の上限 (MB 単位) | スクリプトがネットワーク経由で送受信できる最大メガバイト数。 | 5 ギガバイト | はい | はい |
非同期スクリプト サービス リクエスト間のミリ秒 | タスク サービスとスクリプト実行プロセス間のトラフィックを調整するために使用されます。スクリプト実行プロセスが、タスクサービスからの要求に追いつくことができれば、待ち時間は 0 ミリ秒になります。 | 200 ミリ秒 | いいえ | いいえ |
リクエストあたりの最大スクリプト結果ページ数 | タスク サービスがスクリプト実行リポジトリから要求できるデータのページ数 | 50 | いいえ | いいえ |
ページ最大サイズ | タスクサービスがデータの各ページに要求するデータの行数 | 10000 | はい | はい |
以下の制限は、CCDS スクリプト プール マネージャに適用されます。
設定
| 説明
| デフォルト値
| 適用設定変更が可能?
| テナント設定変更が可能?
|
|---|---|---|---|---|
スクリプト最大プール サイズ | 同時実行可能なスクリプト処理の最大数 | 100 | はい | いいえ |
スクリプト最小プール サイズ | 一度に実行するスクリプト処理の最小数 (スクリプト実行プロセスの予熱に使用) | 0 | はい | いいえ |
スクリプト プール待ちタイムアウト | スクリプト実行処理のリクエストをキューに入れることができる最大時間 | 180 秒 | はい | いいえ |
スクリプト最大プール キュー サイズ | スクリプト実行処理の待機中のリクエストの最大数 | 1000 | いいえ | いいえ |
その他制限
- スクリプトで ai.https.sax.parser メソッドを使用しない場合、解析対象の XML ファイルのサイズに制限があります。上限サイズは不明ですが、参考までに、100mb のヒープ サイズで 10mb のファイルを解析することは可能です。大きなファイルには「ai.https.sax.parser」の使用をお勧めします。
- スクリプトは 内の IP にはアクセスできませんAdaptive Planningネットワーク
- サポートされているのは HTTPS だけで、 HTTP はサポートされていません。
既知の問題
- importData/importStructure の間、データ ソースは testConnection を呼び出します。CCDS では、これは 2 つの個別スクリプト実行処理を表します。testConnection を実行するための最初のプロセスが正常に作成されている可能性があります。importData/importStructure を実行する 2 つ目のプロセスは、プール マネージャにキューイングされ、最終的にタイムアウトし、その後失敗する可能性があります。
- 兄弟のフレキシブル設定により、同じ表示名を持つことができます。そのため、getSetting(displayName) で設定にアクセスするスクリプトでは、ひとつのインスタンスのみが返されますが、どのインスタンスが返されるかは保証されません。ユーザーが同じ表示名で兄弟のフレキシブル設定を作成できないようにする必要があります。