機械翻訳について

給与

このトピックでは、給与プロセスの導入に関する注意事項を示します。

給与の変更

通常は、このような場合にフィールド値のデフォルト設定と検証を使用できます。

  • ライン・マネージャが給与変更を提示するときに、従業員雇用主がVisionの場合に提示給与ベースをデフォルト設定します。
  • ライン・マネージャが給与変更を提案する際、有効日を現在の日付に、次回給与レビュー日を有効日の1年後にデフォルト設定します。
  • ライン・マネージャが給与変更を提案するときに、アサイメント・フレックスフィールドに基づいて給与ベースをデフォルト設定します。
  • 米国および特定の等級に属するフル・タイム従業員のデフォルト給与ベースです。
  • 日付が過去でないことを検証します。
  • 給与額が最小値を下回っていないことを検証します。
  • 開始日が翌月の1日であることを確認します。
  • ユーザーが料金コンポーネントの値を変更していないことを確認します。

この表は、「給与の変更」ページでサポートされる属性、例外および実装の推奨事項を示しています。

これは、「自分のチーム」タブと「自分のクライアント・グループ」タブの両方のページに適用されます。

条件内 フィールド値のデフォルト設定 フィールド値の検証 実装ガイドライン
  • ユーザー・ロール
  • 雇用主
  • ビジネス・ユニット
  • 開始日
  • 処理
  • 事由
  • 割当属性を含む

    • アサイメント・カテゴリ
    • アサイメント・ステータス
    • 交渉団体
    • 部門
    • FTE
    • フルタイムまたはパートタイム
    • 等級
    • 等級コード
    • 等級ラダー
    • 等級ラダー・ステップ
    • 給与範囲デフォルト値(等級レート値)
    • 時給または固定給
    • 時給または固定給
    • ジョブ
    • ジョブ・コード
    • ジョブ・ファミリ
    • ジョブ機能
    • 雇用主
    • 国別仕様コード
    • 事業所
    • 次の給与開始日
    • 給与開始日
    • 個人アサイメント組合
    • 個人アサイメント組合メンバー
    • Personタイプ
    • ポジション
    • ポジション予算値
    • ポジション・コード
    • ポジション標準勤務時間
    • プライマリ雇用関係
    • 退職日
    • USジョブ情報超過勤務ステータス
    • 就業者カテゴリ
    • 勤務時間
    • 勤務時間周期

    追加アサイメント情報セグメント

  • アサイメント・フレックス
  • 部門フレックス
  • 等級ラダー・フレックス
  • 等級フレックス
  • ジョブ・フレックス
  • ポジション・フレックス
  • 開始日
  • 処理
  • 事由
  • 提示給与ベース
  • 給与額
  • 次回給与レビュー日
  • ユーザー・ロール
  • 雇用主
  • ビジネス・ユニット
  • 開始日
  • 処理
  • 事由
  • 割当属性を含む
    • アサイメント・カテゴリ
    • アサイメント・ステータス
    • 交渉団体
    • 部門
    • FTE
    • フルタイムまたはパートタイム
    • 等級
    • 等級コード
    • 等級ラダー
    • 等級ラダー・ステップ
    • 時給または固定給
    • 時給または固定給
    • ジョブ
    • ジョブ・コード
    • ジョブ・ファミリ
    • ジョブ機能
    • 雇用主
    • 国別仕様コード
    • 事業所
    • 次の給与開始日
    • 給与開始日
    • 個人アサイメント組合
    • 個人アサイメント組合メンバー
    • Personタイプ
    • ポジション
    • ポジション予算値
    • ポジション・コード
    • ポジション標準勤務時間
    • プライマリ雇用関係
    • 給与範囲最低
    • 給与範囲中間
    • 給与範囲最高
    • 給与範囲デフォルト値(等級レート値)
    • 退職日
    • USジョブ情報超過勤務ステータス
    • 就業者カテゴリ
    • 勤務時間
    • 勤務時間周期
    • 簡易コンポーネント
    • レート・コンポーネント
    • 追加アサイメント情報セグメント
      • アサイメント・フレックス
      • 部門フレックス
      • 等級ラダー・フレックス
      • 等級フレックス
      • ジョブ・フレックス
