แชร์ผ่าน


ทำงานกับโฟลว์กระบวนการธุรกิจโดยใช้โค้ด

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

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

หัวข้อนี้จะมีข้อมูลเกี่ยวกับวิธีที่คุณสามารถทำงานกับโฟลว์กระบวนการธุรกิจในเชิงภาษาโปรแกรม

Note

คุณไม่จำเป็นต้องเขียนโค้ดเพื่อทำงานกับโฟลว์กระบวนการธุรกิจ สําหรับข้อมูลเกี่ยวกับการใช้ไคลเอ็นต์ Dynamics 365 Customer Engagement (UI) เพื่อสร้างและจัดการโฟลว์กระบวนการธุรกิจ โปรดดู ภาพรวมโฟลว์กระบวนการธุรกิจ

ข้อกำหนดเบื้องต้นสำหรับโฟลว์กระบวนการธุรกิจ

เอนทิตีแบบกำหนดเองและเอนทิตีที่มีฟอร์ม UI ที่อัปเดต สามารถเข้าร่วมในโฟลว์กระบวนการธุรกิจได้ เอนทิตี UI ที่อัปเดตมีคุณสมบัติ IsAIRUpdated ที่ตั้งค่าเป็น true

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

สําคัญ

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

กำหนดโฟลว์กระบวนการธุรกิจ

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

ตามค่าเริ่มต้น เรกคอร์ดโฟลว์กระบวนการธุรกิจจะถูกสร้างขึ้นในสถานะ Draft

ข้อกำหนดของโฟลว์กระบวนการธุรกิจจะถูกเก็บไว้ในเอนทิตี workflow และข้อมูลลำดับขั้นสำหรับโฟลว์กระบวนการธุรกิจจะถูกเก็บไว้ในเอนทิตี processstage

เริ่มการใช้งานโฟลว์กระบวนการธุรกิจ

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

Note

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

เอนทีตีโฟลว์กระบวนการธุรกิจ

เมื่อคุณเปิดใช้งานข้อกำหนดโฟลว์กระบวนการธุรกิจโดยการเปลี่ยนสถานะของเรกคอร์ดเอนทิตี Workflow ที่สอดคล้องกันหรือโดยการใช้ตัวออกแบบโฟลว์กระบวนการธุรกิจ เอนทิตีแบบกำหนดเองที่มีชื่อต่อไปนี้จะถูกสร้างขึ้นโดยอัตโนมัติเพื่อจัดเก็บอินสแตนซ์โฟลว์กระบวนการธุรกิจที่มีการเริ่มการใช้งาน: "<activesolutionprefix>_<uniquename>" โดยที่ uniquename จะได้มาจากชื่อที่คุณระบุ

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

ถ้าไม่มีการระบุค่า uniquename สำหรับข้อกำหนดโฟลว์กระบวนการธุรกิจ ตัวอย่างเช่น ถ้ามีการนำเข้าโฟลว์กระบวนการทางธุรกิจมาเป็นส่วนหนึ่งของโซลูชันจากเวอร์ชันก่อนหน้า ชื่อเริ่มต้นของเอนทิตีแบบกำหนดเองจะเป็น "<activesolutionprefix>_bpf_<GUID_BPF_Definition>:

สําคัญ

เรกคอร์ดโฟลว์กระบวนการธุรกิจตัวอย่างที่มีอยู่ใน Dynamics 365 ใช้เอนทิตีของระบบเพื่อจัดเก็บเรกคอร์ดของอินสแตนซ์โฟลว์กระบวนการธุรกิจที่สอดคล้องกัน เรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจตัวอย่างสองรายการคือ เอนทิตี OpportunitySalesProcess และ เอนทิตี LeadToOpportunitySalesProcess

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

