関数

関数

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

早期アクセス
関数はすべてのユーザーに対して有効になっているわけではありません。組織で Circuit を有効にしている場合、すべてのカスタム関数は関数として移行されます。Circuit をお試しになりたい場合は、早期アクセスについてサポートチームにメールでお問い合わせください。

関数を使用すると、一連の操作をプログラムし、アプリケーションから呼び出されたときに実行できます。関数を使用して、プロセスを自動化したり、Zoho や他の外部アプリケーションと連携したりできます。

Qntrl の関数では、使い慣れた言語で独自のスクリプトを作成できます。これらはサーバーレス関数であり、クラウドプロバイダーがマシンリソースを動的に割り当てます。コードの実行時にサーバー管理を気にすることなく、Qntrl でコードを作成できます。

Qntrl では、関数の作成に複数のプログラミング言語を使用できます。

  • Zoho Deluge

  • JavaScript

  • Python

  • Python 3

  • Java

  • Node.js

Info

対応言語は、選択したタブ種別によって異なります。


ビジネスでの利用例

  1. Qntrl カードの作成、または Qntrl カードに記載された連絡先へのSMS送信を行う Java 関数を作成します。
  2. メールアドレスを検証したり、パスワードの強度を判定したりできる Python 関数を Qntrl で作成します。
  3. 入力されたパスワードをアスタリスク(***)で隠したり、現在の日付と時刻を取得したりする Node.js 関数を Qntrl で作成します。

関数の作成と設定

1. 関数の作成

  1. [設定]に移動し、[関数][詳細設定]の下で選択します。
  2. ページ右上の[新しい関数]をクリックします。
  3. 次の詳細を入力します。
    1. [名前]一意の名前(スペースや特殊文字は使用不可)を入力します。この名前は、関数を呼び出す際の識別子として使用されます。
    2. [タブ種別]適切なタブを選択します(初期設定:カード)詳細については、タブ種別のセクションを参照してください。
    3. [ボード][カード]タブのみ)該当するボードを選択します。この項目は他のタブ種別では無効です。
    4. [言語]選択したタブに基づいて対応言語を選択します。詳細については、言語のセクションを参照してください。
    5. [説明]関数の説明を追加します。
  4. 関数エディターに進むには、[保存]をクリックします。
    

タブ種別と言語の互換性  

タブ種別

目的

対応言語

カード

カード項目のロジックまたはビジネスルールを自動化

Zoho Deluge(のみ)

スタンドアロン

手動で起動する、または Circuits/スケジュールで使用するカスタムスクリプト

Deluge、Java、Python、Python 3、Node.js、JavaScript

Webサービス REST

受信および送信の REST API 呼び出しで使用

JavaScript

Webサービス SOAP

受信および送信の SOAP API 呼び出しで使用

JavaScript


2. 関数の記述とデプロイ

エディターを開いたら、次の手順を実行します。

  1. 選択した言語を使用してロジックを記述します。

    1. 選択した言語の設定方法については、言語のセクションを参照してください。

    2. タブごとの関数設定については、タブ別の関数設定のセクションを参照してください。

  2. 右側のパネルで必要なパラメーターを設定します。

  3. 関数の準備が完了し、パラメーターを設定したら、[保存]をクリックして関数を保存します。

  4. サンプル入力でテストするには、[保存して実行]をクリックします。 


  1. エラーがない場合、入力ダイアログが開きます。

  2. 関数を実行するたびに、その関数にいくつかの値が渡されます。これらの値は引数と呼ばれます。ダイアログで関数の実行に使用する引数を指定し、[実行]をクリックします。



  1. 関数が実行され、実行ステータスダイアログボックスに出力が表示されます。この出力には次の2つのキーが含まれます。

    1. Outputキーには、出力データである値が含まれます。

    2. Logキーには、ユーザーがステートメントを使用して出力したログデータが含まれます。 


  1. [デプロイ]をクリックして公開し、使用できるようにします。

