Tindakan dataverse dan metode fungsi untuk halaman generatif

Gunakan metode dataApi tindakan dan fungsi objek untuk memanggil API kustom Dataverse yang terikat ke halaman.

Note

Metode tindakan dan fungsi bersifat opsional dalam kontrak bersama dataApi . Beberapa host tidak mengimplementasikannya, jadi periksa apakah metode ada sebelum memanggilnya. Metode yang ada tidak berarti operasi terikat ke halaman, diaktifkan untuk runtime, atau diizinkan untuk pengguna saat ini. Tidak seperti metode konektor, metode ini tidak pernah melemparkan kegagalan yang diharapkan; mereka menyelesaikan dengan ok: false dan kode kesalahan sebagai gantinya. Tangani hasil ok dan error properti secara eksplisit.

listBoundActions mengembalikan tindakan dan fungsi yang diizinkan konfigurasi runtime saat ini untuk halaman ketika penemuan tersebut diaktifkan; ini bukan jaminan bahwa pengguna saat ini memegang hak istimewa Dataverse yang diperlukan untuk menjalankan setiap operasi yang tercantum.

Metode Description
executeAction Memanggil API kustom Dataverse yang terikat ke halaman sebagai tindakan.
executeFunction Memanggil API kustom Dataverse yang terikat ke halaman sebagai fungsi.
listBoundActions Mencantumkan API kustom Dataverse (tindakan dan fungsi) yang terikat ke halaman.

metode executeAction

Memanggil API kustom Dataverse yang diikat pembuat ke halaman sebagai tindakan (pesan yang mungkin mengubah data).

Parameters

Tetapkan nilai untuk parameter yang diperlukan ini.

Name Type Description
request DataverseActionRequest Tindakan yang akan dipanggil dan parameter inputnya.

DataverseActionRequest

Name Type Description
name string Nama unik API kustom, diawali penerbit, seperti new_ApproveExpenseReport.
parameters object (Opsional) Parameter input yang diperlukan oleh tindakan, di-key oleh nama unik parameter.
boundTo object (Opsional) Referensi baris target (entityName dan id) untuk tindakan terikat entitas. Hilangkan untuk tindakan global (tidak terikat).

Returns

Janji yang berisi DataverseActionResult. Metode ini tidak pernah melempar untuk kegagalan yang diharapkan (seperti kesalahan izin 403, parameter 400 buruk, atau operasi tidak terikat atau diaktifkan) — periksa properti sebagai gantinya ok .

DataverseActionResult

Name Type Description
ok boolean Menunjukkan apakah tindakan berhasil.
status number Kode status HTTP yang dikembalikan oleh Dataverse, atau 0 ketika tidak ada status HTTP yang tersedia. Status 0 dapat berarti runtime menolak panggilan sebelum mengirimkannya (misalnya, not_enabled, wrong_operation_kindnot_permittednot_bound, invalid_parameter, atau invalid_bound_to), permintaan gagal tanpa respons HTTP, atau hasilnya tidak diketahui (indeterminate adalah ).true Gunakan error.code dan indeterminate untuk membedakan kasus-kasus ini.
outputs object Parameter output yang dikembalikan oleh tindakan, di-key oleh nama unik. Kosong untuk tindakan tanpa output.
indeterminate boolean (Opsional) true ketika waktu habis atau kegagalan pasca-pengiriman lainnya berarti server mungkin telah melakukan tindakan; jangan coba lagi secara otomatis.
error object (Opsional) Detail kesalahan ketika ok adalah false, termasuk mesin yang dapat code dibaca dan dibersihkan message. codeadalah salah satu dari not_enabled, , not_permittednot_bound, wrong_operation_kind, invalid_parameter, invalid_bound_to, indeterminate, atau network, atau kode status HTTP tindakan sebagai string (misalnya, "404") ketika Dataverse mengembalikan respons kesalahan, atau "0" ketika tidak ada status HTTP yang tersedia. not_permitted berarti tindakan atau fungsi tidak ada dalam daftar izin lingkungan untuk halaman generatif — tindakan atau fungsi tersebut tidak menunjukkan apakah pengguna saat ini memegang hak istimewa Dataverse untuk menjalankannya. Kegagalan hak istimewa biasanya muncul seperti status: 403 kode "403"kesalahan ; jika host tidak dapat menentukan status HTTP, maka akan kembali status: 0 sebagai gantinya.

contoh executeAction

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);
}

metode executeFunction

Memanggil API kustom Dataverse yang diikat pembuat ke halaman sebagai fungsi (pesan baca-saja dengan semantik GET).

Parameters

Tetapkan nilai untuk parameter yang diperlukan ini.

Name Type Description
request DataverseFunctionRequest Fungsi yang akan dipanggil dan parameter inputnya.

DataverseFunctionRequest

Name Type Description
name string Nama unik API kustom, diawali penerbit, seperti new_GetExchangeRate.
parameters object (Opsional) Parameter input yang diperlukan oleh fungsi, yang di-key oleh nama unik parameter.
boundTo object (Opsional) Referensi baris target (entityName dan id) untuk fungsi terikat entitas. Hilangkan untuk fungsi global (tidak terikat).

Returns

Janji yang berisi DataverseActionResult. executeActionSeperti halnya , metode ini tidak pernah melemparkan kegagalan yang diharapkan — periksa properti sebagai gantinyaok.

contoh executeFunction

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);
}

metode listBoundActions

Mencantumkan API kustom Dataverse (tindakan dan fungsi) yang diikat pembuat ke halaman.

Parameters

None.

Returns

Janji yang berisi array entri DataverseActionInfo. Mengembalikan array kosong saat penemuan tidak diaktifkan untuk runtime.

DataverseActionInfo

DataverseActionInfo mencerminkan apa yang terikat pembuat halaman untuk tindakan atau fungsi ini, bukan metadata Dataverse langsung. Jangan gunakan untuk membangun formulir input atau memvalidasi output — verifikasi persyaratan parameter dan bentuk output terhadap definisi API kustom Dataverse yang sebenarnya.

Name Type Description
name string Nama unik (logis) dari API kustom Dataverse.
displayName string Nama tampilan API kustom.
isFunction boolean true jika API kustom Dataverse adalah fungsi (baca-saja); false jika ini adalah tindakan, termasuk ketika nilai ini tidak direkam pada waktu pengikatan.
bindingType string Jenis pengikatan: "Global" atau "Entity".
boundEntityLogicalName string (Opsional) Tabel tindakan atau fungsi terikat, kapan bindingType adalah "Entity".
parameters Object[] Parameter input yang direkam ketika API kustom Dataverse terikat ke halaman, masing-masing dengan name dan declaredKind. type selalu "unknown" dan optional selalu false — tidak mencerminkan metadata aktual API kustom Dataverse.
outputs Object[] Selalu array kosong. Penemuan pengikatan tidak merekam parameter output.

listBoundActions contoh

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