แชร์ผ่าน


ปลั๊กอิน low-code ตัวอย่างใน Dataverse (พรีวิว)

[หัวข้อนี้คือเอกสารรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]

เป้าหมายของปลั๊กอินตัวอย่างเหล่านี้คือช่วยให้คุณเริ่มต้นใช้งานโดยการรวมเข้ากับแอปของคุณ คุณจะเข้าใจประสบการณ์การสร้างรวมถึงการสร้างAPI แบบกำหนดเองของ Microsoft Dataverse ที่สนับสนุนโดยนิพจน์ Power Fx ซึ่งสามารถทริกเกอร์การดำเนินการภายในหรือภายนอก Dataverse ได้

ข้อสำคัญ

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

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

หากต้องการใช้หนึ่งในปลั๊กอินตัวอย่างสำหรับเหตุการณ์ข้อมูลที่แอป Dataverse Accelerator ต้องติดตั้งในสภาพแวดล้อม ข้อมูลเพิ่มเติม: ข้อกำหนดเบื้องต้นสำหรับการสร้างปลั๊กอิน low-code

หมายเหตุ

เทมเพลตอีเมลใช้ได้เฉพาะกับบางตารางเท่านั้น ข้อมูลเพิ่มเติม: สร้างเทมเพลตสำหรับอีเมล

ส่งคืนค่าที่ไม่ติดลบ

ตัวอย่างนี้ใช้ ฟังก์ชัน Abs() เพื่อส่งคืนค่าที่ไม่ใช่ค่าลบของอาร์กิวเมนต์ ถ้าจำนวนเป็นลบ Abs จะส่งกลับค่าเทียบเท่าที่เป็นบวก

  1. เล่นแอป Dataverse Accelerator บนแถบคำสั่ง เลือก การดำเนินการใหม่ > ปลั๊กอินแบบทันที

  2. ระบุชื่อที่แสดง เช่น ชื่อสูตร และคำอธิบาย

  3. สร้างพารามิเตอร์ Out เพื่อตรวจสอบลักษณะการทำงานที่คาดหวังที่เหมาะสม เช่น สตริง เลือกใช้พารามิเตอร์อินพุตเพื่อทำให้การทดสอบง่ายขึ้น ซึ่งเหมาะสมกับสูตร

  4. ในตัวแก้ไขสูตร ให้รวมพารามิเตอร์ Out ไว้ในวงเล็บปีกกา:

    {Out: "" }
    
  5. ป้อนนิพจน์ที่ทดสอบสูตร:

    • ตรวจสอบว่า IntelliSense ยอมรับสูตร (ข้อความเปลี่ยนเป็นสีน้ำเงินอ่อน)
    • ใช้นิพจน์ที่ให้ผลลัพธ์เพื่อช่วยตรวจสอบผลลัพธ์ ตัวอย่างเช่น
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. เลือก ถัดไป จากนั้น เลือก บันทึก

  7. เลือก ทดสอบ เพื่อทดสอบสูตร ใช้พารามิเตอร์เอาต์พุตเพื่อตรวจสอบความถูกต้องของผลลัพธ์

การตรวจสอบความถูกต้องของอินพุตและข้อผิดพลาดที่กำหนดเอง

การตรวจหารายการซ้ำ

ใช้การตรวจสอบความถูกต้องของอินพุตฝั่งเซิร์ฟเวอร์ เช่น การตรวจหาข้อผิดพลาดซ้ำ ซึ่งจะส่งข้อความแสดงข้อผิดพลาดที่กำหนดเอง

  1. เล่นแอป Dataverse Accelerator บนแถบคำสั่ง เลือก การดำเนินการใหม่ > ปลั๊กอินแบบอัตโนมัติ
  2. ในกล่อง ชื่อ ให้ป้อน การตรวจสอบรายการซ้ำ
  3. สำหรับ ตาราง เลือก ผู้ติดต่อ
  4. สำหรับ เรียกใช้ปลั๊กอินนี้เมื่อมีแถวเป็น เลือก สร้าง
  5. ในกล่อง สูตร ให้ป้อนสูตรนี้:
 If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
    Error("You have existing contacts with the same first name and last name")
)
  1. เลือก บันทึก