Notes関数をCircuits内で使用できるようにするには、先にデプロイする必要があります。

 関数でのその他の操作 

  1. [設定] [詳細設定]に移動し、[関数]をクリックします。
  2. 関数の一覧で、対象の関数にカーソルを合わせ、操作メニュー(...)をクリックします。

  3. 次の操作を利用できます。

    1. [編集]:関数の名前と設定を変更します。

    2. [プレビュー]:エディターを開かずに関数のコードを表示します。

    3. [REST API]:OAuth認証情報で保護されたREST APIリンクにアクセスします。

    4. [削除]:システムから関数を完全に削除します。


言語     

Zoho Deluge        

Deluge関数は、Qntrlのネイティブスクリプト言語です。外部パッケージは不要です。Qntrlで設定し、Circuits、ワークフロー、ビジネスルール、スケジュール、オーケストレーションに関連付けたり、単独の関数として使用したりできます。Zoho Delugeの詳細をご参照ください。

ユースケース:IPに基づくユーザーの位置情報の取得    

この関数は、IPアドレス、都市、地域、国、座標、インターネットサービスプロバイダー(ISP)など、ユーザーのIPに基づく位置情報の詳細を取得します。企業はこのデータを使用して、コンテンツのパーソナライズ、不審な活動の検出、位置情報に基づくサービス調整によるユーザー体験の向上を行えます。
動作の仕組み。  
  1. 関数は、公開されているipinfo.io APIを呼び出し、IPアドレスに基づいてクライアントの位置情報の詳細を取得します。

  2. APIは、IP、都市、地域、国、緯度・経度座標、組織/ISPなどの情報を返します。

  3. 関数はこれらの値を抽出して表示し、次のような用途でさらに使用できるようにします。

    • 位置情報に基づくパーソナライズ(言語、通貨、オファー)。

    • 不正検出(通常とは異なる地域からの不審なログイン)。

    • ユーザーアクセスのログ記録と監査。

  1. リクエストが失敗した場合、デバッグ用にエラーメッセージがログに記録されます。

Delugeコードスニペットの例

void getUserGeoInfo() { api_url = 'https://ipinfo.io/json';response = invokeurl [ url : api_url type : GET ]; try { ip = response.get('ip'); city = response.get('city'); region = response.get('region'); country = response.get('country'); org = response.get('org'); loc = response.get('loc'); info 'IP: ' + ip; info 'Location: ' + city + ', ' + region + ', ' + country; info 'Coordinates: ' + loc; info 'ISP/Org: ' + org; } catch (e) { info 'Error getting IP info: ' + e.toString(); } }

正常に実行されると、関数はAPIから取得したユーザーのIPアドレスと位置情報の詳細を表示します。

JavaScript     

Alert

早期アクセス

この機能はすべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、メールでサポートチームに早期アクセスを依頼してください。

JavaScriptで関数を作成し、ワークフロー、ビジネスルール、スケジュール、オーケストレーション、Circuitsに関連付けたり、単独の関数として使用したりできます。外部パッケージファイルはサポートされていません。

ユースケース:JavaScript関数でのフォルダーの作成とファイルのアップロード 

この関数は、指定したパスに新しいフォルダーを作成し、指定された内容のファイルをアップロードすることで、Qntrlでのファイル管理を自動化します。  

動作の仕組み。  
  • 入力データを解析して、フォルダー名、ファイルパス、ファイルの内容を抽出します。
  • 指定されたパスにフォルダーを作成します。
  • 新しく作成したフォルダーにテキストファイルをアップロードします。
  • 処理が完了した場合は成功メッセージを、いずれかの手順が失敗した場合はエラーメッセージを返します。

