แชร์ผ่าน


สร้างผู้ให้บริการรายใหม่

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

กําหนดสถาปัตยกรรมของผู้ให้บริการ

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

ใช้ตารางต่อไปนี้เพื่อระบุว่าส่วนประกอบใดที่คุณต้องการ

เงื่อนไข ส่วนประกอบที่ต้องการ
บริการที่คุณต้องการสร้างผู้ให้บริการไม่มีตัวเชื่อมต่อใน Power Automate
ดูข้อมูลเพิ่มเติมที่ รายการทั้งหมดของ Power Automate ตัวเชื่อมต่อ
สร้างตัวเชื่อมต่อลูกค้า หรือใช้ตัวเชื่อมต่อทั่วไป
ผู้ให้บริการของคุณจะแลกเปลี่ยนข้อมูลระหว่างบริการภายนอกและ Microsoft Dataverse ตัวให้บริการของคุณต้องการการแปลงข้อมูลผู้ให้บริการ เพิ่มส่วนประกอบการแปลงข้อมูลผู้ให้บริการให้กับแต่ละการแปลงข้อมูล
ผู้ให้บริการของคุณจะปฏิบัติการตรรกะจากตัวออกแบบการประสานรวม สร้างขั้นตอน Power Automate แยกต่างหาก เพื่อแสดงถึงแต่ละการดำเนินการ
ผู้ให้บริการของต้องประมวลผลข้อความจากบริการภายนอก สร้างขั้นตอนตัวจัดการข้อความของ Power Automate
ผู้ให้บริการของคุณจะดึงข้อความจากบริการภายนอกในช่วงเวลาปกติ สร้างขั้นตอนตัวดึงข้อความของ Power Automate
ผู้ให้บริการของคุณจะเพิ่มเหตุการณ์ทางธุรกิจที่ไม่ได้กําหนดไว้ใน Intelligent Order Management ในปัจจุบัน สร้างนิยามเหตุการณ์ทางธุรกิจใหม่ และเพิ่มเหตุการณ์ที่มีอยู่

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

สร้างโซลูชันผู้ให้บริการ

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

  • ตั้งค่าผู้ให้บริการที่กำหนดเอง

  • คำนิยามผู้ให้บริการ

  • เพิ่มส่วนประกอบลงในโซลูชันของคุณ

ตั้งค่าผู้ให้บริการที่กำหนดเอง

สร้างโซลูชัน Power Apps ที่จะประกอบด้วยส่วนประกอบของผู้ให้บริการของคุณ หากต้องการสร้างโซลูชันใหม่ใน Power Apps ให้ทำตามขั้นตอนใน สร้างโซลูชันใน Power Apps

เพิ่มคำนิยามผู้ให้บริการ

นิยามของผู้ให้บริการประกอบด้วยรายละเอียดเกี่ยวกับผู้ให้บริการของคุณ คำนิยามจะเป็นระบุวิธีที่ผู้ให้บริการของคุณจะปรากฏในแค็ตตาล็อกผู้ให้บริการ

  1. ในโซลูชันผู้ให้บริการที่คุณสร้างขึ้น ให้เลือก ใหม่

  2. เลือก IOMคำนิยามผู้ให้บริการ

  3. เพิ่มรายละเอียดต่อไปนี้:

    1. ชื่อที่แสดง: ชื่อที่คุณต้องการให้กับตัวให้บริการของคุณ ตัวอย่างเช่น "ผู้ให้บริการทดสอบ"

    2. ชื่อตรรกะ: คีย์การส่งออกให้กับตัวให้บริการของคุณ

    3. อธิบาย: ข้อความเพื่ออธิบายว่าผู้ให้บริการของคุณคืออะไร

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

  5. หากคุณต้องการเพิ่มโลโก ให้อัปโหลดรูปภาพ

  6. ตรวจสอบว่านิยามผู้ให้บริการของคุณปรากฏในโซลูชันหรือไม่ เรกคอร์ดที่มีชนิดส่วนประกอบเป็น IOM Provider Definition ควรแสดงขึ้น ถ้ารายการไม่แสดงขึ้น ให้เลือก เพิ่มที่มีอยู่ แล้วเลือกเรกคอร์ดที่คุณเพิ่งสร้าง

  7. ตรวจสอบว่าผู้ให้บริการของคุณปรากฏในแค็ตตาล็อกผู้ให้บริการหรือไม่ ถ้าคุณตั้งค่าฟิลด์ ใช้งานอยู่ เป็น ใช่ นิยามของผู้ให้บริการของคุณจะแสดงในแค็ตตาล็อกผู้ให้บริการ เปิด Intelligent Order Management ไปที่ ผู้ให้บริการ > แค็ตตาล็อก ตรวจสอบว่านิยามของผู้ให้บริการของคุณได้แสดงขึ้นแล้ว

เพิ่มส่วนประกอบไปยังโซลูชัน

หลังจากที่คุณสร้างนิยามผู้ให้บริการแล้ว ให้เพิ่มส่วนประกอบของผู้ให้บริการในโซลูชัน

  1. ไปที่โซลูชันของคุณ

  2. เลือก เพิ่มรายการที่มีอยู่

  3. เลือกชนิดส่วนประกอบของ Intelligent Order Management แล้วเลือกเรกคอร์ดที่คุณเพิ่งสร้างขึ้น

