カスタム関数

カスタム関数

Zoho Flowでは、Delugeスクリプトで作成されたカスタムコードをワークフローに組み込むことで、自動化の機能性を向上させることができます。カスタムコードの使用により、繰り返し行うタスクの自動化や、複雑な業務の手間を軽減することが可能です。たとえば、取引先や案件の金額に応じて割引を計算する、件名に基づいて問い合わせを分類するなど、複雑な業務を自動化できます。カスタムコードを使用することで、自社のニーズに合わせた関数を作成し、自社内の他のZoho Flowユーザーも自由に活用できます。

カスタム関数の作成

既存のカスタム関数の使用

カスタム関数の削除

関数でのアプリ連携の使用

Zohoアプリ連携に関する重要な注意事項

Delugeステートメントとタスク

カスタム関数の作成

  1. 編集画面の左側にある[実行処理]タブをクリックします。

  2. [カスタム関数の]をクリックします。
  3. 次に、[+カスタム関数]をクリックします。

  4. 関数名を入力します。関数名には、英数字およびアンダースコア(_)のみ使用できます。
    例:_discount_calculation_1や autofill_zipcode
  5. 戻り値の型(出力データ型)を選択し、必要に応じてパラメーター(入力値)とそのデータ型を指定します。
    データ型
    説明
    なし
    値なし
    整数
    整数値
    フロート
    10進数の値
    文字列
    テキスト
    ブール型
    真または偽
    日付
    日付の値
    関連付け
    キーと値の関連付け
    一覧
    値の一覧
    ファイル
    ファイルオブジェクト
    注意:
    戻り値の型(出力データ型)は初期設定で「値なし」になります。
    入力データ型は「なし」にすることはできません。
    FILE は、(ファイル形式に関係なく)Web またはクラウドサービスから取得されたすべてのファイルをファイルオブジェクトとして扱う一意のデータ型です。
    Delugeプログラミング言語の参照資料についてはの詳細はこちらをご参照ください。
  6. [作成する]をクリックします。
  7. カスタム関数を作成する際のヒントやDelugeプログラミング言語の参照資料についてはの詳細はこちらをご参照ください。


  8. [保存する]をクリックします。
  9. カスタム関数のコードを改正するには、関数の編集アイコンをクリックします。組織内のどのユーザーでも、カスタム関数を編集/削除することができます。

カスタム関数は、「実行処理」タブの下の「カスタム関数」から利用できます。

既存のカスタム関数の使用

  1. 編集画面の左側にある[実行処理]タブをクリックします。
  2. [カスタム関数の]をクリックすると、既存のカスタム関数の一覧を確認できます。

  3. 対象のカスタム関数を画面右側のメニューから編集画面にドラッグ&ドロップすると、関数の設定タブが表示されます。


  4. 関数の入力パラメーターを入力して、関数を設定します。
  5. [保存する]をクリックします。
  6. [カスタム関数]の右側にある編集アイコンをクリックすると、カスタム関数のデータを編集することができます。 他の処理と同様に削除することもできます。



カスタム関数の削除

  1. 編集画面の左側にある[実行処理]タブをクリックします。
  2. [カスタム関数の]をクリックすると、既存のカスタム関数の一覧を確認できます。
  3. 対象のカスタム関数にカーソルを合わせると、削除アイコンが表示されます。削除アイコンをクリックすると、関数が削除されます。

カスタム関数を削除すると、その関数を使用しているすべてのフローに影響が出ます。

カスタム関数の出力変数の関連付け

カスタム関数の出力は[変数を挿入する]セクションで変数として利用可能です。この変数を処理の項目に関連付けるには、他の変数と同じ方法を用います。

カスタム関数では、キーと値のペア(マップデータ型)の形式でデータを返す場合、サンプルデータを使用して関数を実行すると、各キー(変数)を特定することができます。また、このように特定した変数やキーは他の処理に関連付けることができます。詳細はこちら。

関数でのアプリ連携の使用

Zoho Flowでは、invokeURLのタスクを使用することで、カスタム関数で外部アプリとの連携を行うことができます。これは、認証処理を通して、Zohoや外部アプリのデータをアクセスまたは連携する場合に使用できます。
invokeURLタスクについての詳細はこちら。

invokeURLタスクにアプリ連携を組み込む方法

  1. カスタム機能画面の左側にある[自分の外部連携]をクリックします。
  2. 対象のアプリを一覧から選択します。[詳細を表示する]をクリックします。
    該当する外部連携が見つからない場合、画面の右上にある[外部連携を作成する]をクリックして新しいアプリ連携を作成できます。
  3. 外部連携を埋め込むには、コードをコピーして、カスタム関数に貼り付けます。
  4. また、リンク名も外部連携の詳細画面からコピーすることができます。
