Chia sẻ qua


Tham chiếu máy chủ Process Mining Model Context Protocol (MCP) (bản xem trước)

[Bài viết này là tài liệu trước khi phát hành và có thể thay đổi.]

Máy chủ MCP Process Mining là một việc triển khai chuyên biệt Giao thức Ngữ cảnh Mô hình cung cấp khả năng phân tích quá trình khai thác cho các tác nhân AI và ứng dụng hội thoại. Nó cung cấp quyền truy cập có trình tự vào xử lý dữ liệu khai thác mỏ, cho phép tương tác ngôn ngữ tự nhiên với phân tích quy trình thông qua các máy khách tương thích VỚI MCP như Microsoft Copilot Studio.

Quan trọng

  • Đây là một tính năng xem trước.
  • Các tính năng xem trước không được dùng cho sản xuất và có thể có chức năng bị hạn chế. Những tính năng này khả dụng trước khi có bản phát hành chính thức để khách hàng có thể truy cập sớm và cung cấp phản hồi.
  • Để biết thêm thông tin, hãy truy cập điều khoản xem trước của chúng tôi.

Khả năng chính:

  • Khám phá quy trình: Liệt kê và khám phá các quy trình có sẵn và siêu dữ liệu của chúng
  • Phân tích và chỉ số: Truy xuất phân tích nút cổ chai, biến thể, trường hợp, cạnh và số liệu tổng hợp
  • Phân tích tương quan: Xác định các ảnh hưởng của thuộc tính đến hiệu suất quy trình
  • Lọc nâng cao: Áp dụng bộ lọc phức tạp trên các thuộc tính, khung thời gian, số liệu, quy trình con và chuỗi
  • Thao tác lâu dài: Hỗ trợ các truy vấn phức tạp với thông báo tiến độ

Kiến trúc:

  • Cấu phần phía máy chủ: Tích hợp với Power Platform và Dataverse
  • Xác thực: Dựa trên Azure AD với ngữ cảnh môi trường
  • Trình kết nối: Sẵn có dưới dạng bộ nối Khai thác Quy trình dựng sẵn trong danh mục bộ nối Nền tảng Nguồn
  • Giao thức: Tiêu chuẩn Giao thức Ngữ cảnh Mô hình (MCP)

Điều kiện tiên quyết

Danh sách sau đây chứa các điều kiện tiên quyết để sử dụng máy chủ MCP Khai thác Quy trình.

  • Giấy phép Active Process Mining
  • Môi trường Quá trình khai thác được cấu hình trong Nền tảng Nguồn với ít nhất một quy trình được nhập vào
  • Xác thực Azure AD
  • Máy khách tương thích MCP (ví dụ: Copilot Studio) với đầu nối Process Mining được đặt cấu hình

Các công cụ MCP có sẵn

Máy chủ cho thấy chín (9) công cụ được tổ chức theo mục đích. Mỗi công cụ chấp nhận các tham số cụ thể và trả về dữ liệu phân tích có cấu trúc.

Công cụ khám phá quy trình

Sử dụng các công cụ này để khám phá các quy trình có sẵn và cấu hình của chúng.

Tên công cụ Mục đích Tham số chính
get_processes Liệt kê tất cả quy trình có ID và tên Không có (sử dụng ngữ cảnh môi trường)
get_process_details Truy xuất thuộc tính, số liệu tùy chỉnh, quy tắc kinh doanh processId (Guid)
get_attribute_values Lấy giá trị cho thuộc tính cụ thể với phân trang processId, attributeName, itemsPerPage, itemsToSkip

get_processes

Liệt kê tất cả quy trình có thể truy nhập được đối với người dùng đã xác thực trong môi trường hiện tại.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
Không có - - - Sử dụng ngữ cảnh xác thực để xác định môi trường

Trở lại:

  • Mảng EntityListItem với processId và processName

Sử dụng ví dụ:

User: "What processes are available?"
Tool: get_processes
Response: List of processes with IDs

Trường hợp sử dụng:

  • Công cụ đầu tiên cần gọi khi khám phá các quy trình sẵn dùng
  • Lấy ID quy trình hợp lệ cho các cuộc gọi công cụ tiếp theo
  • Xác minh rằng người dùng có quyền truy nhập vào các quy trình cụ thể

get_process_details

Truy xuất siêu dữ liệu toàn diện cho một quy trình cụ thể bao gồm thuộc tính, số liệu tùy chỉnh và quy tắc kinh doanh.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình

Trở lại:

  • GetAnalyticsMetadataResult chứa:
    • Thuộc tính: Thuộc tính mức chữ hoa/thường và mức sự kiện
    • Số liệu tùy chỉnh: Số liệu do người dùng xác định
    • Quy tắc kinh doanh: Quy tắc đã lập cấu hình cho quy trình