ทดสอบปลั๊กอิน

  1. หากต้องการทดสอบปลั๊กอิน ให้สร้างแอปพื้นที่ทำงานโดยใช้ตารางผู้ติดต่อโดยทำตามขั้นตอนที่นี่: ระบุตาราง
  2. สร้างแถวผู้ติดต่อ
  3. สร้างผู้ติดต่อรายอื่นโดยใช้ชื่อเดียวกับในขั้นตอนก่อนหน้า
  4. ข้อความจะปรากฏขึ้นเพื่อระบุว่าพบเรกคอร์ดที่ซ้ำกัน เลือก ละเว้นและบันทึก บนพร้อมท์ข้อความแสดงข้อผิดพลาด

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

การตรวจสอบความถูกต้องของข้อมูล

แสดงชนิดของข้อผิดพลาดเฉพาะโดยใช้การแจงนับ ErrorKind

  1. สร้างปลั๊กอินแบบอัตโนมัติใหม่

  2. ระบุค่าต่อไปนี้:

    • ชื่อ: การตรวจสอบความถูกต้องของอินพุต
    • คำอธิบาย: ตรวจสอบวันที่ที่ถูกต้องและส่งข้อผิดพลาดหากไม่ถูกต้อง
    • ตาราง: การนัดหมาย
    • เรียกใช้ปลั๊กอินนี้เมื่อแถวคือ: อัปเดตแล้ว
  3. ป้อนสูตรด้านล่าง:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. ภายใน ตัวเลือกขั้นสูง ตั้งค่า เวลาที่ควรเรียกใช้ เป็น ก่อนดำเนินการ; คุณต้องการเรียกใช้กฎนี้ก่อนที่จะบันทึกข้อมูลเพื่อป้องกันข้อมูลที่ไม่ถูกต้อง

  5. เลือก บันทึก

ไปที่ ฟังก์ชัน Error() เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับข้อผิดพลาดที่กำหนดเอง

ส่งอีเมลตามเหตุการณ์ข้อมูล

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

ตัวอย่างเทมเพลตอีเมล

ต่อไปนี้คือตัวอย่างเทมเพลตอีเมลที่คุณสามารถสร้างสำหรับเหตุการณ์ข้อมูลตาม SenMail:

  • ชนิดเทมเพลต: ส่วนกลาง
  • ชื่อ: ขอบคุณสำหรับคำสั่งซื้อ
  • คำอธิบาย: ใช้เทมเพลตนี้เพื่อขอบคุณลูกค้าที่สั่งซื้อกับคุณ
  • เรื่อง: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • เนื้อความ: ใช้โค้ดนี้
   Hello {!Sales Order:First Name;},
   Order Type: {! Sales Order: Order Type;},
   Location Type: {! Sales Order: Location Type;},
   Address1: {! Sales Order: Address 1;},
   Address2: {! Sales Order: Address 2;},
   Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
   Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
   Yours Sincerely, 
   Contoso Sales 

สร้างปลั๊กอินแบบอัตโนมัติ

  1. เล่นแอป Dataverse Accelerator แล้วเลือก +ปลั๊กอินใหม่ ภายใต้ ปลั๊กอินแบบอัตโนมัติ
  2. ใส่ข้อมูลต่อไปนี้:
    • ชื่อ: SendEmailUponCreate

    • ตาราง: เลือกชื่อตารางตรรกะของใบสั่งขาย ซึ่งก็คือ SalesOrder เหตุการณ์นี้อิงจากตารางใบสั่งขาย

    • เรียกใช้ปลั๊กอินนี้เมื่อแถวคือ: สร้างแล้ว

    • สูตร: วางโค้ดด้านล่างลงในกล่อง สูตร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน SendEmailFromTemplate ถึง การดำเนินการ SendEmailFromTemplate

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. เลือก ขั้นสูง > หลังดำเนินการ
  4. เลือก บันทึก

ข้อความยืนยัน บันทึกปลั๊กอินเรียบร้อยแล้ว ปรากฏขึ้น

ส่งการแจ้งเตือนในแอปตามการดำเนินการทันที

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

