إرسال طلب إجازة إلى سير العمل

ينطبق على تطبيقات Dynamics 365 هذه:
Human Resources

في Microsoft Dynamics 365 Human Resources، يمكنك استخدام واجهة برمجه التطبيقات MyLeaveRequests submit() لإرسال طلب الإجازة إلى سير العمل. يتم كشف واجة API هذه كإجراء على كيان MyLeaveRequests OData.

المتطلبات الأساسية

يجب حفظ طلب الإجازة في قاعده البيانات ويجب أن تكون قابلا للاسترداد من خلال كيان MyLeaveRequests.

أذونات

أحد الأذونات التالية مطلوب لاستدعاء واجهة API هذه. لمزيد من المعلومات حول الأذونات وكيفية إعدادها، راجع التخويل.

نوع الإذن الأذونات (من الأقل امتيازًا إلى الأكثر امتيازًا)
مفوض (حساب عمل أو مدرسة) 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} (مطلوب)
نوع المحتوى application/json

نص الطلب

لا تقم بتقديم نص طلب لهذا الأسلوب.

استجابة

الاستجابة الناجحة دائمًا هي استجابة لا يوجود محتوى 204.

يتلقى المتصلون غير المصرح لهم 401 غير مصرح به أو 403 ممنوع رد.

إذا لم ينجح الإرسال (بسبب التحقق من الصحة ، على سبيل المثال) ، فإن رد عبارة عن خطأ خادم 500 ، وسيتضمن نص رد كائن JSON مع مزيد من التفاصيل.

مثال

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}.
  • لا يمكن إرسال طلب إجازة في الحالة "مكتمل ".
  • لا يمكن إرسال طلب أو حفظه لأنه لم يتم إجراء أية تغييرات. قم بإضافة أو تحديث المبلغ أو نوع الإجازة ثم حاول مرة أخرى.
  • طلب زمن التوقف الذي أدخلته يحتوي على يوم واحد أو أكثر بنفس التاريخ ونوع الإجازة كطلب معلق موجود. استدعاء الطلب الموجود لإجراء تغييرات.
  • لا ينطبق رمز السبب '{ReasonCodeId}' على أي من أنواع الإجازات في الطلب.
  • يتطلب نوع الإجازة '{LeaveTypeId}' رمز سبب. حدد النوع المناسب ورمز السبب.
  • لم يتم إرسال الإجازة بنجاح. تم حفظ زمن التوقف كطلب مسودة.

راجع أيضًا