แชร์ผ่าน


ออบเจ็กต์ App ใน Power Apps

ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล

มีข้อมูลเกี่ยวกับแอปที่กำลังทำงานอยู่ในขณะนี้ และควบคุมลักษณะการทำงานของแอป

คำอธิบาย

เช่นเดียวกับตัวควบคุม ออบเจ็กต์ แอป มีคุณสมบัติที่ระบุว่าหน้าจอใดที่กำลังแสดงอยู่ และแจ้งให้ผู้ใช้บันทึกการเปลี่ยนแปลงเพื่อไม่ให้สูญหาย แอปทุกตัวมีออบเจ็กต์ แอป

คุณสามารถเขียนสูตรสำหรับคุณสมบัติบางอย่างของออบเจ็กต์ แอป ที่ด้านบนของบานหน้าต่าง มุมมองทรี ให้เลือกออบเจ็กต์ แอป ที่คุณจะเลือกตัวควบคุมหรือหน้าจออื่นๆ ดูและแก้ไขคุณสมบัติของออบเจ็กต์อย่างใดอย่างหนึ่งโดยการเลือกในรายการดรอปดาวน์ทางด้านซ้ายของแถบสูตร

ออปเจ็กต์แอปในบานหน้าต่างมุมมองทรี

คุณสมบัติ ActiveScreen

คุณสมบัติ ActiveScreen ระบุหน้าจอที่กำลังแสดง

คุณสมบัตินี้ส่งคืนออบเจ็กต์หน้าจอ ใช้เพื่ออ้างอิงคุณสมบัติของหน้าจอที่แสดงอยู่ในปัจจุบัน เช่น ชื่อพร้อมสูตร App.ActiveScreen.Name คุณยังสามารถเปรียบเทียบคุณสมบัตินี้กับออบเจ็กต์หน้าจออื่นได้ เช่น ด้วยสูตรการเปรียบเทียบ App.ActiveScreen = Screen2 เพื่อทดสอบว่า Screen2 คือหน้าจอที่แสดงอยู่ในปัจจุบัน

ใช้ฟังก์ชัน Back หรือ Navigate เพื่อเปลี่ยนหน้าจอที่กำลังแสดง

คุณสมบัติ BackEnabled

คุณสมบัติ BackEnabled เปลี่ยนวิธีที่แอปตอบสนองต่อท่าทางย้อนกลับของอุปกรณ์ (ปัดหรือใช้ปุ่มย้อนกลับของฮาร์ดแวร์บนอุปกรณ์ Android ปัดจากซ้ายบนอุปกรณ์ iOS) เมื่อทำงานใน Power Apps บนมือถือ เมื่อเปิดใช้งาน ท่าทางย้อนกลับของอุปกรณ์จะนำทางกลับไปยังหน้าจอที่แสดงล่าสุด ซึ่งคล้ายกับสูตร ย้อนกลับ เมื่อปิดใช้งาน ท่าทางย้อนกลับของอุปกรณ์จะนำผู้ใช้กลับไปยังรายการแอป

คุณสมบัติ ConfirmExit

ไม่มีใครต้องการสูญเสียการเปลี่ยนแปลงที่ไม่ได้บันทึก ใช้คุณสมบัติ ConfirmExit และ ConfirmExitMessage เพื่อเตือนผู้ใช้ก่อนที่จะปิดแอปของคุณ

หมายเหตุ

  • ConfirmExit ไม่ทำงานในแอปที่ฝังอยู่ในตัวอย่างเช่น Power BI และ SharePoint
  • ในปัจจุบันคุณสมบัติเหล่านี้สามารถอ้างอิงการควบคุมบนหน้าจอแรกเท่านั้น หากคุณลักษณะการแสดงตัวอย่าง โหลดล่าช้า เปิดใช้งาน (ซึ่งเป็นค่าเริ่มต้นสำหรับแอปใหม่) หากมีการอ้างอิง Power Apps Studio ไม่แสดงข้อผิดพลาด แต่แอปที่เผยแพร่แล้วที่เป็นผลลัพธ์ไม่เปิดขึ้นใน Power Apps Mobile หรือเบราว์เซอร์ เราได้ทำงานอย่างหนักเพื่อปรับปรุงข้อจำกัดนี้ ในระหว่างนี้ คุณสามารถปิด การโหลดล่าช้า ใน การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น (ภายใต้ ตัวอย่าง)