JavaScriptコードスニペットの例
function execute(data) { try {       let jsonData = JSON.parse(data);       if (!jsonData.folderName || !jsonData.filePath || !jsonData.fileContent) { console.error('Incomplete data provided.'); return JSON.stringify({ success: false, message: 'Incomplete data provided.' });       }       let folderCreationResponse = OntrlFile.createFolder(jsonData.folderName, jsonData.filePath);       folderCreationResponse .ifFailed(message => { console.error('Failed to create フォルダー:', message); return JSON.stringify({ success: false, message: 'Failed to create フォルダー.' }); }) .ifSuccess(() => { console.log('フォルダー created successfully.'); let file = new File([jsonData.fileContent], 'uploaded_file.txt', { type: 'text/plain' }); let uploadResult = OntrlFile.upload(file, { path: jsonData.filePath + '/' + jsonData.folderName, overwrite: true }); console.log('Upload Result:', uploadResult); return JSON.stringify({ success: true, message: 'フォルダー created and file uploaded
                successfully.' });
}); } catch (error) {       console.error('Error during execution:', error);       return JSON.stringify({ success: false, message: 'Error during execution.' }); } }
この関数を実行すると、入力の詳細を指定するよう求められます。

入力例

{ 'folderName': 'ProjectDocs', 'filePath': '/user/uploads', 'fileContent': 'Initial project requirements and specifications.' }

実行に成功すると、成功メッセージが表示され、ファイルが新しく作成したフォルダーにアップロードされます。実行に失敗した場合は、エラーメッセージが表示されます。


Node JS      

Node.js関数は、Qntrlで自動パッケージ化のサポートを利用して作成、設定できます。これらの関数は、ワークフロー、ビジネスルール、スケジュール、オーケストレーションに関連付けたり、単体の関数として使用したりできます。

ユースケース:メール入力の検証  

この関数は、ユーザーが入力した値が適切なメール形式かどうかを検証します。以降の処理に進む前に、正しい構造のメールアドレスのみが受け付けられるようにします。これは、ワークフロー、フォーム、ユーザーオンボーディングでの入力検証に特に役立ちます。

仕組み:

  • 入力パラメーターのメールを読み取ります。
  • メールが指定されていない場合は、エラーメッセージを返します。
  • 正規表現パターンを適用して、メール形式が有効かどうかを確認します。
  • 有効な場合は、ログに記録して確認メッセージを返します。
  • 無効な場合は、ログに記録してエラーメッセージを返します。

 

Node JSコードスニペットの例
タブ.exports = async function(context, basicIO) { const input = basicIO.getParameter('メール'); if(input === null) { basicIO.write(' provide a メール paramter'); return; } const メール = input.toString().trim(); const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; const isValid = emailRegex.test(メール); if (isValid) { basicIO.write('Valid メール: ' + メール); context.log.INFO('Validated メール: ' + メール); } else { basicIO.write('Invalid メール format.'); context.log.INFO('メール validation failed for input: ' + メール); } }


パッケージファイルのサポート:
QntrlはNode JS関数を自動でパッケージ化し、config.jsonファイルとライブラリファイルを作成します。
左側のパネルで、config.jsonファイルとlibファイルを表示できます。
  • config.jsonは設定ファイルです
  • libは、サードパーティ製パッケージをアップロードできるライブラリです。ファイルをアップロードするには、フォルダーを右クリックします。
次のキーの値を指定します。
  1. path:関数コードを含む.jsファイルのパスです。
  2. action:コードが実行するアクションを含みます。これは、.jsファイル内のメインクラスの名前でもあります。
  3. connector:関数が呼び出す接続の名前を含みます(該当する場合)。
Notes

入力本文は、コードで使用される引数の値を含むJSONオブジェクトである必要があります。


入力例
{
      'メール': 'jane.doe@sweriocorp.com'
}

実行すると、指定されたメール形式が検証され、メールを含む成功メッセージ、または形式が無効な場合はエラーメッセージが返されます。


Python      

Pythonで関数を作成し、ワークフロー、ビジネスルール、スケジュール、オーケストレーションに関連付けたり、スタンドアロンのロジックとして使用したりできます。コードはPython 2環境で実行されます。Python 2でサポートされている機能を使用する場合は、Python 2の構文に従ってください。

ユースケース:パスワード強度の検証

この関数は、ユーザーが入力したパスワードの強度を検証します。パスワードが、最小文字数、大文字と小文字、数字、特殊文字の使用といった標準的なセキュリティ要件を満たしていることを確認します。これは、ワークフローでパスワードポリシーを適用する場合やユーザーオンボーディング時に役立ちます。

仕組み。

  • パスワード入力を読み取ります。
  • 次の内容が含まれているか確認します。
    • 少なくとも1つの大文字
    • 少なくとも1つの小文字
    • 少なくとも1つの数字
    • 少なくとも1つの特殊文字
    • 最小文字数は8文字
  • すべての条件を満たす場合はTrueを返し、それ以外の場合はFalseを返します。 
Pythonコードスニペットの例
インポート re def check_password_strength(password): # Define regular expression patterns for strong passwords has_uppercase = re.compile(r'[A-Z]') has_lowercase = re.compile(r'[a-z]') has_number = re.compile(r'[0-9]') has_special = re.compile(r'[!@#$%^&*()_+{}\[\]:';\'<>?,./]') # Check if password meets all requirements if (has_uppercase.search(password) and has_lowercase.search(password) and has_number.search(password) and has_special.search(password) and len(password) >= 8): return True return False def runner(context, basicI0): password = basicI0.getParameter('password') is_strong = check_password_strength(password) basicI0.write(str(is_strong))

 

パッケージ済みファイル。

QntrlはPython関数を自動的にパッケージ化し、config.jsonとライブラリファイルを作成します。
左側のパネルで、config.json libファイルを表示できます。
  • config.jsonは設定ファイルです
  • libは、サードパーティ製パッケージをアップロードできるライブラリです。ファイルをアップロードするには、フォルダーを右クリックします。

設定キー

  • path:関数コードを含む.jsファイルのパスです。

  • action:コードが実行するアクションを含みます。これは、.jsファイル内のメインクラス名でもあります。

  • connector:関数が呼び出す接続名を含みます(該当する場合)。

入力本文は、以下に示すように、コードで使用される引数の値を含むJSONオブジェクトである必要があります。  


入力例

{
       'password': 'James@19189#'
}

関数が実行され、コンソールにレスポンスが表示されます。


Java      

Java関数では強い型付けを使用でき、より構造化された自動化に適しています。

Javaで関数をコーディングし、ワークフロー、ビジネスルール、スケジュール、オーケストレーション、サーキットに関連付けたり、スタンドアロン関数として使用したりできます。

ユースケース:通貨換算関数 

この関数は、外部APIから取得したリアルタイムの為替レートを使用して、通貨間で金額を換算します。ワークフロー内で迅速な財務計算を自動化でき、手動で換算する手間を省けます。たとえば、企業は取引中にINR建ての請求書を即座にUSD相当額に換算できます。

仕組み。  
  1. 入力パラメーターを読み取ります。
    • from → 換算元通貨(例:INR
    • to → 換算先通貨(例:USD
    • amount → 換算する金額(例:100
  1. 入力を検証します。
    • すべてのパラメーターが指定されていることを確認します。
    • 金額が有効な数値であることを確認します。
  1. 為替レートAPIに接続します。
    • 指定された通貨の最新の為替レートを取得します。
    • 為替レートが利用できない場合に対応します。
  1. 換算後の値を計算します。
  2. 結果をわかりやすい形式で返します(例:100 INR = 1.20 USD)。

Javaコードスニペットの例

インポート com.zoho.cloud.function.Context; インポート com.zoho.cloud.function.basic.*; インポート java.io.BufferedReader; インポート java.io.InputStreamReader; インポート java.io.OutputStream; インポート java.net.HttpURLConnection; インポート java.net.URL; インポート org.json.JSONObject; public class Java_doc1 implements ZCFunction { public void runner(Context context, BasicIO basicIO) throws Exception { String from = (String) basicIO.getParameter('from'); String to = (String) basicIO.getParameter('to'); String amountStr = (String) basicIO.getParameter('amount'); if (from == null || to == null || amountStr == null) { basicIO.write('Missing parameters: 'from', 'to', or 'amount'.'); return; } double amount; try { amount = Double.parseDouble(amountStr); } catch (NumberFormatException e) { basicIO.write('Invalid amount. Please enter a valid number.'); return; } // Call exchange rate API String apiUrl = String.format('https://free.ratesdb.com/v1/rates?from=%s&to=%s', from, to); URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod('GET'); conn.setRequestProperty('User-Agent', 'Java'); int responseCode = conn.getResponseCode(); if (responseCode != 200) { basicIO.write('Failed to fetch exchange rate. HTTP code: ' + responseCode); return; } BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; StringBuffer responseData = new StringBuffer(); while ((inputLine = in.readLine()) != null) { responseData.append(inputLine); } in.close(); // Parse JSON response JSONObject json = new JSONObject(responseData.toString()); JSONObject rates = json.getJSONObject('data').getJSONObject('rates'); if (!rates.has(to)) { basicIO.write('Exchange rate not available for currency: ' + to); return; } double rate = rates.getDouble(to); double convertedAmount = amount * rate; String result = String.format('%.2f %s = %.2f %s', amount, from, convertedAmount, to); basicIO.write(result); } }


パッケージ済みファイル。
QntrlはJava関数を自動的にパッケージ化し、config.jsonとライブラリファイルを作成します。
左側のパネルで、config.jsonとライブラリファイルを表示できます。
  • config.jsonは設定ファイルです
  • libは、サードパーティ製パッケージをアップロードできるライブラリです。ファイルをアップロードするには、フォルダーを右クリックします。
Notes
  • lib フォルダーには .jar ファイルのみアップロードできます。

  • アップロードできるファイルのサイズは 10MB までです。                              

関数の引数を本文で渡すには、以下のコードを使用します。


サンプル入力

{ 'from': 'INR',
'to': 'USD',
'amount': '100'
}

関数が実行され、コンソールにレスポンスが表示されます。

Notes
  • 1つの関数につきアップロードできる zip ファイルは1つのみです。

  • zip ファイルの最大サイズは 10MB です。

 

Python 3 

関数を Python で記述し、ワークフロー、ビジネスルール、スケジュール、オーケストレーションに関連付けるか、単独のロジックとして使用できます。コードは Python 3 環境のバージョン 3.9.16 で実行されます。Python 3 でサポートされている機能を使用する場合は、Python 3 の構文に従ってください。

ユースケース:パスワード強度チェッカー 

この関数は、長さ、大文字/小文字、数字、特殊文字などの一般的なセキュリティ基準を満たしているかを確認し、指定されたパスワードの強度を評価します。

動作の仕組み。

  1. ユーザーがパスワードを入力します。

  2. 関数は次の基準を確認します。

    • 8文字以上

    • 1文字以上の大文字

    • 1文字以上の小文字

    • 1文字以上の数字

    • 1文字以上の特殊文字(!@#$%^&*(),.?':{}|<>)

  1. 評価結果に基づいて、次の内容を返します。

    • 強いパスワード:すべての条件を満たしている場合。

    • 中程度のパスワード:一部の条件を満たしていない場合。

    • エラーメッセージ:不足している内容を示します。

  1. パスワードが弱い場合、関数はランダムに生成された安全なパスワードを提案します。

 

Python 3 コードスニペットのサンプル

インポート re インポート secrets インポート string def runner(context, basicIO): context.log.INFO('log') password = basicIO.getParameter('password'); basicIO.write(check_password_strength(password)); def check_password_strength(password: str) -> None: strength = 0 if len(password) >= 8: strength += 1 else: return 'Password should be at least 8 characters long.' if re.search(r'[A-Z]', password): strength += 1 else: return 'Password should include at least one uppercase letter.' if re.search(r'[a-z]', password): strength += 1 else: return 'Password should include at least one lowercase letter.' if re.search(r'\d', password): strength += 1 else: return 'Password should include at least one digit.' if re.search(r'[!@#$%^&*(),.?':{}|<>]', password): strength += 1 else: return 'Password should include at least one special character (!@#$%^&*(),.?\':{}|<>)' if strength == 5: return 'Strong password!' elif 3 <= strength < 5: return 'Moderate password. Try to include all types of characters.' else: basicIO.write('Weak password. Consider using a stronger one.') suggestion = generate_secure_password() basicIo.write(f'Suggested strong password: {suggestion}') def generate_secure_password(length: int = 12) -> str: characters = string.ascii_letters + string.digits + '!@#$%^&*()?' return ''.join(secrets.choice(characters) for _ in range(length)) if __name__ == '__main__': pwd = input('Enter a password to check its strength: ') check_password_strength(pwd)


パッケージ化されたファイル。

Qntrl は Python 関数を自動的にパッケージ化し、config.json とライブラリファイルを作成します。

左側のパネルで、config.json libファイルを確認できます。

  • config.json は設定ファイルです

  • lib はサードパーティ製パッケージをアップロードできるライブラリです。ファイルをアップロードするには、フォルダーを右クリックします。

次のキーの値を指定します。

  • path:関数コードを含む .js ファイルのパスです。

  • action:コードが実行するアクションが含まれます。これは、.js ファイル内のメインクラス名でもあります。

  • connector:関数が呼び出す接続名がある場合、その名前が含まれます。

関数の引数を本文で渡すには、以下のコードを使用します。


サンプル入力

'password': 'sweri025377A'
関数が実行され、コンソールにレスポンスが表示されます。

タブ別の関数設定    

カードベースの関数(Delugeのみ)   

  • 関数はカードとビジネスルールで使用できます。
  • ドラッグ&ドロップ式の Deluge スクリプト操作画面を使用します。
  • ボードに関連付けると、そのボードは変更できません。

パラメーターの追加。  
  • パラメーター]セクションでは、次の設定を行います。
    • [ボード]:カードから項目を選択します。
    • [カスタム]:新しい項目を手動で作成します。
  • ジョブIDを指定すると、関数の実行時にこれらのパラメーターを動的に渡すことができます。

スタンドアロン関数   

  • 関数はCircuitsおよびSchedulesで使用できます。

  • 対応している任意の言語で記述できます。

  • 使用するにはデプロイが必要です。

  • [クライアントから呼び出し可能]:有効にすると、ブラウザー、ウィジェット、その他のバックエンド関数からこの関数を呼び出せます。無効にすると、バックエンド関数からのみ呼び出せます。


パラメーターの追加  
  • エディターでキーと値のパラメーターを手動で定義します。

  • これらの値は実行時に渡されます。


デプロイパッケージ構成(スタンドアロン)   

各関数は、使用する言語に応じた特定のフォルダー構成でパッケージ化する必要があります。

選択した言語に応じて、デプロイパッケージは次の構成にする必要があります。

Java   

FunctionName(ルートフォルダー)

|

|---- FunctionName.java // ランナーファイル

|---- lib // 依存関係の.jarファイル用フォルダー

|---- <依存関係の.jarファイル>

|---- classes // パッケージ構成内のコンパイル済みクラスファイル

|---- <パッケージ構成に従った依存関係のコンパイル済み.classファイル>

Notes

ルートフォルダー直下(パッケージ内ではない場所)に配置された.javaファイルもコンパイルされます。

カスタムIDEを使用してJava関数をビルドするには、次のzc-server-sdk-core.jarファイルをダウンロードして、プロジェクト設定に含めます。

 

Node.js   

FunctionName(ルートフォルダー)

|

|---- FunctionName.js // ランナーファイル

|---- node_modules // 依存関係フォルダー

|-- <依存関係のjsファイルとフォルダー>

 

Python/Python 3
FunctionName(ルートフォルダー)

|

|---- FunctionName.py // ランナーファイル

|---- <依存関係の.pyファイル> // 追加のタブまたはスクリプト

 

依存関係のアップロード   

関数にサードパーティ製ライブラリーを含めるには、対応言語について以下で説明する拡張デプロイ構成に従います。

Java(依存関係あり) 

FunctionName(ルートフォルダー)

|

| - - - - FunctionName.java // メインランナーファイル

| - - - - config.json // 関数の設定

| - - - - lib // サードパーティ製JAR

| - - - - <依存関係の.jarファイル>

| - - - - classes

| - - - - <パッケージ構成に従った依存関係のコンパイル済み.classファイル>    

ファイルの説明  
  • FunctionName.java:関数のエントリーポイントです。複数のランナーファイルを定義し、config.jsonで設定できます。

  • config.json:関数のメタデータと実行設定が含まれます。

  • lib/:すべてのサードパーティ製.jarファイルをこちらに配置します。

  • classes/:Javaのパッケージ構成に従って、コンパイル済み.classファイルを追加します。

Javaデプロイ用サンプルZIPをダウンロード

 

NodeJS(依存関係あり) 

FunctionName(ルートフォルダー)

|

| - - - - FunctionName.js // メインランナーファイル

| - - - - config.json // 関数設定

| - - - - node_modules // インストール済みの依存関係

| - - - - <サードパーティータブ>

ファイルの説明。  

  • FunctionName.js:ロジックを実行する主なスクリプトです。ユーザーは複数のランナーを追加でき、config.jsonで設定できます。

  • config.json:ランナーと実行パラメーターの定義に使用します。

  • node_modules/:必要なすべてのサードパーティーの依存関係を格納するディレクトリーです。

サンプルNode.jsデプロイ用Zipのダウンロード

 

Python/Python 3(依存関係あり) 

FunctionName(ルートフォルダー)

|

| - - - - FunctionName.py // メインランナーファイル

| - - - - config.json // 関数設定

| - - - - lib // サードパーティーライブラリー

| - - - - <サードパーティータブ>

ファイルの説明。  

  • FunctionName.py:ロジックを実行する主なスクリプトです。ユーザーは複数のランナーを追加でき、config.jsonで設定できます。

  • config.jsonランナー設定と依存関係を定義します。

  • lib/関数で使用される追加のPythonタブが含まれます。

 

Webサービス関数

Webサービス用に作成された関数はJavaScriptのみをサポートし、次で使用されます。

  • 受信/送信REST API

  • 受信/送信SOAP API 

スクリプトの作成にはCodex SDKを使用し、スキーマの参照にはCodexのドキュメントを参照してください。


主な設定。  

  • タブの種類はWeb Service RESTまたはWeb Service SOAPに設定する必要があります。

  • スコープ(admin/user)は実行権限を定義します    


    • Related Articles

    • 関数

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 関数は、サーバーレスのシンプルなプログラムスクリプトで、さまざまなタスクを処理し、他のツールと連携して強力な自動ワークフローを作成できます。関数はPython、Node.js、Java、Zoho ...
    • カスタム関数の管理

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 カスタム関数を使用すると、Delugeでユーザー定義関数を開発して実行できます。簡単なプログラムスニペットを実行して、プロセスの自動化や、サードパーティまたはZohoアプリケーションとの連携を行えます。 カスタム関数のビジネスでの活用 ...
    • カスタム関数: Create_Job

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 このカスタム関数を使用すると、任意のボードで新しいカードを作成できます。 また、元のカードから新しいカードに必要な項目値を引き継ぐように設定することもできます。 業務シナリオ Helenさんは、組織の調達管理責任者です。資材の購入費用がHelenさんによって承認されると、 ...
    • カスタム関数: Jobを他のBlueprintへ移動

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 このカスタム関数を使用すると、同じボードで作成された任意のブループリントにカードを自動的に移動できます。 ビジネスシナリオ ...
    • カスタム関数:計算フィールド値

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 このカスタム関数を使用すると、2つの値を加算し、戻り値をカスタム項目に保存できます。 この関数の実行後、合計はカスタム項目で動的に更新されます。 ビジネスシナリオ ...