สร้างการแปลงข้อมูลผู้ให้บริการ

ถ้าผู้ให้บริการของคุณต้องการการแปลงข้อมูล คุณต้องเพิ่มส่วนประกอบการแปลงข้อมูลผู้ให้บริการลงในโซลูชันของคุณ คุณอาจต้องสร้างการแปลงข้อมูลหลายรายการ

  1. ในโซลูชันผู้ให้บริการของคุณ ให้เลือก ใหม่

  2. เลือก การแปลงของคำนิยามผู้ให้บริการ IOM

  3. เพิ่มรายละเอียดต่อไปนี้:

    1. ชื่อที่แสดง: ชื่อของการแปลงผู้ให้บริการของคุณ ตัวอย่างเช่น "แปลงใบสั่งขาย"

    2. ชื่อตรรกะ: ตัวระบุเฉพาะของตัวให้บริการของคุณ ค่านี้จะเป็นคีย์การนําเข้าและส่งออกข้อมูล ซึ่งควรขึ้นต้นด้วยคำนำหน้าของผู้เผยแพร่ ตัวอย่างเช่น Microsoft ใช้คำนำหน้าผู้เผยแพร่ msdyn_ ตัวอย่างชื่อตรรกะได้แก่ msdyn_flexe_fulfillmentorderproduct_orderline และ msdyn_flexe_fulfillmentorder_order เป็นต้น

    3. ชนิดแหล่งที่มา: ฟิลด์นี้จะบ่งชี้ว่าได้รับข้อมูลชนิดใด มีตัวเลือกสองตัวคือ: JsonDocument หรือ Dataverse เอนทิตี้ ถ้าข้อมูลของคุณมีอยู่ใน Dataverse ให้เลือก Dataverse เอนทิตี้ ถ้าไม่มี ให้เลือก JsonDocument ข้อมูลนี้จะใช้ในองค์ประกอบ Power Automate ที่คุณกําหนดให้ค้นหาการแปลงข้อมูล

    4. ชื่อออบเจ็กต์ต้นทาง: ชื่อของข้อมูลที่คุณแปลง ถ้าคุณกำลังแปลงเรกคอร์ด Dataverse ตรวจสอบให้แน่ใจว่า ชื่อออบเจ็กต์ต้นทาง เป็นชื่อเดียวกับในตาราง Dataverse

    5. ชื่อออบเจ็กต์ปลายทาง: ปลายทางของเรกคอร์ดที่คุณต้องการแปลง

    6. การแปลง: Power Query MQuery ออนไลน์ที่จะใช้เพื่อแปลงข้อมูลป้อนเข้า ข้อมูลเพิ่มเติมเกี่ยวกับ Power Query และ MQuery โปรดดูที่ อะไรคือ Power Query และ Power Query การอ้างอิงภาษาตามสูตร M ต่อไปนี้เป็นตัวอย่างของ MQuery ที่แปลงใบสั่งขายจากบริการใบสั่งภายนอกไปยังใบสั่งขายใน Intelligent Order Management

shared TransformSourceData =

let

orderItems = Source\[OrderItems\],

orderheader =

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

ordernumber = Record.FieldOrDefault(Source, "SellerOrderId", Text.From(Source\[OrderServiceOrderId\])),

name = ordernumber,

msdyn\_ExternalOrderId = Text.From(Source\[OrderServiceOrderId\]),

\#"customerid\_account@odata.bind" = "/accounts(" & Text.From(Source\[accountid\]) & ")",

\#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(Source\[pricelevelid\]) & ")",

totalamount = if Record.HasFields(Source, "OrderTotal") then Decimal.From(Record.FieldOrDefault(Source\[OrderTotal\], "Amount")) else null,

shipto\_name = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Name") else null,

shipto\_contactname = shipto\_name,

shipto\_line1 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine1") else null,

shipto\_line2 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine2") else null,

shipto\_line3 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine3") else null,

shipto\_city = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "City") else null,

shipto\_stateorprovince = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "StateOrRegion") else null,

shipto\_country = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "CountryCode") else null,

shipto\_postalcode = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "PostalCode") else null,

shipto\_telephone = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Phone") else null,

overriddencreatedon = Record.FieldOrDefault(Source, "PurchaseDate")

\]

), each \[Value\] \<\> null

)

),

