แชร์ผ่าน


สร้างผู้ให้บริการการรับคำสั่งซื้อ

หัวข้อนี้อธิบายขั้นตอนที่ต้องใช้ในการสร้างผู้ให้บริการการรับใน Microsoft Dynamics 365 Intelligent Order Management

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

เมื่อต้องการสร้างคำนิยามผู้ให้บริการใหม่ ให้ทำตามขั้นตอนเหล่านี้

  1. ไปที่ ผู้ให้บริการ > แค็ตตาล็อก
  2. เลือก คำนิยามผู้ให้บริการใหม่
  3. สำหรับ ชื่อที่แสดง ป้อน "IOMLabOrderIntakeProvider"
  4. สำหรับ ชื่อตรรกะ ป้อน "msdyn_IOMLabOrderIntakeProvider"
  5. สำหรับ โลโก้ เลือก "IOMLab.png"
  6. สำหรับ ชนิดบริการ ป้อน "การรับคำสั่งซื้อ"
  7. สำหรับ คำอธิบาย ป้อน "ผู้ให้บริการการรับคำสั่งซื้อแล็บ IOM"
  8. เลือก บันทึกและปิด

เพิ่มคำนิยามผู้ให้บริการลงในโซลูชัน

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

  1. ไปที่ Power Apps Maker Portal และนําทางไปยังโซลูชันที่สร้างขึ้นใหม่ IOMLabProviders
  2. เลือก เพิ่มคำนิยามผู้ให้บริการ IOM > ที่มีอยู่
  3. เลือก IOMLabOrderIntakeProvider แล้วเลือก เพิ่ม เพื่อเพิ่มไปยังโซลูชัน

เพิ่มการแปลงไปยังคำนิยามผู้ให้บริการ

ในการเพิ่มการแปลงในคำนิยามผู้ให้บริการ ให้ทำตามขั้นตอนเหล่านี้

  1. ไปที่ ผู้ให้บริการ > แค็ตตาล็อก
  2. เลือก IOMLabOrderIntakeProvider ที่สร้างขึ้นใหม่
  3. เลือก แก้ไข บนแถบเมนู
  4. เลือกแท็บ การแปลงข้อมูล
  5. เลือก + การแปลงคำนิยามผู้ให้บริการ IOM ใหม่
  6. สำหรับ ชื่อที่แสดง ป้อน "ใบสั่ง IOMLab ไปยังใบสั่ง Dataverse"
  7. สำหรับ ชื่อตรรกะ ป้อน "msdyn_IOMLabOrderIntake_Order"
  8. สำหรับ คำนิยามผู้ให้บริการ ป้อนหรือเลือก IOMLabOrderIntakeProvider
  9. สำหรับ ชื่อออบเจ็กต์ต้นทาง ป้อน "IOMLabOrderIntakeProvider"
  10. สำหรับ ชื่อออบเจ็กต์ปลายทาง ป้อน "ใบสั่ง Dataverse"
  11. สำหรับ การแปลง วางในรหัสการสอบถาม M ต่อไปนี้:
shared ImportMappingKey = [
    account = {
			[
				ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
				SelectedFields = {"accountid"}
			]
    },
		pricelevel = {
			[
				ExternalRecordKey = [ProviderName = "IOMLabOrderIntakeProvider"],
				SelectedFields = {"pricelevelid"}
			]
    },
		product = List.Distinct(List.Transform(Source[orderdetails], each
			[
				ExternalRecordKey = [sku = _[sku]],
				SelectedFields = {"productid"}
			])),
		uom = List.Distinct(List.Transform(Source[orderdetails], each
			[
				ExternalRecordKey = [unit = _[unit]],
				SelectedFields = {"uomid"}
			]))
];
shared TransformSourceData =
let
	orderProducts = Source[orderdetails],
	account = IOM.MapRecord(IOM.MappingTables[account], [ProviderName = "IOMLabOrderIntakeProvider"]),
	pricelevel = IOM.MapRecord(IOM.MappingTables[pricelevel], [ProviderName = "IOMLabOrderIntakeProvider"]),
			
	orderheader = Record.FromTable
					(
						Table.SelectRows
						(
							Record.ToTable
							(
								[
									ordernumber = Text.From(Source[ordernumber]),
									name = ordernumber,
									#"customerid_account@odata.bind" = "/accounts(" & Text.From(account[accountid]) & ")",
									#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(pricelevel[pricelevelid]) & ")",
									billto_city = Record.FieldOrDefault(Source, "billtocity"),
									billto_stateorprovince = Record.FieldOrDefault(Source, "billtostateorprovince"),
									billto_country = Record.FieldOrDefault(Source, "billtocountry"),
									billto_postalcode = Record.FieldOrDefault(Source, "billtozip"),
									shipto_city = Record.FieldOrDefault(Source, "shiptocity"),
									shipto_stateorprovince = Record.FieldOrDefault(Source, "shiptostateorprovince"),
									shipto_country = Record.FieldOrDefault(Source, "shiptocountry"),
									shipto_postalcode = Record.FieldOrDefault(Source, "shiptozip")
								]
							), each [Value] <> null
						)
					),

	orderlines = List.Transform(orderProducts, each
						Record.FromTable
						(
							Table.SelectRows
							(
								Record.ToTable
								(
									[
										ispriceoverridden = true,
										#"productid@odata.bind" = "/products(" & IOM.MapRecord(IOM.MappingTables[product], [sku = Record.FieldOrDefault(_, "sku")])[productid] & ")",
										#"uomid@odata.bind" = "/uoms(" & IOM.MapRecord(IOM.MappingTables[uom], [unit = Record.FieldOrDefault(_, "unit")])[uomid] & ")",
										quantity = [quantity],
										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")
									]
								), each [Value] <> null
							)
						)
					),

	salesorder = Record.AddField(orderheader, "order_details", orderlines)
in Text.FromBinary(Json.FromValue(salesorder));
  1. สำหรับ ชนิดต้นทางของการแปลง ป้อน "JsonPayload"
  2. เลือก บันทึก
  3. สร้างไฟล์ JSON วางในรหัสต่อไปนี้และบันทึก
{
  "ordernumber": "IOMLabOrder001",
  "shiptocity": "BELLEVUE",
  "shiptostateorprovince": "WA",
  "shiptocountry": "US",
  "shiptozip": "98007",
  "billtocity": "BELLEVUE",
  "billtostateorprovince": "WA",
  "billtocountry": "US",
  "billtozip": "98007",
  "orderdetails": [
    {
      "sku": "883988211855",
      "unit": "each",
      "quantity": 11
    }
  ]
} 

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

เพิ่มการแปลงคำนิยามผู้ให้บริการไปยังโซลูชัน

