要件
Deluge を使用して ZIP ファイルから給与明細を抽出し、抽出したファイルを ボタンをクリックするだけで メール送信できるようにします。
ユースケース
人事管理アプリケーションには、次の 3 つのフォームがあります。 従業員の追加 、 従業員給与明細 、 および 自分の給与明細をダウンロード です。「 従業員の追加 」フォームでは、すべての従業員の権限を管理します。「 従業員給与明細 」フォームは、 すべての従業員の給与明細を保存するために使用します。毎年末に、人事担当者(管理者)は、すべての従業員の給与明細を ZIP ファイルとして「 従業員給与明細 」フォームにアップロードします。このフォームにアクセスできるのは管理者のみです。ただし、従業員は「 自分の給与明細をダウンロード 」というステートレスフォームを使用して、自分の給与明細を取得できます。従業員がこのフォームから給与明細をリクエストすると、選択した年の ZIP ファイル(従業員給与明細フォームに保存)から、選択した月の給与明細が抽出され、従業員のメールアドレス宛てにメールで送信されます。
手順
|
フォーム
|
フォームリンク名
|
項目名
|
項目リンク名
|
項目タイプ
|
|
従業員を追加
|
Add_Employee
|
会社メールアドレス
|
Official_Email
|
メール
|
|
従業員 ID
|
Employee_ID
|
数値
|
|
このユースケースでは、上記の項目のみが必要です。必要に応じて、任意の数の項目を追加できます。
|
|
従業員給与明細
|
Employee_Payslip
|
従業員メールアドレス
|
Employee_Email
|
メール
|
|
|
給与明細
|
Payslips
|
サブフォーム
|
|
|
Download_My_Payslip
|
従業員 ID
|
Employee_ID
|
ルックアップ (Add_Employee)
|
|
年を入力
|
Enter_Year
|
数値
|
|
月を選択
|
Select_Month
|
ドロップダウン
|
アプリケーション内にフォームで入力されたデータを保存する必要がないため、 My Payslip をダウンロード フォームはステートレスとして作成しています。
ステートレスフォームを 作成する には、まず 通常のフォーム を作成し、必須項目を設定してから、「Zoho Creator にデータを保存する」のチェックボックスをオフにしてフォームを複製します。
2. ステートレスフォーム「 My Payslip をダウンロード 」内で、既定の 送信 ボタンと リセット ボタンを削除し、「 Payslip を取得 」という名前のボタンを追加します。必要に応じて、 リセット ボタンを残すこともできます。
4. 次のスクリプトを Deluge エディターに保存します。
- // 項目を無効にする
- 無効にする Employee_ID;
- // Add_Employee フォームで、ログイン中の従業員のデータ ID を Employee_ID ルックアップ項目に代入する
- input。Employee_ID = Add_Employee[Official_Email == Zoho。loginuserid].ID;
5. Zoho Creator サービスへの 接続 を作成し、名前を「creator_oauth_connection」とします。この接続は、 手順 7 の Deluge スクリプト内でファイルをダウンロードするために使用されます。
7. [ 新しいアクションを追加 ]をクリックし、[Deluge スクリプト]を選択します。次の Deluge スクリプト を Deluge エディターに保存します。
- // ログイン中の従業員の Employee_Payslip フォームの従業員データを取得します
- empRecord = Employee_Payslip[Employee_Email == Zoho。loginuserid];
- // 従業員の給与明細を ZIP ファイルとして保持しているサブフォームをループ処理します
- for each subformRow in empRecord。Payslips
- {
- // リクエストされた年の給与明細 ZIP ファイルを保持しているサブフォーム行を特定します
- if(subformRow。Year_field == Enter_Year)
- {
- // Zoho Creator V2 API を使用して、リクエストされた年の給与明細 ZIP ファイルをダウンロードします
- // <app_admin_name> と <application_link_name> を適切な値に置き換えてください
- zip_file = invokeurl
- [
- url :' https://creator.zoho.com/api/v2/<app_admin_name>/<application_link_name>/report/All_Employee_Payslips/' + empRecord。ID + '/Payslips.Payslip_ZIP/' + subformRow。ID + '/download'
- 種類 :取得する
- connection:'creator_oauth_connection'
- ];
- // ZIP ファイルを展開して、各月の給与明細を含む PDF ファイルを取得します
- extractedFiles = zip_file。extract();
- // 展開されたファイルは、キーがファイル名、値が対応する PDF ファイルの Map として返されます
- // PDF ファイル名が EmployeeID-Month-Year。pdf という形式で保存されていると仮定し、リクエストされた給与明細のファイル名を作成します
- fileName = input。Employee_ID。Employee_ID + '-' + input。Select_Month + '-' + input。Enter_Year + '.pdf';
- /展開されたファイルから、必要な給与明細を取得します
- requestedFile = extractedFiles。取得する(fileName);
- // リクエストされた給与明細をメールで送信します
- sendmail
- [
- 差出人 :Zoho。adminuserid
- to :Zoho。loginuserid
- 件名 :'Payslip' + '-' + input。Select_Month + ' ' + input。Enter_Year
- メッセージ :'ご依頼の給与明細を添付ファイルでお送りします。'
- 添付ファイル :file:requestedFile
- ]
- // 通知メッセージを表示します
- 注意 'リクエストされた給与明細をメールで送信しました。';
- }
- }
動作を確認する
注意事項