ConfirmExit

ConfirmExit เป็นคุณสมบัติ แบบบูลีน ที่เมื่อ true จะเปิดกล่องโต้ตอบการยืนยันก่อนที่จะปิดแอป โดยค่าเริ่มต้น คุณสมบัตินี้คือ เท็จ และไม่มีกล่องโต้ตอบปรากฏขึ้น

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

กล่องโต้ตอบการยืนยันจะปรากฏขึ้นในทุกสถานการณ์ที่ข้อมูลอาจสูญหายได้ ดังตัวอย่างเหล่านี้:

  • เรียกใช้ฟังก์ชัน Exit
  • หากแอปทำงานในเบราว์เซอร์:
    • ปิดเบราว์เซอร์หรือแท็บเบราว์เซอร์ที่แอปทำงานอยู่
    • การเลือกปุ่มย้อนกลับของเบราว์เซอร์
    • การเรียกใช้ฟังก์ชัน Launch ด้วย LaunchTarget ของ Self
  • หากแอปกำลังทำงานอยู่ใน Power Apps Mobile (iOS หรือ Android):
    • การปัดเพื่อสลับไปยังแอปอื่นใน Power Apps Mobile
    • การเลือกปุ่มย้อนกลับบนอุปกรณ์ Android
    • การเรียกใช้ฟังก์ชัน Launch เพื่อเปิดแอปพื้นที่ทำงานอื่น

รูปลักษณ์ที่แน่นอนของกล่องโต้ตอบการยืนยันอาจแตกต่างกันไปตามอุปกรณ์และรุ่นของ Power Apps

กล่องโต้ตอบการยืนยันไม่ปรากฎใน Power Apps Studio

ConfirmExitMessage

โดยค่าเริ่มต้น กล่องโต้ตอบการยืนยันจะแสดงข้อความทั่วไป เช่น "คุณอาจมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก" ในภาษาของผู้ใช้

ใช้ ConfirmExitMessage เพื่อให้ข้อความที่กำหนดเองในกล่องโต้ตอบการยืนยัน ถ้าคุณสมบัตินี้เป็น ว่างเปล่า ค่าเริ่มต้นจะถูกใช้ ข้อความที่กำหนดเองจะถูกตัดทอนตามความจำเป็นเพื่อให้พอดีกับในกล่องโต้ตอบการยืนยัน ดังนั้นควรเก็บข้อความไว้ไม่เกินสองบรรทัด

ในเบราว์เซอร์ กล่องโต้ตอบการยืนยันอาจปรากฏขึ้นพร้อมกับข้อความทั่วไปจากเบราว์เซอร์

หมายเหตุ

ออบเจ็กต์แอปมีคุณสมบัติเพิ่มเติมอีกสองรายการคือ OnMessage และ BackEnabled ที่กำลังทดลองอยู่ คุณสมบัติเหล่านี้จะถูกลบออกจากออบเจ็กต์แอปในที่สุด เราขอแนะนำไม่ให้คุณใช้คุณสมบัติเหล่านี้ในสภาพแวดล้อมการทำงานจริงของคุณ

ตัวอย่างเช่น

  1. สร้างแอปที่มีการควบคุมฟอร์มสองแบบ AccountForm และ ContactForm

  2. ตั้งค่าคุณสมบัติ ConfirmExit ของออปเจกต์ แอป สำหรับนิพจน์นี้:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    กล่องโต้ตอบนี้จะปรากฏขึ้น หากผู้ใช้เปลี่ยนข้อมูลในฟอร์มใดฟอร์มหนึ่ง แล้วพยายามปิดแอปโดยไม่บันทึกการเปลี่ยนแปลงเหล่านั้น

    กล่องโต้ตอบการยืนยันทั่วไป

  3. ตั้งค่าคุณสมบัติ ConfirmExitMessage ของออปเจกต์ แอป สำหรับสูตรนี้:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    กล่องโต้ตอบนี้จะปรากฏขึ้น หากผู้ใช้เปลี่ยนข้อมูลในฟอร์มลูกค้าองค์กร แล้วพยายามปิดแอปโดยไม่บันทึกการเปลี่ยนแปลงเหล่านั้น

    กล่องโต้ตอบการยืนยันแบบฟอร์มเฉพาะ

