目次
目的
自社の業務プロセスにあわせたデータの処理を独自の関数として設定し、ワークフローに関連付けて実行できます(カスタム関数)。カスタム関数の自動実行のスケジュールを設定することもできます。定期処理を設定すると、指定した時間にカスタム関数を自動で実行できます。ワークフローに関連付けなくてもカスタム関数を実行可能です。
独自の定期処理を設定するには
- ホーム画面から、設定(歯車のアイコン) > 自動化 > 独自の定期処理 > 定期処理の追加に移動してください。
- 名前を入力してください。
- 開始日時を入力してください。
- 頻度を設定してください。
- タイムゾーンを選択してください。
- カスタム関数の編集画面で、スクリプトを入力してください。
- 保存をクリックしてください。
メモ:頻度を毎週とした場合、曜日を選択できます。頻度を毎月や毎年とした場合、日付を選択できます。
利用例 - 給与計算
給与マスター、及び、当月の各種手当や経費のデータを用いて、毎月25日に給与計算を行うとします。このような場合に、複数のフォームのデータを取得して計算処理を行ったうえで給与の詳細データを追加・更新する処理を自動化できます。
次の手順にしたがってください。
メモ:以下のスクリプトは利用例で、実際のアカウントで利用する場合は、スクリプトに合わせてフォームを作成/編集するか、スクリプトを自社の環境に合わせて変更する必要があります。
- ホーム画面から、設定(歯車のアイコン) > 自動化 > 独自の定期処理 > 定期処理の追加に移動してください。
- 名前を入力してください(例:経費精算の詳細)。
- 開始日に、開始する月の25日の日付を選択してください。
- 時刻を入力してください。
- 頻度の欄で毎月を選択し、日付 の欄で「25」と選択してください。
- カスタム関数の編集画面で、以下のスクリプトを入力してください。
salarydetails = Map();
salarydetails = zoho.people.getRecordById("Salary_reference",recordid);
tabularmap = Map();
tabularmap = salarydetails.get("tabularSections");
tabularlist = List();
tabularlist = tabularmap.get("Breakup details");
salarymap = Map();
Totalsalary = 0;
for each r in tabularlist
{
salarymap = r.toMap();
Totalsalary = salarymap.get("HRA1").toDecimal() + salarymap.get("Other_Allowance1").toDecimal() + salarymap.get("Medical1").toDecimal() + salarymap.get("Basic1").toDecimal();
}
salaryupdate = Map();
salaryvalue = Map();
salaryvalue.put("recordid",recordid);
salaryvalue.put("Net_Salary",Totalsalary.toString());
salaryvalue.put("Revised_date",today.toString());
salaryupdate = zoho.people.update("Salary_reference",salaryvalue);
info salaryupdate;
//この処理により、給与マスターのフォームを参照して、給与の明細データが追加されます。
getdata = List();
getdata = zoho.people.getRecords("Salary_reference");
addata = Map();
addrecord = Map();
//それぞれのデータを参照し、当月の給与明細のデータを作成します。
for each r in getdata
{
mon_salary = r.get("Net_Salary");
erecno = r.get("Employee_ID.ID");
addata.put("Employee_ID",erecno);
addata.put("Montly_Salary",mon_salary);
addata.put("Date_1",today.toString());
addrecord = zoho.people.create("Monthly_Salary_Details",addata);
}
putrecord = Map();
updaterecord = Map();
putrecord.put("recordid",recordid); putrecord.put("Sch_date",datevalue.toString());
updaterecord = zoho.people.update("Schedular_form",putrecord);
info updaterecord;
- 保存をクリックしてください。
設定後、毎月25日に処理が自動で実行され、給与に関連するフォームのデータをもとに給与が計算され、給与明細のデータが追加されます。