Bir izin isteğini iş akışına gönderme
Şu Dynamics 365 uygulamaları için geçerlidir:
Human Resources
Microsoft Dynamics 365 Human Resources'ta, iş akışına bırakma isteği göndermek için MyLeaveRequests Submit () uygulama programlama arabirimini (API) kullanabilirsiniz. Bu API, MyLeaveRequests OData varlığı üzerinde bir eylem olarak sunulur.
Önkoşullar
İzin isteği veritabanına kaydedilmelidir ve MyLeaveRequests varlığı aracılığıyla alınabilir olmalıdır.
İzinler
Bu API 'YI çağırmak için aşağıdaki izinlerden biri gerekiyor. İzinler ve bunların seçilmesi hakkında daha fazla bilgi için, bkz Kimlik doğrulama.
İzin türü | İzinler (en az ayrıcalıklı-büyük ayrıcalıklı) |
---|---|
Yetkilendirilen (İş veya okul hesabı) | user_impersonation |
HTTPS isteği
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
İstek OData standartlarına uygun. {requestId}, {leaveType}, {leaveDate} ve {dataArea} parametreleri, MyLeaveRequests varlığı için bileşik doğal anahtarı oluşturan alanlara başvuruda bulunuyor.
Dekont
MyLeaveRequests varlığının alanları izin talebindeki tek bir satıra başvuruda bulunduğu sürece, API gönder çağrısı, tüm izin vermez isteği (tüm satırlar) iş akışına gönderir.
İstek başlıkları
Başlık | Value |
---|---|
Yetkilendirme | Taşıyıcı {token} (gerekli) |
İçerik Türü | Uygulama/json |
İstek gövdesi
Bu yöntem için bir istek gövdesi sağlamamalısınız.
Yanıt
Başarılı bir yanıt, her zaman 204 içerik yok yanıtıdır.
Yetkisiz arayanlar 401 Yetkisiz veya 403 Yasak yanıt alır .
Gönderme başarısız olursa (örneğin, doğrulama nedeniyle), yanıt 500 Sunucu Hatasıdır ve yanıt gövdesi daha fazla ayrıntı içeren bir JSON nesnesi içerir.
Örnek
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()"
}
}
}
Doğrulama ve hata iletileri
Gönderme API'sine yapılan çağrının bir parçası olarak İnsan Kaynakları gönderme işleminden önce iş mantığı doğrulaması yapar ve bu da bırakma isteğinin gönderme için geçerli bir durumda olmasını sağlar. Doğrulama başarısız olursa yanıt olarak alabileceğiniz olası hata iletileri şunlardır:
- Talep '{LeaveTypeId}' bakiyesini {date} tarihinde izin verilen minimum bakiyenin altına indirecek.
- Tamamlandı durumundaki izin isteği gönderilemiyor.
- Hiçbir değişiklik yapılmadı olarak istek gönderilemiyor veya kaydedilemiyor. Tutarı veya izin tipini ekleyin veya güncelleştirin ve yeniden deneyin.
- Girilen zaman isteği, aynı tarihle aynı tarihe sahip bir veya daha fazla gün içeriyor ve mevcut bekleyen istek olarak bu türü bırak. Değişiklik yapmak için mevcut isteği geri çağırın.
- '{ReasonCodeId}' neden kodu istekteki izin türlerinin hiçbiri için geçerli değildir.
- '{LeaveTypeId}' Çıkış türü neden kodu gerektiriyor. Uygun türü ve neden kodunu seçin.
- İzin başarıyla gönderilmedi. Kapatma zamanı taslak istek olarak kaydedildi.