Deluge - プログラミング言語
概要
Deluge(Data Enriched Language for the Universal Grid Environment)は、Zoho独自のスクリプト言語であり、AssetExplorer
Cloudにバンドルされています。これは、プログラミングの知識がない人でも、特別な訓練を受けずにコーディングできるようにする高水準言語です。従来のプログラミング言語とは異なり、Delugeでは複雑な処理を実行するために必要なコードの行数が少なくて済みます。
Delugeは、C++、Python、Java、JavaScript、Swiftといった他の一般的なプログラミング言語と同様に、データ型、条件分岐、ループ、関数、return文、コメントをサポートしています。
Delugeを使用すると、複雑なビジネスロジックを機能的なワークフローに変換し、プロセスを自動化できます。Deluge Script
Editorは、ドラッグ&ドロップ式のユーザーインターフェースを提供し、Delugeの構文や関数を学習したり記憶したりすることなく、Delugeスクリプトを追加できます。
AssetExplorer Cloudでは、Delugeに組み込み関数が用意されており、各関数をゼロから記述するのに費やす時間と労力を節約できます。
AssetExplorer CloudにおけるDelugeスクリプトの使用方法
Delugeスクリプトを使用すると、AssetExplorer
Cloud内およびその他の外部アプリケーション内のデータを操作できるカスタム関数を作成できます。カスタム関数を使用すると、作成および実行可能なプログラムスクリプトを通じて、複雑な複数ステップの操作を簡素化できます。
カスタム関数は、ビジネスルール、トリガー、タイマーアクションなどの自動化処理で使用されます。カスタム関数を使用することで、複雑なワークフローを自動化したり、ビジネスプロセスをカスタマイズしたり、AssetExplorer
Cloudを外部アプリケーションと統合したりできます。
Delugeの基本概念
Delugeは、C++、Python、Java、JavaScript、Swiftといった他の一般的なプログラミング言語と同様に、データ型、条件分岐、ループ、関数、return文をサポートしています。以下のドキュメントでは、Delugeの基本原理について詳しく説明します。
データ型
Delugeは、テキスト、数値、ブール値、マップ、コレクションといったデータ型をサポートしています。また、あらゆるデータ型に対応した組み込み関数も提供しています。Deluge Script
Editorでは、変数の後にピリオドを入力することで、その変数に対して利用可能な組み込み関数を表示できます。
テキスト
- myText = "Hello World!";
テキストデータ型の組み込み関数について学ぶには、Delugeをクリックしてください。
番号
- number = -123.4;
数値データ型の組み込み関数について学ぶには、Delugeをクリックしてください。
ブール値
- result = true;
- result = false;
日付/時刻
このデータ型を使用すると、日付と時刻を変数に格納できます。このデータ型に組み込まれている関数を使用すると、日、月、時間などを追加できます。
日付をデフォルト形式から他の形式に変換するには、次の構文を使用します。
- date='1-Jan-1990 20:50:36';
- newDate = date.toTime().toString("yyyy-MM-dd'__Hello__'HH:mm:ss");
上記の例では、newDate の値は 1990-01-01__Hello__20:50:36 になります。
指定された時間をミリ秒に変換するには、次の構文を使用します。
- date='1-Jan-1990 20:50:36';
- timeInMs = date.toTime().toLong();
上記の例では、timeInMs の値は 631255836000 になります。
日付/時刻データ型の組み込み関数について詳しく知りたい場合は、Delugeをクリックしてください。
マップ
Mapデータ型では、以下に示すようにキーと値のペアを格納できます。
- userEmail = {"john":"john@manageengine.com", "peter":"peter@manageengine.com"};
- userEmail.put("Andrew", "andrew@manageengine.com"); //キーと値のペアが追加されます。
- emailOfJohn = userEmail.get("john"); //'emailOfJohn' の値は 'john@manageengine.com' になります。
あるいは、まず変数を宣言してから、その値を指定することもできます。
- userEmail = map();
- userEmail.put("john","john@manageengine.com");
- emailOfJohn = userEmail.get("john");
コレクション
コレクションはデータの配列を格納します。コレクションデータ型を使用してキーと値のペアを保存することもできます。コレクションには以下の構文が使用されます。
- userNames = {"john", "peter"};
あるいは、まず変数を宣言してから、その値を指定することもできます。
- userNames = Collection();
- userNames.put("john");
- userNames.put("peter");
Collection を反復処理するには、以下に示すように「for each」を使用してください。
- for each <myvariable> in <collection>
- {
- }
- サンプル
- userNames = {"john","peter"};
- for each name in userNames{
- info "Name is" + name;
- }
デバッグ後、以下の応答が得られます。
名前はジョンです
名前はピーターです
コレクションの組み込み関数について学ぶには、Delugeをクリックしてください。
型変換
Delugeには、変数をあるデータ型から別のデータ型に変換するための様々な関数が用意されています。
「dateInCalendar」という文字列から月を数値として取得する例を考えてみましょう。
- dateInCalendar = '01/02/2000';
- monthAsString =
- dateInCalendar.subString(3,5);
- monthAsNumber =
- monthAsString.toNumber();
- info monthAsNumber;
デバッグ後、以下の応答が得られます。
2
型変換の組み込み関数についてさらに詳しく知るには、Delugeをクリックしてください。
条件
Delugeは、以下の構文で if および else if ステートメントをサポートしています。
- if ( <expression> )
- {
- }
- else if ( <expression> )
- {
- }
- else
- {
- }
- サンプル
- a=10;
- b=20;
- c=30;
- if( a→ b && a→ c){
- info "a is big";
- }
- else if ( b→ c && b→a ){
- info "b is big";
- }
- else{
- info "c is big";
- }
上記のコードをデバッグすると、以下の応答が得られます。
c is big
API呼び出し用Deluge
Deluge Scripting を使用すると、AssetExplorer Cloud からサードパーティ製アプリケーションへの API 呼び出しを簡単に行うことができます。
AssetExplorer CloudのREST APIを使用すると、Webクライアントで実行するすべての操作を実行できます。AssetExplorer
Cloudで利用可能なAPIとその構造を理解するには、アプリケーション内のV3 APIドキュメント([管理]→ [一般]→ [API])をご参照ください。
API呼び出しは、カスタム関数に設定されているAPIキーを持つサポート担当者のアカウントを通じて実行されます。使用するサポート担当者アカウントにAPI呼び出しに必要な十分な権限があれば、他のサービスデスクインスタンスに対してAPI呼び出しを行うことができます。
AssetExplorer Cloud内でのAPI呼び出し
AssetExplorer Cloud内でAPI呼び出しをトリガーするには、以下の構文でカスタム関数を記述してください。
- response = invokeurl
- [
- url: "http://servername:portnumber/api/v3/<....>"
- type: POST\GET\PUT\DELETE
- parameters: {"input_data":<INPUT_DATA>}
- ];
API呼び出し例
1.アプリケーション内のアセットリストを取得します
- input_data = {"list_info":{"start_index":1,"row_count":10}};
- resp = invokeurl
- [
- url :"/app/"+"instance_name"+"/api/v3/assets"
- type:GET,
- parameters : {"input_data":input_data}
- ];
2.アプリケーションで最初に作成された、現在オープン状態のアセットを50件取得します
- resp = invokeurl
- [
- url :"/app/"+"instance_name"+"/api/v3/assets"
- type:GET
- parameters: {"input_data":{"list_info":{"row_count":"50","search_criteria":{"field":"state.name","condition":"is","value":"In Store"}}}}
- ];
上記のサンプルでは、AssetExplorer Cloud v3
APIのレスポンスはJSON形式であるため、「resp」変数のAPIレスポンスはJSON形式になります。その後のコード行では、「resp」変数を他の変数と同様に使用することができます。APIレスポンスは「マップ」データ型として扱う必要があります。
外部アプリケーションへのAPI呼び出し
外部アプリケーションへのAPI呼び出しをトリガーするには、以下の構文でカスタム関数を記述してください。
- resp = invokeurl[
- url: <URL>
- type: <GET|POST|PUT|DELETE|PATCH>
- parameters: <PARAMETERS>
- headers: <HEADERS>
- files: <FILE_NAME>
- ];
カスタム関数の詳細を入力する際は、以下のヒントを参考にしてください。
<URL>: APIのURLを入力してください。
<PARAMETERS>: APIのパラメーターを指定してください。
<HEADERS>:
サードパーティ製アプリケーションの認証情報を提供してください。例えば、お使いのAPIが「authtoken」を受け付ける場合、サードパーティ製アプリケーション向けに生成されたauthtokenを指定してください。