Sử dụng ví dụ:

User: "Tell me about the Order-to-Cash process attributes"
Tool: get_process_details with processId
Response: Attributes (Department, Customer, Activity), custom metrics, business rules

Trường hợp sử dụng:

  • Trước khi xây dựng bộ lọc (để khám phá tên thuộc tính hợp lệ)
  • Tìm hiểu về sơ đồ quy trình và số liệu có sẵn
  • Xác định các thuộc tính cấp độ chữ hoa/thường so với sự kiện (quan trọng đối với phân tích tương quan)

Mẹo

Luôn gọi get_process_details trước khi sử get_correlation để xác minh thuộc tính có cấp độ chữ hoa/thường.

get_attribute_values

Truy xuất tất cả các giá trị cho một thuộc tính cụ thể với hỗ trợ phân trang.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
tên thuộc tính chuỗi - Có Tên của thuộc tính để truy xuất giá trị cho
itemsPerPage Int 20 Không Số mục trên mỗi trang (tối đa thay đổi theo triển khai)
itemsToSkip Int 0 Không Bù trừ cho phân trang

Trở lại:

  • McpAnalyticsListResult với:
    • items: Array of dictionaries containing attribute values and associated metrics
    • bù: Bù dòng phân trang hiện tại
    • giới hạn: Kích thước trang
    • totalCount: Tổng số bản ghi sẵn dùng

Sử dụng ví dụ:

User: "What departments are in the Order-to-Cash process?"
Tool: get_attribute_values with processId, attributeName="Department"
Response: List of department values (Sales, Finance, Warehouse)

Trường hợp sử dụng:

  • Khám phá các giá trị hợp lệ để lọc
  • Khám phá phân bố thuộc tính
  • Xây dựng giao diện người dùng bộ lọc động

Công cụ phân tích và số liệu

Sử dụng các công cụ này để phân tích hiệu suất quá trình, xác định các nút cổ chai và truy xuất số liệu.

Tên công cụ Mục đích Tham số chính
get_process_overall_metrics Số liệu mức quy trình tổng hợp processId, filterOptions
get_bottleneck_analysis Hoạt động có thời lượng cao nhất processId, filterOptions
get_variants_with_metrics Các biến thể quy trình có số liệu processId, filterOptions, metricToSortBy
get_edges_with_metrics Tiến trình cạnh dòng với số liệu processId, filterOptions
get_cases_with_metrics Các trường hợp riêng lẻ có số liệu processId, filterOptions, metricToSortBy

get_process_overall_metrics

Trả về các chỉ số mức quy trình tổng hợp cho quy trình và bộ lọc đã xác định.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
filterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng
itemsPerPage Int 20 Không Số mục trên mỗi trang
itemsToSkip Int 0 Không Bù trừ cho phân trang

Trở lại:

  • Từ điển của các cặp khóa-giá trị số liệu bao gồm:
    • Tổng số trường hợp
    • Thời lượng trường hợp trung bình/trung bình/nhỏ nhất/tối đa
    • Chỉ số thông lượng
    • Số liệu tuân thủ SLA

Sử dụng ví dụ:

User: "What are the overall metrics for Order-to-Cash?"
Tool: get_process_overall_metrics with processId
Response: 1,245 cases, avg duration 4.2 days, median 3.8 days

Trường hợp sử dụng:

  • Các bản tóm tắt quy trình cấp cao
  • So sánh hiệu năng đã lọc so với tổng thể
  • Thiết lập số liệu đường cơ sở

get_bottleneck_analysis

Phân tích các hoạt động và trả về chúng được sắp xếp theo thời lượng (giảm dần) để xác định các nút cổ chai.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
itemsPerPage Int 20 Không Số mục trên mỗi trang
itemsToSkip Int 0 Không Bù trừ cho phân trang
mcpFilterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng

Trở lại:

  • McpAnalyticsListResult với các hoạt động được sắp xếp theo Thời lượng (giảm dần)
  • Mỗi mục chứa:
    • Giá trị: Tên hoạt động
    • Thời lượng: Khoảng thời gian trung bình của hoạt động
    • Số liệu bổ sung theo yêu cầu

Hành vi đặc biệt:

  • Được cấu hình sẵn để phân tích thuộc tính "Hoạt động"
  • Tự động bao gồm số liệu Thời lượng và Giá trị
  • Sắp xếp theo Khoảng thời gian theo thứ tự giảm dần

Sử dụng ví dụ:

User: "What are the top 3 bottlenecks in Order-to-Cash?"
Tool: get_bottleneck_analysis with processId, itemsPerPage=3
Response:
1. Approve Order - Avg duration: 3.2 days
1. Credit Check - Avg duration: 2.8 days
1. Prepare Shipment - Avg duration: 2.1 days

Trường hợp sử dụng:

  • Xác định các nút cổ chai quy trình
  • Ưu tiên các nỗ lực cải tiến
  • Phân tích các nút cổ chai dành riêng cho từng bộ phận hoặc theo phân đoạn (với bộ lọc)

Mẹo

Để phân tích cổ chai tập trung vào các bộ phận cụ thể, hãy kết hợp với AttributeValueFilter để xác định các nút cổ chai cụ thể theo phân đoạn.

get_variants_with_metrics

Truy xuất biến thể quy trình (chuỗi hoạt động duy nhất) với số liệu liên quan.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
filterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng
itemsPerPage Int 20 Không Số mục trên mỗi trang
itemsToSkip Int 0 Không Bù trừ cho phân trang
metricToSortBy VariantMetric CaseDuration Không Số liệu để sắp xếp kết quả theo
sắp xếp Thứ tự Sắp xếp Giảm dần Không Hướng sắp xếp (Tăng dần/Giảm dần)

Trở lại:

  • McpAnalyticsListResult với các biến thể bao gồm:
    • Đường dẫn biến thể (trình tự hoạt động)
    • Tần suất và số trường hợp
    • Số liệu về thời lượng
    • Chỉ báo độ lệch hành vi

Sử dụng ví dụ:

User: "What are the most common process variants?"
Tool: get_variants_with_metrics with processId, metricToSortBy=CaseCount, sortOrder=Descending
Response: Top 3 variants with frequencies and durations

Trường hợp sử dụng:

  • Xác định đường dẫn vui vẻ so với các biến thể có sự cố
  • Phân tích sự phù hợp của quy trình
  • Tìm các vòng lặp và độ lệch làm lại
  • So sánh hiệu suất biến thể

get_edges_with_metrics

Truy xuất chuyển tiếp (cạnh) giữa các hoạt động có số liệu tần suất và thời lượng.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
filterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng
itemsPerPage Int 20 Không Số mục trên mỗi trang
itemsToSkip Int 0 Không Bù trừ cho phân trang

Trở lại:

  • McpAnalyticsListResult với các cạnh bao gồm:
    • Từ hoạt động và hoạt động này đến hoạt động khác
    • Tần suất chuyển tiếp
    • Thời đoạn chuyển tiếp
    • Chỉ báo độ lệch

Sử dụng ví dụ:

User: "Show me the process flow transitions"
Tool: get_edges_with_metrics with processId
Response: Activity transitions with frequencies (e.g., Create Order → Approve Order: 1,100 cases)

Trường hợp sử dụng:

  • Hiểu rõ cấu trúc dòng quy trình
  • Xác định độ phức tạp của định tuyến
  • Tìm chuyển tiếp nút cổ chai
  • Phân tích độ trễ bàn giao

get_cases_with_metrics

Truy xuất các trường hợp riêng lẻ với các số liệu và thuộc tính liên quan.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
filterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng
itemsPerPage Int 20 Không Số mục trên mỗi trang
itemsToSkip Int 0 Không Bù trừ cho phân trang
metricToSortBy Số liệu Chữ hoa/thường Thời lượng Không Số liệu để sắp xếp kết quả theo
sắp xếp Thứ tự Sắp xếp Giảm dần Không Hướng sắp xếp (Tăng dần/Giảm dần)

Trở lại:

  • McpAnalyticsListResult với các trường hợp bao gồm:
    • ID Trường hợp
    • Thời lượng, thời gian hoạt động, thời gian chờ
    • Số sự kiện
    • Giá trị thuộc tính

Sử dụng ví dụ:

User: "Show me cases that took longer than 5 days"
Tool: get_cases_with_metrics with processId, filterOptions (MetricConditionFilter for Duration>5 days)
Response: List of cases exceeding 5 days with details

Trường hợp sử dụng:

  • Điều tra vụ việc chi tiết
  • Xác định các trường hợp ngoại thời
  • Phân tích nguyên nhân gốc cho các trường hợp cụ thể
  • Xuất dữ liệu trường hợp để phân tích thêm

Công cụ phân tích tương quan

Sử dụng công cụ này để xác định cách các thuộc tính ảnh hưởng đến số liệu quy trình.

Tên công cụ Mục đích Tham số chính
get_correlation Ảnh hưởng đến thuộc tính đối với số liệu quy trình processId, attributeName, influenceFormula

get_correlation

Tính toán tương quan giữa các giá trị thuộc tính và số liệu quy trình để xác định ảnh hưởng.

Tham số:

Tham số Loại Mặc định Bắt buộc Mô tả
ProcessId Guid - Có Mã định danh duy nhất cho quy trình
tên thuộc tính chuỗi - Có Tên của thuộc tính (phải là cấp chữ hoa/thường)
influenceFormula Công thức Ảnh hưởng - Có Số liệu để phân tích ảnh hưởng đến
sắp xếp Thứ tự Sắp xếp Giảm dần Không Hướng sắp xếp cho các giá trị ảnh hưởng
filterOptions McpFilterOptions null Không Bộ lọc tùy chọn để áp dụng

Trở lại:

  • McpAnalyticsListResult với các giá trị ảnh hưởng cho mỗi giá trị thuộc tính
  • Các giá trị cao hơn cho thấy ảnh hưởng mạnh hơn đến số liệu đã chọn

Các công thức ảnh hưởng có sẵn:

  • Ảnh hưởng của ActiveTime
  • Tác động của CaseUtilization
  • Lượng thời gian Ảnh hưởng
  • EventCountInfluence
  • LoopCountInfluence
  • Ảnh hưởng của ReworkCount
  • Ảnh hưởng của SelfloopCount
  • WaitingTimeInfluence

Sử dụng ví dụ:

User: "Does department influence process duration?"
Tool: get_correlation with processId, attributeName="Department", influenceFormula=DurationInfluence
Response: Sales: 0.75 (high), Finance: 0.42 (moderate), Warehouse: 0.18 (low)

Trường hợp sử dụng:

  • Phân tích nguyên nhân gốc rễ
  • Xác định phân đoạn nào đóng góp vào hiệu suất kém
  • Ưu tiên các nỗ lực cải tiến bằng tác động
  • Tìm hiểu về hiệu ứng thuộc tính trên số liệu

Quan trọng

Công cụ get_correlation chỉ hoạt động với các thuộc tính mức chữ hoa/thường. Việc sử dụng thuộc tính mức sự kiện (như Hoạt động) sẽ dẫn đến lỗi: "Không thể tính tương quan cho các thuộc tính không có mức chữ hoa/thường".

Cấu trúc yêu cầu và phản hồi

Các phần sau đây mô tả các tham số yêu cầu phổ biến và cấu trúc phản hồi.

Tham số yêu cầu phổ biến

Hầu hết các công cụ chấp nhận các tham số chuẩn này để phân trang và sắp xếp.

Tham số Loại Mặc định Mô tả
ProcessId Guid Bắt buộc Mã định danh duy nhất cho quy trình (ngoại trừ get_processes)
itemsPerPage Int 50 Số mục cần trả về trên mỗi trang
itemsToSkip Int 0 Số khoản mục cần bỏ qua (bù cho phân trang)
metricToSortBy chuỗi Thay đổi theo công cụ Tên hệ mét để sắp xếp kết quả
sắp xếp Thứ tự Sắp xếp Giảm dần Hướng sắp xếp (Tăng dần hoặc Giảm dần)
filterOptions McpFilterOptions null Tùy chọn lọc phức tạp (xem phần Tùy chọn Bộ lọc)

Cấu trúc phản hồi

Các phần sau đây cung cấp chi tiết về cấu trúc phản hồi.

McpAnalyticsListResult

Định dạng phản hồi chuẩn cho truy vấn dựa trên danh sách.

{
  "items": [
    {
      "metric1": "value1",
      "metric2": 123.45,
      "metric3": 456
    },
    {
      "metric1": "value2",
      "metric2": 98.76,
      "metric3": 321
    }
  ],
  "offset": 0,
  "limit": 50,
  "totalCount": 500
}

Lĩnh vực:

  • items: Mảng các từ điển chứa các cặp khóa-giá trị số liệu
    • Khóa là tên số liệu (ví dụ: "Duration", "Value", "CaseCount")
    • Giá trị là giá trị hệ mét (chuỗi, số, ngày)
  • bù: Bù dòng phân trang hiện tại (tham số equals itemsToSkip)
  • limit: Kích thước trang (bằng tham số itemsPerPage)
  • totalCount: Tổng số bản ghi sẵn dùng (dùng cho phân trang)

Ví dụ về phân trang:

Request 1: itemsPerPage=50, itemsToSkip=0 → Returns items 1-50
Request 2: itemsPerPage=50, itemsToSkip=50 → Returns items 51-100
Request 3: itemsPerPage=50, itemsToSkip=100 → Returns items 101-150
Continue while offset + limit < totalCount

Các thao tác trong thời gian dài

Các truy vấn phức tạp có thể yêu cầu thêm thời gian xử lý. Máy chủ MCP xử lý các hoạt động này một cách không đồng bộ với kiểm soát phía máy chủ, phát trực tuyến các bản cập nhật tiến trình cho máy khách.