ポジション・フレックス

デフォルト設定

  • 給与額は、ユーザーが決定した給与ベースのタイプを使用する場合にのみデフォルト設定できます。
  • 給与セクションのフィールドは、この表の「条件」列にリストされているフィールドに基づいてデフォルト設定できます。
  • 給与フィールドの初期フィールド値およびターゲット・フィールドがサポートされるようになりました。
  • 同日に複数のアサイメントがある場合、最も高い連番付きアサイメントの詳細が考慮されます。
  • CGPフローで「続行」をクリックすると警告がトリガーされるため、ユーザーには表示されません。

給与履歴

通常は、このような場合にフィールド値のデフォルト設定と検証を使用できます。

  • 報酬マネージャが給与変更を提示するときに、従業員の雇用主に基づいて提示給与ベースをデフォルト設定します。
  • ライン・マネージャが給与変更を提示するときに、有効日を翌月の初日に、次回給与レビュー日を有効日の1年後にデフォルト設定します。
  • 給与変更の提案時に、アサイメント・フレックスフィールドに基づいて給与ベースをデフォルト設定します。
  • ユーザーが遡及給与変更を入力していないことを確認します。
  • 給与の変更が月の初日に発生することを確認します。
  • 給与額が最小値を超えていることを確認します。
  • ユーザーが簡易コンポーネント値を変更していないことを確認します。
  • ユーザーが簡易コンポーネントにゼロ値を入力していないことを確認します。
  • 特定の簡易コンポーネントの合計が式に基づいていることを検証します(調整は、すべてのコンポーネントの合計から生活費を差し引いたものである必要があります)。

この表は、「給与履歴」に対してサポートされている属性、例外および実装に関する推奨事項を示しています。

これは、「自分のクライアント・グループ」タブからアクセスする給与履歴の管理ページに適用されます。

値のデフォルト設定の条件内 フィールド値のデフォルト設定 値の検証の条件内 フィールド値の検証 実装ガイドライン
  • ユーザー・ロール
  • 雇用主
  • ビジネス・ユニット
  • 開始日
  • 処理
  • 事由
  • 割当属性を含む

    • アサイメント・カテゴリ
    • アサイメント・ステータス
    • 交渉団体
    • 部門
    • FTE
    • フルタイムまたはパートタイム
    • 等級
    • 等級コード
    • 等級ラダー
    • 等級ラダー・ステップ
    • 給与範囲デフォルト値(等級レート値)
    • 時給または固定給
    • 時給または固定給
    • ジョブ
    • ジョブ・コード
    • ジョブ・ファミリ
    • ジョブ機能
    • 雇用主
    • 国別仕様コード
    • 事業所
    • 次の給与開始日
    • 給与開始日
    • 個人アサイメント組合
    • 個人アサイメント組合メンバー
    • Personタイプ
    • ポジション
    • ポジション予算値
    • ポジション・コード
    • ポジション標準勤務時間
    • プライマリ雇用関係
    • 退職日
    • USジョブ情報超過勤務ステータス
    • 就業者カテゴリ
    • 勤務時間
    • 勤務時間周期

    追加アサイメント情報セグメント

  • アサイメント・フレックス
  • 部門フレックス
  • 等級ラダー・フレックス
  • 等級フレックス
  • ジョブ・フレックス
  • ポジション・フレックス
  • 開始日
  • 処理
  • 事由
  • 提示給与ベース
  • 給与額
  • 次回給与レビュー日
  • ユーザー・ロール
  • 雇用主
  • ビジネス・ユニット
  • 開始日
  • 処理
  • 事由
  • 割当属性を含む

    • アサイメント・カテゴリ
    • アサイメント・ステータス
    • 交渉団体
    • 部門
    • FTE
    • フルタイムまたはパートタイム
    • 等級
    • 等級コード
    • 等級ラダー
    • 等級ラダー・ステップ
    • 時給または固定給
    • 時給または固定給
    • ジョブ
    • ジョブ・コード
    • ジョブ・ファミリ
    • ジョブ機能
    • 雇用主
    • 国別仕様コード
    • 事業所
    • 次の給与開始日
    • 給与開始日
    • 個人アサイメント組合
    • 個人アサイメント組合メンバー
    • Personタイプ
    • ポジション
    • ポジション予算値
    • ポジション・コード
    • ポジション標準勤務時間
    • プライマリ雇用関係
    • 給与範囲最低
    • 給与範囲中間
    • 給与範囲最高
    • 給与範囲デフォルト値(等級レート値)
    • 退職日
    • USジョブ情報超過勤務ステータス
    • 就業者カテゴリ
    • 勤務時間
    • 勤務時間周期
    • 簡易コンポーネント
    • レート・コンポーネント

    追加アサイメント情報セグメント

  • アサイメント・フレックス
  • 部門フレックス
  • 等級ラダー・フレックス
  • 等級フレックス
  • ジョブ・フレックス
  • ポジション・フレックス