orderlines = List.Transform(orderItems, each

Record.FromTable

(

Table.SelectRows

(

Record.ToTable

(

\[

isproductoverridden = true,

ispriceoverridden = true,

productdescription = \[OrderItemId\] & "-" & Record.FieldOrDefault(\_, "SellerSKU") & "-" & Record.FieldOrDefault(\_, "Title"),

quantity = \[QuantityOrdered\],

quantityshipped = Record.FieldOrDefault(\_, "QuantityShipped"),

priceperunit = if Record.HasFields(\_, "ItemPrice") then Decimal.From(Record.FieldOrDefault(\[ItemPrice\], "Amount")) else null,

manualdiscountamount = if Record.HasFields(\_, "PromotionDiscount") then Decimal.From(Record.FieldOrDefault(\[PromotionDiscount\], "Amount")) else null,

tax = if Record.HasFields(\_, "ItemTax") then Decimal.From(Record.FieldOrDefault(\[ItemTax\], "Amount")) else null,

shipto\_name = Record.FieldOrDefault(orderheader, "shipto\_name"),

shipto\_contactname = Record.FieldOrDefault(orderheader, "shipto\_contactname"),

shipto\_line1 = Record.FieldOrDefault(orderheader, "shipto\_line1"),

shipto\_line2 = Record.FieldOrDefault(orderheader, "shipto\_line2"),

shipto\_line3 = Record.FieldOrDefault(orderheader, "shipto\_line3"),

shipto\_city = Record.FieldOrDefault(orderheader, "shipto\_city"),

shipto\_stateorprovince = Record.FieldOrDefault(orderheader, "shipto\_stateorprovince"),

shipto\_country = Record.FieldOrDefault(orderheader, "shipto\_country"),

shipto\_postalcode = Record.FieldOrDefault(orderheader, "shipto\_postalcode"),

shipto\_telephone = Record.FieldOrDefault(orderheader, "shipto\_telephone"),

overriddencreatedon = Record.FieldOrDefault(orderheader, "overriddencreatedon")

\]

), each \[Value\] \<\> null

)

)

),

salesorder = Record.AddField(orderheader, "order\_details", orderlines)

in Text.FromBinary(Json.FromValue(salesorder));
  1. เลือก บันทึก

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

เพิ่มคำนิยามเหตุการณ์ทางธุรกิจ

ถ้าผู้ให้บริการของคุณจะสร้างหรือใช้เหตุการณ์ทางธุรกิจใหม่ คุณต้องเพิ่มส่วนประกอบ คำนิยามเหตุการณ์ทางธุรกิจของคำนิยามผู้ให้บริการ IOM ลงในโซลูชันของคุณ คุณต้องเพิ่มเหตุการณ์ทางธุรกิจที่ไม่ได้อยู่ใน Intelligent Order Management เท่านั้น

ถ้าเหตุการณ์ทางธุรกิจที่คุณต้องการสร้างไม่มีอยู่ใน Intelligent Order Management คุณสามารถสร้างเหตุการณ์ของคุณเองได้

  1. เลือก ใหม่

  2. เลือก คำนิยามเหตุการณ์ทางธุรกิจของคำนิยามผู้ให้บริการ IOM

  3. เพิ่มรายละเอียดต่อไปนี้:

    1. ชื่อ: ชื่อของเหตุการณ์ทางธุรกิจของคุณ

    2. ผู้ให้บริการ: ผู้ให้บริการที่คุณสร้างนิยามธุรกิจนี้ให้

    3. เอนทิตี้ที่เชื่อมโยง Dataverse : เอนทิตี้ในการจัดการใบสั่งแบบ Intelligent ที่มีการเปลี่ยนแปลงหรือได้รับผลกระทบเมื่อสร้างเหตุการณ์

    4. ค่ารัฐที่เกี่ยวข้อง: ถ้าคุณต้องการอัพเดตสถานะของเอนทิตี้ที่เกี่ยวข้องของคุณเมื่อเหตุการณ์ทางธุรกิจเพิ่มขึ้น ให้รวมค่าสถานะในฟิลด์นี้

    5. ค่าสถานะที่เกี่ยวข้อง: ถ้าคุณต้องการอัพเดตสถานะของเอนทิตี้ที่เกี่ยวข้องของคุณเมื่อเหตุการณ์ทางธุรกิจเพิ่มขึ้น ให้รวมค่าสถานะในฟิลด์นี้

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

  5. ตรวจสอบโซลูชันของคุณเพื่อตรวจสอบว่าเรกคอร์ด คำนิยามเหตุการณ์ทางธุรกิจของผู้ให้บริการ IOM แสดงอยู่ ถ้าเรกคอร์ดไม่ปรากฏในโซลูชัน ให้เลือก เพิ่มที่มีอยู่ แล้วเลือกเรกคอร์ดที่คุณเพิ่งสร้างขึ้น

เพิ่มตัวเชื่อมต่อ

ถ้าผู้ให้บริการของคุณต้องการตัวเชื่อมต่อไม่พร้อมใช้งานใน Power Automate คุณต้องสร้างตัวเชื่อมต่อของคุณเอง สำหรับข้อมูลเพิ่มเติม ให้ดูที่ รายการตัวเชื่อมต่อของ Power Automate ทั้งหมด

เมื่อต้องการสร้างตัวเชื่อมต่อ Power Automate ของคุณเอง ให้ทำตามขั้นตอนใน ภาพรวมของ ตัวเชื่อมต่อที่กำหนดเอง

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

  1. ไปที่โซลูชันผู้ให้บริการของคุณ

  2. เลือก เพิ่มรายการที่มีอยู่

  3. เลือกตัวเชื่อมต่อที่คุณสร้างขึ้น

ชนิดของโฟลว์ Power Automate

การดำเนินการใดๆ ที่ปฏิบัติในตัวออกแบบการประสานรวม จะแสดงโดยโฟลว์ Power Automate หากคุณต้องการให้ Power Automate ดึงข้อมูลเฉพาะหรือดำเนินการเฉพาะ คุณจะต้องสร้างโฟลว์สำหรับการดำเนินการเหล่านั้น เรียนรู้เพิ่มเติมเกี่ยวกับ Power Automate ดูที่ บทนำสู่ Power Automate