Dòng thao tác:

  1. Yêu cầu ban đầu: Máy khách gửi yêu cầu gọi công cụ đến máy chủ MCP
  2. Xử lý phía máy chủ: API xử lý bỏ phiếu nội bộ—máy chủ sẽ chờ công cụ phân tích hoàn tất truy vấn. Không yêu cầu bỏ phiếu phía máy khách.
  3. Thông báo tiến độ: Máy chủ phát trực tuyến tiến độ cập nhật cho máy khách tự động Server-Sent Sự kiện (SSE). Thông báo tiến độ được gửi khoảng 5 giây một lần trong khi xử lý.
  4. Hoàn thành: Máy chủ trả về kết quả cuối cùng với trạng thái Thành công, FailedClientError hoặc FailedAnalyticsError

Trạng thái cuối cùng:

  • Thành công: Kết quả có sẵn trong phản hồi
  • FailedClientError: Lỗi xác thực (tham số, bộ lọc không hợp lệ)
  • FailedAnalyticsError: Lỗi xử lý công cụ phân tích

Các kịch bản điển hình cho các thao tác trong thời gian dài:

  • Truy vấn tập dữ liệu lớn (>10.000 trường hợp)
  • Bộ lọc phức hợp với nhiều điều kiện
  • Phân tích tương quan trên nhiều giá trị thuộc tính
  • Phân tích biến thể với độ phức tạp của quy trình sâu

Lưu ý

Máy chủ xử lý tất cả bỏ phiếu nội bộ. Khách hàng nhận được thông báo tiến độ tự động thông qua vận chuyển SSE mà không cần thực hiện lô-gic bỏ phiếu. Phương pháp này tương thích với truyền tải HTTP Streamable của MCP.

Tham chiếu tùy chọn bộ lọc

Cấu trúc McpFilterOptions cho phép kiểm soát chính xác việc truy xuất dữ liệu thông qua năm loại bộ lọc. Có thể kết hợp bộ lọc để tạo truy vấn phức tạp.

Lô-gic kết hợp bộ lọc

  • Tất cả các loại bộ lọc trong McpFilterOptions được kết hợp với lô-gic AND
  • Nhiều bộ lọc cùng loại được kết hợp với lô-gic OR
  • Mỗi bộ lọc có một thuộc isInclusive tính (mặc định: true)
    • isInclusive=true: Bao gồm các bản ghi khớp
    • isInclusive=false: Loại trừ các bản ghi khớp

Ví dụ:

AttributeValueFilters: [Department=Sales OR Department=Marketing]
AND
MetricConditionFilters: [Duration > 5 days]
= Cases from Sales OR Marketing with duration > 5 days

AttributeValueFilter

Bộ lọc dựa trên các giá trị thuộc tính cụ thể (ví dụ: bộ phận, người dùng, tên hoạt động).

Thuộc tính:

Thuộc tính Loại Bắt buộc Mô tả
tên thuộc tính chuỗi Có Tên của thuộc tính để lọc trên
thuộc tínhValues chuỗi[] Có Danh sách các giá trị cần bao gồm hoặc loại trừ
isInclusive bool Không (mặc định: đúng) Bao gồm (true) hoặc loại trừ các giá trị khớp (false)

Ví dụ về JSON:

{
  "attributeValueFilters": [
    {
      "attributeName": "Department",
      "attributeValues": ["Sales", "Marketing"],
      "isInclusive": true
    }
  ]
}

Trường hợp sử dụng:

  • Lọc các bộ phận, người dùng hoặc phân khúc khách hàng cụ thể
  • Loại trừ dữ liệu kiểm tra hoặc hoạt động cụ thể
  • Phân tích các tập hợp con của quy trình

Quy tắc xác thực:

  • attributeName không được để trống
  • mảng attributeValues phải chứa ít nhất một giá trị
  • Tên thuộc tính phải tồn tại trong sơ đồ tiến trình (get_process_details để xác minh)

Bộ lọc Khung thời gian

Bộ lọc dựa trên phạm vi ngày/giờ cho tem thời gian trường hợp hoặc sự kiện.

Thuộc tính:

Thuộc tính Loại Bắt buộc Mô tả
ngày bắt đầu Ngày giờ Có Bắt đầu khung thời gian (bao gồm cả)
ngày kết thúc Ngày giờ Có Cuối khung thời gian (bao gồm)
isInclusive bool Không (mặc định: đúng) Bao gồm (true) hoặc loại trừ (false) khung thời gian

Ví dụ về JSON:

{
  "timeframeFilters": [
    {
      "startDate": "2025-01-01T00:00:00Z",
      "endDate": "2025-12-31T23:59:59Z",
      "isInclusive": true
    }
  ]
}

Trường hợp sử dụng:

  • Phân tích các khoảng thời gian cụ thể (quý, tháng, năm)
  • Loại trừ dữ liệu lịch sử
  • So sánh hiệu suất trong khoảng thời gian

Quy tắc xác thực:

  • ngày_bắt_đầu phải trước ngày_kết_thúc
  • Định dạng ngày phải hợp lệ ISO 8601

Quan trọng

Lỗi xác thực xảy ra nếu startDate sau endDate. Luôn xác minh phạm vi ngày trước khi gửi.

MetricConditionFilter

Bộ lọc dựa trên ngưỡng giá trị số liệu (ví dụ: khoảng thời gian > 5 ngày, số sự kiện < 10).

Thuộc tính:

Thuộc tính Loại Bắt buộc Mô tả
số liệu McpFilterMetricType Có Số liệu để lọc trên
customMetricId Guid Điều kiện Bắt buộc nếu số liệu là CustomMetric
so sánhtoán tử ValueFilterExpressionOperator Có Toán tử so sánh
dataType ValueFilterDataType Có Kiểu giá trị dữ liệu
giá trị đối tượng Có Giá trị để so sánh với
isInclusive bool Không (mặc định: đúng) Bao gồm (true) hoặc loại trừ (sai) kết quả trùng khớp

Số liệu có sẵn (McpFilterMetricType):

Kiểu Số liệu Mô tả
EventDuration Thời lượng của các sự kiện riêng lẻ
CaseDuration Tổng khoảng thời gian từ đầu đến cuối
CaseActiveTime Thời gian chủ động xử lý (không bao gồm thời gian chờ)
CaseWaitingTime Thời gian chờ giữa các hoạt động
Phân biệt chữ hoa/thường Tỷ lệ phần trăm sử dụng trường hợp
CaseCumulativeUtilization Sử dụng tích lũy trong suốt vòng đời trường hợp
CaseEventCount Số sự kiện theo từng trường hợp
CaseSelfLoopCount Số vòng lặp tự động (cùng một hoạt động lặp lại ngay lập tức)
CaseLoopCount Số vòng lặp (chuỗi hoạt động lặp lại)
CaseReworkCount Số lượng phiên bản làm lại
Số liệu Tùy chỉnh Số liệu do người dùng xác định (yêu cầu customMetricId)

Toán tử so sánh:

  • EqualTo
  • NotEqualTo
  • Lớn hơn
  • GreaterThanOrEqualTo
  • ÍtThan
  • LessThanOrEqualTo

Kiểu dữ liệu:

  • Xâu
  • Số
  • Thời gian (thời lượng)
  • Ngày giờ

Ví dụ về JSON:

{
  "metricConditionFilters": [
    {
      "metric": "CaseDuration",
      "comparisonOperator": "GreaterThan",
      "dataType": "Time",
      "value": "5.00:00:00",
      "isInclusive": true
    }
  ]
}

Trường hợp sử dụng:

  • Xác định các trường hợp vượt quá ngưỡng SLA
  • Lọc các trường hợp có giá trị cao hoặc giá trị thấp
  • Phân tích các trường hợp với các đặc điểm cụ thể (ví dụ, số lượng làm lại cao)

Quy tắc xác thực:

  • CustomMetricId bắt buộc khi số liệu là CustomMetric
  • Giá trị phải khớp với dataType đã xác định
  • Số liệu phải hợp lệ cho ngữ cảnh truy vấn

Bộ xử lý Con

Lọc theo mẫu quy trình con nơi các hoạt động tham chiếu được theo sau bởi các hoạt động tương đối.

Thuộc tính:

Thuộc tính Loại Bắt buộc Mô tả
tên thuộc tính chuỗi Có Tên thuộc tính (thường là "Hoạt động")
referenceAttributeValues chuỗi[] Có Bắt đầu hoạt động trong quy trình con
relativeAttributeValues chuỗi[] Có Kết thúc hoạt động trong quy trình con
isInclusive bool Không (mặc định: đúng) Bao gồm quy trình con (true) hoặc loại trừ (sai)

Ví dụ về JSON:

{
  "subProcessFilters": [
    {
      "attributeName": "Activity",
      "referenceAttributeValues": ["Create Order"],
      "relativeAttributeValues": ["Ship Goods"],
      "isInclusive": true
    }
  ]
}

Trường hợp sử dụng:

  • Phân tích các dòng quy trình con cụ thể
  • Xác định các trường hợp theo các đường dẫn cụ thể
  • Loại trừ các mẫu quy trình con cụ thể