ตั้งค่าคีย์การรายงานข้อมูลระบบสำหรับ Application Insights

หากต้องการส่งออกบันทึกแอปพลิเคชันที่ระบบสร้างไปยัง Application Insights คุณต้องตั้งค่า คีย์การรายงานข้อมูลระบบ สำหรับแอปพื้นที่ทำงานของคุณ

  1. เปิดแอปของคุณสำหรับ การแก้ไข ใน Power Apps Studio
  2. เลือกออบเจ็กต์ App ในมุมมองทรีบนการนำทางด้านซ้าย
  3. ป้อน คีย์การรายงานข้อมูลระบบ ในบานหน้าต่างคุณสมบัติ

หากข้อมูลไม่ถูกส่งไปยัง App Insights โปรดติดต่อผู้ดูแลระบบ Power Platform ของคุณ และตรวจสอบว่า App Insights ถูกปิดใช้งานในระดับผู้เช่าหรือไม่

คุณสมบัติของสูตร

ใช้สูตรที่ระบุชื่อในคุณสมบัติ Formulas เพื่อกำหนดสูตรที่สามารถนำมาใช้ซ้ำได้ทั่วทั้งแอปของคุณ

ใน Power Apps คุณสมบัติของตัวควบคุมมีการทำงานโดยสูตร ตัวอย่างเช่น หากต้องการตั้งค่าสีพื้นหลังให้สอดคล้องกันในแอป คุณอาจตั้งค่าคุณสมบัติ Fill สำหรับแต่ละรายการของสูตรทั่วไป:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

สูตรนี้อาจปรากฏขึ้นในที่ต่างๆ มากมายที่ จึงกลายเป็นเรื่องน่าเบื่อและมีแนวโน้มที่จะเกิดข้อผิดพลาดในการปรับปรุงทั้งหมดหากจำเป็นต้องเปลี่ยนแปลง คุณสามารถสร้างตัวแปรส่วนกลางใน OnStart เพื่อตั้งค่าสีหนึ่งครั้ง แล้วนำค่ากลับมาใช้ใหม่ทั่วทั้งแอป:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

แม้ว่าวิธีนี้จะดีกว่า แต่ก็ขึ้นอยู่กับ OnStart ที่ทำงานก่อนค่าสำหรับ BGColor จะถูกสร้าง BGColor อาจถูกปรับเปลี่ยนในมุมใดมุมหนึ่งของแอปที่ผู้สร้างไม่ทราบ ซึ่งเป็นการเปลี่ยนแปลงที่ทำโดยบุคคลอื่น และอาจติดตามได้ยาก

สูตรที่ระบุชื่อเป็นทางเลือก เช่นเดียวกับที่เรามักเขียน control-property = นิพจน์ เราสามารถเขียน ชื่อ = นิพจน์ แทนแล้วนำ ชื่อ กลับมาใช้ใหม่ตลอดทั้งแอปของเราเพื่อแทนที่ นิพจน์ คำจำกัดความของสูตรเหล่านี้ทำในคุณสมบัติ Formulas:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