เพิ่มโฟลว์เป็นส่วนประกอบของ คำนิยามตรรกะของคำนิยามผู้ให้บริการ ลงในผู้ให้บริการของคุณ

ก่อนที่คุณจะเริ่มกระบวนการสร้างโฟลว์ ให้รีวิวชนิดของการโฟลว์ที่ใช้ใน Intelligent Order Management

ตัวจัดการข้อความของผู้ให้บริการ

โฟลว์เหล่านี้ได้รับและประมวลผลข้อความจากบริการภายนอก และเพิ่มเหตุการณ์ทางธุรกิจที่เหมาะสม เพื่อแจ้งเตือนการผสานรวมของ Intelligent Order Management โฟลว์เหล่านี้ถูกทริกเกอร์โดยบริการภายนอก

ต่อไปนี้เป็นโครงสร้างตัวอย่างการสร้างชนิดตัวจัดการข้อความของโฟลว์ Power Automate

  1. กําหนดทริกเกอร์ Power Automate โดยทั่วไปแล้วจะเป็นปลายทาง HTTP ที่เป็นทริกเกอร์ webhook (แนะนำ) ทริกเกอร์ตัวเชื่อมต่อ หรือทริกเกอร์การแทรก Dataverse มีการเรียกทริกเกอร์เมื่อบริการภายนอกมีข้อมูลที่จะส่งไปยัง Intelligent Order Management ภาพหน้าจอของทริกเกอร์เมื่อได้รับการร้องขอ HTTP

กำหนด JSON Schema ที่จะใช้ในทริกเกอร์ HTTP ของคุณด้านล่าง

{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. เริ่มต้นการประมวลผลข้อความ มีสองขั้นตอนที่เกี่ยวข้องกับงานนี้

    1. เริ่มต้นผลลัพธ์การปฏิบัติการที่จะใช้เพื่อติดตามการประมวลผลข้อความ

    2. ยอมรับข้อความของผู้ให้บริการใน Intelligent Order Management เพื่อให้คุณสามารถติดตาม ลองใหม่ และแสดงสถานะการประมวลผลได้ นี่เป็นการดำเนินการ Power Automate ที่ Intelligent Order Management แนะนำ การดำเนินการนี้เรียกว่า ยอมรับการร้องขอข้อความของผู้ให้บริการ ใน IOM การดำเนินการนี้จะมีพารามิเตอร์ที่ต้องใช้ต่อไปนี้

      1. PowerAutomateWorkflowId: WorkflowId บนนิยามตัวจัดการข้อความ คุณสามารถดึงข้อมูลนี้ได้โดยการมีฟังก์ชันส่วนประกอบที่มี workflow()['tags']

      2. PowerAutomateRunId: รหัสเฉพาะของการ Power Automate รันที่ได้รับข้อความและอนุญาตให้ไปป์ไลน์ลองการประมวลผลและเชื่อมโยงล็อกการรันอีกครั้ง คุณสามารถดึงข้อมูลนี้ได้โดยการมีฟังก์ชันส่วนประกอบที่มี workflow()['run']?['name']

      3. ProviderMessageExternalRequestId: รหัสของข้อความที่ส่ง หากไม่มีตัวระบุอยู่ สามารถสร้าง GUID ได้ ตัวระบุนี้ใช้โดยไปป์ไลน์เพื่อช่วยป้องกันไม่ให้ผู้ส่งส่งข้อความที่คัดลอกมา ตัวระบุขึ้นอยู่กับส่วนข้อมูลต้นทาง ตัวอย่างเช่น: concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['id'])

