Kaedah tindakan dan fungsi Dataverse untuk halaman generatif

Gunakan kaedah dataApi tindakan dan fungsi objek untuk memanggil API tersuai Dataverse yang terikat pada halaman.

Nota

Kaedah tindakan dan fungsi adalah pilihan dalam kontrak bersama dataApi . Sesetengah hos tidak melaksanakannya, jadi periksa sama ada sesuatu kaedah wujud sebelum memanggilnya. Kehadiran kaedah tidak bermakna operasi terikat pada halaman, diaktifkan untuk masa jalan, atau dibenarkan untuk pengguna semasa. Tidak seperti kaedah penyambung, kaedah ini tidak pernah membuang untuk kegagalan yang dijangka; ia menyelesaikan dengan ok: false dan kod ralat sebagai gantinya. Kendalikan hasil ok dan error sifat secara eksplisit.

listBoundActions mengembalikan tindakan dan fungsi yang dibenarkan oleh konfigurasi runtime semasa untuk halaman apabila penemuan itu diaktifkan; ia bukan jaminan bahawa pengguna semasa memegang keistimewaan Dataverse yang diperlukan untuk melaksanakan setiap operasi yang disenaraikan.

Kaedah Perihalan
executeAction Memanggil API tersuai Dataverse yang terikat pada halaman sebagai tindakan.
executeFunction Memanggil API tersuai Dataverse yang terikat pada halaman sebagai fungsi.
listBoundActions Menyenaraikan API tersuai Dataverse (tindakan dan fungsi) yang terikat pada halaman.

executeAction Kaedah

Memanggil API tersuai Dataverse yang diikat oleh pembuat ke halaman sebagai tindakan (mesej yang mungkin mengubah data).

Parameter

Tetapkan nilai untuk parameter yang diperlukan ini.

Nama Jenis Perihalan
request DataverseActionRequest Tindakan yang akan dipanggil dan parameter inputnya.

DataverseActionRequest

Nama Jenis Perihalan
name string Nama unik API tersuai, dengan awalan penerbit, seperti new_ApproveExpenseReport.
parameters object (Pilihan) Parameter input yang diperlukan oleh tindakan, dikunci mengikut nama unik parameter.
boundTo object (Pilihan) Rujukan baris sasaran (entityName dan id) untuk tindakan terikat entiti. Abaikan untuk tindakan global (tidak terikat).

Pulangan

Janji yang mengandungi DataverseActionResult. Kaedah ini tidak pernah membuang untuk kegagalan yang dijangka (seperti ralat kebenaran 403, parameter 400 yang salah, atau operasi yang tidak terikat atau diaktifkan) — sebaliknya periksa sifat tersebut ok .

DataverseActionResult

Nama Jenis Perihalan
ok boolean Menunjukkan sama ada tindakan itu berjaya.
status number Kod status HTTP yang dikembalikan oleh Dataverse, atau 0 apabila tiada status HTTP tersedia. 0 Status boleh bermaksud runtime menolak panggilan sebelum menghantarnya (contohnya, not_enabled, not_bound, not_permitted, wrong_operation_kind, invalid_parameter, atau invalid_bound_to), permintaan gagal tanpa respons HTTP, atau hasilnya tidak diketahui (indeterminate ialah true). Gunakan error.code dan indeterminate untuk membezakan kes-kes ini.
outputs object Parameter output yang dikembalikan oleh tindakan, dikunci mengikut nama unik. Kosong untuk tindakan tanpa output.
indeterminate boolean (Pilihan) true apabila timeout atau kegagalan selepas penghantaran bermakna pelayan mungkin telah melakukan tindakan tersebut; jangan cuba semula secara automatik.
error object (Pilihan) Butiran ralat apabila ok ialah false, termasuk yang boleh code dibaca mesin dan yang telah disanitasi message. codeadalah salah satu daripada not_enabled, not_bound, not_permitted, wrong_operation_kind, invalid_parameter, invalid_bound_toindeterminateatau network, atau kod status HTTP tindakan sebagai rentetan (contohnya, "404") apabila Dataverse mengembalikan respons ralat, atau "0" apabila tiada status HTTP tersedia. not_permitted bermaksud tindakan atau fungsi tersebut tidak terdapat dalam senarai dibenarkan persekitaran untuk halaman generatif — ia tidak menunjukkan sama ada pengguna semasa memegang keistimewaan Dataverse untuk menjalankannya. Kegagalan keistimewaan biasanya muncul seperti status: 403 kod "403"ralat; jika hos tidak dapat menentukan status HTTP, ia akan dikembalikan status: 0 sebaliknya.

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

executeFunction Kaedah

Memanggil API tersuai Dataverse yang diikat oleh pembuat ke halaman sebagai fungsi (mesej baca sahaja dengan semantik GET).

Parameter

Tetapkan nilai untuk parameter yang diperlukan ini.

Nama Jenis Perihalan
request DataverseFunctionRequest Fungsi yang akan dipanggil dan parameter inputnya.

DataverseFunctionRequest

Nama Jenis Perihalan
name string Nama unik API tersuai, dengan awalan penerbit, seperti new_GetExchangeRate.
parameters object (Pilihan) Parameter input yang diperlukan oleh fungsi, dikunci mengikut nama unik parameter.
boundTo object (Pilihan) Rujukan baris sasaran (entityName dan id) untuk fungsi terikat entiti. Abaikan untuk fungsi global (tidak terikat).

Pulangan

Janji yang mengandungi DataverseActionResult. Seperti , executeActionkaedah ini tidak pernah membuang untuk kegagalan yang dijangka — periksa ok sifat sebagai gantinya.

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

listBoundActions Kaedah

Menyenaraikan API tersuai Dataverse (tindakan dan fungsi) yang diikat oleh pembuat ke halaman.

Parameter

Tiada.

Pulangan

Janji yang mengandungi array entri DataverseActionInfo. Mengembalikan array kosong apabila penemuan tidak diaktifkan untuk runtime.

DataverseActionInfo

DataverseActionInfo mencerminkan apa yang dibuat oleh pembuat halaman untuk tindakan atau fungsi ini, bukan metadata Dataverse secara langsung. Jangan gunakan ia untuk membina borang input atau mengesahkan output — sahkan keperluan parameter dan bentuk output berbanding definisi API tersuai Dataverse yang sebenar.

Nama Jenis Perihalan
name string Nama unik (logik) API tersuai Dataverse.
displayName string Nama paparan API tersuai.
isFunction boolean true jika API tersuai Dataverse adalah fungsi (baca sahaja); false jika ia adalah tindakan, termasuk apabila nilai ini tidak direkodkan semasa masa pengikatan.
bindingType string Jenis pengikatan: "Global" atau "Entity".
boundEntityLogicalName string (Pilihan) Jadual yang tindakan atau fungsi terikat kepada, apabila bindingType adalah "Entity".
parameters Object[] Parameter input direkodkan apabila API tersuai Dataverse diikat ke halaman, setiap satu dengan dan namedeclaredKind. type sentiasa dan "unknown"optional sentiasa false — kedua-duanya tidak mencerminkan metadata sebenar API tersuai Dataverse.
outputs Object[] Sentiasa susunan kosong. Penemuan pengikatan tidak merekodkan parameter output.

listBoundActions Contoh

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