該当なし
  • 給与額は、ユーザーが決定した給与ベースのタイプを使用する場合にのみデフォルト設定できます。
  • デフォルト設定は、既存の給与の訂正ではなく、給与の作成時にサポートされます。
  • 同日に複数のアサイメントがある場合、最も高い連番付きアサイメントの詳細が考慮されます。
  • CGPフローで「続行」をクリックすると警告がトリガーされるため、ユーザーには表示されません。
  • 給与全体で検証を実行することはできません。
  • 給与フィールドの初期フィールド値およびターゲット・フィールドがサポートされるようになりました。
  • 検証は、「保存」または「OK」ボタンをクリックするとトリガーされ、「送信」ボタンはクリックされません。

ユーザーが料金コンポーネント値を変更していないことを検証

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   *
   * @param {object} context
   * @return {boolean}
   */
  function runCondition(context) {
    const { $componentContext, $fields, $modules, $user } = context;

    let salBasisType = $fields.compensationSalaries.SalaryBasisType.$value();

    if(salBasisType == 'R'){
      let newSalaryBasisId = $fields.compensationSalaries.SalaryBasisId.$value();
      let curSalaryBasisId = $fields.compensationSalaries.SalaryBasisId.$initialValue();

      if(newSalaryBasisId != curSalaryBasisId){
        return false;
      }

      let curValue = 0;
      let newValue = 0;

      let curComponentsArray = $fields.compensationSalaries.salaryPayRateComponents.$initialValue().items;

      for(let i in curComponentsArray){
        let cmpt=curComponentsArray[i];
        if(cmpt.Name == 'ZCMP GSP RATE BASE'){
          curValue = Number(cmpt.RateAmount);
        }        
      }


      let componentsArray = $fields.compensationSalaries.salaryPayRateComponents.$value().items;
      for(let j in componentsArray){
        let cmpt=componentsArray[j];
        if(cmpt.Name == 'ZCMP GSP RATE BASE'){
          newValue = Number(cmpt.RateAmount);
        }  
       
      }

      if(curValue != newValue){
        return true;
      }
    }    

    return false;
  }

  return { runCondition };
});

料金コンポーネントに値が指定されていることを検証

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   *
   * @param {object} context
   * @return {boolean}
   */
  function runCondition(context) {
    const { $objectContext, $fields, $modules, $user, $value } = context;

    let salary = $fields['compensationSalaries'].$value();
    let payRateComponents = salary['salaryPayRateComponents'];
    if (payRateComponents) {
      let componentsArray = payRateComponents.items;
      if (componentsArray) {
        for (let i = 0; i < componentsArray.length; i++) {
          let element = componentsArray[i];
          if (element.Name === 'ZCMP RTS USVS ARS Base Salary' && element.RateAmount == 0) {
            return true;
          }
        }
      }
    }
    return false;
  }

  return { runCondition };
});