ภาพหน้าจอของหน้าจอ ยอมรับการร้องขอข้อความของผู้ให้บริการ

  1. การแปลงผู้ให้บริการที่คุณกําหนดไว้ก่อนหน้านี้จะดึงข้อมูลป้อนเข้าและแปลงค่านั้น Intelligent Order Management มีโฟลว์รองแบบสำเร็จรูปที่เรียกว่า ตัวแปลงของผู้ให้บริการ IOM ที่จะประมวลผลการแปลงข้อมูล เพิ่มรายละเอียดต่อไปนี้เพื่อประมวลผลเหตุการณ์หรือข้อความ:

    1. ชื่อผู้ให้บริการ: ชื่อของผู้ให้บริการที่เชื่อมโยงกับตัวจัดการข้อความ ค่านี้ต้องเป็นชื่อเดียวกับการแปลงผู้ให้บริการของคุณ

    2. ชื่อออบเจ็กต์ต้นทาง: ค่าคีย์การค้นหาต้นทางที่จะแปลง ค่านี้ต้องเหมือนกับชื่อออบเจ็กต์ต้นทางที่กําหนดในการแปลงผู้ให้บริการของคุณ

    3. ชื่อออบเจ็กต์ปลายทาง: ค่าคีย์การค้นหาปลายทางที่จะแปลง ค่านี้ต้องเหมือนกับค่าที่กําหนดในการแปลงผู้ให้บริการ

    4. Payload: ให้เมื่อแปลงโหลด JSON Power Automate ต้องมีการส่งผ่านพารามิเตอร์เป็นสตริงแบบซีเรียลไลซ์ ระบุป ส่วนข้อมูล หรือค่า รหัสเรกคอร์ด ไม่ใช่ทั้งสองค่า

    5. รหัสเรกคอร์ด: ให้เมื่อแปลง Dataverse เรกคอร์ด ระบุป ส่วนข้อมูล หรือค่า รหัสเรกคอร์ด ไม่ใช่ทั้งสองค่า
      ภาพหน้าจอของข้อความการแปลงด้วย Power Query Online

  2. คุณสามารถแทรกข้อมูลลงใน Dataverse ได้โดยใช้การร้องขอ HTTP หรือการดำเนินการ Dataverse แทรก ตัวเชื่อมต่อ ถ้าคุณทำมากกว่าการแทรกหนึ่งรายการ และต้องการปรับปรุงประสิทธิภาพ ให้ตัดการแทรกลงในชุดการเปลี่ยนแปลง เพื่อให้การร้องขออยู่ในชุดงานธุรกรรม
    ภาพหน้าจอของขั้นตอนการแทรกข้อความ

  3. ถ้าคุณต้องการให้โฟลว์ของคุณเพิ่มเหตุการณ์ทางธุรกิจ คุณสามารถใช้โฟลว์รอง เหตุการณ์ทางธุรกิจที่ยกระดับ ได้ เพิ่มรายละเอียดต่อไปนี้

    1. Business AventName: ชื่อของเหตุการณ์ที่คุณต้องการออก

    2. EntityRecordId: รหัสของเรกคอร์ดที่เพิ่งสร้างและเชื่อมโยงกับเหตุการณ์

  4. อัปเดตสถานะการประมวลผลข้อความโดยใช้การดำเนินการ อัปเดตสถานะการร้องขอข้อความของผู้ให้บริการ เพื่อบันทึกผลลัพธ์ของการประมวลผล เพิ่มรายละเอียดต่อไปนี้

    1. ProviderMessageRequestExrecutionId: รหัสเอาท์พุทของเรกคอร์ดที่สร้างขึ้นเพื่อติดตามความคืบหน้าของการประมวลผลข้อความ

    2. ค่า IsProviderMessageRequestExercutionSuccess: แบบบูลีน เพื่อบ่งชี้ว่าการประมวลผลสาเร็จหรือไม่

ตัวดึงข้อความของผู้ให้บริการ

ตัวดึงข้อความของตัวให้บริการคือโฟลว์ Power Automate ที่ดึงข้อความในช่วงเวลาที่กําหนดจากบริการภายนอกเป็นประจำ

หมายเหตุ

ตัวจัดการข้อความเป็นเงื่อนไขเบื้องต้นของโฟลว์ตัวดึงข้อความ

ต่อไปนี้เป็นโครงสร้างตัวอย่างของการสร้างชนิดตัวดึงข้อความของโฟลว์ Power Automate

  1. ใช้เวิร์กโฟลว์ที่เกิดซ้ำ เพื่อจัดกำหนดการทริกเกอร์

  2. รับจุดตรวจสอบจาก Dataverse จุดตรวจสอบจะติดตามว่าข้อความใดถูกดึงมาจากตัวให้บริการภายนอกเสร็จเรียบร้อยแล้ว เพิ่มรายละเอียดต่อไปนี้

    1. ชื่อการปฏิบัติการ: ชื่อส้หรับจุดตรวจสอบ

    2. WorkflowId: ตั้งค่าฟังก์ชันสร้างต่อไปนี้เพื่อดึงข้อมูลนี้: workflow()['tags']['xrmWorkflowId']
      ภาพหน้าจอของ รับจุดตรวจสอบ

  3. สร้างการร้องขอการลงรายการบัญชี HTTP ไปยังผู้ให้บริการภายนอกเพื่อดึงข้อความ เพิ่มรายละเอียดต่อไปนี้

    1. วิธีการ: ตั้งค่าฟิลด์นี้เป็น ลงรายการบัญชี

    2. URL: ปลายทางของตัวให้บริการภายนอก

    3. เนื้อหา: การร้องขอ JSON ควรมีสูตรต่อไปนี้: ถ้า(ว่างเปล่า(ผลลัพธ์('Get_Checkpoint')?[' body/Checkpoint']), 0, int(เอาท์พุท('Get_Checkpoint')?[' body/Checkpoint']))
      ภาพหน้าจอของ ดึงข้อความ

  4. แยกวิเคราะห์ข้อความที่ถูกดึงไว้ในขั้นตอนที่ 3 เพิ่มรายละเอียดต่อไปนี้

    1. เนื้อหา: เนื้อหาที่ถูกดึงขั้นตอน 3

    2. เค้าร่าง: โครงสร้างของเนื้อหาที่ถูกดึงข้อมูลขั้นตอน 3
      ภาพหน้าจอของ แยกวิเคราะห์ข้อความ

  5. ประมวลผลข้อความเพื่อวนแต่ละข้อความจากขั้นตอนที่ 4

  6. แยกวิเคราะห์แต่ละข้อความจากขั้นตอนก่อนหน้านี้ เพิ่มข้อมูลต่อไปนี้

    1. เนื้อหา: รายการปัจจุบัน จากข้อความกระบวนการ

    2. เค้าร่าง: ข้อความเดียวในรูปแบบ JSON
      ภาพหน้าจอของ ประมวลผลข้อความ 2

  7. เรียกตัวจัดการข้อความของผู้ให้บริการที่เกี่ยวข้อง ซึ่งคุณตั้งค่าในข้อกำหนดเบื้องต้น เพิ่มข้อมูลต่อไปนี้

    1. โฟลว์รอง: เลือกตัวจัดการข้อความของผู้ให้บริการ

    2. ข้อความ: ข้อความแยกวิเคราะห์จากขั้นตอน 6
      ภาพหน้าจอของ ประมวลผลข้อความ 3

  8. บันทึกจุดตรวจสอบเป็น Dataverse เพิ่มข้อมูลต่อไปนี้

    1. จุดตรวจสอบ: ค่านี้สามารถเป็นค่าสตริง (สูงสุด 100) ในตัวอย่างนี้ นี่คือรหัสของข้อความที่ประมวลผลล่าสุด

    2. WorkFlowId: คุณสามารถดึงข้อมูลรหัสนี้โดยเพิ่มฟังก์ชันส่วนประกอบที่ตั้งค่าเป็นล 10/> ['tags']['xrmWorkflowId']
      ภาพหน้าจอของ ประมวลผลข้อความ 4

