ตัวดำเนินการและตัวระบุใน Power Apps
ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง Power Pages
ตัวดำเนินการเหล่านี้บางตัวจะขึ้นกับภาษาของผู้เขียน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสนับสนุนภาษาในแอปพื้นที่ทำงาน ดูที่ แอปส่วนกลาง
สัญลักษณ์ | ชนิด | ตัวอย่าง | คำอธิบาย |
---|---|---|---|
'...' | ตัวระบุ | 'ชื่อบัญชี' | ตัวระบุที่มีอักขระพิเศษ รวมทั้งช่องว่าง อยู่ในเครื่องหมายอัญประกาศเดี่ยว |
"..." | สตริงข้อความ | "สวัสดีทุกท่าน" | สตริงข้อความอยู่ในเครื่องหมายอัญประกาศคู่ |
$"..." | การใช้ตัวแปรในสตริง | $"สวัสดี {FirstName}," | สูตรที่ฝังอยู่ในสตริงข้อความ |
. | ตัวเลือกคุณสมบัติ |
Slider1.Value Color.Red Acceleration.X |
แยกคุณสมบัติจาก ตาราง ตัวควบคุม สัญญาณ หรือการแจกแจง สำหรับความเข้ากันได้แบบย้อนหลัง ! อาจนำมาใช้ด้วยเช่นกัน |
. [ขึ้นอยู่กับภาษา] |
ตัวคั่นทศนิยม | 1.23 | ตัวคั่นระหว่างตัวเลขทั้งหมดและตัวเลขเศษส่วน อักขระขึ้นกับภาษา |
( ) | เครื่องหมายวงเล็บ |
Filter(T, A < 10) (1 + 2) * 3 |
บังคับใช้ตามลำดับความสำคัญและจัดกลุ่มนิพจน์ย่อยเป็นนิพจน์ที่มีขนาดใหญ่ขึ้น |
+ | ตัวดำเนินการทางคณิตศาสตร์ | 1 + 2 | การบวก |
- | 2-1 | การลบและสัญลักษณ์ | |
* | 2 * 3 | การคูณ | |
/ | 2 / 3 | การหาร (เรียกว่าฟังก์ชัน Mod ) | |
^ | 2 ^ 3 | การยกกำลัง ซึ่งเทียบเท่ากับฟังก์ชัน Power | |
% | 20% | เปอร์เซ็นต์ (เทียบเท่ากับ "* 1/100") | |
= | ตัวดำเนินการเปรียบเทียบ | ราคา = 100 | เท่ากับ |
> | ราคา > 100 | มากกว่า | |
>= | ราคา >= 100 | มากกว่าหรือเท่ากับ | |
< | ราคา < 100 | น้อยกว่า | |
<= | ราคา <= 100 | น้อยกว่าหรือเท่ากับ | |
<> | ราคา <> 100 | ไม่เท่ากับ | |
& | ตัวเชื่อมสตริงเข้าด้วยกัน | "สวัสดี" & " " & "ทุกท่าน" | ทำให้สตริงหลายรายการปรากฏขึ้นแบบต่อเนื่องกัน |
&& หรือ และ | ตัวดำเนินการทางตรรกะ |
ราคา < 100 && Slider1.Value = 20 หรือ ราคา < 100 And Slider1.Value = 20 |
การเชื่อมโยงเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน And |
|| หรือ หรือ | ราคา < 100 || Slider1.Value = 20 หรือ ราคา < 100 หรือ Slider1.Value = 20 | การแบ่งแยกเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Or | |
! หรือ Not | !(ราคา < 100) หรือ Not (ราคา < 100) | ค่าลบเชิงตรรกะ ซึ่งเทียบเท่ากับฟังก์ชัน Not | |
exactin | ตัวดำเนินการการเป็นสมาชิก | Gallery1.Selected exactin SavedItems | ซึ่งเป็นของ คอลเลกชัน หรือตาราง |
exactin | "exactin" ของWindows “เมื่อต้องการแสดงหน้าต่างในระบบปฏิบัติการ Windows...” | การทดสอบสตริงย่อย (ตรงตามตัวพิมพ์ใหญ่-เล็ก) | |
ใน | Gallery1.Selected in SavedItems | ซึ่งเป็นของคอลเลกชัน หรือตาราง | |
ใน | "The" ใน "The keyboard and the monitor..." | การทดสอบสตริงย่อย (ไม่ตรงตามตัวพิมพ์เล็ก-ใหญ่) | |
@ | ตัวดำเนินการแก้ไขความคลุมเครือ | MyTable[@fieldname] | การแก้ไขความคลุมเครือของฟิลด์ |
@ | [@MyVariable] | การแก้ไขความคลุมเครือส่วนกลาง | |
, [ขึ้นอยู่กับภาษา] |
ตัวคั่นรายการ |
If( X < 10, "ต่ำ", "ดี" ) { X: 12, Y: 32 } [ 1, 2, 3 ] |
คั่น: อักขระนี้ขึ้นกับภาษา |
; [ขึ้นอยู่กับภาษา] |
การเกี่ยวโยงของสูตร | Collect(T, A); Navigate(S1, "") | แยกคำขอของฟังก์ชันในคุณสมบัติลักษณะการทำงาน ตัวดำเนินการเกี่ยวโยงจะขึ้นอยู่กับภาษา |
เป็น | เป็นตัวดำเนินการ | ลูกค้าทั้งหมดเป็นลูกค้า | การแทนที่ ThisItem และ ThisRecord ในแกลเลอรีและฟังก์ชันขอบเขตเรกคอร์ด เป็น มีประโยชน์ในการระบุชื่อที่ดีขึ้นและเฉพาะเจาะจงและมีความสำคัญอย่างยิ่งในสถานการณ์ที่ซ้อนกัน |
ตนเอง | ตัวดำเนินการ Self | Self.Fill | การเข้าถึงคุณสมบัติของตัวควบคุมปัจจุบัน |
รายการหลัก | ตัวดำเนินการหลัก | Parent.Fill | เข้าถึงคุณสมบัติของคอนเทนเนอร์ตัวควบคุม |
ThisItem | ตัวดำเนินการ ThisItem | ThisItem.FirstName | เข้าถึงฟิลด์ของตัวควบคุม Gallery หรือ form |
ThisRecord | ตัวดำเนินการ ThisRecord | ThisRecord.FirstName | เข้าถึงเรกคอร์ดที่สมบูรณ์และแต่ละฟิลด์ของเรกคอร์ดภายใน ForAllSumWith และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ สามารถแทนที่ด้วย เป็น ตัวดำเนินการ |
หมายเหตุ
ตัวดำเนินการ @ ยังสามารถใช้เพื่อตรวจสอบชนิดของออบเจ็กต์ของเรกคอร์ดกับแหล่งข้อมูล ตัวอย่างเช่น Collect(coll,Account@{'Account Number': 1111})
ตัวดำเนินการ in และ exactin
ใช้ตัวดำเนินการ ใน และ ที่แม่นยำใน เพื่อค้นหาสตริงใน แหล่งข้อมูล เช่น คอลเลกชันหรือตารางที่นำเข้ามา ตัวดำเนินการ in ระบุรายการที่ตรงกันโดยไม่คำนึงถึงตัวพิมพ์ และตัวดำเนินการ exactin ระบุรายการที่ตรงกัน แม้ว่าจะเปลี่ยนเป็นตัวพิมพ์ใหญ่แบบเดียวกัน ตัวอย่างมีดังนี้:
สร้างหรือนำเข้าคอลเลกชันที่มีชื่อว่า Inventory แล้วแสดงในแกลเลอรี ตามกระบวนการแรกใน แสดงรูปภาพและข้อความในแกลเลอรี ที่อธิบายไว้
ตั้งค่าคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
Filter(Inventory, "E" in ProductName)แกลเลอรีแสดงผลิตภัณฑ์ทั้งหมดยกเว้น Callisto เนื่องจากชื่อของผลิตภัณฑ์ดังกล่าวเป็นชื่อเดียวที่ไม่มีตัวอักษรที่คุณระบุ
เปลี่ยนคุณสมบัติ Items ของแกลเลอรีให้สูตรนี้:
Filter(Inventory, "E" exactin ProductName)แกลเลอรีแสดงเฉพาะ Europa เนื่องจากชื่อของผลิตภัณฑ์มีตัวอักษรที่คุณระบุตามตัวพิมพ์ที่คุณระบุ
ThisItem, ThisRecord และ เป็นตัวดำเนินการ
การควบคุมและฟังก์ชันบางอย่างใช้สูตรกับแต่ละเรกคอร์ดของตาราง หากต้องการอ้างถึงเรกคอร์ดแต่ละรายการในสูตร ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้:
ตัวดำเนินการ | นำไปใช้กับ | รายละเอียด |
---|---|---|
ThisItem | ตัวควบคุมแกลเลอรี ตัวควบคุม การแก้ไขฟอร์ม ตัวควบคุม การแสดงฟอร์ม |
ชื่อเริ่มต้นสำหรับเรกคอร์ดปัจจุบันในตัวควบคุม แกลเลอรี หรือตัวควบคุมฟอร์ม |
ThisRecord | ForAllFilterWithSum และฟังก์ชันอื่นๆ ของ ขอบเขตเรกคอร์ด | ชื่อเริ่มต้นสำหรับเรกคอร์ดในปัจจุบัน ForAll และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ |
เป็นชื่อ | ตัวควบคุมแกลเลอรี ForAllFilterWith, Sum และฟังก์ชันอื่นๆ ของขอบเขตเรกคอร์ด |
กำหนด ชื่อ สำหรับเรกคอร์ดปัจจุบันแทนที่ค่าเริ่มต้น ThisItem หรือ ThisRecord ใช้ เป็น เพื่อทำให้สูตรเข้าใจง่ายขึ้นและแก้ไขความคลุมเครือเมื่อซ้อนกัน |
ตัวดำเนินการ ThisItem
ตัวอย่างเช่น ในตัวควบคุม แกลเลอรี ต่อไปนี้ คุณสมบัติ Items ถูกตั้งค่าเป็นแหล่งข้อมูล พนักงาน (เช่น ตาราง พนักงาน ที่มาพร้อมกับ ตัวอย่าง Northwind Traders):
Employees
รายการแรกในแกลเลอรีคือเทมเพลตที่จำลองสำหรับพนักงานแต่ละคน ในเทมเพลตจะใช้สูตรสำหรับรูปภาพ ThisItem เพื่ออ้างถึงรายการปัจจุบัน:
ThisItem.Picture
ในทำนองเดียวกันสูตรสำหรับชื่อยังใช้ ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
ตัวดำเนินการ ThisRecord
ThisRecord ใช้ในฟังก์ชันที่มี ขอบเขตเรกคอร์ด ตัวอย่างเช่น เราสามารถใช้ฟังก์ชัน Filter กับคุณสมบัติ Items ของแกลเลอรีเพื่อแสดงเฉพาะชื่อที่อยู่กับ M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord เป็นทางเลือกและทางโดยนัยโดยใช้ฟิลด์โดยตรง ตัวอย่างเช่น ในกรณีนี้เราสามารถเขียน:
Filter( Employees, StartsWith( 'First Name', "M" ) )
แม้ว่าจะเป็นทางเลือก การใช้ไฟล์ ThisRecord สามารถทำให้สูตรเข้าใจง่ายขึ้นและอาจต้องใช้ในสถานการณ์ที่คลุมเครือซึ่งชื่อฟิลด์อาจเป็นชื่อความสัมพันธ์ด้วย ThisRecord เป็นทางเลือกในขณะที่ ThisItem จำเป็นเสมอ
ใช้ ThisRecord เพื่ออ้างอิงทั้งเรกคอร์ดด้วย PatchCollect และฟังก์ชันขอบเขตเรกคอร์ดอื่นๆ ตัวอย่างเช่น สูตรต่อไปนี้ตั้งค่าสถานะสำหรับพนักงานที่ไม่ได้ใช้งานทั้งหมดเป็นใช้งานอยู่:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
เป็นตัวดำเนินการ
ใช้ตัวดำเนินการ เป็น เพื่อตั้งชื่อเรกคอร์ดในแกลเลอรี่หรือฟังก์ชันขอบเขตเรกคอร์ด แทนที่ค่าเริ่มต้น ThisItem หรือ ThisRecord การตั้งชื่อเรกคอร์ดสามารถทำให้สูตรของคุณเข้าใจง่ายขึ้นและอาจจำเป็นในสถานการณ์ซ้อนเพื่อเข้าถึงเรกคอร์ดในขอบเขตอื่นๆ
ตัวอย่างเช่น คุณสามารถแก้ไขคุณสมบัติ Items ของแกลเลอรีของเราเพื่อใช้ As ในการระบุว่าเรากำลังทำงานกับพนักงาน:
Employees As Employee
สูตรสำหรับรูปภาพและชื่อถูกปรับให้ใช้ชื่อนี้สำหรับเรกคอร์ดปัจจุบัน:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
As ยังสามารถใช้กับฟังก์ชันขอบเขตเรกคอร์ดเพื่อแทนที่ชื่อเริ่มต้น ThisRecord เราสามารถนำไปใช้กับตัวอย่างก่อนหน้าของเราเพื่ออธิบายถึงเรกคอร์ดที่เรากำลังดำเนินการอยู่:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
เมื่อซ้อนแกลเลอรีและฟังก์ชันขอบเขตเรกคอร์ด ThisItem และ ThisRecord ให้อ้างถึงขอบเขตส่วนใหญ่ภายในเสมอโดยปล่อยให้มีเรกคอร์ดในขอบเขตด้านนอกไม่พร้อมใช้งาน ใช้ เป็น เพื่อทำให้ขอบเขตเรกคอร์ดทั้งหมดพร้อมใช้งานโดยตั้งชื่อที่ไม่ซ้ำกัน
ตัวอย่างเช่น สูตรนี้สร้างรูปแบบกระดานหมากรุกเป็นสตริงข้อความโดยการซ้อนสองฟังก์ชัน ForAll:
Concat(
ForAll( Sequence(8) As Rank,
Concat(
ForAll( Sequence(8) As File,
If( Mod(Rank.Value + File.Value, 2) = 1, " X ", " . " )
),
Value
) & Char(10)
),
Value
)
การตั้งค่าตัวควบคุม ป้ายชื่อ คุณสมบัติ Text เป็นสูตรนี้แสดงถึง:
มาดูกันว่ามีอะไรเกิดขึ้นที่นี่:
- เราเริ่มต้นด้วยการทำซ้ำตารางที่ไม่มีชื่อของ 8 เรกคอร์ดหมายเลขจากฟังก์ชัน Sequence การวนรอบนี้ใช้สำหรับแต่ละแถวของกระดาน ซึ่งโดยทั่วไปจะเรียกว่า ลำดับ ดังนั้นเราจึงตั้งชื่อนี้
- สำหรับแต่ละแถว เราจะวนซ้ำตารางที่ไม่มีชื่ออีก 8 คอลัมน์ และให้ชื่อสามัญ ไฟล์
- ถ้า Rank.Value + File.Value เป็นจำนวนคี่ สี่เหลี่ยมจะได้รับ X มิฉะนั้นจะเป็นจุด ส่วนของสูตรนี้เป็นการอ้างอิงทั้งสองการวนรอบของ ForAll ทำได้โดยใช้ตัวดำเนินการ เป็น
- Concat ถูกใช้สองครั้ง ครั้งแรกเพื่อรวมคอลัมน์และแถว โดย Char(10) จะถูกโยนไปเพื่อสร้างบรรทัดใหม่
ตัวอย่างที่คล้ายกันนี้เป็นไปได้ด้วยตัวควบคุม แกลเลอรี ที่ซ้อนกันแทนฟังก์ชัน ForAll เริ่มต้นด้วยแกลเลอรีแนวตั้งสำหรับไฟล์ ลำดับ ตัวควบคุมแกลเลอรี่นี้จะมีสูตร รายการ ของ:
Sequence(8) as Rank
ภายในแกลเลอรีนี้เราจะวางแกลเลอรีแนวนอนสำหรับ ไฟล์ ที่จะถูกจำลองแบบสำหรับแต่ละ ลำดับ ด้วยคุณสมบัติ Items ของ:
Sequence(8) as File
และสุดท้ายภายในแกลเลอรีนี้เราจะเพิ่มตัวควบคุม ป้ายชื่อ ที่จะถูกจำลองสำหรับแต่ละ ไฟล์ และแต่ละคน ลำดับ เราจะปรับขนาดให้เต็มช่องว่างและใช้คุณสมบัติ Fill ในการให้สีด้วยสูตรนี้:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
ตัวดำเนินการ Self และ Parent
มีสามวิธีในการอ้างถึงตัวควบคุมและคุณสมบัติของตัวควบคุมภายในสูตร:
วิธีการ | คำอธิบาย |
---|---|
โดยชื่อตัวควบคุม | สามารถอ้างอิงตัวควบคุมใดๆ โดยชื่อได้จากทุกที่ภายในแอป ตัวอย่างเช่น Label1.Fill อ้างถึงคุณสมบัติการเติมของตัวควบคุมที่ชื่อ Label1 |
ตัวดำเนินการ Self | มักจะสะดวกในการอ้างอิงคุณสมบัติอื่นของตัวควบคุมเดียวกัน เมื่อเขียนสูตร แทนที่จะใช้การอ้างอิงแบบสัมบูรณ์ตามชื่อ การใช้การอ้างอิงแบบสัมพัทธ์กับ ตนเอง ง่ายกว่าและสะดวกมากกว่า ตัวดำเนินการ Self ให้การเข้าถึงง่ายๆ ไปยังตัวควบคุมปัจจุบัน ตัวอย่างเช่น Self.Fill หมายถึงสีสำหรับการเติมของตัวควบคุมปัจจุบัน |
ตัวดำเนินการ Parent | ตัวควบคุมบางตัวโฮสต์ตัวควบคุมอื่นๆ เช่น ตัวควบคุม หน้าจอ และตัวควบคุม แกลเลอรี การควบคุมการโฮสต์ของตัวควบคุมภายในเรียกว่า parent เช่นเดียวกับตัวดำเนินการ Self ตัวดำเนินการ Parent ให้อ้างอิงง่ายๆ ที่สัมพันธ์กันไปยังตัวควบคุมคอนเทนเนอร์ ตัวอย่างเช่น Parent.Fill อ้างถึงคุณสมบัติการเติมของตัวควบคุมที่เป็นคอนเทนเนอร์สำหรับตัวควบคุมปัจจุบัน |
Self และ Parent เป็นตัวดำเนินการ และไม่ใช่คุณสมบัติในตัวควบคุมเอง ไม่รองรับการอ้างถึง Parent.ParentSelf.Parent หรือ Parent.Self
ชื่อตัวระบุ
ชื่อของตัวแปร แหล่งข้อมูล คอลัมน์ และวัตถุอื่นๆ สามารถมี Unicode ได้
ใช้เครื่องหมายอัญประกาศเดี่ยว ล้อมรอบชื่อที่มีช่องว่างหรืออักขระพิเศษอื่นๆ
ใช้เครื่องหมายอัญประกาศเดี่ยวสองตัวพร้อมกัน เพื่อเป็นตัวแทนของเครื่องหมายอัญประกาศเดียวในชื่อ ชื่อที่ไม่มีอักขระพิเศษไม่จำเป็นต้องมีเครื่องหมายอัญประกาศเดี่ยว
ต่อไปนี้คือตัวอย่างชื่อคอลัมน์บางส่วนที่คุณอาจพบในตาราง และวิธีการแสดงในสูตร:
ชื่อคอลัมน์ในฐานข้อมูล | การอ้างอิงคอลัมน์ในสูตร |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
ชื่อที่มีช่องว่าง | 'Name with spaces' |
ชื่อที่มีเครื่องหมายอัญประกาศ "คู่" | 'Name with "double" quotes' |
ชื่อที่มีเครื่องหมายอัญประกาศ 'เดี่ยว' | 'Name with ''single'' quotes' |
ชื่อที่มีเครื่องหมาย @ | 'Name with an @ at sign' |
ใช้เครื่องหมายอัญประกาศคู่ กำหนดสตริงข้อความ
ชื่อที่แสดงและชื่อตรรกะ
บางแหล่งข้อมูล เช่น SharePoint และ Microsoft Dataverse มีสองชื่อที่ต่างกัน เพื่ออ้างถึงตารางหรือคอลัมน์ข้อมูลเดียวกัน:
ชื่อตรรกะ - ชื่อที่รับประกันว่าไม่ซ้ำกับใคร ไม่เปลี่ยนแปลงหลังจากที่สร้าง มักจะไม่อนุญาตให้มีการเว้นวรรคหรืออักขระพิเศษอื่นๆ และไม่ได้แปลเป็นภาษาต่างๆ เป็นผลให้ชื่อสามารถกำกวมได้ ชื่อเหล่านี้ถูกใช้โดยนักพัฒนามืออาชีพ ตัวอย่างเช่น cra3a_customfield ชื่อนี้อาจเรียกว่า ชื่อ Schema หรือเพียงแค่ ชื่อ
ชื่อที่แสดง - ชื่อที่เป็นมิตรกับผู้ใช้และตั้งใจให้ผู้ใช้เห็น ชื่อนี้อาจไม่ซ้ำกัน อาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป อาจมีช่องว่างและอักขระ Unicode ใดๆ และอาจมีการแปลเป็นภาษาอื่น อาจสอดคล้องกับตัวอย่างด้านบน ชื่อที่แสดงอาจเป็น ฟิลด์ที่กำหนดเอง ที่มีช่องว่างระหว่างคำ
เนื่องจากชื่อที่แสดงนั้นง่ายต่อการเข้าใจ แอปพื้นที่ทำงานจะแนะนำพวกเขาเป็นตัวเลือก และไม่แนะนำชื่อตรรกะ แม้ว่าจะไม่แนะนำชื่อตรรกะ แต่ก็ยังสามารถใช้ได้หากพิมพ์แบบทางอ้อม
ตัวอย่างเช่น สมมติว่าคุณได้เพิ่ม ฟิลด์ที่กำหนดเอง ลงในตารางใน Dataverse ระบบจะกำหนดชื่อตรรกะให้กับคุณ ซึ่งคุณสามารถแก้ไขได้เฉพาะเมื่อสร้างฟิลด์เท่านั้น ผลลัพธ์จะคล้ายกับ:
เมื่อสร้างการอ้างอิงไปยังฟิลด์ของบัญชี ข้อเสนอแนะจะใช้ 'ฟิลด์ที่กำหนดเอง' เนื่องจากนี่คือ ชื่อที่แสดง ต้องใช้เครื่องหมายอัญประกาศเดี่ยวเนื่องจากชื่อนี้มีช่องว่าง:
หลังจากเลือกคำแนะนำ 'ฟิลด์ที่กำหนดเอง' จะปรากฏในแถบสูตร และข้อมูลจะถูกดึง:
แม้ว่าจะไม่แนะนำ แต่เราสามารถใช้ชื่อตรรกะสำหรับฟิลด์นี้ได้ ซึ่งจะส่งผลให้มีการดึงข้อมูลเดียวกัน ไม่จำเป็นต้องมีเครื่องหมายคำพูดเดียวเนื่องจากชื่อนี้ไม่มีช่องว่างหรืออักขระพิเศษ:
เบื้องหลัง การแมปจะคงอยู่ระหว่างชื่อที่แสดงที่เห็นในสูตรและชื่อตรรกะพื้นฐาน เนื่องจากชื่อตรรกะต้องถูกใช้เพื่อโต้ตอบกับแหล่งข้อมูล การแมปนี้ใช้เพื่อแปลงจากชื่อที่แสดงปัจจุบันเป็นชื่อตรรกะโดยอัตโนมัติ และนั่นคือสิ่งที่เห็นในปริมาณการใช้เครือข่าย การแมปนี้ยังใช้เพื่อแปลงกลับเป็นชื่อเชิงตรรกะเพื่อเปลี่ยนเป็นชื่อที่แสดงใหม่ เช่น หากชื่อที่แสดงเปลี่ยนแปลงหรือผู้สร้างในภาษาอื่นแก้ไขแอป
หมายเหตุ
ชื่อตรรกะไม่ถูกแปล เมื่อย้ายแอประหว่างสภาพแวดล้อม สำหรับชื่อตารางระบบและฟิลด์ Dataverse ไม่ควรเป็นปัญหาเนื่องจากชื่อเชิงตรรกะจะสอดคล้องกันในทุกสภาพแวดล้อม แต่ฟิลด์ที่กำหนดเองใดๆ เช่น cra3a_customfield ในตัวอย่างข้างต้น อาจมีคำนำหน้าสภาพแวดล้อมที่แตกต่างกัน (cra3a ในกรณีนี้) ชื่อที่แสดงเป็นที่ต้องการ เนื่องจากสามารถจับคู่กับชื่อที่แสดงในสภาพแวดล้อมใหม่ได้
การแก้ไขความคลุมเครือชื่อ
เนื่องจากชื่อที่แสดงไม่เหมือนกัน ชื่อที่แสดงเดียวกันจึงอาจปรากฏขึ้นมากกว่าหนึ่งครั้งในตารางเดียวกัน เมื่อสิ่งนี้เกิดขึ้น ชื่อตรรกะจะถูกเพิ่มที่ส่วนท้ายของชื่อที่แสดงในเครื่องหมายวงเล็บสำหรับชื่อที่ขัดแย้งกันอีกชื่อหนึ่ง การสร้างตามตัวอย่างข้างต้น หากมีฟิลด์ที่สองที่มีชื่อที่แสดงของ ฟิลด์ที่กำหนดเอง เหมือนกันด้วยชื่อตรรกะของ cra3a_customfieldalt คำแนะนำจะแสดง:
สตริงการแก้ความกำกวมชื่อจะถูกเพิ่มในสถานการณ์อื่นที่มีความขัดแย้งของชื่อเกิดขึ้น เช่น ชื่อของตาราง ตัวเลือก และรายการ Dataverse อื่นๆ
ตัวดำเนินการแก้ไขความคลุมเครือ
บางฟังก์ชันจะสร้าง ขอบเขตของเรกคอร์ด สำหรับเข้าถึงฟิลด์ของตาราง ขณะที่ประมวลผลแต่ละเรกคอร์ด เช่น Filter, AddColumns และ Sum ชื่อฟิลด์ที่เพิ่มด้วยขอบเขตของเรกคอร์ดจะแทนที่ชื่อเดียวกันจากที่อื่นในแอป เมื่อเกิดสิ่งนี้ขึ้น คุณยังสามารถเข้าถึงค่าจากภายนอกขอบเขตเรกคอร์ดได้ด้วยตัวดำเนินการการแก้ไขความคลุมเครือ @ ได้:
- เมื่อต้องการเข้าถึงค่าจากขอบเขตของเรกคอร์ดที่ซ้อนกัน ให้ใช้ตัวดำเนินการ @ ที่มีชื่อของตารางที่กำลังดำเนินการโดยใช้รูปแบบนี้
ตาราง[@FieldName] - เมื่อต้องการเข้าถึงค่าส่วนกลาง เช่น แหล่งข้อมูล คอลเลกชัน และตัวแปรบริบท ให้ใช้รูปแบบ [@ObjectName] (โดยไม่ต้องกำหนดตาราง)
สำหรับข้อมูลและตัวอย่างเพิ่มเติม ดูที่ ขอบเขตของเรกคอร์ด