แชร์ผ่าน


navigateTo (การอ้างอิง API ไคลเอ็นต์)

นําทางไปยังรายการตาราง ระเบียนตาราง ทรัพยากร HTML เว็บ หรือหน้าแบบกําหนดเองที่ระบุ

Note

วิธีนี้ได้รับการสนับสนุนเฉพาะบนอินเทอร์เฟซแบบรวมศูนย์เท่านั้น

ไวยากรณ์

ใช้ไวยากรณ์ต่อไปนี้เพื่อเรียก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 วัตถุ (ไม่บังคับ) วัตถุพจนานุกรมที่ส่งผ่านพารามิเตอร์เพิ่มเติมไปยังฟอร์ม

พารามิเตอร์สามารถเป็นคอลัมน์ตารางที่มีค่าเริ่มต้นที่ตั้งไว้ในฟอร์มใหม่ (ดู ตั้งค่าคอลัมน์โดยใช้พารามิเตอร์ที่ส่งผ่านไปยังฟอร์ม) หรือพารามิเตอร์แบบกําหนดเองที่เข้าถึงบนฟอร์มที่ใช้ formContext.data.attributes (ดู กําหนดค่าฟอร์มเพื่อยอมรับพารามิเตอร์สตริงคิวรีแบบกําหนดเอง และ formContext.data) พารามิเตอร์ไม่ถูกต้องทําให้เกิดข้อผิดพลาด

formId สตริง (ไม่บังคับ) รหัสของอินสแตนซ์ของฟอร์มที่จะแสดง
isCrossEntityNavigate แบบบูลีน (ไม่บังคับ) ระบุว่าฟอร์มถูกนําทางจากตารางอื่นโดยใช้โฟลว์กระบวนการทางธุรกิจแบบตารางข้ามหรือไม่
isOfflineSyncError แบบบูลีน (ไม่บังคับ) ระบุว่ามีข้อผิดพลาดใด ๆ ในการซิงค์แบบออฟไลน์หรือไม่
processId สตริง (ไม่บังคับ) รหัสของกระบวนการทางธุรกิจที่จะแสดงบนแบบฟอร์ม
processInstanceId สตริง (ไม่บังคับ) รหัสของอินสแตนซ์กระบวนการทางธุรกิจที่จะแสดงบนแบบฟอร์ม
relationship วัตถุ (ไม่บังคับ) กําหนดวัตถุความสัมพันธ์เพื่อแสดงระเบียนที่เกี่ยวข้องบนฟอร์ม ดูความสัมพันธ์
selectedStageId สตริง (ไม่บังคับ) รหัสของลําดับขั้นที่เลือกในอินสแตนซ์กระบวนการทางธุรกิจ
tabName สตริง (ไม่บังคับ) ตั้งค่าโฟกัสบนแท็บของฟอร์ม
ออบเจ็กต์ความสัมพันธ์

วัตถุความสัมพันธ์ที่ใช้ใน ระเบียนเอนทิตีประกอบด้วยค่าต่อไปนี้

ชื่อ ประเภท คำอธิบาย
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นี้เป็นพารามิเตอร์เมื่อคุณต้องการเปิดหน้าที่สร้าง

ออบเจ็กต์หน้าที่สร้างประกอบด้วยค่าต่อไปนี้

ชื่อ ประเภท คำอธิบาย
pageType สตริง ระบุgenerative
pageId สตริง ID ของหน้าที่สร้างเพื่อเปิด

Note

การนําทางไปยังหน้าสร้างโดยใช้ navigateTo ในขณะนี้ ไม่สนับสนุนการส่งผ่านการเริ่มต้นหรือข้อมูลตามบริบท (เช่น ชื่อตาราง รหัสเรกคอร์ด หรือพารามิเตอร์แบบกําหนดเอง) หน้าสร้างเปิดขึ้นโดยไม่มีบริบท

วัตถุ navigationOptions ประกอบด้วยค่าต่อไปนี้

