Üretken sayfalar için Dataverse eylemi ve işlev yöntemleri

Nesnenin eylem ve işlev yöntemlerini dataApi kullanarak sayfaya bağlı Dataverse özel API'lerini çağırın.

Uyarı

Eylem ve işlev yöntemleri paylaşılan dataApi sözleşmede isteğe bağlıdır. Bazı konaklar bunları uygulamaz, bu nedenle çağırmadan önce bir yöntemin mevcut olup olmadığını denetleyin. Mevcut bir yöntem, işlemin sayfaya bağlı olduğu, çalışma zamanı için etkinleştirildiği veya geçerli kullanıcı için izin verilen anlamına gelmez. Bağlayıcı yöntemlerinden farklı olarak, bu yöntemler beklenen hatalar için hiçbir zaman oluşturmaz; ve bunun yerine bir hata kodu ile ok: false çözülür. Sonucun ok ve error özelliklerini açıkça işleyin.

listBoundActions , bulma etkinleştirildiğinde geçerli çalışma zamanı yapılandırmasının sayfaya izin verdiği eylemleri ve işlevleri döndürür; geçerli kullanıcının listelenen her işlemi yürütmek için gereken Dataverse ayrıcalıklarına sahip olması garanti değildir.

Method Description
executeAction Sayfaya bağlı bir Dataverse özel API'sini eylem olarak çağırır.
executeFunction Sayfaya bağlı bir Dataverse özel API'sini işlev olarak çağırır.
listBoundActions Sayfaya bağlı Dataverse özel API'lerini (eylemler ve işlevler) listeler.

executeAction yöntemi

Bir oluşturucunun sayfaya eylem olarak bağlı olduğu bir Dataverse özel API'sini çağırır (verileri değiştirebilecek bir ileti).

Parameters

Bu gerekli parametre için bir değer ayarlayın.

Name Type Description
request DataverseActionRequest Çağırma eylemi ve giriş parametreleri.

DataverseActionRequest

Name Type Description
name string Yayımcı ön eki eklenmiş özel API'nin benzersiz adı( gibi new_ApproveExpenseReport).
parameters object (İsteğe bağlı) Eylemin gerektirdiği giriş parametreleri, parametre benzersiz adına göre anahtarlanır.
boundTo object (İsteğe bağlı) Varlığa bağlı eylemler için hedef satır başvurusu (entityName ve id). Genel (ilişkisiz) eylemler için atla.

Returns

DataverseActionResult içeren bir söz. Bu yöntem hiçbir zaman beklenen hatalar (403 izin hatası, 400 hatalı parametre veya işlem bağlı veya etkin değil gibi) için oluşturmaz; bunun yerine özelliği denetleyin ok .

DataverseActionResult

Name Type Description
ok boolean Eylemin başarılı olup olmadığını gösterir.
status number Dataverse tarafından döndürülen HTTP durum kodu veya 0 kullanılabilir HTTP durumu olmadığında. Durum 0 , çalışma zamanının çağrıyı göndermeden önce reddettiği anlamına gelebilir (örneğin, not_enabled, not_bound, not_permitted, wrong_operation_kind, invalid_parameterveya invalid_bound_to), istek HTTP yanıtı olmadan başarısız oldu veya sonuç bilinmiyor (indeterminate olur true). Bu durumları birbirinden ayırmak için ve indeterminate kullanınerror.code.
outputs object Eylem tarafından döndürülen ve benzersiz ada göre anahtarlanan çıkış parametreleri. Çıkış içermeyen eylemler için boş.
indeterminate boolean (İsteğe bağlı) true zaman aşımı veya başka bir gönderim sonrası hata, sunucunun eylemi işlemiş olabileceği anlamına gelir; otomatik olarak yeniden denemeyin.
error object (İsteğe bağlı) olduğunda, makine tarafından okunabilir ve temizlenmiş messagebir de dahil olmak üzere hata ayrıntıları.okfalsecode code, , not_bound, not_permitted, wrong_operation_kind, invalid_parameter, indeterminateinvalid_bound_to, veya , veya networkveya eylemin not_enabledHTTP durum kodundan biridir( örneğin, "404"Dataverse bir hata yanıtı döndürdüyse veya "0" kullanılabilir http durumu olmadığında). not_permitted , eylemin veya işlevin ortamın üretken sayfalar için izin verme listesinde olmadığı anlamına gelir; geçerli kullanıcının bunu çalıştırmak için Dataverse ayrıcalıklarına sahip olup olmadığını göstermez. Ayrıcalık hatası genellikle hata kodunda olduğu gibi status: 403 ortaya çıkar; konak HTTP durumunu belirleyemezse, bunun yerine döndürürstatus: 0."403"