ข้อดีของการใช้สูตรที่ระบุชื่อได้แก่:

  • ค่าของสูตรจะใช้ได้เสมอ ไม่มีการข้อต่อกันของเวลา ไม่มี OnStart ที่ต้องทำงานก่อนจึงจะกำหนดค่าได้ ไม่มีเวลาที่ค่าของสูตรไม่ถูกต้อง สูตรที่ระบุชื่อสามารถอ้างอิงถึงกันในลำดับใดก็ได้ ตราบเท่าที่ไม่ได้สร้างการอ้างอิงแบบวงกลม สูตรดังกล่าวสามารถคำนวณแบบขนานได้
  • ค่าของสูตรจะเป็นปัจจุบันเสมอ สูตรสามารถทำการคำนวณที่ขึ้นอยู่กับคุณสมบัติของตัวควบคุมหรือเรกคอร์ดฐานข้อมูล และเมื่อมีการเปลี่ยนแปลง ค่าของสูตรจะปรับปรุงโดยอัตโนมัติ คุณไม่จำเป็นต้องปรับปรุงค่าด้วยตนเองเช่นเดียวกับที่ทำกับตัวแปร และสูตรจะคำนวณใหม่เมื่อจำเป็นเท่านั้น
  • คำจำกัดความของสูตรนี้ไม่สามารถเปลี่ยนแปลงได้ คำจำกัดความใน สูตร เป็นแหล่งที่มาของความจริงเพียงแหล่งเดียวและไม่สามารถเปลี่ยนแปลงค่าที่อื่นในแอปได้ สำหรับตัวแปร อาจเป็นไปได้ว่าโค้ดบางตัวเปลี่ยนค่าโดยไม่คาดคิด แต่สิ่งนี้ไม่สามารถทำได้ในสูตรที่ระบุชื่อ
  • การคำนวณของสูตรสามารถเลื่อนออกไปได้ เนื่องจากค่าไม่เปลี่ยนรูป จึงสามารถคำนวณได้เสมอเมื่อจำเป็น ซึ่งหมายความว่าไม่จำเป็นต้องคำนวณจนกว่าจะจำเป็น ค่าสูตรที่ไม่ได้ใช้จนกระทั่ง screen2 ของแอปแสดงขึ้นไม่จำเป็นต้องคำนวณจนกว่า screen2 จะปรากฏขึ้น การเลื่อนเวลาการทำงานนี้สามารถปรับปรุงเวลาในการโหลดแอปได้ สูตรที่ระบุชื่อเป็นการประกาศและให้โอกาสสำหรับระบบในการปรับวิธีและเวลาคำนวณให้เหมาะสม
  • สูตรที่ระบุชื่อเป็นแนวคิดของ Excel Power Fx ใช้แนวคิดของ Excel เมื่อเป็นไปได้ เนื่องจากมีคนจำนวนมากที่รู้จัก Excel เป็นอย่างดี สูตรที่ระบุชื่อจะเทียบเท่ากับเซลล์ที่มีชื่อและสูตรที่ระบุชื่อใน Excel ซึ่งจัดการด้วยโปรแกรมจัดการชื่อ โดยจะคำนวณใหม่โดยอัตโนมัติเหมือนกับสเปรดชีต เช่นเดียวกับคุณสมบัติของตัวควบคุม

มีการกำหนดสูตรที่ระบุชื่อไว้ทีละรายการในคุณสมบัติ Formulas แต่ละรายการลงท้ายด้วยเครื่องหมายอัฒภาค ชนิดของสูตรจะอนุมานจากชนิดของนิพจน์ ซึ่งขึ้นอยู่กับชนิดขององค์ประกอบภายในนิพจน์และวิธีการใช้ร่วมกัน ตัวอย่างเช่น สูตรที่ระบุชื่อเหล่านี้ดึงข้อมูลที่เป็นประโยชน์เกี่ยวกับผู้ใช้ปัจจุบันจาก Dataverse:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

ถ้าสูตรสำหรับ UserTitle จำเป็นต้องปรับปรุงก็สามารถทำได้ง่ายๆ ในที่เดียวนี้ ถ้า UserPhone ไม่จำเป็นในแอป จะไม่มีการทำการเรียกไปยังตาราง ผู้ใช้ ใน Dataverse เหล่านี้ ไม่มีผลเสียสำหรับการรวมคำจำกัดความของสูตรที่ไม่ได้ใช้

ข้อจำกัดบางประการของสูตรที่ระบุชื่อ:

  • สูตรที่ระบุชื่อไม่สามารถใช้ฟังก์ชันของลักษณะการทำงานหรือทำให้เกิดผลข้างเคียงภายในแอปได้
  • สูตรที่ระบุชื่อสามารถสร้างการอ้างอิงแบบวงกลมได้ การมี a = b; และ b = a; ในแอปเดียวกันไม่ได้รับอนุญาต