「特定の簡易コンポーネントの合計が算式に基づいている必要があることを検証」 (調整は、すべてのコンポーネントの合計から生計費を引いた値である必要があります)

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   *
   * @param {object} context
   * @return {boolean}
   */
  function runCondition(context) {
    const { $componentContext, $fields, $modules, $user } = context;

    let salBasisType = $fields.compensationSalaries.SalaryBasisType.$value();
    let sum =  0;
    let result = 0;
    let difference = 0;

    if(salBasisType == 'C'){
      let componentsArray = $fields.compensationSalaries.salaryComponents.$value().items;
      for(let i in componentsArray){
        let cmpt=componentsArray[i];
        if(cmpt.ComponentReasonCode == 'ADJUSTMENT'){
          result = Number(cmpt.AdjustmentAmount);
        }
        else if(cmpt.ComponentReasonCode == 'COST_OF_LIVING'){
          difference += Number(cmpt.AdjustmentAmount);
        }
        else{
          sum += Number(cmpt.AdjustmentAmount);
        }
      }
      if(result != sum - difference){
        return true;
      }
    }

    return false;
  }

  return { runCondition };
});

ライン・マネージャが給与変更を提示する場合、有効日を現在の日付に、次回給与レビュー日を有効日の1年後にデフォルト設定

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   * Default value expression for whenAndWhy.StartDate
   * @param {object} context
   * @return {date}
   */
  function getWhenAndWhyStartDate(context) {
    const { $objectContext, $fields, $modules, $user } = context;

    let date = new Date();
    let firstDay = new Date(date.getFullYear(), date.getMonth()+1, 1);
   
    let year = firstDay.toLocaleString("default", { year: "numeric" });
    let month = firstDay.toLocaleString("default", { month: "2-digit" });
    let day = firstDay.toLocaleString("default", { day: "2-digit" });

    return (year + "-" + month + "-" + day);
  }

  return { getWhenAndWhyStartDate };
});

ユーザーが簡易コンポーネント値を変更していないことを検証

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   *
   * @param {object} context
   * @return {boolean}
   */
  function runCondition(context) {
    const { $componentContext, $fields, $modules, $user } = context;

    let salBasisType = $fields.compensationSalaries.SalaryBasisType.$value();

    if(salBasisType == 'ORA_SIMPLE_COMPONENTS'){
      let newSalaryBasisId = $fields.compensationSalaries.SalaryBasisId.$value();
      let curSalaryBasisId = $fields.compensationSalaries.SalaryBasisId.$initialValue();

      if(newSalaryBasisId != curSalaryBasisId){
        return false;
      }

      let curValue = 0;
      let newValue = 0;

      let curComponentsArray = $fields.compensationSalaries.salarySimpleComponents.$initialValue().items;

      for(let i in curComponentsArray){
        let cmpt=curComponentsArray[i];
        if(cmpt.ComponentCode == 'ORA_WAGE_PROGRESSION_RATE'){
          curValue = Number(cmpt.Amount);
        }        
      }


      let componentsArray = $fields.compensationSalaries.salarySimpleComponents.$value().items;
      for(let j in componentsArray){
        let cmpt=componentsArray[j];
        if(cmpt.ComponentCode == 'ORA_WAGE_PROGRESSION_RATE'){
          newValue = Number(cmpt.Amount);
        }  
       
      }

      if(curValue != newValue){
        return true;
      }
    }    

    return false;
  }

  return { runCondition };
});

ユーザーが簡易コンポーネントにゼロ値を入力していないことを検証

拡張式

/* eslint-disable dot-notation */
define([], () => {
  'use strict';



  /**
   *
   * @param {object} context
   * @return {boolean}
   */
  function runCondition(context) {
    const { $componentContext, $fields, $modules, $user } = context;

    let salBasisType = $fields.compensationSalaries.SalaryBasisType.$value();

    if(salBasisType == 'ORA_SIMPLE_COMPONENTS'){
      let componentsArray = $fields.compensationSalaries.salarySimpleComponents.$value().items;
      for(let i in componentsArray){
        let cmpt=componentsArray[i];
        //To Check if specific component has 0 amount value
        // if(cmpt.ComponentCode == 'ORA_WAGE_PROGRESSION_RATE' && cmpt.Amount==0){
        //  return  true;
        // }
        //To Check if any component has 0 amount value
        if(cmpt.Amount==0){
          return true;
        }
       
      }
    }

    return false;
  }

  return { runCondition };
});