次の方法で共有


休暇申請をワークフローに送信する

次の Dynamics 365 アプリに適用:
Human Resources

また Microsoft Dynamics 365 Human Resources、MyLeaveRequests submit() アプリケーション プログラミング インターフェイス (API) を使用して、ワークフローに休暇要求を送信できます。 この API は、MyLeaveRequests OData エンティティでアクションとして公開されます。

必要条件

休暇要求はデータベースに保存する必要があり、MyLeaveRequests エンティティを通じて取得できる必要があります。

アクセス許可

この API を呼び出すには、次のアクセス許可の 1 つが必要です。 アクセス許可およびその選択方法の詳細については、認証 を参照してください。

アクセス許可のタイプ アクセス許可 (最小の特権から最大の特権)
委任 (勤務先または学校アカウント) user_impersonation

HTTPS 要求

POST https://{cluster}.hr.talent.dynamics.com/namespaces/{namespace_guid}/data/MyLeaveRequests(RequestId='{requestId}', LeaveType='{leaveType}', LeaveDate={leaveDate}, dataAreaId={dataArea})/Microsoft.Dynamics.DataEntities.submit?cross-company=true

この要求は OData の標準に準拠しています。 {requestId}、{leaveType}、{leaveDate}、{dataArea} の各パラメーターは、MyLeaveRequests エンティティの複合ナチュラル キーを構成するフィールドを参照します。

メモ

MyLeaveRequests エンティティのフィールドは休暇要求の個々の行を参照しますが、送信 API を呼び出すと、休暇要求全体 (すべての行) がワークフローに送信されます。

要求ヘッダー

表題 金額
承認 ベアラー {token} (必須)
Content-Type アプリケーション /json

要求の本文

このメソッドの要求の本文を供給しないでください。

応答

成功したときの応答は常に 204 No Content (内容なし) です。

無許可の部下は、 401無 または 403権限のない権限のない 応答。

検証などの理由で送信に失敗した場合、応答 が 500サーバー エラー であり、応答 本文には、詳細を含む、複数の詳細を含む、複数の 応答 オブジェクトが含まれます。

POST https://aos-rts-sf-550e5c091f6-prod-westus2.hr.talent.dynamics.com/namespaces/b2eb8003-334f-4a84-ab63-edbe23569090/data/MyLeaveRequests(RequestId='USMF-000065', LeaveType='Vacation', LeaveDate=2019-10-04T12:00:00Z, dataAreaId='USMF')/Microsoft.Dynamics.DataEntities.submit
{
  "error": {
    "code": "",
    "message": "An error has occurred.",
    "innererror": {
      "message": "Exception occurred while executing action submit on Entity MyLeaveRequest: The request would put the 'Vacation' balance below the allowed minimum balance on 9/10/2019.",
      "type": "System.InvalidOperationException",
      "stacktrace": "   at Microsoft.Dynamics.Platform.Integration.Services.OData.Action.ActionInvokable.Invoke()   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateProcessor.ActionInvocation(ChangeOperationContext context, ActionInvokable action)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.<>c__DisplayClass13_0.<ScheduleInvokable>b__0(ChangeOperationContext context)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActionsInCompanyContext(IEnumerable`1 actionList, ChangeOperationContext operationContext)\r\n   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.ChangeInfo.ExecuteActions(ChangeOperationContext context)   at Microsoft.Dynamics.Platform.Integration.Services.OData.Update.UpdateManager.SaveChanges()   at Microsoft.Dynamics.Platform.Integration.Services.OData.AxODataDelegatingHandler.<SaveChangesAsync>d__3.MoveNext()"
    }
  }
}

検証とエラー メッセージ

送信 API の呼び出しの一環として、人事管理は送信前にビジネス ロジック検証を実行することにより、休暇要求は送信に対して有効な状態にあることが保証されます。 検証が失敗した場合に応答で受け取る可能性のあるエラー メッセージは次のとおりです。

  • この要求による '{LeaveTypeId}' の残日数は、{date} の最小許容残日数を下回っています。
  • "コンポーネント" は送信できます。
  • 変更が行われていないため、要求を送信または保存できません。 量または休暇タイプを追加または更新して、もう一度やり直してください。
  • 入力された休暇申請には、既存の保留中の申請と同じ休暇タイプおよび日付が 1 日以上含まれています。 変更を加える場合は、既存の要求を取り消します。
  • 理由コード '{ReasonCodeId}' は申請における休暇のタイプのいずれにも適用されません。
  • 休暇タイプ '{LeaveTypeId}' には理由コードが必要です。 適切なタイプと理由コードを選択します。
  • オフ時間は正常に送信されません。 休暇申請は下書きの要求として保存されました。

参照