คุณสมบัติ OnError

ใช้ OnError เพื่อดำเนินการหลังจากตรวจพบข้อผิดพลาด เป็นการให้โอกาสในการสกัดกั้นแบนเนอร์ข้อผิดพลาดทั้งหมดก่อนที่จะแสดงต่อผู้ใช้ปลายทาง นอกจากนี้ยังสามารถใช้เพื่อบันทึกข้อผิดพลาดด้วย ฟังก์ชัน Trace หรือเขียนไปยังฐานข้อมูลหรือบริการเว็บ

ผลลัพธ์ของการประเมินทุกสูตรจะถูกตรวจสอบหาข้อผิดพลาด หากเป็นความผิดพลาด OnError ก็จะถูกประเมินด้วยตัวแปรขอบเขต FirstError และ AllErrors ที่คล้ายกันซึ่งจะมีการแสดงถ้าสูตรทั้งหมดถูกตัดใน ฟังก์ชัน IfError

ถ้า OnError ว่างเปล่า แบนเนอร์ข้อผิดพลาดเริ่มต้นจะแสดงด้วย FirstError.Message ของข้อผิดพลาด การกำหนดสูตร OnError จะแทนที่ลักษณะการทำงานนี้ ซึ่งทำให้ผู้สร้างสามารถจัดการการรายงานข้อผิดพลาดตามที่เห็นสมควร สามารถขอลักษณะการทำงานเริ่มต้นได้ใน OnError โดยการส่งข้อผิดพลาดด้วย ฟังก์ชัน Error การดำเนินการนี้มีประโยชน์หากมีการกรองหรือจัดการข้อผิดพลาดบางอย่างในลักษณะที่ต่างออกไป ในขณะที่ข้อผิดพลาดอื่นๆ จะถูกส่ง

OnError ไม่สามารถแทนที่ข้อผิดพลาดในการคำนวณได้ในลักษณะเดียวกับ IfError ในตอนที่มีการเรียก OnError ข้อผิดพลาดได้เกิดขึ้นแล้ว และได้ดำเนินการผ่านการคำนวณตามสูตรแล้ว *OnError* ควบคุมเฉพาะการรายงานข้อผิดพลาดเท่านั้น

สูตร OnError จะได้รับการประเมินพร้อมๆ กัน และเป็นไปได้ที่การประเมินอาจทับซ้อนกับการประมวลผลข้อผิดพลาดอื่นๆ ตัวอย่างเช่น หากคุณตั้งค่าตัวแปรทั่วไปที่ด้านบนของ OnError และอ่านภายหลังในสูตรเดียวกัน ค่าอาจมีการเปลี่ยนแปลง ใช้ ฟังก์ชัน With เพื่อสร้างค่าที่ระบุชื่อซึ่งระบุตำแหน่งไปยังสูตร

แม้ว่าแต่ละข้อผิดพลาดจะได้รับการประมวลผลทีละรายการโดย OnError แต่แบนเนอร์ข้อผิดพลาดเริ่มต้นอาจไม่ปรากฏสำหรับข้อผิดพลาดแต่ละรายการ เพื่อหลีกเลี่ยงไม่ให้มีแบนเนอร์ข้อผิดพลาดมากเกินไปแสดงพร้อมกัน ข้อผิดพลาดเดียวกันจะไม่เรียกแบนเนอร์ข้อผิดพลาดใหม่หากเพิ่งมีการแสดงเมื่อเร็วๆ นี้

ตัวอย่างเช่น

พิจารณาตัวควบคุม ป้ายชื่อ และ แถบเลื่อน ที่ถูกผูกด้วยกันผ่านสูตร:

Label1.Text = 1/Slider1.Value

ตัวควบคุม ป้ายชื่อ และ แถบเลื่อน ที่ผูกผ่านสูตร Label1.Text = 1/Slider1.Value

ค่าเริ่มต้นแถบเลื่อนเป็น 50 หากแถบเลื่อนถูกย้ายไปที่ 0 Label1 จะไม่แสดงค่าและแสดงแบนเนอร์ข้อผิดพลาด:

ตัวควบคุม แถบเลื่อน ย้ายไปที่ 0 ส่งผลให้มีข้อผิดพลาดการหารด้วยศูนย์ และแบนเนอร์ข้อผิดพลาด

ลองดูสิ่งที่เกิดขึ้นโดยละเอียด:

  1. ผู้ใช้เลื่อนแถบเลื่อนไปทางซ้ายและคุณสมบัติ Slide1.Value เปลี่ยนเป็น 0
  2. Label1.Text ได้รับการประเมินใหม่โดยอัตโนมัติ เกิดการหารด้วยศูนย์ทำให้เกิดข้อผิดพลาด
  3. ไม่มี IfError ในสูตรนี้ ข้อผิดพลาดการหารด้วยศูนย์จะถูกส่งกลับโดยการประเมินสูตร
  4. Label1.Text ไม่สามารถแสดงสิ่งใด ๆ สำหรับข้อผิดพลาดนี้ ดังนั้นจึงแสดงสถานะ ว่างเปล่า
  5. OnError ถูกเรียกใช้ เนื่องจากไม่มีตัวจัดการ แบนเนอร์ข้อผิดพลาดมาตรฐานจึงแสดงพร้อมข้อมูลข้อผิดพลาด

หากจำเป็น เราก็สามารถปรับเปลี่ยนสูตรเป็น Label1.Text = IfError( 1/Slider1.Value, 0 ) ซึ่งจะส่งผลให้ไม่มีข้อผิดพลาดหรือแบนเนอร์ข้อผิดพลาด เราไม่สามารถเปลี่ยนค่าของข้อผิดพลาดจาก OnError เนื่องจากข้อผิดพลาดได้เกิดขึ้นแล้ว จึงเป็นเพียงการถามว่าจะรายงานอย่างไร

ถ้าเราเพิ่มตัวจัดการ OnError จะไม่มีผลกระทบก่อนขั้นตอนที่ 5 แต่อาจส่งผลต่อวิธีการรายงานข้อผิดพลาด:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

สูตร App.OnError กำหนดให้สร้างการติดตาม

ด้วยวิธีนี้ จากมุมมองของผู้ใช้แอป จะไม่มีข้อผิดพลาดใดๆ แต่ข้อผิดพลาดจะถูกเพิ่มในการติดตามของการตรวจสอบ พร้อมแหล่งที่มาของข้อมูลข้อผิดพลาดจาก FirstError:

ตัวควบคุม แถบเลื่อน ย้ายไปที่ 0 ส่งผลให้มีข้อผิดพลาดการหารด้วยศูนย์ แต่ไม่มีแบนเนอร์ข้อผิดพลาด

หากเราต้องการให้แบนเนอร์ข้อผิดพลาดเริ่มต้นเดียวกันแสดงเพิ่มเติมจากการติดตาม เราสามารถเรียกใช้ข้อผิดพลาดอีกครั้งด้วยฟังก์ชัน Error หลังการเรียก Trace เรียกเช่นเดียวกับที่ทำหาก Trace ไม่อยู่ที่นั่น:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

คุณสมบัติ OnStart

หมายเหตุ

การใช้คุณสมบัติ OnStart อาจทำให้เกิดปัญหาด้านประสิทธิภาพเมื่อโหลดแอป เรากำลังดำเนินการสร้างทางเลือกสำหรับเหตุผลสองอันดับแรกสำหรับการใช้ property—แคชข้อมูลและการตั้งค่าตัวแปรส่วนกลาง เราได้สร้างทางเลือกอื่นสำหรับการกำหนดหน้าจอแรกที่จะแสดงด้วย Navigate คุณสมบัตินี้อาจถูกปิดใช้งานโดยค่าเริ่มต้นทั้งนี้ขึ้นอยู่กับบริบทของคุณ หากคุณไม่เห็นและต้องการใช้ ให้ตรวจสอบการตั้งค่าขั้นสูงของแอปเพื่อดูสวิตช์เพื่อเปิดใช้งาน คุณสมบัติ OnVisible ของหน้าจอสามารถใช้ได้

