Diagnostics.Trace เขียนข้อความติดตาม (trace message) เพื่อใช้ในการแก้ไขจุดบกพร่องและตรวจสอบค่าข้อมูลในขั้นตอนต่างๆ โดยคืนค่าเดิมกลับไปยังถัดไป
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| traceLevel | number | ระดับความรุนแรงของข้อความติดตาม (TraceLevel.Critical, TraceLevel.Error, TraceLevel.Warning, TraceLevel.Information, TraceLevel.Verbose) | |
| message | anynonnull | ข้อความที่ต้องการบันทึกเมื่อมีการติดตาม | |
| value | any | ค่าที่ต้องการคืนกลับหลังจากการบันทึก | |
| [delayed]ไม่บังคับ | nullable logical | null | ตัวเลือกสำหรับเลื่อนการประมวลผล value จนกว่าจะมีการติดตาม (true = เลื่อน, false หรือ null = ปกติ) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Diagnostics.Trace ใช้สำหรับการบันทึกข้อมูลแก้ไขจุดบกพร่องในขั้นตอนการประมวลผล ฟังก์ชันนี้รับ 4 ตัวแปร: ระดับความรุนแรง (TraceLevel), ข้อความ, ค่าที่ต้องการ, และตัวเลือก delayed เพื่อระบุว่าจะประมวลผลค่านั้นเมื่อใดและคืนค่าเดิมกลับไปหลังการบันทึก
ที่เจ๋งคือ delayed parameter ช่วยให้ประหยัดประสิทธิภาพ เพราะสามารถเลื่อนการประมวลผลค่าถึงเวลาที่มีการติดตามจริงๆ ซึ่งมีประโยชน์สำหรับการดำเนินการที่มีค่าใช้จ่าย (expensive operations) และฟังก์ชันนี้ไม่เปลี่ยนแปลงข้อมูลต้นฉบับ เพียงแค่บันทึกเท่านั้น
ส่วนตัวผม ผมใช้ Diagnostics.Trace บ่อยครั้งเมื่อต้องหา bug ในโปรแกรม Power Query ที่ซับซ้อน โดยเพิ่มขั้นตอนนี้เข้าไปในแต่ละขั้นตอนเพื่อดูว่าข้อมูลเปลี่ยนแปลงไปอย่างไร ตัวอักษร TraceLevel ก็เป็นวิธีง่ายๆ ในการแยกสิ่งที่สำคัญจากสิ่งที่ไม่สำคัญ 😎
ฟังก์ชัน Diagnostics.Trace บันทึกข้อความ "ค่าสุดท้าย: 3" ในระดับ Information แล้วคืนค่า Source เดิมกลับมา
ติดตามจำนวนแถวหลังจากใช้ Table.SelectRows เพื่อตรวจสอบว่าการกรองทำงานถูกต้อง
delayed = true ใช้ลูกศรฟังก์ชัน () => เพื่อเลื่อนการคำนวณ List.Sum จนกว่าจะมีการติดตามจริง ซึ่งช่วยประหยัดเวลาประมวลผลหาก tracing ไม่เปิดใช้งาน
ใช้ Diagnostics.Trace ระดับ Critical เพื่อบันทึกสถานการณ์อันตรายหรือข้อผิดพลาด เมื่อพบศูนย์ในข้อมูล
ผม มี Diagnostics.Trace คืนค่าเดิมกลับไปไม่เปลี่ยนแปลงข้อมูล สำหรับการเขียนไปยัง diagnostic window เท่านั้น ส่วน Diagnostics.LogValue ก็คล้ายกัน แต่ Trace มีความยืดหยุ่นมากกว่าในการเลือก TraceLevel และสามารถใช้ delayed parameter ได้
ผม เปิด Diagnostic Viewer ใน Power Query Editor โดยไปที่ Queries pane → เลือก query → Tools → Diagnostic Viewer หรือบางครั้งอาจต้องใช้ Advanced Editor เพื่อส่วนที่ต้องการติดตาม
ผม แนะนำใช้ delayed = true เมื่อ value เป็นการดำเนินการที่มีค่าใช้จ่ายสูง เช่น List.Sum, Table.RowCount หรือการคำนวณที่ซับซ้อน เพราะว่า delayed จะทำให้การคำนวณเลื่อนไปจนกว่า tracing เปิดใช้งาน
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Diagnostics.Trace จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Diagnostics.ActivityId ใช้สำหรับการประมวลผลข้อมูล
List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม
แปลงค่าใดๆ เป็นข้อความ (Text)
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่