ペット手当のカスタムファンクション登録
ペット手当のカスタムファンクションを設定する方法について説明します。
基本設定
カスタムファンクションの基本設定では、以下の設定を行ってください。
カスタムファンクション名
: 「ペット手当計算」など、目的が分かる名前を設定してください。実行トリガー
:Combositeジョブトリガー
を選択してください。- ペット手当は給与計算時に自動的に計算するため、
Combositeジョブトリガー
を使用します。 実行トリガー処理
は「給与計算(前)」を使用してください。
- ペット手当は給与計算時に自動的に計算するため、
有効/無効設定
:有効
に設定してください。
カスタムファンクションの実装
ペット手当の計算処理を実装します。以下のようなプログラムを作成してください。
async function main() {
// 共通データテーブルからペット手当の単価を取得
const petTeateService =
await baseService.createCustomDataServiceByDefinitionName(
'ペット手当マスタ'
)
const [petTeateMaster] = await petTeateService.getCustomDataByQuery(
(qb) => qb
)
// 基盤側で連携されてくる従業員IDのリストを取得
const employeeIdList = combositeDataService.shikyukojoData.employeeIdList
// 個人データテーブルから従業員のペット情報を取得
const personPetCountService =
await baseService.createCustomDataServiceByDefinitionName(
'従業員ペット飼育数'
)
const personPetCountList = await personPetCountService.getCustomDataByQuery(
(qb) => qb.where('employeeId', 'in', employeeIdList)
)
// 従業員ごとのペット手当を計算
const shikyugakuList = personPetCountList.map((personPetCount) => {
const dogTeate = personPetCount.dogCount * petTeateMaster.dogTeateAmount
const catTeate = personPetCount.catCount * petTeateMaster.catTeateAmount
const petTeate = dogTeate + catTeate
return {
employeeId: personPetCount.employeeId,
kyuyoKomokuName: 'ペット手当',
baseDate: '2025/4/30',
amount: petTeate,
}
})
// 支給額をCombositeに反映
await combositeDataService.shikyukojoData.saveAmount(shikyugakuList)
logger.info('ペット手当の計算が完了しました')
}
main()
登録方法
ファイルアップロード
ファイルに保存したプログラムを画面からアップロードして登録します。
プログラムを保存したファイルを画面からアップロードすることで、カスタムファンクションの処理を登録できます。
コードエディタ(プレビュー)
画面上で直接プログラムを作成して登録する方法です。
画面上に用意されたコードエディタにプログラムを記述することで、カスタムファンクションの処理を登録できます。
ペット手当のカスタムファンクションでは、算出した金額をCombositeに反映させる際に、支給額・控除額データの連携を行います。詳細はリンクを参照してください。
テストと確認
- ファイルをアップロード後、「テストを実施する」ボタンを押して動作確認を行ってください。
- テスト実行結果で以下の点を確認してください:
- ログに「ペット手当の計算が完了しました」と表示されていること
- 計算された金額が期待通りの値であること
テスト実行時は、実際のデータは更新されず、ログに更新内容が出力されます。
テスト実行時は、従業員IDのリストは空になります。
テストで実行する際には、プログラム上で従業員IDリストを設定してください。
動作確認が完了したら、登録ボタンを押してカスタムファンクションを登録してください。
これで給与計算時に自動的にペット手当が計算される仕組みが整います。
本実行
カスタムファンクション登録時に選択した実行トリガー処理がCombosite
で実行されるタイミングで、自動的にカスタムファンクションが実行され、ペット手当が計算されます。
今回は「給与計算(前)」を選択しているため、Combosite
で給与計算を実行すると、自動的にカスタムファンクションが実行され、ペット手当が計算され、給与に反映されます。
Combosite
の計算結果を確認すると、赤枠で囲まれた部分にペット手当が支給されていることが確認できます。