คุณสมบัติ OnStart จะทำงานเมื่อผู้ใช้เริ่มต้นแอป คุณสมบัตินี้มักใช้เพื่อทำงานต่อไปนี้:

  • ดึงและแคชข้อมูลลงในคอลเลกชันโดยใช้ฟังก์ชัน Collect
  • ตั้งค่าตัวแปรส่วนกลางโดยใช้ฟังก์ชัน Set

สูตรนี้จะถูกประเมินก่อนที่หน้าจอแรกจะปรากฏขึ้น ไม่มีการโหลดหน้าจอ ดังนั้นคุณจึงไม่สามารถตั้งค่าตัวแปรบริบทด้วยฟังก์ชัน UpdateContext อย่างไรก็ตาม คุณสามารถส่งผ่านตัวแปรบริบทด้วยฟังก์ชัน Navigate

หลังจากที่คุณเปลี่ยนคุณสมบัติ OnStart ทดสอบโดยวางเมาส์เหนือออบเจ็กต์ แอป ในบานหน้าต่าง มุมมองทรี เลือกจุดไข่ปลา (...) แล้วเลือก เรียกใช้ OnStart ต่างจากเมื่อโหลดแอปเป็นครั้งแรก คอลเลกชันและตัวแปรที่มีอยู่จะถูกตั้งค่าไว้แล้ว ในการเริ่มต้นด้วยคอลเลกชันว่าง ให้ใช้ฟังก์ชัน ClearCollect แทนฟังก์ชัน Collect

เมนูทางลัดรายการแอปสำหรับเรียกใช้ OnStart

หมายเหตุ

  • การใช้ฟังก์ชัน Navigate ในคุณสมบัติ OnStart เลิกใช้แล้ว แอปที่มีอยู่จะยังคงทำงานต่อไป ในช่วงเวลาจำกัด คุณยังสามารถเปิดใช้งานได้ในการตั้งค่าแอปได้ (พร้อมใช้งานภายใต้ เลิกใช้แล้ว) อย่างไรก็ตาม การใช้ นำทาง ในลักษณะนี้อาจนำไปสู่ความล่าช้าในการโหลดแอป เนื่องจากเป็นการบังคับให้ระบบทำการประเมิน OnStart ก่อนแสดงหน้าจอแรก ใช้คุณสมบัติ StartScreen แทนการคำนวณหน้าจอแรกที่แสดง
  • สวิตช์ที่เลิกใช้ จะถูกปิดสำหรับแอปที่สร้างก่อนเดือนมีนาคม 2021 ที่คุณเพิ่ม นำทาง ไปที่ OnStart ระหว่างเดือนมีนาคม 2021 ถึงตอนนี้ เมื่อคุณแก้ไขแอปดังกล่าวใน Power Apps Studio คุณอาจเห็นข้อผิดพลาด สลับสวิตช์ เลิกใช้งาน ที่กล่าวถึงข้างต้นเพื่อล้างข้อผิดพลาดนี้

คุณสมบัติ StartScreen

หมายเหตุ

คุณสมบัติ StartScreen จะไม่ปรากฏในรายการคุณสมบัติเมื่อเปิดใช้งานตัวเลือกที่ถูกเลิกใช้ แถบสูตรที่ได้รับการปรับปรุง เพื่อปิด แถบสูตรที่ปรับปรุงแล้ว ไปที่ การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น>เลิกใช้แล้ว> ปิดตัวสลับ แถบสูตรที่ปรับปรุงแล้ว เมื่อคุณต้องการใช้คุณสมบัติ StartScreen

คุณสมบัติ StartScreen กำหนดว่าจะแสดงหน้าจอใดก่อน ซึ่งจะมีการประเมินหนึ่งครั้งเมื่อโหลดแอปและส่งคืนออบเจ็กต์หน้าจอที่จะแสดง โดยค่าเริ่มต้น คุณสมบัตินี้จะว่างเปล่า และหน้าจอแรกในมุมมองทรีของสตูดิโอจะแสดงก่อน

