หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
นําทางไปยังรายการตาราง ระเบียนตาราง ทรัพยากร HTML เว็บ หรือหน้าแบบกําหนดเองที่ระบุ
หมายเหตุ
วิธีนี้ได้รับการสนับสนุนเฉพาะบนอินเทอร์เฟซแบบรวมศูนย์เท่านั้น
ไวยากรณ์
ใช้ไวยากรณ์ต่อไปนี้เพื่อเรียกXrm.Navigation.navigateTo()
Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);
พารามิเตอร์
เมธอด ยอมรับพารามิเตอร์ต่อไปนี้
| ชื่อ | ชนิด | จำเป็นต้องระบุ | คำอธิบาย |
|---|---|---|---|
| pageInput | ออบเจ็กต์ | ใช่ | ป้อนข้อมูลเกี่ยวกับหน้าเพื่อนําทางไป ดู พารามิเตอร์ pageInput |
| navigationOptions | ออบเจ็กต์ | ไม่ | ตัวเลือกสําหรับการนําทางไปยังหน้า: ว่าจะเปิดแบบอินไลน์หรือในกล่องโต้ตอบ ถ้าคุณไม่ได้ระบุพารามิเตอร์นี้ เมธอด จะเปิดหน้าแบบอินไลน์ตามค่าเริ่มต้น |
successCallback |
ฟังก์ชัน | ไม่ | ฟังก์ชันที่จะดําเนินการหลังจากการนําทางแบบอินไลน์สําเร็จหรือเมื่อปิดกล่องโต้ตอบ สําหรับชนิดหน้าที่สนับสนุนการส่งกลับค่า ฟังก์ชันจะได้รับค่านั้นเป็นอาร์กิวเมนต์ |
errorCallback |
ฟังก์ชัน | ไม่ | ฟังก์ชันที่จะดําเนินการเมื่อการดําเนินการล้มเหลว |
pageInput พารามิเตอร์
การเปลี่ยนแปลงข้อกําหนดของวัตถุโดยขึ้นอยู่กับชนิดของหน้าเพื่อนําทางไปยัง: รายการเอนทิตีระเบียนเอนทิตีแดชบอร์ดทรัพยากรบนเว็บ HTMLหน้าแบบกําหนดเอง หรือหน้าสร้าง
รายการเอนทิตี
วัตถุรายการเอนทิตีประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุentitylist |
entityName |
สตริง | ชื่อตรรกะของตารางที่จะโหลดในตัวควบคุมรายการ |
viewId |
สตริง | (ไม่บังคับ) ID ของมุมมองที่จะโหลด ถ้าคุณไม่ได้ระบุ แอปจะนําทางไปยังมุมมองหลักเริ่มต้นสําหรับตาราง |
viewType |
สตริง | (ไม่บังคับ) ชนิดของมุมมองที่จะโหลด ระบุว่า savedquery หรือ userquery |
ระเบียนเอนทิตี
วัตถุระเบียนเอนทิตีประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุentityrecord |
entityName |
สตริง | ชื่อตรรกะของตารางที่จะแสดงฟอร์ม |
entityId |
สตริง | (ไม่บังคับ) รหัสของเรกคอร์ดตารางที่จะแสดงแบบฟอร์ม ถ้าคุณไม่ได้ระบุค่านี้ ฟอร์มจะเปิดขึ้นในโหมดสร้าง |
createFromEntity |
การค้นหาข้อมูล | (ไม่บังคับ) กําหนดระเบียนที่ให้ค่าเริ่มต้นโดยยึดตามค่าคอลัมน์ที่ถูกแมป ออบเจ็กต์การค้นหามีคุณสมบัติสตริงต่อไปนี้: entityType, id และชื่อ (ตัวเลือก) |
data |
ออบเจ็กต์ | (ไม่บังคับ) วัตถุพจนานุกรมที่ส่งผ่านพารามิเตอร์เพิ่มเติมไปยังฟอร์ม
พารามิเตอร์สามารถเป็นคอลัมน์ตารางที่มีค่าเริ่มต้นที่ตั้งไว้ในฟอร์มใหม่ (ดู ตั้งค่าคอลัมน์โดยใช้พารามิเตอร์ที่ส่งผ่านไปยังฟอร์ม) หรือพารามิเตอร์แบบกําหนดเองที่เข้าถึงบนฟอร์มที่ใช้ |
formId |
สตริง | (ไม่บังคับ) รหัสของอินสแตนซ์ของฟอร์มที่จะแสดง |
isCrossEntityNavigate |
แบบบูลีน | (ไม่บังคับ) ระบุว่าฟอร์มถูกนําทางจากตารางอื่นโดยใช้โฟลว์กระบวนการทางธุรกิจแบบตารางข้ามหรือไม่ |
isOfflineSyncError |
แบบบูลีน | (ไม่บังคับ) ระบุว่ามีข้อผิดพลาดใด ๆ ในการซิงค์แบบออฟไลน์หรือไม่ |
processId |
สตริง | (ไม่บังคับ) รหัสของกระบวนการทางธุรกิจที่จะแสดงบนแบบฟอร์ม |
processInstanceId |
สตริง | (ไม่บังคับ) รหัสของอินสแตนซ์กระบวนการทางธุรกิจที่จะแสดงบนแบบฟอร์ม |
relationship |
ออบเจ็กต์ | (ไม่บังคับ) กําหนดวัตถุความสัมพันธ์เพื่อแสดงระเบียนที่เกี่ยวข้องบนฟอร์ม ดูความสัมพันธ์ |
selectedStageId |
สตริง | (ไม่บังคับ) รหัสของลําดับขั้นที่เลือกในอินสแตนซ์กระบวนการทางธุรกิจ |
tabName |
สตริง | (ไม่บังคับ) ตั้งค่าโฟกัสบนแท็บของฟอร์ม |
เรียนรู้วิธีการเปิดฟอร์มหลักในกล่องโต้ตอบโดยใช้ API ของไคลเอ็นต์
ออบเจ็กต์ความสัมพันธ์
วัตถุความสัมพันธ์ที่ใช้ใน ระเบียนเอนทิตีประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
attributeName |
สตริง | ชื่อของคอลัมน์ที่ใช้สําหรับความสัมพันธ์ |
name |
สตริง | ชื่อของความสัมพันธ์ |
navigationPropertyName |
สตริง | ชื่อของคุณสมบัติการนําทางสําหรับความสัมพันธ์นี้ |
relationshipType |
ตัวเลข | ประเภทความสัมพันธ์ ระบุหนึ่งในค่าต่อไปนี้: 0:OneToMany, 1:ManyToMany |
roleType |
ตัวเลข | ชนิดบทบาทในความสัมพันธ์ ระบุหนึ่งในค่าต่อไปนี้: 1:Referencing, 2:AssociationEntity |
แดชบอร์ด
ใช้วัตถุpageInputนี้เป็นพารามิเตอร์เมื่อคุณต้องการเปิดแดชบอร์ด
ออบเจ็กต์แดชบอร์ดประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุdashboard |
dashboardId |
สตริง | ID ของแดชบอร์ดที่จะโหลด ถ้าคุณไม่ได้ระบุ ID แอปจะนําทางไปยังแดชบอร์ดเริ่มต้น |
ทรัพยากรบนเว็บ HTML
ใช้วัตถุpageInputนี้เป็นพารามิเตอร์เมื่อคุณต้องการเปิดทรัพยากรบนเว็บ HTML
วัตถุทรัพยากรเว็บ HTML ประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุwebresource |
webresourceName |
สตริง | ชื่อของทรัพยากรบนเว็บที่จะโหลด |
data |
สตริง | (ไม่บังคับ) ข้อมูลที่จะส่งผ่านไปยังทรัพยากรเว็บ |
หน้าแบบกําหนดเอง
ใช้วัตถุpageInputนี้เป็นพารามิเตอร์เมื่อคุณต้องการเปิดหน้าแบบกําหนดเอง
ออบเจ็กต์หน้าแบบกําหนดเองประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุcustom |
name |
สตริง | ชื่อตรรกะของหน้าแบบกําหนดเองที่จะเปิด |
entityName |
สตริง | (ไม่บังคับ) ชื่อตรรกะของตารางที่จะทําพร้อมใช้งานในหน้าแบบกําหนดเองผ่านParam("entityName") |
recordId |
สตริง | (ไม่บังคับ) ID ของเรกคอร์ดตารางที่จะพร้อมใช้งานในหน้าแบบกําหนดเองผ่านParam("recordId") |
หน้าที่สร้าง
ใช้ออบเจ็กต์pageInputนี้เป็นพารามิเตอร์เมื่อคุณต้องการเปิดหน้าที่สร้าง
เมื่อต้องการใช้ recordIdentityName, หรือ dataต้องตั้งค่าหน้าการสร้างเป้าหมายเพื่อยอมรับพารามิเตอร์การป้อนข้อมูล
ออบเจ็กต์หน้าที่สร้างประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
pageType |
สตริง | ระบุgenerative |
pageId |
สตริง | ID ของหน้าที่สร้างเพื่อเปิด |
recordId |
สตริง | (ไม่บังคับ) GUID ของระเบียนที่จะส่งผ่านไปยังหน้า |
entityName |
สตริง | (ไม่บังคับ) ชื่อตรรกะของตาราง Dataverse ที่ recordIdสอดคล้องกับ |
data |
ออบเจ็กต์ | (ไม่บังคับ) ออบเจ็กต์ JSON ที่มีพารามิเตอร์แบบกําหนดเองเพิ่มเติมเพื่อส่งผ่านไปยังหน้า |
ดูตัวอย่างที่แสดงวิธีการนําทางไปยังและจากหน้าที่สร้างโดยใช้ API ของไคลเอ็นต์
navigationOptions พารามิเตอร์
วัตถุ navigationOptions ประกอบด้วยค่าต่อไปนี้
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
target |
ตัวเลข | ระบุ 1 เพื่อเปิดหน้าแบบอินไลน์ ระบุ 2 เพื่อเปิดหน้าในกล่องโต้ตอบนอกจากนี้ ส่วนที่เหลือของค่า (ความกว้าง ความสูง และตําแหน่ง) จะมีผลเฉพาะเมื่อคุณระบุ 2 ในค่านี้ (เปิดหน้าในกล่องโต้ตอบ)หมายเหตุ: คุณสามารถเปิดรายการเอนทิตีแบบอินไลน์เท่านั้น คุณสามารถเปิดระเบียนของเอนทิตี ทรัพยากรบนเว็บ และหน้าสร้างทั้งแบบอินไลน์หรือในกล่องโต้ตอบ |
width |
ตัวเลขหรือวัตถุ | (ไม่บังคับ) ความกว้างของกล่องโต้ตอบ เมื่อต้องการระบุความกว้างเป็นพิกเซล ให้พิมพ์ค่าตัวเลข เมื่อต้องการระบุความกว้างเป็นเปอร์เซ็นต์ ให้ระบุวัตถุชนิด SizeValue ด้วยคุณสมบัติต่อไปนี้: - value: ค่าตัวเลขของชนิดตัวเลข- unit: หน่วยของการวัดชนิดสตริง ระบุว่า % หรือ px ค่าเริ่มต้นคือ px |
height |
ตัวเลขหรือวัตถุ | (ไม่บังคับ) ความสูงของกล่องโต้ตอบ เมื่อต้องการระบุความสูงเป็นพิกเซล ให้พิมพ์ค่าตัวเลข เมื่อต้องการระบุความกว้างเป็นเปอร์เซ็นต์ ให้ระบุวัตถุชนิด SizeValue ด้วยคุณสมบัติต่อไปนี้: - ค่า: ค่าตัวเลขของชนิดตัวเลข - unit: หน่วยของการวัดชนิดสตริง ระบุว่า % หรือ px ค่าเริ่มต้นคือ px |
position |
ตัวเลข | (ไม่บังคับ) ระบุ 1 เพื่อเปิดกล่องโต้ตอบในศูนย์ 2 เพื่อเปิดกล่องโต้ตอบทางด้านไกล ค่าเริ่มต้นคือ 1 (กึ่งกลาง) |
title |
สตริง | (ไม่บังคับ) ชื่อกล่องโต้ตอบที่ด้านบนของกล่องโต้ตอบตรงกลางหรือด้านข้าง |
ค่าที่ส่งกลับ
ส่งกลับสัญญา ค่าที่ส่งผ่านเมื่อสัญญาคลี่คลายขึ้นอยู่กับประเภทเป้าหมายและหน้า:
- แบบอินไลน์: สัญญาจะแก้ไขเมื่อการนําทางเสร็จสมบูรณ์และไม่ส่งกลับค่า
-
กล่องโต้ตอบ: สัญญาจะได้รับการแก้ไขเมื่อกล่องโต้ตอบปิด
- สําหรับเรกคอร์ดเอนทิตีที่เปิดในโหมดสร้าง สัญญาจะแก้ไขด้วยออบเจ็กต์ที่มี
savedEntityReferenceอาร์เรย์ - สําหรับหน้าสร้าง สัญญาจะแก้ไขด้วยออบเจ็กต์ที่มี
returnValueคุณสมบัติที่มีค่าที่ส่งผ่านล่าสุดไปยังdataApi.setPageOutput(value)ถ้าหน้าที่สร้างไม่ได้ตั้งค่าเอาต์พุต ให้ปิดกล่องโต้ตอบโดยการเลือก ยกเลิก หรือปุ่มปิด จะส่งผลให้เกิด ที่ไม่ได้กําหนดreturnValueไว้ - หน้าชนิดอื่น ๆ จะไม่ส่งกลับค่าเมื่อปิดกล่องโต้ตอบ
- สําหรับเรกคอร์ดเอนทิตีที่เปิดในโหมดสร้าง สัญญาจะแก้ไขด้วยออบเจ็กต์ที่มี
อาร์เรย์ savedEntityReference ที่ส่งกลับสําหรับเรกคอร์ดเอนทิตีประกอบด้วยคุณสมบัติเหล่านี้:
- entityType: ชื่อตรรกะของตาราง
- id: การแสดงสตริงของ GUID ของระเบียน
- ชื่อ: ค่าคอลัมน์หลักของระเบียน
ตัวอย่างเช่น
ตัวอย่างต่อไปนี้สาธิตการนําทางไปยังหน้าชนิดต่าง ๆ แบบอินไลน์และในกล่องโต้ตอบ
| ตัวอย่าง | แสดงตัวอย่าง |
|---|---|
| เปิดรายการบัญชี | วิธีการเปิดรายการบัญชีหลักแบบอินไลน์ |
| เปิดระเบียนบัญชีที่มีอยู่ภายในกล่องโต้ตอบ | วิธีการเปิดเรกคอร์ดบัญชีที่มีอยู่ในกล่องโต้ตอบที่จัดกึ่งกลางด้วยความสูงและความกว้างที่ระบุ |
| เปิดฟอร์มบัญชีในโหมดสร้างภายในกล่องโต้ตอบ | วิธีการเปิดฟอร์มบัญชีในโหมดสร้างในกล่องโต้ตอบและเข้าถึง ID และชื่อของระเบียนที่บันทึกไว้ |
| เปิดทรัพยากรเว็บ HTML ในกล่องโต้ตอบ | วิธีการเปิดทรัพยากรบนเว็บ HTML ในกล่องโต้ตอบที่มีมิติที่ระบุในหน่วยพิกเซล |
| เปิดหน้าที่สร้างด้วยพารามิเตอร์ข้อมูลป้อนเข้าในกล่องโต้ตอบ | วิธีการส่งผ่านบริบทระเบียนและพารามิเตอร์แบบกําหนดเองไปยังกล่องโต้ตอบหน้าที่สร้างและอ่านค่าที่ส่งกลับ |
ตัวอย่างรายการบัญชีที่เปิด
เปิดรายการบัญชีหลักแบบอินไลน์
var pageInput = {
pageType: "entitylist",
entityName: "account"
};
Xrm.Navigation.navigateTo(pageInput).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
เปิดเรกคอร์ดบัญชีที่มีอยู่ภายในตัวอย่างกล่องโต้ตอบ
เปิดฟอร์มบัญชีที่มีอยู่ภายในกล่องโต้ตอบ
var pageInput = {
pageType: "entityrecord",
entityName: "account",
entityId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" //replace with actual ID
};
var navigationOptions = {
target: 2,
height: {value: 80, unit:"%"},
width: {value: 70, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
เรียนรู้วิธีการเปิดฟอร์มหลักในกล่องโต้ตอบโดยใช้ API ของไคลเอ็นต์
เปิดฟอร์มบัญชีในโหมดสร้างภายในตัวอย่างกล่องโต้ตอบ
เปิดฟอร์มบัญชีในโหมดสร้างภายในกล่องโต้ตอบและส่งกลับการอ้างอิงระเบียนที่สร้างขึ้นเมื่อบันทึก
var pageInput = {
pageType: "entityrecord",
entityName: "account"
};
var navigationOptions = {
target: 2,
height: {value: 80, unit:"%"},
width: {value: 70, unit:"%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(result) {
console.log("Record created with ID: " + result.savedEntityReference[0].id +
" Name: " + result.savedEntityReference[0].name)
// Handle dialog closed
},
function error() {
// Handle errors
}
);
เรียนรู้วิธีการเปิดฟอร์มหลักในกล่องโต้ตอบโดยใช้ API ของไคลเอ็นต์
เปิดทรัพยากรเว็บ HTML ในตัวอย่างกล่องโต้ตอบ
เปิดทรัพยากรบนเว็บ HTML ในกล่องโต้ตอบ
var pageInput = {
pageType: "webresource",
webresourceName: "new_sample_webresource.htm"
};
var navigationOptions = {
target: 2,
width: 500, // value specified in pixel
height: 400, // value specified in pixel
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success() {
// Run code on success
},
function error() {
// Handle errors
}
);
เปิดหน้าสร้างที่มีพารามิเตอร์การป้อนข้อมูลในตัวอย่างกล่องโต้ตอบ
เปิดหน้าสร้างเป็นกล่องโต้ตอบที่จัดกึ่งกลาง ส่งผ่านรหัสเรกคอร์ด ชื่อเอนทิตี และพารามิเตอร์ข้อมูลแบบกําหนดเอง หน้าสร้างต้องได้รับการตั้งค่าเพื่อยอมรับพารามิเตอร์เหล่านี้
var pageInput = {
pageType: "generative",
pageId: "<genPageID>", // replace with the ID of your generative page
recordId: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee", // replace with actual record GUID
entityName: "account",
data: { status: "active", category: "premium" }
};
var navigationOptions = {
target: 2,
height: {value: 80, unit: "%"},
width: {value: 70, unit: "%"},
position: 1
};
Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
function success(result) {
const output = result?.returnValue;
if (output) {
console.log("Value returned by generative page:", output);
}
},
function error(error) {
console.log(error.message);
}
);
บทความที่เกี่ยวข้อง
Xrm.Navigation
นําทางไปยังและจากหน้าที่สร้าง
การนําทางไปยังและจากหน้าแบบกําหนดเอง (ตัวอย่าง)