【Zoho People】出退勤の時間と工数の時間の合計の整合性を確認

【Zoho People】出退勤の時間と工数の時間の合計の整合性を確認

以下は、出退勤の時間の入力時に整合性のチェックを行う設定例です。

1. 画面右上の設定のアイコン(歯車のアイコン)をクリックしてください。



2. 左側のメニューから「自動化」→「ワークフロー」と選択し、
表示された画面で「ワークフローの追加」というボタンをクリックしてください。


3. ワークフローの詳細情報の入力画面で、フォーム名に「出退勤」を選択し、
ワークフロー名を入力してください。
また、必要に応じて、実行条件を選択してください(通常はそのままで設定不要です)。



4. 「処理」の「カスタム関数」の欄の「+」ボタンをクリックしてください。

※カスタム関数の機能は有料プランでのみ利用できます。

5. 関数名を入力し、「パラメーターの編集」をクリックしてください。
※関数名は内容を識別するためのもので、名前を自由に指定できます。



6. パラメーターの編集画面で以下の内容を設定してください。
メソッド名を入力してください(英数字で任意の内容を設定してください)。
メソッドの引数を設定してください。
日付:引数名に「emailId」と入力し、の印のアイコンをクリックし、
従業員の項目の中から「メールアドレス」を選択してください。

勤務日:「+新しく追加」のメニューをクリックし、
引数名に「workDate」と入力し、
上記と同様の手順で「勤務」を選択してください。


従業員データID:「+新しく追加」のメニューをクリックし、
引数名に「employeeRecordID」と入力し、
従業員の項目の中から「ID」(Zoho ID)を選択してください。

認証トークン:「+新しく追加」のメニューをクリックし、
引数名に「authToken」と入力し、
「独自の値の入力」を選択し、認証トークンを入力してください。
※認証トークンの取得方法についてはこちらを参照してください。
設定イメージ↓

入力完了後、「保存」をクリックしてください。

7. 関数の内容を設定してください。
以下の内容をコピーして貼り付けてください。

//■パラメーター設定
sdate = workDate;
edate = sdate;
dateFormat = "yyyy/MM/dd";
//■出退勤のAPIの呼び出し
u = "https://people.zoho.com/people/api/attendance/getUserReport";
p = Map();
p.put("authtoken",authToken);
p.put("sdate",sdate);
p.put("edate",edate);
p.put("dateFormat",dateFormat);
p.put("emailId",emailId);
response = postUrl(u,p);
responseMap = response.toMap();
//日付の一覧の取得
dateList = responseMap.keys();
dateList.sort();
totalWorkingHours = 0;
totalWorkingMinutes = 0;
totalHours = 0;
totalMinutes = 0;
for each  d in dateList
{
//日付の処理
dateMap = responseMap.get(d).toMap();
dateValue = d.toDate();
firstInString = dateMap.get("FirstIn");
lastOutString = dateMap.get("LastOut");
//Total Hoursの集計
totalHoursString = dateMap.get("TotalHours");
totalHoursNumber = totalHoursString.toList(":").get(0).toLong();
totalMinutesNumber = totalHoursString.toList(":").get(1).toLong();
totalHours = totalHours + totalHoursNumber;
totalMinutes = totalMinutes + totalMinutesNumber;
}
//分の合計と集計
//Total Hours
totalMinutesToHours = floor(totalMinutes / 60);
leftTotalMinutes = totalMinutes % 60;
totalHours = totalHours + totalMinutesToHours;
totalTimeInMinutes = totalHours * 60 + leftTotalMinutes;
//■工数APIの呼び出し
u = "http://people.zoho.com/people/api/timetracker/gettimelogs?authtoken=" + authToken + "&fromDate=" + sdate + "&toDate=" + edate + "&billingStatus=all&jobId=all&user=" + emailId + "&dateFormat=" + dateFormat;
response = getUrl(u);
responseMap = response.toMap();
responseValue = responseMap.get("response");
responseValueMap = responseValue.toMap();
result = responseValueMap.get("result");
resultList = result.toJSONList();
aggregatedTotalTime = 0;
for each  r in resultList
{
totaltime = r.get("totaltime");
aggregatedTotalTime = aggregatedTotalTime + totaltime;
}
timeLogTotalMinutes = aggregatedTotalTime / 60;
timeLogTotalHours = floor(timeLogTotalMinutes / 60);
timeLogLeftOverMinutes = timeLogTotalMinutes - timeLogTotalHours * 60;
//■整合性のチェック
resultText = "";
if(totalTimeInMinutes != timeLogTotalMinutes)
{
resultText = "一致していません!";
}
else
{
resultText = "一致しています";
}
//■データの追加
addMap = Map();
addMap.put("AttendanceTime",totalTimeInMinutes.toString());
addMap.put("TimeLog",timeLogTotalMinutes.toString());
addMap.put("Employee",employeeRecordID.toString());
addMap.put("Date",workDate);
addR = zoho.people.create("AttendanceTimeLogConsistencyCheck",addMap);
//■通知メールの送信
sendmail
[
from :zoho.loginuserid
to :zoho.loginuserid
subject :"出退勤と工数の整合性チェック"
message :"対象日:" + workDate + "<br>\n" + "<br>\n" + "出退勤の記録による時間合計(分):" + totalTimeInMinutes + "<br>\n" + "工数記録による時間合計(分):" + timeLogTotalMinutes + "<br>\n<br>\n" + resultText
]