StartScreen เป็นคุณสมบัติการไหลของข้อมูลที่ไม่สามารถมีฟังก์ชันพฤติกรรมได้ ฟังก์ชันกระแสข้อมูลทั้งหมดพร้อมใช้งาน ใช้ฟังก์ชันและสัญญาณเหล่านี้โดยเฉพาะเพื่อกำหนดว่าจะแสดงหน้าจอใดก่อน:

  • ฟังก์ชัน Param สำหรับอ่านพารามิเตอร์ที่ใช้ในการเริ่มต้นแอปพลิเคชัน
  • ฟังก์ชันผู้ใช้ สำหรับอ่านข้อมูลเกี่ยวกับผู้ใช้งานปัจจุบัน
  • LookUp, Filter, CountRows, Max และฟังก์ชันอื่นๆ ที่อ่านจาก แหล่งข้อมูล
  • API ใดๆ ที่เรียกใช้ผ่านตัวเชื่อมต่อ แต่ระวังว่าจะส่งกลับคืนอย่างรวดเร็ว
  • สัญญาณ เช่น การเชื่อมต่อ เข็มทิศ และ แอป

หมายเหตุ

ตัวแปรและคอลเลกชันส่วนกลาง รวมถึงตัวแปรที่สร้างขึ้นใน OnStart ไม่พร้อมใช้งานใน StartScreen มีทางเลือกอื่นที่ประกาศสำหรับการทำเช่นนี้ที่กำลังดำเนินการอยู่ สำหรับข้อคิดเห็นของคุณเกี่ยวกับข้อจำกัดนี้ ไปที่ ฟอรัมชุมชน Power Apps

ถ้า StartScreen ส่งคืนข้อผิดพลาด หน้าจอแรกในมุมมองทรีของสตูดิโอจะแสดงเหมือนว่า StartScreen ไม่ได้รับการตั้งค่า ใช้ฟังก์ชัน IfError ตรวจจับข้อผิดพลาดและเปลี่ยนเส้นทางไปยังหน้าจอข้อผิดพลาดที่เหมาะสม

หลังจากที่เปลี่ยน StartScreen ในสตูดิโอ ทดสอบโดยวางเมาส์เหนือออบเจ็กต์ แอป ในบานหน้าต่าง มุมมองทรี เลือกจุดไข่ปลา (...) แล้วเลือก นำทางไปยัง StartScreen หน้าจอจะเปลี่ยนเหมือนว่าโหลดแอปแล้ว

นำทางไปยัง StartScreen

ตัวอย่าง

Screen9

แสดงว่า Screen9 ควรแสดงก่อนทุกครั้งที่แอปเริ่มทำงาน

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

ตรวจสอบว่าผู้ใช้ตั้งค่าพารามิเตอร์ "โหมดผู้ดูแลระบบ" ไว้หรือไม่ และใช้เพื่อตัดสินใจว่าควรแสดง HomeScreen หรือ AdminScreen ก่อนหรือไม่

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

ตรวจสอบว่าผู้เข้าร่วมประชุมเป็นพนักงานหรือไม่ และนำพวกเขาไปยังหน้าจอที่เหมาะสมเมื่อเริ่มต้นระบบ

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

นำแอปตามการเรียกใช้ API ไปที่ ForestScreen หรือ OceanScreen หาก API ล้มเหลวด้วยเหตุผลใดก็ตาม ErrorScreen จะนำมาใช้แทน

คุณสมบัติ StudioVersion

ใช้คุณสมบัติ StudioVersion เพื่อแสดงหรือบันทึกเวอร์ชันของ Power Apps Studio ที่ใช้ในการเผยแพร่แอป สิ่งนี้มีประโยชน์เมื่อแก้ไขข้อบกพร่องและเพื่อให้แน่ใจว่าแอปของคุณได้รับการเผยแพร่ซ้ำด้วย Power Apps Studio เวอร์ชันล่าสุด

StudioVersion จะถูกส่งคืนเป็นข้อความ รูปแบบของข้อความอาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป และควรถือเป็นภาพรวม เพื่อหลีกเลี่ยงการแยกแต่ละส่วน