関数

関数

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

早期アクセス
関数は、すべてのユーザーに対して有効になっているわけではありません。組織で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. Qntrlにログインします。
  2. (設定)に移動し、関数]を[詳細設定]から選択します。
  3. ページ右上の[新しい関数]をクリックします。
  4. 次の詳細を入力します。
    1. [名前]一意の名前を入力します(スペースや特殊文字は使用できません)。この名前は、関数を呼び出す際の識別子として使用されます。
    2. [タブの種類]適切なタブを選択します(初期値:カード)詳細については、タブの種類セクションを参照してください。
    3. [ボード]カードタブのみ)関連するボードを選択します。この項目は、他のタブの種類では無効になります。
    4. [言語]選択したタブに基づいて、対応している言語を選択します。詳細については、言語セクションを参照してください。
    5. [説明]関数の説明を追加します。
  5. 保存]をクリックして、関数エディターに進みます。
    

タブの種類と言語の互換性  

タブの種類

用途

対応言語

カード

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

Zoho Delugeのみ

スタンドアロン

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

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

Web Service REST

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

JavaScript

Web Service SOAP

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

JavaScript


関数コードのZIPファイルでのアップロード  

関数のソースコード、設定ファイル、外部依存関係を含むZIPファイルをアップロードすることで、クラウド関数を作成できます。これにより、完全な関数パッケージを1回のアップロードでデプロイできます。

メモ:

  • ZIPファイルは、有効で空ではない.zipファイルである必要があります。

  • 対応している最大ファイルサイズは50MBです。

  • アップロードされたファイルは、デプロイ前に検証およびセキュリティスキャンされます。

  • ZIPパッケージは、言語固有のフォルダー構造に従う必要があります。


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

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

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

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

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

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

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

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


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

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



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

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

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


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

NotesCircuits内で関数を利用するには、事前にデプロイする必要があります。

 関数のその他の操作 

  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で関数を作成し、ワークフロー、ビジネスルール、スケジュール、オーケストレーション、サーキットに関連付けるか、スタンドアロン関数として使用できます。外部パッケージファイルには対応していません。

ユースケース: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
  • 関数ごとにアップロードできるzipファイルは1つのみです。

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

 

Python 3 

関数をPythonで記述し、ワークフロー、業務ルール、スケジュール、オーケストレーションに関連付けたり、スタンドアロンのロジックとして使用したりできます。コードはバージョン3.9.16の Python 3環境で実行されます。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'
関数が実行され、レスポンスがコンソールに表示されます。

ZIPアップロードでの依存関係の追加  

ZIPアップロードを使用して関数をデプロイする場合は、プログラミング言語に応じて、サードパーティの依存関係を適切なディレクトリーに含めます。

言語

依存関係の配置場所

Java

lib/:JARファイル用、classes/:コンパイル済みクラス用

Node.js

node_modules/

Python

lib/

Golang

ルートレベルのパッケージフォルダー

PHP

ルートレベルのパッケージフォルダー

NotesJava、Node.js、Pythonの関数では、config.jsonファイルをデプロイパッケージに含めることで、関数設定を定義し、複数のランナー定義に対応できます。

タブ別の関数設定    

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

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

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

スタンドアロン関数   

  • 関数はCircuitsSchedulesで使用できます。

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

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

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


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

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


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

各関数は、使用する言語に応じた特定のディレクトリー構造でパッケージ化する必要があります。

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

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つの値を加算し、戻り値をカスタム項目に保存できます。 この関数の実行後、合計はカスタム項目で動的に更新されます。 ビジネスシナリオ ...