上記の設定後、関数の「保存」ボタンをクリックしてください。

8. ワークフローの設定の「保存」をクリックしてください。



上記で設定は完了です!出退勤のデータを追加してみて、
整合性の確認結果のメールが送信されてくることを確認してください。

※出勤と退勤の時刻入力した場合のみ適切に動作します。



      • Related Articles

      • 【Zoho People】ユーザーの追加方法

        ユーザーの追加方法は、大きく以下の4つに分かれます。 ・ユーザーの招待 ・ユーザーの直接追加 ・ファイルからのインポート ・他サービスからの同期 手順を一つずつご説明いたします。 ・ユーザーの招待 Zoho Peopleの設定画面から「ユーザー」をクリックして、ユーザー設定画面に移動します。 画面右上の「追加」から、「ユーザーの招待」をクリックしてください。 「ユーザーの招待」をクリックすると、下記のような画面が出てきます。 ...
      • 【Zoho People】 ユーザー項目の追加と権限設定

        1)ユーザー項目の追加 フォームの追加画面から、新しい項目を追加できます。 左のタブの組織→設定から移動できます。 現在のユーザー情報にある標準項目に加え カスタマイズした給与や社会保険番号などの項目を追加できます。 2)項目の操作権限の設定 左下の設定→権限から閲覧権限、編集権限、削除権限などを設定できます。 閲覧権限設定したユーザーだけが見れるような環境に仕上げることができます。
      • 【Zoho People】数式:生年月日を和暦で表示

        以下の数式を用いてください。 ...
      • 【Zoho People】認証トークンの作成

        以下の手順にしたがってください。 1. 画面右上の設定のアイコン(歯車のアイコン)をクリックしてください。 2. 「連携」→「Zoho ピープル API」をクリックしてください。 3. 「ブラウザーモード」の欄のリンクをクリックしてください。 ​ 4. 認証トークンが表示されますのでコピーして保管してください。 「AUTHTOKEN=」という文字の右側に表示される英数字の乱数が認証トークンです。 例: AUTHTOKEN=aaa111bbb222ccc333ddd ...
      • 【Zoho Social】はじめてガイド

        Zoho Socialのはじめてガイドを作成いたしました。 操作や設定について掲載されておりますので、ご確認いただければ幸いです。 Zoho Social はじめてガイド https://workdrive.zohoexternal.com/external/41e847652163f265f3fde115ee107b0b86554cacfd4d60d5cf72d9cc13e5dd9f (2022/6/30 更新)

      Zoho Community

      Zoho ユーザーが集うオンラインフォーラムでは、サービスの使いこなしに関する活発な議論や情報交換が行われています。