สร้างปลั๊กอิน low-code ที่ส่งการแจ้งเตือนในแอป

  1. เล่นแอป Dataverse Accelerator แล้วเลือก +ปลั๊กอินใหม่ ภายใต้ ปลั๊กอินทันที
  2. ป้อนข้อมูลต่อไปนี้ เลือก ถัดไป:
    • ชื่อ: NotifyTechnican1
    • คำอธิบาย: ปลั๊กอินแบบทันทีนี้จะแจ้งเตือนผู้ใช้แอป
  3. ในหน้า ข้อกำหนด ให้สร้างพารามิเตอร์อินพุตด้วยชนิดข้อมูลต่อไปนี้
    • OrderID: สตริง
    • TechnicianEmail: สตริง
  4. สูตร วางโค้ดต่อไปนี้ลงในกล่อง สูตร สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันนี้ ไปที่ การดำเนินการ SendAppNotification
     XSendAppNotification(
         "New service",
         LookUp(Users,'Primary Email'=TechnicianEmail),
         "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.",
     [
         XCreateSidePaneActionForEntity(
                 "View order",
             OrderID,
             "Sales Order",
             "cr8b8_serviceorder1",
             LookUp('Service Orders','Order Number'=OrderID).'Service Order'
             )
         ]
     )
    
  5. เลือก ถัดไป
  6. บนหน้า สรุป เลือก บันทึก

เรียกการดำเนินการทันทีสำหรับการแจ้งเตือนในแอป

  1. เลือกแอปพื้นที่ทำงาน จากนั้นเลือก แก้ไข บนแถบคำสั่ง (หรือ สร้างใหม่)
  2. เลือกหน้าจอในบานหน้าต่างนำทางด้านซ้าย หรือสร้างใหม่
  3. ในเมนู แทรก เพิ่ม ปุ่ม ลงในหน้าโดยใช้ ข้อความ แจ้งช่างเทคนิค
  4. เลือกปุ่ม และป้อนข้อมูลต่อไปนี้ในแถบสูตร fx โดยที่ DataCardValue17 เป็นคอลัมน์ที่มีรหัสคำสั่งซื้อและ DataCardValue15 เป็นคอลัมน์ที่มีที่อยู่อีเมลของช่างเทคนิค ในตัวอย่างนี้ มีการใช้แอปพื้นที่ทำงานชื่อ แอปใบสั่งบริการ
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    เพิ่มปุ่มที่มีสูตร Power Fx เพื่อส่งการแจ้งเตือนไปยังช่างเทคนิค
  5. บันทึก และ เผยแพร่ การเปลี่ยนแปลงของคุณ

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

ส่งการแจ้งเตือนไปยังช่างเทคนิคที่รับในแอป

ตัวอย่างปลั๊กอินทันทีพร้อมตัวเชื่อมต่อ MSN Weather

ปลั๊กอินนี้ส่งคืนสภาพอากาศปัจจุบันสำหรับสถานที่เฉพาะโดยใช้ ตัวเชื่อมต่อ MSN Weather

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

  1. สร้างการอ้างอิงการเชื่อมต่อสำหรับ MSN Weather หากยังไม่สามารถใช้งานในสภาพแวดล้อม: สร้างการอ้างอิงการเชื่อมต่อในแอปจากบานหน้าต่างการอ้างอิงการเชื่อมต่อทางด้านขวา

  2. คัดลอกส่วนย่อย: คัดลอกส่วนย่อยของการดำเนินการจากบานหน้าต่างการเชื่อมต่อ

  3. แก้ไขสูตรโดยใช้ IntelliSense และใช้คุณสมบัติการตอบสนองของตัวเชื่อมต่อตามต้องการ: กรอกข้อกำหนดปลั๊กอินในตัวแก้ไข

  4. บันทึก

  5. ทดสอบปลั๊กอิน

เคล็ดลับ

ใช้ฟังก์ชัน With() เพื่อบันทึกการตอบสนองทั้งหมดจากการดำเนินการเดียว หากคุณต้องการเข้าถึงคุณสมบัติที่แตกต่างกันที่การตอบสนองอาจมี ในตัวอย่างด้านล่าง มีพารามิเตอร์อินพุต Location (สตริง) และพารามิเตอร์เอาต์พุต Out (สตริง)

With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})

แนวทางปฏิบัติ

การจัดการข้อผิดพลาดวนซ้ำไม่สิ้นสุดในปลั๊กอิน low-code อัตโนมัติ

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

รูปแบบที่เป็นปัญหา: การใช้สูตร Patch() ทริกเกอร์การอัปเดตอื่น "สูตรที่มีปัญหาในปลั๊กอินอัตโนมัติ"

รูปแบบที่แนะนำ: ใช้สูตร Set() แทนเพื่อหลีกเลี่ยงปัญหานี้ "สูตรที่แนะนำในปลั๊กอินอัตโนมัติ"

ดูเพิ่มเติม

ปลั๊กอิน low-code ใน Power Fx (พรีวิว)