跳至主要內容
Adaptive Planning
上次更新時間 :2023-06-23
概念︰設計

概念︰設計

CCDS API 旨在協助整合操作人員連至資料來源、在資料來源內建立物件、剖析 XML、轉換日期,以及在建立資料來源時經常利用的項目。

名稱空間

JavaScript 引擎可讓您存取內建的
Adaptive Planning
透過「adaptive」名稱空間或「ai」整合 (
Adaptive Planning
) 名稱空間 (別名)。這類似於熱門的 JavaScript 程式庫,像是 jQuery (https://jquery.com/)。
// 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 為指南所建立的。

函數

函數 get 和 set 資料可使 API 保持一致,提供封裝,以及明確允許 setter 和 getter。函數也提供 C# 物件的封裝,僅公開 JavaScript 語言功能,並防止不必要跨越 JavaScript / C# 界限,以改善效能。getter 的字首為 get,而 setter 的字首為 set。
var isEnabled= item.getIsEnabled(); item.setIsEnabled(true);

函數環境定義

CCDS 呼叫的每個函數都會採用 Context 物件。環境定義包含唯讀物件可協助處理。
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 指令碼流程階段作業。
設定
說明
預設值
可配置的 AppSetting?
可配置的用戶設定?
堆積上限 (MB)
V8 引擎可取用的 RAM 數量。
800
是
是
CPU 時間限制
V8 引擎可使用 CPU 資源的時間量。
10 分鐘
是
是
執行時間長度限制
無論 V8 引擎是否積極使用 CPU 資源,它都可以執行的時間量。
60 分鐘
是
是
網路呼叫之間的延遲
1 秒
是
是
每秒記錄數的限制
每秒可從指令碼建立的記錄數目上限。
5
是
是
每小時記錄數的限制
每小時可從指令碼建立的記錄數目上限。
1000
是
是
網路用量限制 (MB)
指令碼可透過網路傳送和接收的上限 (MB)。
5 GB
是
是
非同步指令碼服務要求之間的毫秒數
用於對任務服務與指令碼執行器流程之間的流量進行節流。如果指令碼執行器流程能夠跟上任務服務的要求,則等候時間會降至 0 毫秒。
200 毫秒
否
否
每個要求的指令碼結果頁面上限
任務服務可從指令碼執行器的存放庫要求的資料頁數。
50
否
否
頁面大小上限
任務服務將在每個資料頁面中要求的資料列數
10000
是
是
以下限制適用於 CCDS 指令碼集區管理員。
設定
說明
預設值
可配置的 AppSetting?
可配置的用戶設定?
指令碼集區大小上限
同時執行的指令碼流程數上限。
100
是
否
指令碼集區大小下限
任一時間可執行的指令碼流程數下限 (用於「預熱」指令碼執行器流程)。
0
是
否
指令碼集區等候逾時
指令碼執行器流程的要求可排入佇列的時間上限。
180 秒
是
否
指令碼集區佇列大小上限
指令碼執行器流程的等候要求數上限。
1000
否
否

其他限制︰

  • 若未在指令碼中使用 ai.https.sax.parser 方法,則用於剖析的 XML 檔案大小會有限制。大小上限不明,但為了參考,可剖析具有 100 mb 堆積大小的 10 MB 檔案。我們建議對大型檔案使用 ai.https.sax.parser。
  • 指令碼無法存取
    Adaptive Planning
    網路
  • 不支援 HTTP,僅支援 HTTPS。

已知問題

  • 在 importData/importStructure 期間,資料來源會呼叫 testConnection。在 CCDS 中,這表示兩個個別的指令碼執行器流程。有可能成功建立第一個流程以執行 testConnection。執行 importData/importStructure 的第二個流程可能會排入集區管理員的佇列中,而最終會逾時,然後失敗。
  • 同級彈性設定可有相同的顯示名稱。因此,在透過 getSetting(displayName) 存取設定的指令碼中,只會傳回一個實例,且無法保證會傳回哪個實例。應禁止使用者使用相同的顯示名稱建立同級彈性設定。