ชื่อ ประเภท คำอธิบาย
target หมายเลข ระบุ 1 เพื่อเปิดหน้าแบบอินไลน์ ระบุ 2 เพื่อเปิดหน้าในกล่องโต้ตอบ
นอกจากนี้ ค่าที่เหลือ (ความกว้าง ความสูง และตําแหน่ง) จะใช้ได้เฉพาะเมื่อคุณระบุ 2 ในค่านี้ (เปิดหน้าในกล่องโต้ตอบ)
หมายเหตุ: คุณสามารถเปิดรายการเอนทิตีแบบอินไลน์เท่านั้น คุณสามารถเปิดระเบียนของเอนทิตี ทรัพยากรบนเว็บ และหน้าสร้างทั้งแบบอินไลน์หรือในกล่องโต้ตอบ
width ตัวเลขหรือวัตถุ (ไม่บังคับ) ความกว้างของกล่องโต้ตอบ เพื่อระบุความกว้างเป็นพิกเซล เพียงแค่พิมพ์ค่าตัวเลข เมื่อต้องการระบุความกว้างเป็นเปอร์เซ็นต์ ให้ระบุวัตถุชนิด SizeValue ด้วยคุณสมบัติต่อไปนี้:
- value: ค่าตัวเลขของชนิดตัวเลข
- unit: หน่วยของการวัดชนิดสตริง ระบุว่า % หรือ px ค่าเริ่มต้นคือ px
height ตัวเลขหรือวัตถุ (ไม่บังคับ) ความสูงของกล่องโต้ตอบ ในการระบุความสูงเป็นพิกเซล เพียงแค่พิมพ์ค่าตัวเลข เมื่อต้องการระบุความกว้างเป็นเปอร์เซ็นต์ ให้ระบุวัตถุชนิด SizeValue ด้วยคุณสมบัติต่อไปนี้:
- ค่า: ค่าตัวเลขของชนิดตัวเลข
- unit: หน่วยของการวัดชนิดสตริง ระบุว่า % หรือ px ค่าเริ่มต้นคือ px
position หมายเลข (ไม่บังคับ) ระบุ 1 เพื่อเปิดกล่องโต้ตอบในศูนย์ 2 เพื่อเปิดกล่องโต้ตอบทางด้านไกล ค่าเริ่มต้นคือ 1 (กึ่งกลาง)
title สตริง (ไม่บังคับ) ชื่อกล่องโต้ตอบที่ด้านบนของกล่องโต้ตอบตรงกลางหรือด้านข้าง

ค่าผลลัพธ์

ส่งกลับสัญญา ค่าที่ส่งผ่านเมื่อสัญญาคลี่คลายขึ้นอยู่กับเป้าหมาย:

  • แบบอินไลน์: สัญญาจะแก้ทันทีและไม่ส่งกลับค่าใด ๆ

  • กล่องโต้ตอบ: Promise จะแก้ปัญหาเมื่อปิดกล่องโต้ตอบ วัตถุจะถูกส่งผ่านก็ต่อเมื่อ pageType = entityRecord คุณเปิดฟอร์มในโหมดสร้างเท่านั้น ออบเจ็กต์ มี savedEntityReference อาร์เรย์ที่มีคุณสมบัติต่อไปนี้เพื่อระบุเรกคอร์ดตารางที่สร้างขึ้น:

    • entityType: ชื่อตรรกะของตาราง
    • id: การแสดงสตริงของค่า GUID สําหรับระเบียน
    • ชื่อ: ค่าคอลัมน์หลักของระเบียนที่แสดงหรือสร้างขึ้น

ตัวอย่าง

ตัวอย่างต่อไปนี้สาธิตการนําทางไปยังหน้าชนิดต่าง ๆ แบบอินไลน์และในกล่องโต้ตอบ

ตัวอย่างที่ 1: เปิดรายการบัญชี

เปิดรายการบัญชีหลักแบบอินไลน์

var pageInput = {
    pageType: "entitylist",
    entityName: "account"
};
Xrm.Navigation.navigateTo(pageInput).then(
    function success() {
            // Run code on success
    },
    function error() {
            // Handle errors
    }
);

ตัวอย่างที่ 2: เปิดเรกคอร์ดบัญชีที่มีอยู่ภายในกล่องโต้ตอบ

เปิดฟอร์มบัญชีที่มีอยู่ภายในกล่องโต้ตอบ

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

ตัวอย่างที่ 3: เปิดฟอร์มบัญชีในโหมดสร้างภายในกล่องโต้ตอบ

เปิดฟอร์มบัญชีในโหมดสร้างภายในกล่องโต้ตอบและส่งกลับการอ้างอิงระเบียนที่สร้างขึ้นเมื่อบันทึก

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

ตัวอย่างที่ 4: เปิดทรัพยากรบนเว็บ 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
    }
);

Xrm.Navigation
การนําทางไปยังและจากหน้าแบบกําหนดเอง (ตัวอย่าง)