Quy tắc xác thực:

  • attributeName không được để trống
  • referenceAttributeValues và relativeAttributeValues phải chứa ít nhất một giá trị

AttributeSequenceFilter

Lọc theo chuỗi hoạt động với các loại mối quan hệ cụ thể (tiếp theo trực tiếp, cuối cùng là theo sau, v.v.).

Thuộc tính:

Thuộc tính Loại Bắt buộc Mô tả
tên thuộc tính chuỗi Có Tên thuộc tính (thường là "Hoạt động")
relationType SequenceFilterRelationType Có Loại mối quan hệ giữa các hoạt động
referenceAttributeValues chuỗi[] Có Các hoạt động đầu tiên theo trình tự
relativeAttributeValues chuỗi[] Có Các hoạt động thứ hai theo trình tự
isInclusive bool Không (mặc định: đúng) Bao gồm trình tự (true) hoặc loại trừ (false)

Các loại quan hệ:

  • DirectlyFollowed: Hoạt động tham chiếu trực tiếp theo sau là hoạt động tương đối (không có hoạt động ở giữa)
  • EventuallyFollowed: Hoạt động tham chiếu cuối cùng sau đó là hoạt động tương đối (các hoạt động khác có thể nằm giữa)

Ví dụ về JSON:

{
  "attributeSequenceFilters": [
    {
      "attributeName": "Activity",
      "relationType": "DirectlyFollowed",
      "referenceAttributeValues": ["Approve Order"],
      "relativeAttributeValues": ["Credit Check"],
      "isInclusive": true
    }
  ]
}

Trường hợp sử dụng:

  • Bắt buộc chuỗi hoạt động cụ thể
  • Xác định các vi phạm phù hợp
  • Phân tích các trường hợp với thứ tự cụ thể

Quy tắc xác thực:

  • attributeName không được để trống
  • referenceAttributeValues và relativeAttributeValues phải chứa ít nhất một giá trị

Xử lý lỗi

Các phần sau đây mô tả các mã lỗi phổ biến, lỗi xác thực và định dạng phản hồi có thể giúp bạn khắc phục sự cố.

Mã lỗi

Máy chủ MCP sử dụng ba mã lỗi chính:

Mã lỗi Mô tả Nguyên nhân Thường gặp
InvalidParams Giá trị tham số không hợp lệ GUID trống, trường yêu cầu null, khung thời gian không hợp lệ, mảng trống
InvalidRequest Cấu trúc yêu cầu hoặc vi phạm quy tắc kinh doanh Tên thuộc tính không tồn tại, lỗi cú pháp bộ lọc, thao tác không được hỗ trợ
Người dùng Nội bộ Lỗi xử lý phía máy chủ Lỗi công cụ phân tích, sự không nhất quán về dữ liệu, không sẵn có dịch vụ

Lỗi xác thực thường gặp

ProcessId trống

Lỗi: "processId (Guid) phải là id của quy trình." Nguyên nhân: tham số processId trống hoặc Giải pháp không hợp lệ: Sử dụng get_processes để lấy ID quy trình hợp lệ

Khung thời gian không hợp lệ

Lỗi: "Ngày_Bắt_đầu phải trước Ngày_Kết_thúc" Nguyên nhân: TimeframeFilter đã bắt đầuDate sau độ phân giải endDate: Xác minh phạm vi ngày trước khi gửi yêu cầu

Thiếu tên thuộc tính

Lỗi: "Tên thuộc tính phải được cung cấp." Nguyên nhân: attributeName rỗng hoặc trống trong Độ phân giải bộ lọc: Cung cấp tên thuộc tính hợp lệ từ sơ đồ tiến trình

Giá trị thuộc tính trống

Lỗi: "Giá trị thuộc tính phải chứa ít nhất một giá trị." Nguyên nhân: mảng attributeValues trống trong Độ phân giải AttributeValueFilter: Thêm ít nhất một giá trị vào mảng

Thiếu ID số liệu tùy chỉnh

Lỗi: "CustomMetricId là bắt buộc khi hệ mét là CustomMetric" Nguyên nhân: số liệu là CustomMetric nhưng customMetricId không được cung cấp Độ phân giải: Cung cấp GUID của số liệu tùy chỉnh

Thuộc tính không mức chữ hoa/thường trong tương quan

Lỗi: "Không thể tính tương quan cho các thuộc tính không có mức chữ hoa/thường." Nguyên nhân: Cố gắng get_correlation với thuộc tính mức sự kiện (ví dụ: "Hoạt động") Giải pháp: Chỉ sử dụng thuộc tính cấp độ chữ hoa/thường (ví dụ: "Bộ phận", "Khách hàng"); gọi get_process_details để xác định các thuộc tính mức chữ hoa/thường

