แชร์ผ่าน


ฟังก์ชัน 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: ความสามารถในการเปรียบเทียบ

ข้อกำหนดเบื้องต้น

  1. ป้อนแหล่งข้อมูล DS1 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์ SPLIT ("D1|_D2|D3", "|")
  2. เปิดหน้า ค่ามิติทางการเงิน แล้วเลือกมิติ CostCenter
  3. ป้อนค่ามิติต่อไปนี้: D1, _D2 และ D3

การเรียงลำดับในหน่วยความจํา

  1. ตั้งค่าคอนฟิกแหล่งข้อมูล DS2 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์ ORDERBY("InMemory", DS1, DS1.Value)
  2. โปรดสังเกตว่านิพจน์ FIRST(DS2).Value จะส่งคืนค่าข้อความ "D1" นิพจน์ INDEX(DS2, COUNT(DS2)).Value จะส่งคืนค่าข้อความ "_D2" และนิพจน์ STRINGJOIN(DS2, DS2.Value, "|") จะส่งคืนค่าข้อความ "D1|D3|_D2"

การเรียงลำดับในฐานข้อมูล

  1. ป้อนแหล่งข้อมูล DS3 เป็นชนิด เรกคอร์ดตาราง ที่อ้างอิงถึงเอนทิตี้ FinancialDimensionValueEntity
  2. ตั้งค่าคอนฟิกแหล่งข้อมูล DS4 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์ FILTER(DS3, DS3.FinancialDimension="CostCenter")
  3. ตั้งค่าคอนฟิกแหล่งข้อมูล DS5 เป็นชนิด ฟิลด์ที่มีการคำนวณ ที่มีนิพจน์ ORDERBY(DS4, DS4.DimensionValue)
  4. โปรดสังเกตว่านิพจน์ FIRST(DS5).Value จะส่งคืนค่าข้อความ "_D2" นิพจน์ INDEX(DS5, COUNT(DS5)).Value จะส่งคืนค่าข้อความ "D3" และนิพจน์ STRINGJOIN(DS5, DS5.Value, "|") จะส่งคืนค่าข้อความ "_D2|D1|D3"

แหล่งข้อมูลเพิ่มเติม

ฟังก์ชันรายการ