注意:
リンク名とは、アプリ連携に割り当てる固有の名前です。リンク名は、invokeURLのスクリプトで特定のアプリとの連携を参照するとき、または、連携の認証処理を行うときに使用します。
•現在、外部連携の機能では、invokeURLタスクにのみ対応してします。なお、Zoho Flowの連携機能で、アプリ上の定義済みタスクへの対応は、現在開発中です。

Zohoアプリ連携に関する重要な注意

現在InvokeURLタスクで認証ベースのZohoアプリ連携を使用している場合、OAuth認証方式に基づく連携への更新が推奨されます。ZohoアプリはOAuth認証へと移行しており、従来の認証方法を使用した連携は今後利用できなくなります。

外部連携を更新するには:

  1. invokeURLタスクを使用して、カスタム関数に組み込んだZohoアプリ連携を特定します。
  2. Zohoアプリ用に新しいOAuth認証を使用した連携を作成します。
  3. invokeURLタスクで、authtokenパラメーターを削除し、新しい連携を使用します。前のセクションの手順に従って、既存のinvokeURLタスクに新しい連携を追加します。

以下の関数の例では、authtokenを使用してZoho Booksへの連携を設定しています。

Zoho BooksのOAuth連携を作成した後、スクリプトを変更して、新しく作成した外部連携を追加できます。

Delugeのステートメントとタスク

Zoho Flowのカスタム関数コーディング画面の左側には、Deluge言語で作成されたプログラム文やタスクのコードが事前に用意されています。これらのタスクや文をドラッグ&ドロップすることで、かんたんにカスタム関数にコードを組み込むことができます。

基本

条件

通知

連携

コレクション

基本

変数の設定

処理内で使用可能な特定の値を持つ変数を定義します。

例: 

  1. price = quantity*20

数量の値が変更されると、価格の値も変更されます。

コメントの追加

コメントを追加することで、コードで実現したい処理やタスクの目的や機能をより明確に説明できます。

例: 

  1. price = quantity*20 //商品注文の数量を 20 倍に積み上げて、合計価格を計算します。

「//」以降のコードはコメントとして扱われます。

情報

このプログラム文は、カスタム関数によって出力される変数の値を履歴に記録するために使用されます。

例: 

  1. info customer_names;

この機能では、履歴に顧客名が記録されます。

条件

IF文

このプログラム文は、条件をチェックし、条件が真の場合、対象の処理を実行します。

例:

  1. if (client_title == "CEO")
  2. {
  3. client_type = "premium";
  4. }

顧客の役職は「CEO」であるかを確認します。その条件に当てはまる場合、顧客の種類を「プレミアム顧客」に設定します。

ELSE IF文

このプログラム文は、最初のIF文の結果が「偽」(False)である場合、次のI「F文 」文が実行されます。

例:

  1. if (client_title == "CEO")
  2. {
  3. client_type = "premium";
  4. }
  5. else if (client_title == "Admin")
  6. {
  7. client_type = "標準";
  8. }

顧客の役職が「CEO」でなく「Admin」である場合、その顧客は「標準の顧客の種類」に設定されます。

ELSE文

「if文」「else if文」の両方が失敗した場合に実行されます。

例:

  1. if (client_title == "CEO")
  2. {
  3. client_type = "premium";
  4. }
  5. else if (client_title == "Admin")
  6. {
  7. client_type = "standard";
  8. }
  9. ELSE文
  10. {
  11. client_type = "regular";
  12. }

「if」文条件も「else if文」条件も 「true」 を保持しない場合、クライアントタイプは 「regular」 に設定されます。

通知

メールの送信

指定された受信者にメールを送信します。

例:

  1. sendmail
  2. [
  3. from: zoho.adminuserid
  4. to: "bruce@zylker.com"
  5. subject"Your request has been approved"
  6. message:
  7. "Hello Bruce,
  8. Your request for a new laptop has been approved.Please contact your IT administrator to collect it.
  9. Regards,
  10. Frank Wilson"
  11. ]


連携

webhook

他のアプリケーション向けにWebhookサブスクリプションを作成します。

  1. param = Collection("TestParam":"TestValue");
  2. header = Collection("Content-type":"application/json");
  3. testWebhook = invokeurl
  4. [
  5. url :"https://requestb.in/1ckt5a31%22"
  6. type: POST
  7. parameters: param
  8. headers: header
  9. ];