Định dạng phản hồi lỗi

{
  "error": {
    "code": "InvalidParams",
    "message": "Attribute name must be provided."
  }
}

Thực tiễn tốt nhất

Các biện pháp tốt nhất sau đây có thể giúp bạn sử dụng hiệu quả máy chủ MCP Process Mining.

Luôn truy xuất chi tiết quy trình trước tiên

Sử dụng get_process_details khám phá các thuộc tính, số liệu và quy tắc kinh doanh có sẵn trước khi tạo truy vấn.

do: Đảm bảo tên thuộc tính khớp với sơ đồ quy trình, ngăn lỗi xác thực, xác định các thuộc tính cấp độ chữ hoa/thường so với cấp độ sự kiện.

Step 1: get_processes → Obtain processId
Step 2: get_process_details with processId → Discover attributes
Step 3: Use discovered attributes in filters and queries

Triển khai phân trang cho các tập dữ liệu lớn

Sử dụng itemsPerPage và itemsToSkip cho tất cả các thao tác danh sách. Giám sát totalCount để xác định xem có tồn tại nhiều trang hay không.

Kích thước trang được đề xuất:

  • Mặc định: 50 mục trên mỗi trang
  • Tập dữ liệu lớn: 20 mục trên mỗi trang (thời gian phản hồi nhanh hơn)
  • Tập dữ liệu nhỏ: 100 mục trên mỗi trang (ít chuyến đi khứ hồi hơn)
let allItems = [];
let offset = 0;
const pageSize = 50;

do {
  const response = await getTool(processId, pageSize, offset);
  allItems.push(...response.items);
  offset += pageSize;
} while (offset < response.totalCount);

Sử dụng tính năng lọc để giảm âm lượng dữ liệu

Để giảm thời gian xử lý và kích cỡ tải trọng phản hồi, hãy áp dụng AttributeValueFilter và TimeframeFilter sớm trong chuỗi truy vấn của bạn.

Ưu tiên bộ lọc:

  1. TimeframeFilter (giảm nhanh tập dữ liệu)
  2. AttributeValueFilter (thu hẹp đến các phân đoạn cụ thể)
  3. MetricConditionFilter (tinh chỉnh thêm kết quả)

Xử lý các thao tác chạy lâu

Các thao tác chạy lâu được máy chủ tự động xử lý. API sử dụng kiểm tra nội bộ phía máy chủ và phát trực tuyến các bản cập nhật tiến độ cho máy khách thông qua Server-Sent Events (SSE). Không yêu cầu thực hiện bỏ phiếu phía máy khách.

Điều gì sẽ xảy ra:

  1. Máy chủ xử lý các truy vấn phức tạp không đồng bộ trên danh nghĩa của bạn
  2. Thông báo tiến độ được gửi tự động thông qua phương tiện truyền tải SSE
  3. Kết quả cuối cùng được trả về khi xử lý hoàn tất
  4. Hiển thị kết quả cuối cùng cho người dùng khi nhận được

Siêu dữ liệu quy trình đệm ẩn

Chi tiết quy trình (thuộc tính, số liệu, quy tắc kinh doanh) thường xuyên thay đổi. Bộ đệm get_process_details hồi để giảm lệnh gọi API.

Trình kích hoạt xác thực bộ đệm ẩn:

  • Xử lý lại quy trình
  • Thay đổi cấu hình
  • Làm mới do người dùng khởi tạo

Xác thực bộ lọc phía máy khách

Kiểm tra phạm vi ngày, tên thuộc tính và trường bắt buộc trước khi gửi yêu cầu để giảm lỗi khứ hồi.

Danh sách kiểm tra xác thực phía máy khách:

  • [ ] ProcessId không phải là GUID trống
  • [ ] TimeframeFilter: startDate < endDate
  • [ ] AttributeValueFilter: attributeName không rỗng, attributeValues chứa ít nhất một mục
  • [ ] MetricConditionFilter: customMetricId được cung cấp nếu số liệu là CustomMetric
  • [ ] Tên thuộc tính khớp với sơ đồ tiến trình

Sử dụng tương quan một cách chiến lược

Phân tích tương quan được tính toán chuyên sâu. Trước tiên hãy áp dụng bộ lọc để giảm tập dữ liệu trước khi chạy tương quan.

Các phương pháp hay nhất:

  • Xác nhận thuộc tính có mức chữ hoa/thường (gọi get_process_details)
  • Trước tiên, hãy áp dụng TimeframeFilter và AttributeValueFilter
  • Sử dụng cho thử nghiệm giả thuyết, không thăm dò
  • Kết quả bộ đệm ẩn cho phân đoạn cụ thể