ฟังก์ชัน ORDERBY ER
ฟังก์ชัน ORDERBY
ส่งกลับรายการที่ระบุเป็นค่า รายการเรกคอร์ด หลังจากที่ถูกเรียงลำดับตามอาร์กิวเมนต์ที่ระบุ อาร์กิวเมนต์เหล่านี้สามารถถูกกำหนดเป็นนิพจน์ได้
ไวยากรณ์ 1
ORDERBY (list, expression 1[, expression 2, …, expression N])
ไวยากรณ์ 2
ORDERBY (location, list, expression 1[, expression 2, …, expression N])
หมายเหตุ
ไวยากรณ์นี้ได้รับการสนับสนุนสำหรับ Microsoft Dynamics 365 Finance รุ่น 10.0.25 และรุ่นที่ใหม่กว่า
อาร์กิวเมนต์
location
: สตริง
ตำแหน่งที่การเรียงลำดับควรทำงาน ตัวเลือกที่สามารถใช้ได้มีดังนี้
- "Query"
- "InMemory"
list
: รายการเรกคอร์ด
พาธที่ถูกต้องของรายการแหล่งข้อมูลของชนิดข้อมูล รายการเรกคอร์ด
expression 1
: ฟิลด์
เส้นทางที่ถูกต้องของฟิลด์ของแหล่งข้อมูลที่ถูกอ้างอิงโดยอาร์กิวเมนต์ list
ของฟังก์ชันที่เรียก ฟิลด์ที่อ้างอิงต้องเป็นฟิลด์ของชนิดข้อมูลดั้งเดิม ต้องระบุอาร์กิวเมนต์นี้
expression N
: ฟิลด์
เส้นทางที่ถูกต้องของฟิลด์ของแหล่งข้อมูลที่ถูกอ้างอิงโดยอาร์กิวเมนต์ list
ของฟังก์ชันที่เรียก ฟิลด์ที่อ้างอิงต้องเป็นฟิลด์ของชนิดข้อมูลดั้งเดิม อาร์กิวเมนต์เพิ่มเติมเหล่านี้เป็นตัวเลือก
ค่าที่ส่งคืน
รายการเรกคอร์ด
รายการผลลัพธ์ของเรกคอร์ด
บันทึกย่อการใช้งาน
ไวยากรณ์ 1
การเรียงลำดับข้อมูลจะเสร็จสิ้นในหน่วยความจําของแอปพลิเคชันเซิร์ฟเวอร์เสมอ สำหรับรายละเอียดเพิ่มเติม ดูที่ ตัวอย่างที่ 1
ไวยากรณ์ 2
การเรียงลำดับในหน่วยความจํา
เมื่ออาร์กิวเมนต์ location
ระบุเป็น InMemory การเรียงลำระดับข้อมูลจะเสร็จสิ้นในหน่วยความจําของแอปพลิเคชันเซิร์ฟเวอร์ สำหรับรายละเอียดเพิ่มเติม ดูที่ ตัวอย่างที่ 2
การเรียงลำดับในฐานข้อมูล
เมื่ออาร์กิวเมนต์ location
ระบุเป็น Query การเรียงลำดับข้อมูลจะเสร็จสิ้นในระดับฐานข้อมูล ในกรณีนี้ อาร์กิวเมนต์ list
ต้องชี้ไปที่แหล่งข้อมูล การรายงานทางอิเล็กทรอนิกส์ (ER) แหล่งใดแหล่งหนึ่งต่อไปนี้ ซึ่งระบุแหล่งข้อมูลของแอปพลิเคชันที่สามารถสร้างการสอบถามฐานข้อมูลโดยตรงสำหรับ:
- แหล่งข้อมูลชนิด เรกคอร์ดตาราง
- ความสัมพันธ์ของแหล่งข้อมูลชนิด เรกคอร์ดตาราง
- แหล่งข้อมูลชนิด ฟิลด์การคำนวณ
อาร์กิวเมนต์ expression 1
และ expression N
ต้องชี้ไปที่ฟิลด์ของแหล่งข้อมูล ER ที่ระบุฟิลด์ที่เกี่ยวข้องของต้นทางแอปพลิเคชันที่สามารถสร้างการสอบถามฐานข้อมูลโดยตรงได้ด้วย
ถ้าไม่สามารถสร้างการสอบถามฐานข้อมูลโดยตรงได้ เกิด ข้อผิดพลาด การตรวจสอบความถูกต้องในตัวออกแบบการแมปรูปแบบ ER ข้อความที่คุณได้รับแจ้งว่านิพจน์ ER ที่มีฟังก์ชัน ORDERBY
ไม่สามารถเรียกใช้ในขณะรันไทม์
เพื่อประสิทธิภาพที่ดียิ่งขึ้น ขอแนะนำให้คุณใช้ตัวเลือก การสอบถาม เมื่อตั้งค่าคอนฟิกการเรียงลำดับสำหรับแหล่งข้อมูลแอปพลิเคชัน อาจมีเรกคอร์ดจํานวนมาก (ตัวอย่างเช่น เช่น ตารางแอปพลิเคชันธุรกรรม)
หมายเหตุ
ไม่สามารถแปลฟังก์ชัน ORDEBY
เป็นการสอบถามฐานข้อมูลโดยตรงได้ ดังนั้น แหล่งข้อมูล ER ที่มีฟังก์ชันนี้จะไม่สามารถสอบถามได้ นอกจากนี้ ยังไม่สามารถใช้ในขอบเขตของฟังก์ชัน ER เช่น FILTER และ ALLITEMSQUERY ซึ่งสามารถใช้ได้เฉพาะแหล่งข้อมูลที่สามารถสอบถามได้เท่านั้น
สำหรับรายละเอียดเพิ่มเติม ดูที่ ตัวอย่างที่ 3 และ ตัวอย่างที่ 4
ความสามารถในการเปรียบเทียบ
เนื่องจากกลไกจัดการฐานข้อมูล SQL และแอปพลิเคชันเซิร์ฟเวอร์การเงินสามารถใช้ค่าการจัดอันดับที่แตกต่างกันสำหรับอักขระตัวเดียวได้ ผลลัพธ์การเรียงลำดับของรายการเรกคอร์ดเดียวกันสามารถแตกต่างกันเมื่อใช้ฟิลด์ สตริง สำหรับการเรียงลำดับ สำหรับรายละเอียดเพิ่มเติม ดูที่ ตัวอย่างที่ 5
ตัวอย่างที่ 1: การดำเนินการเริ่มต้นในหน่วยความจํา
ถ้าคุณป้อนแหล่งข้อมูล DS ของชนิด ฟิลด์ที่มีการคำนวณ และประกอบด้วยนิพจน์ SPLIT ("C|B|A", "|")
นิพจน์ FIRST( ORDERBY( DS, DS. Value)).Value
จะส่งกลับค่าข้อความ A
ตัวอย่างที่ 2: การดำเนินการโดยตรงหน่วยความจํา
หากตั้งค่าคอนฟิก ผู้จัดจำหน่าย เป็นแหล่งข้อมูล ER เป็นชนิด เรกคอร์ดตาราง ที่อ้างอิงถึงตาราง VendTable ทั้งนิพจน์ ORDERBY (Vendor, Vendor.'name()')
และนิพจน์ ORDERBY ("InMemory", Vendor, Vendor.'name()')
จะส่งคืนรายชื่อผู้จัดจำหน่ายที่จัดเก็บตามชื่อในลำดับจากน้อยไปหามาก
เมื่อคุณตั้งค่าคอนฟิกนิพจน์ ORDERBY ("Query", Vendor, Vendor.'name()')
ในตัวออกแบบการแมปแบบจำลอง ER จะเกิด ข้อผิดพลาด การตรวจสอบความถูกต้องในเวลาออกแบบ เนื่องจากพาธ Vendor.'name()'
อ้างอิงถึงวิธีการของแอปพลิเคชันที่มีตรรกะที่ไม่สามารถแปลเป็นการสอบถามฐานข้อมูลโดยตรง
ตัวอย่างที่ 3: การสอบถามฐานข้อมูล
หากตั้งค่าคอนฟิก TaxTransaction เป็นแหล่งข้อมูล ER เป็นชนิด เรกคอร์ดตาราง ที่อ้างอิงถึงตาราง TaxTrans นิพจน์ ORDERBY ("Query", TaxTransaction, TaxTransaction.TaxCode)
จะเรียงลำดับเรกคอร์ดที่ระดับฐานข้อมูลแอปพลิเคชันและส่งคืนรายการธุรกรรมภาษีที่เรียงลำดับตามรหัสภาษีในลำดับจากน้อยไปหามาก
ตัวอย่างที่ 4: แหล่งข้อมูลที่สามารถสอบถามได้
หากตั้งค่าคอนฟิก TaxTransaction เป็นแหล่งข้อมูล ER เป็นชนิด เรกคอร์ดตาราง ที่อ้างอิงถึงตาราง TaxTrans คุณสามารถตั้งค่าคอนฟิกแหล่งข้อมูล ER เป็น TaxTransactionFiltered เพื่อให้มีนิพจน์ FILTER(TaxTransaction, TaxCode="VAT19")
ที่จะดึงข้อมูลธุรกรรมสำหรับรหัสภาษีที่ระบุ เนื่องจากแหล่งข้อมูล ER ที่เป็น TaxTransactionFiltered ที่ตั้งค่าคอนฟิกไว้สามารถสอบถามได้ คุณจึงสามารถตั้งค่าคอนฟิกนิพจน์ ORDERBY ("Query", TaxTransactionFiltered, TaxTransactionFiltered.TransDate)
เพื่อส่งคืนรายการของธุรกรรมภาษีที่กรองซึ่งเรียงลำดับตามวันที่ของธุรกรรมในลำดับจากน้อยไปหามาก
หากคุณตั้งค่าคอนฟิก TaxTransactionOrdered เป็นแหล่งข้อมูล ER เป็นชนิด ฟิลด์ที่คำนวณ ที่มีนิพจน์ ORDERBY ("Query", TaxTransaction, TaxTransaction.TransDate)
และแหล่งข้อมูล ER เป็นชนิด ฟิลด์ที่คำนวณ ที่มีนิพจน์ FILTER(TaxTransactionOrdered, TaxCode="VAT19")
จะเกิด ข้อผิดพลาด การตรวจสอบความถูกต้องในเวลาออกแบบในตัวออกแบบการแมปรูปแบบ ER ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากอาร์กิวเมนต์แรกของฟังก์ชัน FILTER ต้องอ้างอิงแหล่งข้อมูล ER ที่สามารถสอบถามได้ แต่แหล่งข้อมูล TaxTransactionOrdered ที่มีฟังก์ชัน ORDERBY
ไม่สามารถสอบถามได้
ตัวอย่างที่ 5: ความสามารถในการเปรียบเทียบ
ข้อกำหนดเบื้องต้น
- ป้อนแหล่งข้อมูล DS1 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์
SPLIT ("D1|_D2|D3", "|")
- เปิดหน้า ค่ามิติทางการเงิน แล้วเลือกมิติ CostCenter
- ป้อนค่ามิติต่อไปนี้: D1, _D2 และ D3
การเรียงลำดับในหน่วยความจํา
- ตั้งค่าคอนฟิกแหล่งข้อมูล DS2 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์
ORDERBY("InMemory", DS1, DS1.Value)
- โปรดสังเกตว่านิพจน์
FIRST(DS2).Value
จะส่งคืนค่าข้อความ "D1" นิพจน์INDEX(DS2, COUNT(DS2)).Value
จะส่งคืนค่าข้อความ "_D2" และนิพจน์STRINGJOIN(DS2, DS2.Value, "|")
จะส่งคืนค่าข้อความ "D1|D3|_D2"
การเรียงลำดับในฐานข้อมูล
- ป้อนแหล่งข้อมูล DS3 เป็นชนิด เรกคอร์ดตาราง ที่อ้างอิงถึงเอนทิตี้ FinancialDimensionValueEntity
- ตั้งค่าคอนฟิกแหล่งข้อมูล DS4 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์
FILTER(DS3, DS3.FinancialDimension="CostCenter")
- ตั้งค่าคอนฟิกแหล่งข้อมูล DS5 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์
ORDERBY(DS4, DS4.DimensionValue)
- โปรดสังเกตว่านิพจน์
FIRST(DS5).Value
จะส่งคืนค่าข้อความ "_D2" นิพจน์INDEX(DS5, COUNT(DS5)).Value
จะส่งคืนค่าข้อความ "D3" และนิพจน์STRINGJOIN(DS5, DS5.Value, "|")
จะส่งคืนค่าข้อความ "_D2|D1|D3"
แหล่งข้อมูลเพิ่มเติม
คำติชม
https://aka.ms/ContentUserFeedback
เร็วๆ นี้: ตลอดปี 2024 เราจะขจัดปัญหา GitHub เพื่อเป็นกลไกคำติชมสำหรับเนื้อหา และแทนที่ด้วยระบบคำติชมใหม่ สำหรับข้อมูลเพิ่มเติม ให้ดู:ส่งและดูข้อคิดเห็นสำหรับ