การดำเนินการของผู้ให้บริการ

เรียกโฟลว์การดำเนินการของผู้ให้บริการจากตัวออกแบบการประสานรวม โดยทั่วไปโฟลว์เหล่านี้เรียกจาก Intelligent Order Management ไปยังบริการภายนอก

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

ต่อไปนี้เป็นโครงสร้างตัวอย่างสำหรับโฟลว์ Power Automate ของการดำเนินการของผู้ให้บริการ

  1. เริ่มต้นด้วยทริกเกอร์ HTTP ข้อมูลต่อไปนี้จะถูกส่งผ่านเมื่อรันไทม์ โดยบริการการผสานรวม เค้าร่าง JSON ต่อไปนี้จะใช้สำหรับเนื้อความ:
{
    "type": "object",
    "properties": {
        "text": {
            "title": "ProviderActionExecutionEventId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        },
        "text_1": {
            "title": "EntityRecordId",
            "type": "string",
            "x-ms-dynamically-added": true,
            "description": "Please enter your input",
            "x-ms-content-hint": "TEXT"
        }
    },
    "required": [
        "text",
        "text_1"
    ]
}
  1. เริ่มต้นการประมวลผลการดำเนินการ

    1. เริ่มต้นผลลัพธ์ของการดำเนินการ และตัวแปรการประมวลผลอื่นใดๆ

    2. ยอมรับการเริ่มต้นของการดำเนินการโดยใช้การดำเนินการ เริ่มต้นการดำเนินการของผู้ให้บริการ Dataverse ซึ่งจะอนุญาตให้ไปป์ไลน์ติดตาม ลองใหม่ และแสดงสถานะการประมวลผลภายใน Intelligent Order Management เพิ่มข้อมูลต่อไปนี้

      1. ProviderActionExercutionAventId: ค่านี้ถูกส่งผ่านเข้าสู่การปฏิบัติการเป็นพารามิเตอร์อินพุทขั้นตอน 1

      2. PowerAutomateRunID: การรันการ action Power Automate เฉพาะ ซึ่งช่วยให้ไปป์ไลน์สามารถเชื่อมโยงล็อกการดำเนินการได้ รับข้อมูลนี้โดยการตั้งค่าฟิลด์เป็นนิพจน์ Power Automate worflow()['run']?[' name']

  2. ดำเนินการ

    1. หากจําเป็น ให้แปลงเรกคอร์ดโดยใช้โฟลว์รอง แปลงข้อความด้วย Power Query Online

      1. ชื่อผู้ให้บริการ: ชื่อของตัวให้บริการที่จะเชื่อมโยงกับการคลิกคลิก ชื่อต้องเป็นชื่อเดียวกับคำนิยามผู้ให้บริการของคุณ

      2. ชื่อออบเจ็กต์ต้นทาง: ชื่อต้นทางของการแปลงที่จะปฏิบัติ ชื่อนี้ต้องตรงกับออบเจ็กต์ต้นทางเดียวที่กําหนดในการแปลงข้อมูล Power Automate ของคุณ

      3. ชื่อออบเจ็กต์ปลายทาง: ค่าคีย์การค้นหาปลายทางของการแปลงที่จะปฏิบัติ ชื่อนี้ต้องเหมือนกับค่าที่กําหนดในการแปลงข้อมูลผู้ให้บริการ

      4. Payload: ให้เมื่อแปลงโหลด JSON ขาเข้า Power Automate ต้องมีการส่งผ่านพารามิเตอร์เป็นสตริงแบบซีเรียลไลซ์ เพิ่ม ส่วนข้อมูล หรือค่า รหัสเรกคอร์ด ไม่ใช่ทั้งสองค่า

      5. รหัสเรกคอร์ด: ให้ไว้เมื่อแปลงเรกคอร์ด Dataverse ขาออก เพิ่ม ส่วนข้อมูล หรือค่า รหัสเรกคอร์ด ไม่ใช่ทั้งสองค่า
        ภาพหน้าจอของข้อความการแปลงด้วย Power Query Online

    2. ปฏิบัติการดำเนินการที่กําหนดเองใดๆ ที่คุณกําหนดไว้ สิ่งเหล่านี้คือการดำเนินการที่แสดงบนตัวเชื่อมต่อ Power Automate ที่คุณใช้งาน

    3. ยกระดับเหตุการณ์ทางธุรกิจเฉพาะการดำเนินการ ใช้โฟลว์รอง ยกระดับเหตุการณ์ทางธุรกิจ เพิ่มข้อมูลต่อไปนี้

      1. Business1Name: ชื่อของเหตุการณ์ที่คุณต้องการเพิ่ม

      2. EntityRecordId: รหัสของเรกคอร์ดที่สัมพันธ์กับเหตุการณ์

  3. ดําเนินการให้เสร็จสมบูรณ์และบันทึกผลลัพธ์ ผลลัพธ์จะได้รับการประมวลผลโดยตัวออกแบบการประสานรวม เพิ่มข้อมูลต่อไปนี้

    1. ExecutionResult: แบบบูลีนค่าเพื่อบ่งชี้ว่าการประมวลผลสาเร็จหรือไม่

    2. ExecutionDetails: รายละเอียดล็อกที่เลือกระบุเพื่อวัตถุประสงค์ในการทดสอบและการดีบัก

    3. ProviderActionExercutionAventId: ค่านี้ถูกส่งผ่านเข้าสู่การปฏิบัติการเป็นพารามิเตอร์อินพุทที่ขั้นตอน 1
      ภาพหน้าจอของ การปฏิบัติการดำเนินการของผู้ให้บริการที่สมบูรณ์

โฟลว์รอง

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

โฟลว์รองของผู้ให้บริการไม่สามารถเรียกโฟลว์รองของผู้ให้บริการอื่นได้

สร้างโฟลว์ระบบคลาวด์

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

  1. เปิดโซลูชันเริ่มต้นในสภาพแวดล้อม Power Apps ของคุณ

สำคัญ

อย่าเพิ่มโซลูชันเหล่านี้ลงในโซลูชันผู้ให้บริการของคุณ

  1. เลือก ใหม่ แล้วเลือก โฟลว์ระบบคลาวด์

  2. สร้างโฟลว์ Power Automate ของคุณ ใช้เทมเพลตในส่วนก่อนหน้านี้สำหรับการอ้างอิง

  3. อ้างถึงส่วนต่อไปนี้ เพื่อบันทึกการโฟลว์ของคุณ

บันทึกคำนิยาม Power Automate

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

คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้ ก่อนที่คุณจะสามารถบันทึกโฟลว์ของคุณได้

  • เมื่อต้องการบันทึกนิยามตรรกะ Power Automate ของคุณ คุณจะต้องออกใช้การร้องขอ OData ในการทำดังนี้ คุณต้องมีบัญชีที่มี PostMan หรือบริการที่คล้ายกัน

  • คุณจะต้องสร้างโทเค็นการเข้าใช้ให้กับสภาพแวดล้อม Dataverse ของคุณ เพื่อออกใช้การร้องขอ GET และ POST

    • ตั้งค่าบัญชี Azure ที่มีการบอกรับเป็นสมาชิกที่ใช้งานอยู่ หากคุณไม่มีบัญชีที่ใช้งานอยู่ คุณต้องตั้งค่าบัญชีบน เว็บไซต์ Azure

    • ต้องติดตั้ง PowerShell สำหรับข้อมูลเพิ่มเติม ให้ดูที่ การติดตั้ง PowerShell

    • ป้อนใบสั่งต่อไปนี้ใน PowerShell เพื่อรับโทเคนการเข้าถึง: az login --allow-no-subscriptions account get-access-token --resource=https://YourDataverseTenantURL.api.crm.dynamics.com/ --query=accessToken --output=tsv | Set-Clipboard

เมื่อต้องการบันทึกคำนิยาม Power Automate ของคุณ ให้ดังต่อไปนี้

  1. ค้นหารหัสเวิร์กโฟลว์ของโฟลว์ Power Automate ที่คุณต้องการบันทึก ดำเนินการตามข้อใดข้อหนึ่งต่อไปนี้

    1. ค้นหารหัสเวิร์กโฟลว์ โดยใช้การดำเนินการ Power Automate

      1. สร้างการดำเนินการสร้างที่มีนิพจน์ workflow() ที่ตอนท้ายของโฟลว์ Power Automate ของคุณ
        ภาพของการดำเนิการสร้าง

      2. รัน Power Automate

      3. คุณสมบัติ xrmWorkflowId จากผลลัพธ์ของการดําเนินการ จะประกอบด้วยรหัสเวิร์กโฟลว์
        ภาพหน้าจอของรหัสเวิร์กโฟลว์

      4. ลบการดำเนินการนี้ออกจากโฟลว์ เพื่อให้ไม่ได้รันอีก

    2. อีกทางหนึ่งคือ คุณสามารถออกใช้การร้องขอ Get OData ได้

      1. ไปที่โฟลว์ที่คุณต้องการบันทึกรหัสเวิร์กโฟลว์ ค้นหาตัวระบุเฉพาะใน URL นี่เป็นรหัสที่ปรากฏหลังจาก .. /flows/ ใน URL
        วิธีค้นหารหัสเฉพาะ

      2. ออกใช้การร้องขอ OData เพื่อดึงข้อมูลข้อมูลเมตาของเวิร์กโฟลว์ รายการต่อไปนี้เป็นการร้องขอ GET ตัวอย่าง
        GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{รหัสลำดับงานเฉพาะจาก Power Automate U}'&$select=workflowid,workflowidunique

      3. บันทึกคุณสมบัติ workflowid ที่ส่งคืน

  2. ค้นหารหัสคำนิยามผู้ให้บริการ

    1. เลือกคำนิยามผู้ให้บริการที่คุณต้องการบันทึกโฟลว์ไป

    2. คัดลอกรหัสคำนิยามผู้ให้บริการจาก URL นี่เป็นส่วนหนึ่งของ URL ../id={example number}/
      วิธีค้นหารหัสคำนิยามผู้ให้บริการ

  3. จดบันทึกค่าชุดตัวเลือกสำหรับชนิดของ Power Automate ที่คุณบันทึก

    1. โฟลว์รอง: 192350002

    2. การปฏิบัติการให้ตัวให้บริการ: 192350001

    3. ตัวจัดการข้อความของผู้ให้บริการ: 192350000

    4. ตัวดึงข้อความของผู้ให้บริการ: 192350003

  4. ออกใช้การร้องขอ POST เพื่อบันทึกนิยาม Power Automate ของคุณ รายการต่อไปนี้เป็นการร้องขอตัวอย่าง

    POST: {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionLogicDefinition  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"WorkflowId": "{Power Automate WorkflowId previously found}",

"LogicalName": "{Export prefix \_ Power Automate Export Name}",

"LogicType": {Logic Type},

"MaxRetryAttempts": {Max number of attempts},

"TimeoutMinutes": {Timeout number ex: 5}

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

    1. ไปที่โซลูชันผู้ให้บริการของคุณ

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

บันทึกการอ้างอิงการเชื่อมต่อ

ถ้าผู้ให้บริการของคุณใช้ตัวเชื่อมต่อ Power Automate ของลูกค้า คุณต้องปฏิบัติตามขั้นตอนต่อไปนี้ เพื่อบันทึกการอ้างอิงการเชื่อมต่อไปยังโซลูชัน Power Automate ของคุณ

  1. ออกใช้การร้องขอ GET เพื่อดึงข้อมูลรหัสการอ้างอิงการเชื่อมต่อของคุณ ตัวอย่างเช่น:
GET {Env url}/api/data/v9.2/connectionreferences

ถ้าคุณต้องการกรองข้อมูลเพิ่มเติม คุณสามารถกรองข้อมูลตามชื่อการอ้างอิงการเชื่อมต่อ ตัวอย่างเช่น:

    {Env url}/api/data/v9.2/connectionreferences?$[connectionreferences?$filter=connectionreferencedisplayname](https://orgdb90e3a2.api.crm10.dynamics.com/api/data/v9.2/connectionreferences?$filter=connectionreferencedisplayname) eq 'Provider Example'&$select=connectionreferencelogicalname,connectionreferencedisplayname,connectionreferenceid,connectorid

  1. ตรวจสอบว่าได้ดึงข้อมูลรหัสการอ้างอิงการเชื่อมต่อที่ถูกต้อง โดยการค้นหาข้อมูลไคลเอนต์ Power Automate ของคุณ

    1. ไปที่ส่วนประกอบของคำนิยามตรรกะของคำนิยามผู้ให้บริการ ที่คุณบันทึกก่อนหน้านี้

    2. ตรวจสอบข้อมูลไคลเอนต์เพื่อตรวจสอบว่า connectionReferenceLogicalName ปรากฏขึ้น

  2. ค้นหารหัสคำนิยามผู้ให้บริการของคุณ ค่านี้จะเป็นค่าเดียวกันกับที่คุณใช้ในขั้นตอนที่ 2 เพื่อบันทึกนิยามตรรกะ Power Automate ของคุณ

  3. ออกใช้การร้องขอ POST เพื่อบันทึกการอ้างอิงการเชื่อมต่อของคุณ ตัวอย่างเช่น:

POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference  
    Body:  
    {

"ProviderDefinitionId": "{ProviderId previously found}",

"ConnectionReferenceId": "{Connection reference id previously found}"

}
  1. ตรวจสอบว่าได้เพิ่มส่วนประกอบของคำนิยามตรรกะของคำนิยามผู้ให้บริการของคุณแล้ว

    1. ไปที่โซลูชันผู้ให้บริการของคุณ

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

แบ่งปันผู้ให้บริการของคุณ

ถ้าคุณต้องการใช้ข้อนิยามผู้ให้บริการของคุณในสภาพแวดล้อมอื่นหรือใช้โซลูชันของคุณร่วมกัน คุณสามารถส่งออกโซลูชันผู้ให้บริการได้ สำหรับข้อมูลเพิ่มเติม โปรดดู ส่งออกโซลูชัน