詳細はこちら。

コレクション

コレクションの作成

カスタム関数に指定された入力要素に応じて、マップまたはリストを作成します。

例:
  1. students = Collection ();


insert文

対象のコレクションに要素を追加します。

例: 

  1. students.insert ("Kevin", "Jessica", "William", "Emma");

指定された名前を学生一覧に追加します。

例: 

  1. students. insert ("name":"Matt" , "grade":"8" , "subject":"English");

関連付けに提供されたキーと値のペアを追加します。

get文

対象のコレクションから特定の要素を取得します。

例: 

  1. students.get (6);

学生からインデックス6の値を取得します。

例:一覧 

  1. students.get ("name");

学生関連付け内のキー「name」に関連付けされた値を取得します。

update文  

対象のコレクションを更新します。

例: 

  1. students.update(2,"Micheal");

一覧の2番目の要素の値を「Micheal」に更新します。

例: 

  1. students.update("grade","9");

キー 'grade' の値を9に更新します。

for each element文 

対象のコレクションの各要素に対してタスクを実行します。

例:

  1. for each student_mail in students
  2. {
  3. myMessage = "Welcome to the students sports club.Please assemble at 9:00 am in the basketball court tomorrow.";
  4. sendmail
  5. [
  6. from :zoho.loginuserid
  7. to :student_mail
  8. subject :"Invitation to Sports club"
  9. message :myMessage
  10. ]
  11. }

一覧にあるすべての学生のメールアドレスにメールが送信されます。

例:

  1. name = collection();
  2. name.insert("First Name":"Emma", "Middle Name":"Marley", "Last Name":"Becker");
  3. Fullname = "";
  4. for each element in name
  5. {
  6. Fullname += (element+" ");
  7. }

この関数は、マップ内のすべての値を連結します。その結果として 'Emma Marley Becker' が出力されます。

注意:日時項目は、カスタム関数やデータ関連付けで使用する前に、文字列関数に変換する必要があります。

サンプルコード:

日付形式を別の形式に変換し、文字列関数に変換するのに役立ちます。

  1. string formatDate(string myDate, string fromFormat, string toFormat)
  2. {
  3. fromDate = myDate.toTime(fromFormat);
  4. dateStr = fromDate.toString(toFormat);
  5. return dateStr;
  6. }

上記のコードでカスタム関数を作成します。次のコードを使用して個別指定関数を作成してください。以下の入力パラメーターを指定します:

  • myDate - 前のステップからの日付項目
  • fromFormat - 前のステップの日付形式
  • toFormat - 次のステップの日付形式

例:MailChimpの実行条件とZoho Creatorの処理の間でカスタム関数を作成する場合、myDateをMailChimpの日付項目に関連付けます。fromFormatはMailChimpの日付形式であり、toFormatはZoho Creatorの日付形式です。

Delugeのタスクと組み込み関数の活用法

Delugeのタスクと組み込み関数を使用することで、ワークフローの特定要件に合わせて関数をカスタマイズできます。以下に、使用例を挙げます。

HTTPまたはAPIコール関数

Webリソースにアクセス、変更するには、HTTPまたはAPIコールを行う必要があります。そのような場合、HTTPクライアントであるinvokeURLタスクを使用できます。 

ファイル操作と添付ファイル関数

ファイル関数を使用すると、ファイルオブジェクト(FILEデータ型)を操作できます。これにより、ファイルのプロパティを取得したり、ファイルの圧縮や解凍を行うことができます。

他のZohoサービスとの連携関数

連携タスクを使用すると、Zohoサービス間でデータのアクセス、転送、同期ができます。関数に連携タスクを含めたい場合、連携タスクのリストを利用できます。

日付と日時関数日時

datetimeおよびtime関数を使用することで、日付と時間の形式を扱い、計算を行うことができます。 

数値と計算関数

高度な計算や数学的操作を行う必要がある場合、コード内で数値関数を使用できます。

関連付けと一覧の操作関数

関連付け関数は、変数内のキーと値のデータを操作するのに役立ちます。たとえば、変数内のキーを表示したり、キーと値のペアを削除したりすることができます。

各レコード関数

「for each record」タスクは、特定の基準に基づいたフォームのレコードを反復処理します。

変換関数

変換関数は、データをデータ型や構造に変換するために役立ちます。Delugeの機能やタスクに関する詳細情報については、Delugeのヘルプ記事をご参照ください。