คุณสามารถเรียกดูชื่อของเอนทิตีโฟลว์กระบวนการธุรกิจของคุณโดยใช้วิธีใดก็ได้ต่อไปนี้:

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

    ชื่อเอนทิตี BPF

  • การใช้ API เว็บ: ใช้คำขอต่อไปนี้:

    ขอร้อง

    GET [Organization URI]/api/data/v9.1/workflows?$filter=name eq 'My Custom BPF'&$select=uniquename HTTP/1.1
    

    การตอบสนอง

    {  
    "@odata.context":"[Organization URI]/api/data/v9.1/$metadata#workflows(uniquename)",
    "value":[  
         {  
             "@odata.etag":"W/\"1084677\"",
             "uniquename":"new_mycustombpf",
             "workflowid":"2669927e-8ad6-4f95-8a9a-f1008af6956f"
         }
      ]
    }
    
    
  • การใช้บริการองค์กร: ใช้ตัวอย่างรหัสต่อไปนี้:

    QueryExpression query = new QueryExpression
    {
        EntityName = "workflow",
        ColumnSet = new ColumnSet("uniquename"),
        Criteria = new FilterExpression
        {
            Conditions =
            {
                new ConditionExpression
                {
                    AttributeName = "name",
                    Operator = ConditionOperator.Equal,
                    Values = { "My Custom BPF" }
                }
            }
        }
    };
    Workflow Bpf = (Workflow)_serviceProxy.RetrieveMultiple(query).Entities[0]; 
    
    

Note

คุณสมบัติ IsBPFEntity เป็น true สำหรับเอนทิตีโฟลว์กระบวนการธุรกิจ คุณสามารถเรียกใช้เอนทิตีโฟลว์กระบวนการธุรกิจทั้งหมดได้ในอินสแตนซ์ของคุณ โดยการเรียกใช้คำขอ API สำหรับเว็บต่อไปนี้:

GET [Organization URI]/api/data/v9.1/EntityDefinitions?$select=SchemaName,LogicalName,DisplayName&$filter=IsBPFEntity eq true HTTP/1.1

จัดการความปลอดภัยสำหรับโฟลว์กระบวนการธุรกิจ

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

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

สิทธิ์การใช้งาน BPF

สร้าง เรียกใช้ อัปเดต และลบเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจ (อินสแตนซ์กระบวนการ)

เอนทิตีแบบกำหนดเองที่ถูกสร้างขึ้นโดยอัตโนมัติในการเปิดใช้งานข้อกำหนดของโฟลว์กระบวนการธุรกิจ จะจัดเก็บอินสแตนซ์กระบวนการทั้งหมดสำหรับข้อกำหนดของโฟลว์กระบวนการธุรกิจ เอนทิตีแบบกำหนดเองสนับสนุนการสร้างเชิงโปรแกรมมาตรฐานและการจัดการของเรกคอร์ด (อินสแตนซ์กระบวนการ) โดยใช้จุดสิ้นสุด API สำหรับเว็บและ CRM 2011

สําคัญ

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

มาพิจารณาตัวอย่างต่อไปนี้ที่ซึ่งเรามีโฟลว์กระบวนการธุรกิจระหว่างเอนทิตี "BPF แบบกำหนดเองของฉัน" ที่มี 3 ขั้นตอน: S1:ลูกค้าองค์กร S2:ลูกค้าองค์กร และ S3:ผู้ติดต่อ

BPF ตัวอย่าง

เรียกใช้เรกคอร์ดทั้งหมด (อินสแตนซ์) สำหรับเอนทิตีโฟลว์กระบวนการธุรกิจ

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

