คู่มือวางระบบ ALM ด้วย Power Platform Solution Part 2

จัดการโครงสร้าง Solution เข้าใจวิธีวางระบบ ALM ด้วย Solution Lifecycle เช็ก Dependencies, Layer ที่ซ้อนกัน, ล็อก Managed Properties ป้องกันการแก้ไข ไปจนถึงการใช้ Patch และ Clone ควบคุมเวอร์ชันในองค์กร ตัวอย่าง
คู่มือวางระบบ ALM ด้วย Power Platform Solution Part 2

เข้าใจการจัดการ Dependencies, Layers, Patch และ Clone เพื่อระบบที่มั่นคงและขยายต่อได้

กลับมาพบกันอีกครั้งในซีรีส์บทความสำหรับผู้เริ่มต้นใช้งาน Power Platform โดยใน Part แรก เราได้พูดถึงแนวคิดเบื้องต้นของ Application Lifecycle Management (ALM) ไปแล้ว สำหรับ Part นี้ เราจะเจาะลึกในประเด็นสำคัญของการใช้งาน “Solution” ให้ถูกต้อง เป็นระบบ และเหมาะกับการพัฒนาระบบระดับองค์กร

Quick ERP ได้นำแนวทาง ALM นี้ไปใช้จริงในการวางโครงสร้างระบบ Power Platform ร่วมกับ Microsoft Dynamics 365 ให้กับลูกค้าองค์กรหลากหลายอุตสาหกรรม เพื่อให้การพัฒนาและดูแลระบบเป็นไปอย่างมีประสิทธิภาพต่อเนื่อง

หากคุณยังไม่ได้อ่านบทความตอนแรก แนะนำให้อ่านเพื่อปูพื้นฐานก่อน >> [อ่านบทความตอนแรก]

หัวข้อในบทความนี้

  • Dependencies
  • Solution Layers
  • Managed Properties
  • Patch Solution
  • Clone Solution

Dependencies

Dependencies คือความสัมพันธ์ระหว่าง Object ใน Solution เช่น Power Apps, Dataverse table และ Power Automate Flow เมื่อ Object พึ่งพาอีกวัตถุหนึ่งอยู่ ระบบจะไม่อนุญาตให้ลบหรือแก้ไขสิ่งนั้นได้โดยตรงหากยังมีการเชื่อมโยงอยู่ เพื่อป้องกันความเสียหายของระบบโดยไม่ตั้งใจ

Dependencies แปลตรงตัวก็คือ “การพึ่งพาอาศัย” ซึ่งความหมายค่อนข้างตรงตามชื่อ มันคือความเชื่อมโยงของ Object ต่างๆใน Solution ของเรา
เช่น ผมมี Power Apps อยู่ 1 ตัว และในแอปนั้นผมใช้ Dataverse table เป็นฐานข้อมูล และตัวแอปก็ยังเชื่อมกับ Flow ของ Power Automate อีกด้วย

เช่น ถ้าคุณมี Power Apps ที่ใช้ Dataverse table เป็นฐานข้อมูล และยังเชื่อมต่อกับ Power Automate Flow เพื่อทำงานบางอย่างร่วมกัน แอปตัวนั้นจะมีความ “พึ่งพา” หรือมี Dependency กับทั้ง Table และ Flow ที่ใช้งานอยู่

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

ซึ่งหมายความว่าตัว Power Apps นั้นพึ่งพา/ผูกกับ Table และ Flow นี้อยู่นั่นเอง
หมายความว่าเราจะไม่สามารถลบ Table และ Flow นี้ได้ตราบใดที่เราไม่นำออกจากแอปเสียก่อน เรียกได้ว่าเป็นการป้องกันการที่เราเผลอไปลบแล้วทำระบบที่เราออกแบบมาพังนั่นเอง

วิธีตรวจสอบ Dependencies

  1. คลิกปุ่ม … ของ object ที่ต้องการ
  2. เลือก Advanced
  3. เลือก Show dependencies
วิธีการตรวจสอบ Dependencies

จะปรากฏหน้าต่างแสดงข้อมูล 3 ส่วน:

Delete blocked by – แสดงให้เห็นว่าเราไม่สามารถลบ object นี้ได้ เพราะถูก object ใดใช้งานอยู่ ตัวอย่างในภาพ ระบบกำลังบอกว่าผมไม่สามารถลบ Flow นี้ได้ เพราะถูกใช้งานโดย Power Apps ตัวนึงอยู่
1. Delete blocked by – แสดงว่า object นี้ถูกใช้งานอยู่โดย object อื่น เช่น คุณไม่สามารถลบ flow ได้ถ้ามี Power Apps ที่ยังเรียกใช้อยู่
Used by – แสดงให้เราเห็นว่า object นี้ ถูกใช้งานโดย object ใดอยู่บ้าง (ซึ่งส่วนใหญ่ก็จะเห็นคล้ายๆกับแท็ป Delete blocked by
2. Used by – คล้ายกับแท็บแรก แต่จะแสดง object ทั้งหมดที่ใช้งาน object นี้ ไม่จำเป็นต้องบล็อกการลบเสมอไป แต่ยังมีความเชื่อมโยงกันอยู่
Uses – แสดงให้เราเห็นว่า object นี้มีการใช้งาน object ใดอยู่บ้าง ตัวอย่างในภาพ ระบบกำลังบอกว่า Power Apps ตัวนี้ มีการใช้งาน ทั้งตัว Flow และตัว Table อยู่
3. Uses – แสดงว่า object ปัจจุบันนี้ไปใช้งาน object อะไรบ้าง เช่น Power Apps ที่เรียกใช้ table และ flow ทั้งหมดจะถูกแสดงที่นี่

การเข้าใจ Dependencies จะช่วยให้คุณมองเห็นภาพรวมของโครงสร้าง Solution ได้ชัดเจนขึ้น โดยเฉพาะเวลาแก้ไข หรือล้าง object ออกจากระบบ จะได้ไม่เกิดปัญหาซ้อนซ้อนที่ยากจะตรวจสอบในภายหลัง

Solution Layers

Solution Layer คือ “ชั้น” ของการเปลี่ยนแปลงที่เกิดขึ้นกับวัตถุในระบบ โดยแต่ละ Layer แสดงถึงว่า object นั้นถูกสร้างหรือแก้ไขโดย Solution ไหน

ตัวอย่างเช่น แอปที่ถูก import ผ่าน Managed Solution จะมีเพียงหนึ่ง Layer แต่หากมีการแก้ไขเพิ่มเติมใน Environment ปลายทาง ระบบจะสร้าง Layer ใหม่ชื่อว่า Unmanaged Layer ทับไว้ ทำให้การแก้ไขจากต้นทางจะไม่แสดงผลจนกว่าจะลบ Layer นี้ออก

วิธีดู Layers

  1. คลิก … บน object ที่ต้อการ

  2. เลือก Advanced

  3. เลือก See solution layers

วิธีการดู Solution Layer

ระบบจะแสดงเลเยอร์ของ object นั้นให้ดู ถ้า object นั้นอยู่ใน unmanaged solution จะมีแค่ unmanaged layer เลเยอร์เดียว

แต่ถ้าเราไปดู object ที่อยู่ใน managed solution ซึ่งเราได้ deploy ไปยัง environment ปลายทางแล้ว เราจะเริ่มเห็นความแตกต่าง

ยกตัวอย่างเช่น ด้านล่างนี้คือเลเยอร์ของ Power Apps ที่ environment ปลายทาง ซึ่งในตอนนี้ก็ยังมีอยู่แค่ เลเยอร์เดียว ซึ่งก็ถูกต้องแล้วครับ เพราะถ้า solution ถูก deploy มาตามปกติ และไม่ได้มีการเชื่อมกับ solution อื่น ตัว object ข้างในก็จะมีเลเยอร์เดียวตามนั้น

ระบบก็จะแสดง layer ของ object นี้ให้เห็น ซึ่งถ้าเป็น object ที่อยู่ใน unmanaged solution ก็จะมี layer เดียวคือ unmanaged layer

แล้วถ้าเราเข้าไปแก้ไข object ที่อยู่ใน managed solution ล่ะ?

ผมลองกดเข้าไปแก้ไขแอปตัวนี้ ซึ่งอยู่ใน managed solution โดยลองแก้อะไรซักอย่างนึง

ด้านล่างนี้คือ layer ของ Power Apps ที่ environment ปลายทาง ซึ่งในตอนนี้ก็ยังมีอยู่ layer เดียว ซึ่งถูกต้องแล้วครับ ถ้า solution ถูก deploy มาตามปกติ และไม่มีการผูกกับ solution อื่น ตัว object ด้านในก็จะมี layer เดียว

หลังจากแก้และบันทึกเสร็จ กลับมาดู Solution Layer อีกครั้ง ตอนนี้จะเห็นว่ามีอีกเลเยอร์เพิ่มขึ้นมาซ้อนด้านบน เรียกว่า Unmanaged layer โดยเลเยอร์นี้จะเกิดขึ้นก็ต่อเมื่อมีการ แก้ไข object ที่อยู่ใน managed solution เท่านั้น

ทีนี้ ผมจะลองกดเข้าแก้ไขแอปตัวนี้ ซึ่งเป็นแอปที่อยู่ใน managed solution ผมจะเข้าไปแก้อะไรซักอย่างนึง

ซึ่งในตอนนี้ สิ่งที่ End User เห็นและเข้าใช้งาน ก็คือ แอปที่ถูกแก้ไขแล้ว ซึ่งแสดงผลตามเลเยอร์บนสุดนั่นเอง (Unmanaged layer)

ปัญหาที่ตามมา

พอเป็นแบบนี้ ต่อให้เรากลับไปแก้แอปที่ environment ต้นทาง แล้ว import solution กลับเข้ามาใหม่ที่ปลายทางอีกกี่ครั้ง End User ก็จะไม่เห็นการเปลี่ยนแปลงนั้นเลย เพราะถูก unmanaged layer ที่ปลายทาง ทับอยู่ นั่นเอง

วิธีลบ Unmanaged Layer

สามารถลบได้เพื่อคืน object กลับสู่สถานะ Managed ซึ่งจะทำให้การแก้ไขจากต้นทางสามารถแสดงผลได้ตามปกติ

ถ้าเผลอสร้าง unmanaged layer ขึ้นมาแล้ว ก็สามารถ ลบออกได้ เช่นกัน เมื่อเราลบ unmanaged layer ออก ตัว object นั้นก็จะกลับเข้าสู่สถานะ managed และเหลือเลเยอร์เดียวเหมือนเดิม

ทีนี้หลังจาก edit แอปเสร็จ กลับมาดู layer อีกทีนึง จะเห็นว่าตอนนี้มีอีก layer มาซ้อนด้านบนแล้วเรียกว่า Unmanaged layer ซึ่งจะเกิดขึ้นก็ต่อเมื่อมีการแก้ไข object ที่อยู่ใน managed solution เท่านั้น

แต่ต้องระวังว่า:

หากลบ unmanaged layer การแก้ไขใดๆก็ตามที่ถูกทำใน unmanaged layer นั้น จะถูกนำออกทั้งหมด

ถ้าคุณไม่อยากให้เกิด unmanaged layer ขึ้นมาโดยไม่ตั้งใจ แนะนำให้อ่านหัวข้อถัดไปคือ Managed Properties เพื่อดูวิธีควบคุมการแก้ไข object ใน environment ปลายทางครับ

Managed Properties

Managed properties คือการตั้งค่าที่ใช้กำหนดว่า object หนึ่ง ๆ (เช่น App, Table, Column ฯลฯ) จะสามารถถูกแก้ไขอะไรได้บ้าง หลังจากที่ถูก import เข้ามาใน environment แบบ managed solution

พูดง่าย ๆ คือ เราใช้ Managed properties เพื่อ “ล็อกสิทธิ์” ว่า component นี้จะแก้ได้หรือไม่ได้ เมื่ออยู่ใน production หรือปลายทาง

วิธีตั้งค่า

หมายเหตุ: การตั้งค่า Managed properties สามารถทำได้เฉพาะตอนที่ object นั้นอยู่ใน unmanaged solution เท่านั้น

  1. คลิก … บน object ใน Unmanaged Solution
  2. เลือก Advanced
  3. เลือก Managed properties
การลบ Unmanaged layer
เราจะเห็น property ที่เราสามารถปรับได้ ซึ่งแต่ละ object จะมีไม่เหมือนกัน อย่างในภาพด้านล่างนี้เป็นของ Power Apps ซึ่งจะมีแค่ Allow customizations
เราจะเห็น property ที่เราสามารถปรับได้ ซึ่งแต่ละ object จะมีไม่เหมือนกัน อย่างในภาพด้านล่างนี้เป็นของ Power Apps ซึ่งจะมีแค่ตัวเลือกเดียวคือ Allow customizations
ซึ่งถ้าเราปิดตรงนี้ เราจะมั่นใจได้เลยว่าแอปที่ถูก import ไปทื่ environment ปลายทางด้วย managed solution จะไม่สามารถถูกแก้ไขได้แน่นอน หากจะแก้ไขต้องมาแก้ที่ environment ต้นทางและ import ไปเท่านั้น

ซึ่งถ้าเราปิดตรงนี้ (ไม่อนุญาตให้แก้ไข) เราจะมั่นใจได้เลยว่าแอปที่ถูก import ไปที่ environment ปลายทางด้วย managed solution จะไม่สามารถถูกแก้ไขได้แน่นอน หากจะแก้ไขต้องกลับมาแก้ที่ environment ต้นทาง และ import ไปใหม่เท่านั้น

จากภาพด้านล่างจะเห็นว่าเราไม่สามารถกด Edit แอปที่ environment ปลายทางได้เลย ไม่ว่าจะเป็น Owner หรือต่อให้เป็น Admin สูงสุดยังไง ก็ไม่สามารถแก้ไขได้

จากภาพด้านล่างจะเห็นว่าเราไม่สามารถกด Edit แอปที่ environment ปลายทางได้เลย (ไม่ว่าจะเป็น Owner หรือต่อให้เป็น Admin สูงสุดยังไง ก็ไม่สามารถแก้ไขได้)

Patch Solution

มาถึงหัวข้อที่บอกเลยว่า มีประโยชน์มาก ๆ โดยเฉพาะเวลาที่เราต้องการ deploy การแก้ไข เพียงบางส่วน ของ solution โดย ยังไม่อยากยกทั้งหมดขึ้นไป

ถ้าอธิบายให้ง่ายที่สุด Patch Solution เป็นฟีเจอร์ที่ช่วยให้สามารถ deploy เฉพาะวัตถุที่มีการเปลี่ยนแปลง โดยไม่ต้องยกขึ้นไปทั้ง Solution เหมาะสำหรับการทดสอบ ฟีเจอร์ใหม่ หรือการแก้ไขเร่งด่วน

ใช้ในสถานการณ์แบบไหน?

  1. ใน solution เรามี object อยู่ทั้งหมด 20 ตัว แต่เราแก้ไขแค่ 2 object เท่านั้น
    → เราไม่อยาก import ทั้ง solution เพราะจะใช้เวลานาน
  2. การแก้ไขที่เราจะ deploy ไปยังปลายทาง อาจจะยังไม่แน่ใจว่าจะใช้งานได้ราบรื่นหรือเปล่า
    → อยากสามารถ rollback กลับได้ง่าย ๆ ถ้ามีปัญหา

ในสถานการณ์แบบนี้ การใช้ Patch จะช่วยให้:

  • เลือก object ที่จะแก้ไขได้เฉพาะส่วน
  • Export และ import ได้เหมือน solution ปกติ
  • Rollback ง่าย แค่ลบ patch ออก ระบบจะกลับไปใช้ของ solution หลักเหมือนเดิม

วิธีสร้าง Patch Solution

  • Step 1: เริ่มจาก Solution หลักของเรา

ตอนนี้เรามี unmanage solution หลักของเราอยู่ที่ environment ต้นทาง
ที่ environment ต้นทาง (เช่น Dev) สมมติว่าเรามี unmanaged solution หลัก ที่ใช้งานอยู่
ซึ่งใน solution นี้มีอยู่หลาย object เลย แต่สมมติตอนนี้เราต้องการแก้ไขแค่ Power Apps อย่างเดียว
ในนั้นอาจมี object อยู่หลายตัว เช่น Table, Flow, App ฯลฯ ตอนนี้สมมติว่าเราต้องการแก้ไขแค่ Power Apps เพียงอย่างเดียว
  • Step 2: Clone Patch

ไปที่ solution หลักนั้น
  1. ไปที่ solution หลักนั้น
  2. คลิกปุ่ม …
  3. เลือก Clone
  4. แล้วเลือก Clone a patch
ระบบจะให้เราตั้งชื่อ solution ใหม่ ในกรณีนี้ผมตั้งชื่อว่า Hotfix ต่อท้าย เพื่อสื่อว่าเป็นการแก้ไขเฉพาะกิจ
ระบบจะให้เราตั้งชื่อ solution ใหม่ ในกรณีนี้ผมตั้งชื่อว่า Hotfix ต่อท้าย เพื่อสื่อว่าเป็นการแก้ไขเฉพาะกิจ

จากนั้นตั้ง Version number ให้เหมาะสม โดยเวอร์ชันของ patch ต้องมากกว่าเวอร์ชันของ solution หลักเสมอ

  • Step 3: เพิ่ม object ที่จะแก้

Patch ที่สร้างขึ้นมาจะว่างเปล่าในตอนแรก ยังไม่มี object ใดอยู่ในนั้น
Patch ที่สร้างขึ้นมาจะว่างเปล่าในตอนแรก ยังไม่มี object ใดอยู่ในนั้น
ให้กด Add existing แล้วเลือก object ที่คุณต้องการเพิ่มเข้าไปใน patch เช่น:
ให้กด Add existing แล้วเลือก object ที่คุณต้องการเพิ่มเข้าไปใน patch เช่น Canvas App ที่เราเพิ่งแก้ไข, Flow หรือ Table ที่มีการอัปเดต schema หรือ logic
เลือกเฉพาะสิ่งที่เปลี่ยนแปลงเท่านั้น เพื่อให้ patch เล็กและ deploy เร็ว
เลือกเฉพาะสิ่งที่เปลี่ยนแปลงเท่านั้น เพื่อให้ patch เล็กและ deploy เร็ว
  • Step 4: Export และ Deploy

เมื่อเตรียม patch เรียบร้อยแล้ว ก็สามารถ Export solution นี้ออกมา (ในรูปแบบ managed หรือ unmanaged ก็ได้ตามต้องการ) จากนั้นนำไป Import ที่ environment ปลายทาง เช่น UAT หรือ Production

เมื่อ import สำเร็จ จะเห็นว่าระบบแสดง solution แยกออกมาอีกอัน เป็นชื่อ patch ที่เราตั้งไว้
เมื่อ import สำเร็จ จะเห็นว่าระบบแสดง solution แยกออกมาอีกอัน เป็นชื่อ patch ที่เราตั้งไว้
  • Step 5: ตรวจสอบผลลัพธ์

หลังจาก import patch:

    • object ที่อยู่ใน patch เช่น Canvas App จะถูกอัปเดตใน environment ปลายทาง
    • แต่ component อื่น ๆ ที่ไม่ได้รวมอยู่ใน patch จะไม่ถูกรบกวนใด ๆ

เรียกได้ว่า Selective Deploy แบบแท้จริง

Rollback ง่าย ไม่ต้องกลัวพัง

หากพบว่า object ที่ deploy ไปมีปัญหา เช่น มี bug หรือยังไม่พร้อมใช้งาน เราสามารถ rollback ได้ง่ายมาก เพียงแค่:

    1. ลบ solution patch ตัวนั้นออก (Delete solution)
    2. ระบบจะ revert object เหล่านั้นกลับไปใช้เวอร์ชันจาก solution หลักโดยอัตโนมัติ
Step 5: ตรวจสอบผลลัพธ์
    • ไม่ต้อง restore environment
    • ไม่ต้อง import solution ใหม่ทั้งชุด
    • ไม่ต้องเขียน script แก้ไขใด ๆ

ข้อสำคัญ:
การจะทำ patch solution ได้ ที่ environment ปลายทาง ต้องมี solution หลักนั้นอยู่ก่อนแล้ว เพราะ patch จะอ้างอิงและซ้อน layer อยู่บน solution หลักเสมอ

สรุปเข้าใจง่าย

Patch Solution คือเครื่องมือที่ตอบโจทย์ DevOps บน Power Platform อย่างแท้จริง

    • แก้ไขบางส่วน
    • Deploy บางจุด
    • Rollback ได้ง่าย
    • ไม่กระทบส่วนอื่น

เหมาะมากสำหรับกรณี hotfix, test deployment หรือ release แบบ incremental และยิ่งมีประโยชน์มากเมื่อคุณทำงานในหลาย environment หรือใช้ CI/CD pipeline ควบคุม release flow

Clone Solution

คำว่า “Clone” ดูเผิน ๆ อาจเข้าใจว่าเป็นการ Copy Solution แบบหนึ่งต่อหนึ่ง ซึ่งฟังแล้วก็เหมือนจะใช่ แต่…ขอให้ลืมความเข้าใจนั้นไปก่อน เพราะในบริบทของ Power Platform นั้น Clone Solution ไม่ได้แปลว่า Copy

Clone Solution ใช้สำหรับรวม Patch หลายเวอร์ชันกลับมาเป็น Solution หลักชุดเดียว เหมาะกับการเตรียมระบบสำหรับการ deploy ใหญ่หรือขึ้น production

Clone Solution ใช้สำหรับรวม Patch หลายเวอร์ชันกลับมาเป็น Solution หลักชุดเดียว เหมาะกับการเตรียมระบบสำหรับการ deploy ใหญ่หรือขึ้น production

ทำไมต้อง Clone Solution?

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

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

หรืออีกกรณีหนึ่ง:

  • คุณต้องการ deploy ครั้งต่อไปแบบ full solution ไม่ใช่แค่ patch
  • การ Clone จะช่วยรวบ patch ทั้งหมดเข้าไปใน solution หลัก เพื่อให้ง่ายต่อการจัดการ
ทำไมต้อง Clone Solution?

วิธี Clone Solution

สามารถทำได้ง่าย ๆ ตามขั้นตอนนี้:

  • คุณต้องการ deploy ครั้งต่อไปแบบ full solution ไม่ใช่แค่ patch
  • การ Clone จะช่วยรวบ patch ทั้งหมดเข้าไปใน solution หลัก เพื่อให้ง่ายต่อการจัดการ
วิธี Clone Solution
ตั้งชื่อ Display Name (ถ้าต้องการ) กำหนด Version number (ต้องมากกว่า patch ทุกตัวที่อยู่ใน solution นี้)

เมื่อกด Confirm ระบบจะทำการ:

  • รวบ patch ทุกตัวเข้ามาใน solution หลัก

  • สร้าง solution ใหม่ขึ้นมาแทนเวอร์ชันเดิมที่กระจายเป็น patch

หาก solution ใด ยังมี patch ค้างอยู่ คุณจะ ไม่สามารถแก้ไข object ใด ๆ ใน solution หลักได้เลย ต้องทำการ Clone solution เพื่อรวม patch เข้ามาก่อน ถึงจะแก้ไขได้ตามปกติ

หมายเหตุสำคัญ

หาก solution ใด ยังมี patch ค้างอยู่ คุณจะ ไม่สามารถแก้ไข object ใด ๆ ใน solution หลักได้เลย ต้องทำการ Clone solution เพื่อรวม patch เข้ามาก่อน ถึงจะแก้ไขได้ตามปกติ

สรุป

การบริหาร Solution อย่างมีระบบใน Power Platform ไม่เพียงช่วยให้การพัฒนาระบบเป็นไปอย่างมีประสิทธิภาพเท่านั้น แต่ยังเป็นหัวใจสำคัญของความยั่งยืนในกระบวนการ ALM ทั้งหมด โดยเฉพาะสำหรับองค์กรที่ใช้งานร่วมกับ Microsoft Dynamics 365

Quick ERP เชี่ยวชาญด้านการออกแบบและวางระบบที่ยืดหยุ่น ปลอดภัย และรองรับการเติบโตในอนาคต โดยยึดตามมาตรฐานที่ Microsoft แนะนำ และต่อยอดให้เข้ากับบริบทของธุรกิจไทยได้อย่างเหมาะสม

ในบทความถัดไป เราจะพูดถึงหัวข้อที่ลึกขึ้น เช่น Connection References, Environment Variables, และการจัดการ Solution Upgrade อย่างมั่นใจ

แหล่งที่มา : PAWIT.PW

ก้าวเข้าสู่ Digital Business

ดูผลิตภัณฑ์ที่เกี่ยวข้องได้ที่นี่

powerapps
Power Apps
ลดต้นทุนการพัฒนาของคุณและทำสิ่งต่างๆ มากขึ้นด้วยทรัพยากรที่น้อยลง โดยช่วยให้ทุกคนสามารถสร้างและแชร์แอปได้อย่างรวดเร็วโดยใช้ Power Apps
Power Automate Screen 1
Power Automate
ทำงานน้อยลงแต่ได้ผลมากขึ้นด้วยการปรับให้งานและกระบวนการทางธุรกิจที่ซ้ำๆ ให้ง่ายขึ้น เพิ่มประสิทธิภาพ และลดต้นทุนด้วย Microsoft Power Automate
Table of Content