ในการเพิ่มการแปลงคำนิยามผู้ให้บริการลงในโซลูชัน ให้ทำตามขั้นตอนเหล่านี้

  1. ไปที่ Power Apps Maker Portal และนําทางไปยังโซลูชันที่สร้างขึ้นใหม่ IOMLabProviders
  2. เลือก เพิ่มการแปลงคำนิยามผู้ให้บริการ IOM > ที่มีอยู่
  3. เลือก ใบสั่ง IOMLab ไปยังใบสั่ง Dataverse แล้วเลือก เพิ่ม เพื่อเพิ่มไปยังโซลูชัน

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

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

  1. ไปที่ Power App Maker portal นำทางไปยัง โซลูชัน และเปิด โซลูชันเริ่มต้น

  2. เลือก ใหม่

  3. เลือก โฟลว์ระบบคลาวด์ แล้วตั้งชื่อว่า "IOM Cloud Order In ใช้ Message Request Handler"

  4. เลือกชนิดทริกเกอร์เป็น Outlook.com – เมื่ออีเมลใหม่มาถึง (V2) แล้วเข้าสู่ระบบด้วยข้อมูลส่วนบุคคลของบัญชี outlook.com

  5. สำหรับ โฟลเดอร์ เลือก กล่องจดหมายเข้า

  6. สำหรับ ถึง เลือก ที่อยู่อีเมลผู้รับคั่นด้วยเครื่องหมายอัฒภาคอ

  7. สำหรับ CC เลือก ที่อยู่อีเมลผู้รับ CC คั่นด้วยเครื่องหมายอัฒภาคอ

  8. สำหรับ ถึง หรือ CC เลือก ที่อยู่อีเมลผู้รับ หรือ CC คั่นด้วยเครื่องหมายอัฒภาคอ

  9. สำหรับ จาก เลือก ที่อยู่อีเมลผู้ส่งคั่นด้วยเครื่องหมายอัฒภาคอ

  10. สำหรับ รวมสิ่งที่แนบ เลือก ใช่

  11. สำหรับ ตัวกรองชื่อเรื่อง เลือก IOMLabOrderIntakeOrder

  12. สำหรับ ความสำคัญ เลือก ใดๆ

  13. สำหรับ เอกสารแนบเท่านั้น เลือก ใช่

    ทริกเกอร์ Outlook)

  14. เลือก ขั้นตอนใหม่ และเพิ่ม "Parse JSON"

  15. สำหรับ เนื้อหา ให้วางในรหัสต่อไปนี้

    {
    "ProviderId": "00000000-0000-0000-0000-000000000000"
    }
    
  16. วางโดยตรงในรหัสเค้าร่างตัวอย่างต่อไปนี้

    {
      "type": "object",
      "properties": {
        "ProviderId": {
          "type": "string"
        }
      }
    }
    
  17. เลือก เสร็จสิ้น

  18. เลือกปุ่มจุดไข่ปลา ("...") และจากนั้นเลือก เปลี่ยนชื่อ

  19. เปลี่ยนชื่อการกระบวนการ "คุณสมบัติของระบบ IOM"

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

    การดำเนินการคุณสมบัติของระบบ)

  21. เลือก ขั้นตอนใหม่ เพิ่มการดำเนินการ แยกวิเคราะห์ JSON และเปลี่ยนชื่อเป็น "เริ่มต้นตัวแปรผู้ให้บริการ"

  22. สำหรับ เนื้อหา ให้วางในรหัสต่อไปนี้

    {
      "SourceObjectName": "IOMLabOrderIntakeProvider",
      "DestinationObjectName": "Dataverse Order"
    }
    
  23. เลือก บันทึก

  24. เลือก ขั้นตอนใหม่ เพิ่มการดำเนินการ ตัวแปรเริ่มต้น และเปลี่ยนชื่อเป็น "เริ่มต้นผลลัพธ์การปฏิบัติการประมวลผล"

  25. สำหรับ ชื่อ ให้ป้อน "ExecutionResult"

  26. สำหรับ ชนิด เลือก แบบบูลีน

  27. สำหรับ ค่า เลือก จริง

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

    เริ่มต้นผลลัพธ์การปฏิบัติการประมวลผล

  29. เลือก ขั้นตอนใหม่ เพิ่ม "ขอบเขต" และเปลี่ยนชื่อเป็น "ความพยายาม"

  30. ในขอบเขต ความพยายาม ให้เลือก เพิ่มการดำเนินการ

  31. เพิ่ม "ทำการดำเนินการที่ไม่ถูกผูก" จากตัวเชื่อมต่อ Dataverse และเปลี่ยนชื่อ "ยอมรับข้อความของผู้ให้บริการใน IOM"

  32. สำหรับ ชื่อการดำเนินการ ป้อน "msdyn_CreateProviderMessageRequestExecution"

  33. สำหรับ PowerAutomateWorkflowId แล้วป้อน workflow()['tags']['xrmWorkflowId'] เป็นนิพจน์

  34. สำหรับ PowerAutomateRunId แล้วป้อน workflow()['run']?['name'] เป็นนิพจน์

  35. สำหรับ ProviderExternalRequestId แล้วป้อน guid() เป็นนิพจน์

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

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

  37. เลือก เพิ่มการดำเนินการ แล้วเพิ่มตัวควบคุม Apply to each

  38. สำหรับ เลือกผลลัพธ์จากขั้นตอนก่อนหน้า เลือก เอกสารแนบ

    ตัวควบคุม Apply to each

  39. เลือก เพิ่มการดำเนินการ ภายในลูป Apply to each เพิ่ม เรียกใช้โฟลว์รอง จากตัวเชื่อมต่อ โฟลว์ และเปลี่ยนชื่อ "แปลงข้อความด้วย Power Query Online"

  40. เลือกโฟลว์รอง ตัวแปลงของผู้ให้บริการ IOM

  41. สำหรับ รหัสผู้ให้บริการ เลือกตัวแปร ProviderId

  42. สำหรับ ชื่อออบเจ็กต์ต้นทาง เลือกตัวแปรSourceObjectName

  43. สำหรับ ชื่อออบเจ็กต์ปลายทาง เลือกตัวแปร DestinationObjectName

  44. สำหรับ ส่วนข้อความ แล้วป้อน decodeBase64(items('Apply_to_each')?['ContentBytes']) เป็นนิพจน์

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

    แปลงข้อความด้วย Power Query

  46. หลังจากขั้นตอนการแปลง แล้วเลือก เพิ่มการดำเนินการ เพิ่ม เรียกใช้โฟลว์รอง จากตัวเชื่อมต่อขั้นตอน และเปลี่ยนชื่อ "สร้างใบสั่ง"

  47. สำหรับ โฟลว์รอง ป้อน "การสร้างใบสั่งขาย IOM"

  48. สำหรับ ส่วนข้อความ แล้วป้อน string(json(outputs('Transform_Message_with_Power_Query_Online')?['Body']?['result'])?[0][0]) เป็นนิพจน์

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

    สร้างใบสั่ง

  50. ยุบขอบเขต ความพยายาม โดยเลือกแถบชื่อ

  51. เลือก ขั้นตอนใหม่ เพิ่มขอบเขตและเปลี่ยนชื่อ "จริง"

  52. ในขอบเขต จริง ให้เลือกจุดไข่ปลา ("...") เลือก กำหนดค่าทำงานหลังจาก

  53. เลือกกล่องกาเครื่องหมาย ล้มเหลว และ หมดเวลา จากนั้นเลือก เสร็จสิ้น

    ตั้งค่าคอนฟิกการเรียกใช้หลังจาก

  54. ในขอบเขต จริง ให้เลือก เพิ่มการดำเนินการ เพิ่มการดำเนินการ ตั้งค่าตัวแปร และเปลี่ยนชื่อ "ตั้งค่าผลลัพธ์การปฏิบัติการเป็นล้มเหลว"

  55. สำหรับ ชื่อ ให้ป้อน "Executionresult"

  56. สำหรับ ค่า เลือก เท็จ

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

    ตั้งค่าการดำเนินการผันแปร

  58. ยุบขอบเขต จริง โดยเลือกแถบชื่อ

  59. เลือก ขั้นตอนใหม่ เพิ่มขอบเขตและเปลี่ยนชื่อ "ในขั้นสุดท้าย"

  60. ในขอบเขต ในขั้นสุดท้าย ให้เลือกจุดไข่ปลา ("...") เลือก กำหนดค่าทำงานหลังจาก

  61. เลือกกล่องกาเครื่องหมาย สำเร็จ, ล้มเหลว, ข้าม และ หมดเวลา จากนั้นเลือก เสร็จสิ้น

    ตั้งค่าคอนฟิกการเรียกใช้หลังจาก (ขอบเขตในขั้นสุดท้าย)

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

  63. สำหรับ ชื่อการดำเนินการ ป้อน "msdyn_UpdateProviderMessageRequestStatus"

  64. สำหรับ ProviderMessageRequestExecutionId ป้อน @outputs('Acknowledge_the_Provider_Message_in_IOM')?["body/ProviderMessageRequestExecutionId']

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

    บันทึกผลการทำงานของการร้องขอข้อความของผู้ให้บริการ

เพิ่มคำนิยามตรรกะของคำนิยามผู้ให้บริการไปยังคำนิยามผู้ให้บริการ

หากต้องการเพิ่มนิยามตรรกะของคำนิยามผู้ให้บริการลงในคำนิยามผู้ให้บริการ ทำตามขั้นตอนเหล่านี้

  1. ในแอปพลิเคชัน Intelligent Order Management ของคุณ ไปที่ ผู้ให้บริการ > แค็ตตาล็อก
  2. เลือก IOMLabOrderIntakeProvider ที่สร้างขึ้นใหม่
  3. เลือก แก้ไข บนแถบเมนู
  4. เลือกแท็บ คำนิยามตรรกะ
  5. เลือก + สถานะของคำนิยามตรรกะของคำนิยามผู้ให้บริการ IOM ใหม่
  6. สำหรับ ชื่อที่แสดง ป้อน "ตัวจัดการคำขอข้อความการรับคำสั่งซื้อแล็บ IOM"
  7. สำหรับ ชื่อตรรกะ ป้อน "msdyn_LabOrderIntakeMessageRequestHandler"
  8. สำหรับ คำนิยามผู้ให้บริการ ป้อน "IOMLabOrderIntakeProvider"
  9. สำหรับ ชนิดตรรกะ ป้อน "ตัวจัดการข้อความของผู้ให้บริการ"
  10. สำหรับ ชื่อลำดับงาน ป้อน "ตัวจัดการคำขอข้อความการรับคำสั่งซื้อแล็บ IOM"
  11. สำหรับ การหมดเวลาเป็นนาที ป้อน "2"
  12. สำหรับ จำนวนครั้งลองใหม่สูงสุด ให้ป้อน "3"
  13. สำหรับ คำอธิบาย ป้อน "ตัวจัดการคำขอข้อความการรับคำสั่งซื้อแล็บ IOM"
  14. เลือก บันทึก งานนี้จะสร้างการนำเสนอ JSON ของโฟลว์ระบบคลาวด์ของตัวจัดการข้อความและเติมข้อมูลในฟิลด์ ข้อมูลไคลเอนต์
  15. เลือก บันทึกและปิด
  16. เลือก การเชื่อมต่อ คุณควรดูทั้งคำนิยามการอ้างอิงการเชื่อมต่อ Microsoft Dataverse และ Outlook.com ที่แสดงรายการไว้

หมายเหตุ

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

เพิ่มนิยามตรรกะของคำนิยามผู้ให้บริการลงในโซลูชัน IOMLabProviders

หากต้องการเพิ่มนิยามตรรกะของคำนิยามผู้ให้บริการลงในโซลูชัน IOMLabProviders ทำตามขั้นตอนเหล่านี้

  1. ไปที่ Power Apps Maker Portal และนําทางไปยังโซลูชันที่สร้างขึ้นใหม่ IOMLabProviders
  2. เลือก เพิ่มคำนิยามตรรกะของคำนิยามผู้ให้บริการ IOM > ที่มีอยู่
  3. เลือก ตัวจัดการคำขอข้อความการรับคำสั่งซื้อแล็บ IOM แล้วเลือก เพิ่ม เพื่อเพิ่มไปยังโซลูชัน

เพิ่มการอ้างอิงการเชื่อมต่อคำนิยามผู้ให้บริการไปยังโซลูชัน IOMLabProviders

หากต้องการเพิ่มการอ้างอิงการเชื่อมต่อของคำนิยามผู้ให้บริการลงในโซลูชัน IOMLabProviders ทำตามขั้นตอนเหล่านี้

  1. ไปที่ Power Apps Maker Portal และนําทางไปยังโซลูชันที่สร้างขึ้นใหม่ IOMLabProviders
  2. เลือก เพิ่มการอ้างอิงการเชื่อมต่อของคำนิยามผู้ให้บริการ IOM > ที่มีอยู่
  3. เลือกคำนิยามการอ้างอิงการเชื่อมต่อ Microsoft Dataverse และ Outlook.com และจากนั้นเลือก เพิ่ม เพื่อเพิ่มไปยังโซลูชัน

ขั้นตอนเริ่มต้นด่วนถัดไป: สร้างผู้ให้บริการการเติมสินค้า