GET [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 

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

Note

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

สร้างเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจ (อินสแตนซ์ของกระบวนการ)

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

(!หมายเหตุ) เมื่อคุณสร้างเรกคอร์ดในส่วนติดต่อแบบรวมและคุณไม่ต้องการให้มีโฟลว์กระบวนการธุรกิจที่เชื่อมโยงกับเรกคอร์ด ให้สร้างสคริปต์ onload ที่เรียกใช้ setActiveProcess และส่งผ่าน processID (GUID) ที่ว่างเปล่า ตัวอย่างโค้ด formcontext.data.process.setActiveProcess('00000000-0000-0000-0000-000000000000', (a)=>{​​alert("changed -- " + a)}​​)

เพื่อสร้างเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจ คุณจำเป็นต้องระบุค่าต่อไปนี้:

  • เชื่อมโยงเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจกับเรกคอร์ดเอนทิตีหลัก โดยการตั้งค่าคุณสมบัติการนำทางที่เป็นค่าเดียวโดยใช้คำอธิบายประกอบ @odata.bind เมื่อต้องการค้นหาชื่อคุณสมบัติการนำทางที่ชี้ไปยังเรกคอร์ดเอนทิตีหลักสำหรับข้อกำหนดโฟลว์กระบวนการธุรกิจของคุณ ให้ใช้ เอกสาร CSDL $metadata

  • เชื่อมโยงเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจกับลำดับขั้นที่ถูกต้องที่ระบุไว้ในข้อกำหนดโฟลว์กระบวนการธุรกิจ โดยการตั้งค่าคุณสมบัติการนำทางที่เป็นค่าเดียวโดยใช้คำอธิบายประกอบ @odata.bind เมื่อต้องการค้นหาชื่อคุณสมบัติการนำทาง (โดยปกติ activestageid) ที่ชี้ไปยังเรกคอร์ดของลำดับขั้นสำหรับข้อกำหนดโฟลว์กระบวนการธุรกิจของคุณ ให้ใช้ เอกสาร CSDL $metadata

    นอกจากนี้ คุณสามารถเรียกดูข้อมูลเกี่ยวกับลำดับขั้นทั้งหมดสำหรับข้อกำหนดโฟลว์กระบวนการธุรกิจได้โดยใช้คำขอ API เว็บต่อไปนี้ โดยสมมติว่า ID ของข้อกำหนดโฟลว์กระบวนการธุรกิจของคุณคือ 2669927e-8ad6-4f95-8a9a-f1008af6956f:

    ขอร้อง

    GET [Organization URI]/api/data/v9.1/processstages?$select=stagename&$filter=processid/workflowid eq 2669927e-8ad6-4f95-8a9a-f1008af6956f HTTP/1.1
    

    การตอบสนอง

    {
        "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#processstages(stagename)",
        "value": [
            {
                "@odata.etag": "W/\"858240\"",
                "stagename": "S1",
                "processstageid": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b"
            },
            {
                "@odata.etag": "W/\"858239\"",
                "stagename": "S3",
                "processstageid": "a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a"
            },
            {
                "@odata.etag": "W/\"858238\"",
                "stagename": "S2",
                "processstageid": "19a11fc0-3398-4214-8522-cb2a97f66e4b"
            }
        ]
    }
    

จากนั้น ให้ใช้คำขอต่อไปนี้เพื่อสร้างอินสแตนซ์ของข้อกำหนดโฟลว์กระบวนการธุรกิจสำหรับเรกคอร์ดบัญชีผู้ใช้ (ID=a176be9e-9a68-e711-80e7-00155d41e206) และกำหนดลำดับขั้นที่ใช้งานอยู่เป็นลำดับขั้นแรกของอินสแตนซ์ของกระบวนการ S1 (ID=9a9185f5-b75b-4bbb-9c2b-a6626683b99b):

ขอร้อง

POST [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Accept: application/json 

{
    "bpf_accountid@odata.bind": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)",
    "activestageid@odata.bind": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"    
}

การตอบสนอง

HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.1/new_mycustombpfs(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

โปรดทราบว่า หากคุณต้องการสร้างอินสแตนซ์ของข้อกำหนดโฟลว์กระบวนการธุรกิจที่มีการกำหนดลำดับขั้นที่ใช้งานอยู่เป็นลำดับขั้น อื่น นอกจากลำดับขั้นแรก คุณยังต้องระบุ traversedpath ในคำขอของคุณด้วย เส้นทางที่ตรวจสอบเป็นสตริงที่คั่นด้วยจุลภาคของรหัสลำดับขั้นของกระบวนการ ซึ่งแสดงถึงลำดับขั้นที่เข้าเยี่ยมชมของอินสแตนซ์ของโฟลว์กระบวนการธุรกิจ คำขอต่อไปนี้จะสร้างอินสแตนซ์สำหรับเรกคอร์ดบัญชีผู้ใช้ (ID=679b2464-71b5-e711-80f5-00155d513100) และกำหนดลำดับขั้นที่ใช้งานอยู่เป็นลำดับขั้น S2 (ID=19a11fc0-3398-4214-8522-cb2a97f66e4b)

POST [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Accept: application/json 

{
    "bpf_accountid@odata.bind": "/accounts(679b2464-71b5-e711-80f5-00155d513100)",
    "activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
    "traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"   
}

อัปเดตเรกคอร์ดเอนทิตีโฟลว์กระบวนการธุรกิจ (อินสแตนซ์ของกระบวนการ)

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

การนำทางของลำดับขั้น

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

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

สมมติว่า ID ของอินสแตนซ์ของกระบวนการที่คุณต้องการอัปเดตคือ dc2ab599-306d-e811-80ff-00155d513100 ให้ใช้คำขอต่อไปนี้เพื่ออัปเดตลำดับขั้นที่ใช้งานจาก S1 เป็น S2:

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
    "activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
    "traversedpath": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}

เปลี่ยนสถานะของอินสแตนซ์ของกระบวนการ: ยกเลิก เปิดใช้งานใหม่ หรือเสร็จสิ้น

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

  • statecode: จะแสดงสถานะของอินสแตนซ์ของกระบวนการ

    ค่า ฉลาก
    0 เน้นประธาน
    1 ปิดการใช้งาน
  • statuscode: แสดงข้อมูลเกี่ยวกับสถานะของอินสแตนซ์ของกระบวนการ

    ค่า ฉลาก
    1 เน้นประธาน
    2 เสร็จสิ้นแล้ว
    3 ยกเลิกแล้ว

ดังนั้น หากต้องการ ยกเลิก อินสแตนซ์ของกระบวนการ ให้ใช้คำขอต่อไปนี้เพื่อกำหนดค่า statecode และค่า statuscode อย่างเหมาะสม:

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1   
Content-Type: application/json   
OData-MaxVersion: 4.0   
OData-Version: 4.0 
  
{ 
    "statecode" : "1", 
    "statuscode": "3" 
}

Note

คุณสามารถยกเลิกอินสแตนซ์ของกระบวนการในลำดับขั้นใดก็ได้

ในทำนองเดียวกัน หากต้องการเปิดใช้อินสแตนซ์ของกระบวนการใหม่ ให้แทนที่ค่า statecode และค่า statuscode ในรหัสด้านบนด้วย 0 และ 1 ตามลำดับ

สุดท้าย หากต้องการตั้งค่าสถานะอินสแตนซ์ของกระบวนการเป็น เสร็จเรียบร้อย ซึ่งจะสามารถทำได้เฉพาะในลำดับขั้นสุดท้ายของอินสแตนซ์ของกระบวนการเท่านั้น ให้แทนที่ค่า statecode และค่า statuscode ในรหัสด้านบนด้วย 0 และ 2 ตามลำดับ

การนำทางระหว่างเอนทิตี

สำหรับการนำทางระหว่างเอนทิตีในตัวอย่างนี้ คุณต้องตั้งค่าลำดับขั้นที่ใช้งานอยู่ของอินสแตนซ์ของกระบวนเป็นลำดับขั้นสุดท้าย S3 (ID=a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a) และอัปเดตเส้นทางที่ตรวจสอบตามลำดับ รวมถึงตั้งค่าเรกคอร์ดผู้ติดต่อเป็นเรกคอร์ดเอนทิตีหลักตามข้อกำหนดโฟลว์กระบวนการทางธุรกิจ

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1   
Content-Type: application/json   
OData-MaxVersion: 4.0   
OData-Version: 4.0 
  
{
    "activestageid@odata.bind": "/processstages(a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a)",
    "traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b,a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a",
    "bpf_contactid@odata.bind": "/contacts(0e3f10b0-da33-e811-80fc-00155d513100)"
}

ลบเรกคอร์ดเอนทิตีของโฟลว์กระบวนการธุรกิจ (อินสแตนซ์ของกระบวนการ)

ใช้คำขอ API สำหรับเว็บต่อไปนี้:

ขอร้อง

DELETE [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1

การตอบสนอง

ถ้ามีเรกคอร์ดอยู่ คุณจะได้รับการตอบกลับตามปกติพร้อมสถานะ 204 เพื่อระบุว่าการลบสำเร็จแล้ว ถ้าไม่พบเอนทิตี คุณจะได้รับการตอบกลับพร้อมสถานะ 404

ใช้ข้อความ RetrieveProcessInstances และ RetrieveActivePath

ใช้ข้อความ RetrieveProcessInstances (RetrieveActivePath Function หรือ RetrieveProcessInstancesRequest) เพื่อดึงอินสแตนซ์ของโฟลว์กระบวนการธุรกิจทั้งหมดสำหรับเรกคอร์ดเอนทิตีในข้อกำหนดโฟลว์กระบวนการธุรกิจทั้งหมด อินสแตนซ์ของโฟลว์กระบวนการธุรกิจที่ส่งกลับสำหรับเอนทิตี จะถูกจัดเรียงตามแอตทริบิวต์ modifiedon สำหรับอินสแตนซ์ ตัวอย่างเช่น อินสแตนซ์ของโฟลว์กระบวนการธุรกิจที่ปรับเปลี่ยนครั้งล่าสุดจะเป็นเรกคอร์ด แรก ในคอลเลกชันที่ส่งกลับ อินสแตนซ์ของโฟลว์กระบวนการธุรกิจที่ปรับเปลี่ยนครั้งล่าสุดเป็นอินสแตนซ์ที่ใช้งานอยู่ใน UI สำหรับเรกคอร์ดเอนทิตี

เรกคอร์ดอินสแตนซ์ของโฟลว์กระบวนการธุรกิจแต่ละรายการที่ส่งกลับสำหรับเรกคอร์ดเอนทิตีเนื่องจากการใช้ข้อความ RetrieveProcessInstances จะจัดเก็บรหัสของลำดับขั้นที่ใช้งานอยู่ในแอตทริบิวต์ processstageid ที่สามารถใช้เพื่อค้นหาลำดับขั้นที่ใช้งานอยู่ แล้วจากนั้น ย้ายไปยังลำดับขั้นก่อนหน้าหรือถัดไป ในการดำเนินการดังกล่าว ขั้นแรกคุณต้องค้นหาพาธที่ใช้งานอยู่ของอินสแตนซ์ของโฟลว์กระบวนการธุรกิจและลำดับขั้นต่างๆ ที่พร้อมใช้งานในอินสแตนซ์กระบวนการธุรกิจโดยใช้ข้อความ RetrieveActivePath (RetrieveActivePath Function หรือ RetrieveActivePathRequest)

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

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

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

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

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

  1. ระบุโฟลว์กระบวนทางธุรกิจทั้งหมดที่สามารถใช้ได้กับเรกคอร์ดเอนทิตีใหม่โดยยึดตามแอตทริบิวต์ Workflow.PrimaryEntity ของเรกคอร์ดข้อกำหนดโฟลว์กระบวนการธุรกิจ
  2. ระบุข้อกำหนดโฟลว์กระบวนการธุรกิจที่ผู้ใช้ปัจจุบันมีสิทธิ์เข้าถึง สำหรับข้อมูลเกี่ยวกับวิธีที่การเข้าถึงโฟลว์กระบวนการธุรกิจถูกกำหนดและจัดการ โปรดดู จัดการความปลอดภัยสำหรับโฟลว์กระบวนการธุรกิจ ก่อนหน้าในหัวข้อนี้
  3. ข้อกำหนดโฟลว์กระบวนการธุรกิจทั้งหมดในระบบอยู่ภายใต้ลำดับส่วนกลางสำหรับแต่ละเอนทิตี ลำดับของโฟลว์กระบวนการธุรกิจจะถูกเก็บไว้ในแอตทริบิวต์ Workflow.ProcessOrder ข้อกำหนดโฟลว์กระบวนการธุรกิจสำหรับเอนทิตีจะถูกจัดเรียงโดยยึดตามลำดับนี้ และจะมีการเลือกลำดับที่มีค่าลำดับต่ำสุด
  4. สุดท้าย ถ้ามีการสร้างเรกคอร์ดเอนทิตีขึ้นจากแอปธุรกิจ (โมดูลแอป) จะมีการใช้การกรองระดับที่มากขึ้นเพื่อเลือกโฟลว์กระบวนการธุรกิจที่จะนำมาใช้กับเรกคอร์ดเอนทิตีใหม่โดยอัตโนมัติ เมื่อทำงานในแอป ผู้ใช้สามารถเข้าถึงเฉพาะเอนทิตี โฟลว์กระบวนการธุรกิจ มุมมอง และฟอร์มที่เกี่ยวข้องเท่านั้น ซึ่งผู้ใช้เข้าถึงได้โดยอาศัย Security role ที่กำหนดให้กับแอปธุรกิจ
    • ถ้าแอปธุรกิจไม่มีโฟลว์กระบวนการธุรกิจใดๆ อยู่ จากนั้น ระบบจะนำโฟลว์กระบวนการธุรกิจมาใช้ตามที่อธิบายไว้จนถึงขั้นตอนที่ 3
    • ถ้าแอปธุรกิจมีโฟลว์กระบวนการธุรกิจอย่างน้อยหนึ่งโฟลว์ จากนั้น เฉพาะโฟลว์กระบวนการธุรกิจที่มีอยู่ในแอปเท่านั้นที่สามารถใช้งานได้ ในกรณีนี้ เมื่อผู้ใช้กำลังทำงานในบริบทแอปธุรกิจ รายการของโฟลว์กระบวนการธุรกิจจากขั้นตอนที่ 3 จะถูกกรองไปยังส่วนที่เป็นส่วนหนึ่งของแอปธุรกิจที่อยู่ภายในโมดูลแอป และจะถูกจัดเรียงตามลำดับกระบวนการ
    • ถ้าไม่มีโฟลว์กระบวนการธุรกิจในแอปธุรกิจสำหรับเอนทิตีหรือที่ผู้ใช้มีสิทธิ์เข้าถึง ระบบจะไม่นำโฟลว์กระบวนการธุรกิจไปใช้สำหรับเรกคอร์ดเอนทิตีใหม่

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

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

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

Note

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

แอตทริบิวต์ที่เกี่ยวข้องกับกระบวนการเดิม (ProcessId, StageId และ TraversedPath) ในเอนทิตีที่เปิดใช้งานสำหรับโฟลว์กระบวนการธุรกิจ พร้อม API ไคลเอ็นต์ setProcess ไม่มีการสนับสนุนแล้ว การจัดการแอตทริบิวต์ที่เกี่ยวข้องกับกระบวนการเดิมสำหรับเรกคอร์ดเอนทิตีเป้าหมาย หรือการใช้ API ไคลเอ็นต์ setProcess ไม่ได้รับรองถึงความสอดคลองกันของสถานะโฟลว์กระบวนการธุรกิจ และไม่ใช่สถานการณ์ที่มีการสนับสนุน วิธีที่แนะนำก็คือการใช้แอตทริบิวต์ของเอนทิตีโฟลว์กระบวนการธุรกิจตามที่อธิบายไว้ก่อนหน้าในส่วน สร้าง เรียกใช้ อัปเดต และลบเรกคอร์ดเอนทีตีโฟลว์กระบวนการธุรกิจ (อินสแตนซ์ของกระบวนการ)

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

การสนับสนุนการเขียนโปรแกรมฝั่งไคลเอ็นต์สำหรับโฟลว์กระบวนการธุรกิจ

ด้วย Dynamics 365 มีออบเจ็กต์ฝั่งไคลเอ็นต์ที่คุณสามารถใช้เพื่อโต้ตอบกับโฟลว์กระบวนการธุรกิจในสคริปต์ฟอร์มของคุณ โฟลว์กระบวนการธุรกิจจะทริกเกอร์เหตุการณ์ฝั่งไคลเอ็นต์ทุกครั้งที่มีการใช้กระบวนการกับเรกคอร์ด ลำดับขั้นมีการเปลี่ยนแปลง หรือสถานะมีการเปลี่ยนแปลงเป็น ActiveFinished หรือ Aborted ข้อมูลเพิ่มเติม: formContext.data.process (การอ้างอิง API ไคลเอ็นต์)

จำนวนสูงสุดของกระบวนการ ขั้นตอน และขั้นตอน

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

การตั้งค่าต่อไปนี้ไม่สามารถกำหนดเองได้:

  • จำนวนสูงสุดของลำดับขั้นสำหรับแต่ละเอนทิตีในกระบวนการคือ 30

  • จำนวนสูงสุดของขั้นตอนในแต่ละลำดับขั้นคือ 30

  • จำนวนสูงสุดของเอนทิตีที่สามารถเข้าร่วมในโฟลว์กระบวนการคือ 5

ดูเพิ่มเติม