executeAction örneği

if (!dataApi.executeAction) {
  throw new Error("executeAction isn't available on this page.");
}

const result = await dataApi.executeAction({
  name: "new_ApproveExpenseReport",
  parameters: { comments: "Approved by manager" },
  boundTo: { entityName: "new_expensereport", id: "30dc51e9-947d-47d8-ad48-4fc48fba4a95" },
});

if (result.ok) {
  console.log(result.outputs);
}
else {
  console.log(result.error?.code);
}

executeFunction yöntemi

Bir oluşturucunun işlev olarak sayfaya bağlı olduğu bir Dataverse özel API'sini çağırır (GET semantiği içeren salt okunur bir ileti).

Parameters

Bu gerekli parametre için bir değer ayarlayın.

Name Type Description
request DataverseFunctionRequest çağıracak işlev ve giriş parametreleri.

DataverseFunctionRequest

Name Type Description
name string Yayımcı ön eki eklenmiş özel API'nin benzersiz adı( gibi new_GetExchangeRate).
parameters object (İsteğe bağlı) İşlevin gerektirdiği giriş parametreleri, parametre benzersiz adına göre anahtarlanır.
boundTo object (İsteğe bağlı) Varlığa bağlı işlevler için bir hedef satır başvurusu (entityName ve id). Genel (ilişkisiz) işlevler için atlayın.

Returns

DataverseActionResult içeren bir söz. gibi executeAction, bu yöntem hiçbir zaman beklenen hatalar için oluşturmaz; bunun yerine özelliği denetleyin ok .

executeFunction örneği

if (!dataApi.executeFunction) {
  throw new Error("executeFunction isn't available on this page.");
}

const result = await dataApi.executeFunction({
  name: "new_GetExchangeRate",
  parameters: { currencyCode: "EUR" },
});

if (result.ok) {
  console.log(result.outputs);
}

listBoundActions yöntemi

Bir oluşturucunun sayfaya bağlı olduğu Dataverse özel API'lerini (eylemler ve işlevler) listeler.

Parameters

None.

Returns

DataverseActionInfo girdileri dizisi içeren bir promise. Bulma çalışma zamanı için etkinleştirilmediğinde boş bir dizi döndürür.

DataverseActionInfo

DataverseActionInfo canlı Dataverse meta verilerini değil, sayfanın oluşturucusunun bu eylem veya işlev için neyle ilişkili olduğunu yansıtır. Giriş formları oluşturmak veya çıkışları doğrulamak için kullanmayın; parametre gereksinimlerini ve çıkış şekillerini gerçek Dataverse özel API tanımına göre doğrulayın.

Name Type Description
name string Dataverse özel API'sinin benzersiz (mantıksal) adı.
displayName string Özel API'nin görünen adı.
isFunction boolean true Dataverse özel API bir işlevse (salt okunur); false bu bir eylemse, bu değerin bağlama zamanında kaydedilmemiş olması da dahil.
bindingType string Bağlama türü: "Global" veya "Entity".
boundEntityLogicalName string (İsteğe bağlı) Eylemin veya işlevin bağlı olduğu tablo, olduğundabindingType."Entity"
parameters Object[] Dataverse özel API'sinin sayfaya bağlı olduğu zaman kaydedilen giriş parametreleri( her biri ve namedeclaredKindile). typeher zaman ve optional her zamandır "unknown"false ; dataverse özel API'sinin gerçek meta verilerini yansıtmaz.
outputs Object[] Her zaman boş bir dizi. Bağlama bulma işlemi çıkış parametrelerini kaydetmez.

listBoundActions Örnek

const actions = await dataApi.listBoundActions?.();