Chạy với tư cách (Run as)
Quyết định các lượt chạy của quy trình hành động với tư cách ai — bắt buộc trước khi bật trigger, và cách xử lý khi chủ thể mất quyền giữa chừng.
Khi một bước của quy trình đọc, tạo, sửa hoặc xóa một bản ghi — quyền của ai quyết định nó được chạm vào những gì? Câu trả lời là chính sách Chạy với tư cách (Run as): mỗi lượt chạy hành động với tư cách đúng một chủ thể (principal), và mọi thao tác đọc/ghi bản ghi ở mọi bước đều được cấp quyền theo chủ thể đó.
Đây không phải một tùy chọn nâng cao có cũng được. Trang Cách quy trình bắt đầu (Trigger) mô tả ba cách khởi chạy tự động — theo lịch, khi bản ghi thay đổi, khi bản ghi ứng dụng kết nối thay đổi. Bật bất kỳ trigger nào trong số đó sẽ bị từ chối nếu chính sách chạy với tư cách của quy trình không phục vụ được một lượt khởi chạy không có người. Hãy quyết định chính sách trước, rồi mới bật trigger.
Đặt chính sách ở đâu
- Mở quy trình trong trình thiết kế quản trị (Quản trị → Quy trình → chọn quy trình).
- Nhấn nút Cài đặt trên thanh công cụ — gợi ý của nút là "Cấu hình quyền chạy, tự động hóa và MCP".
- Trong popover Cấu hình quy trình, chọn dòng Chạy với tư cách. Dòng này hiển thị giá trị hiện tại — tên service principal nếu chính sách là service principal, ngược lại là nhãn chính sách — và chuyển sang màu hồng khi quy trình chưa có quyết định.
- Chọn một trong ba lựa chọn trong hộp thoại, rồi nhấn Lưu. Thông báo "Đã cập nhật chính sách chạy với tư cách" xác nhận việc lưu.
Hộp thoại mở đầu bằng đúng câu tóm tắt quy tắc: "Mỗi lượt chạy của quy trình hành động với tư cách một chủ thể, được quyết định ở đây và cố định suốt lượt chạy. Mọi thao tác đọc/ghi bản ghi ở từng bước đều được cấp quyền theo chủ thể đó."
Cả popover Cài đặt lẫn dòng Chạy với tư cách đều bị ẩn nếu bạn không có quyền workflow.design. Khi tạo quy trình mới, cùng ba lựa chọn này xuất hiện dưới dạng một ô bắt buộc trên biểu mẫu tạo, kèm ghi chú "Các lượt chạy của quy trình hành động với tư cách ai. Bạn có thể đổi sau trong cài đặt của trình thiết kế."
Ba lựa chọn
| Lựa chọn | Gợi ý hiển thị trong hộp thoại | Dùng khi |
|---|---|---|
| Người khởi chạy | "Người hoặc thông tin đăng nhập tự động trực tiếp khởi chạy lượt chạy. Lịch chạy, trigger bản ghi và trigger ứng dụng kết nối không dùng được — không có ai là người khởi chạy." | Quy trình chỉ khởi chạy thủ công và bạn muốn nó nhìn thấy đúng những bản ghi mà người bấm nút nhìn thấy. |
| Một service principal | "Một service principal đang hoạt động, bất kể ai khởi chạy. Bắt buộc với mọi lượt khởi chạy không có người." | Quy trình có trigger, hoặc bạn muốn quyền của nó ổn định và không đổi theo người khởi chạy. |
| Hệ thống nâng quyền | "Truy cập mọi bản ghi và không sở hữu bản ghi nào. Mọi thao tác có phạm vi đều được ghi nhật ký." | Chỉ dành cho bảo trì nền tảng — khi quy trình thật sự phải chạm tới mọi bản ghi. |
Chọn Một service principal sẽ hiện bộ chọn "Chọn service principal…". Nếu tổ chức chưa có chủ thể nào đang hoạt động, bộ chọn báo "Không có service principal đang hoạt động" — hãy tạo một chủ thể tại Chủ thể dịch vụ (Service principal) trước. Chủ thể được kiểm tra ngay lúc lưu: nếu nó đã bị tắt, hộp thoại từ chối với "Service principal đó đã bị vô hiệu hóa. Hãy chọn một cái đang hoạt động."; nếu nó không thuộc tổ chức này, "Service principal đó không thuộc tổ chức này."; nếu bạn quên chọn, "Hãy chọn service principal mà các lượt chạy hành động với tư cách."
Hệ thống nâng quyền chỉ chọn được nếu bạn có quyền "truy cập bản ghi nâng quyền" (entity.records.elevated). Người có quyền này thấy cảnh báo "Chỉ dùng cho bảo trì hệ thống — tùy chọn này bỏ qua hoàn toàn kiểm soát truy cập theo bản ghi."; người không có quyền thấy lựa chọn bị khóa kèm dòng "Cần quyền “truy cập bản ghi nâng quyền” để chọn."
Bạn có thể gặp một giá trị thứ tư, Cần quyết định, trên các quy trình được di trú từ phiên bản cũ. Đó là một trạng thái chuyển đổi, không phải một lựa chọn — hộp thoại không cho chọn nó. Khi mở hộp thoại của một quy trình như vậy, ô Người khởi chạy được chọn sẵn như một đề xuất, còn cảnh báo "Quy trình này cần một quyết định “chạy với tư cách”." vẫn ở nguyên đó. Hãy đọc trước khi nhấn Lưu: nếu quy trình có trigger, Người khởi chạy đúng là lựa chọn duy nhất nó không dùng được.
Trigger bắt buộc phải có chính sách phục vụ khởi chạy không người
Một lượt chạy do lịch, trigger bản ghi hoặc trigger ứng dụng kết nối khởi động thì không có ai là người khởi chạy. Vì vậy chỉ Một service principal và Hệ thống nâng quyền phục vụ được các lượt khởi chạy đó; Người khởi chạy và Cần quyết định thì không. Quy tắc này chặn ở cả hai chiều:
| Bạn làm gì | Điều gì xảy ra |
|---|---|
| Bật một trigger trên quy trình đang ở Người khởi chạy hoặc Cần quyết định | Việc lưu trigger bị từ chối; trigger không được bật. |
| Đổi chính sách về Người khởi chạy trong khi quy trình đã có trigger đang bật | Hộp thoại từ chối ngay tại chỗ: "Quy trình này có trigger đang bật nên lượt chạy bắt đầu khi không có ai — hãy chọn service principal hoặc hệ thống nâng quyền." |
Tắt trigger (chuyển công tắc Đang hoạt động về tắt) không bị chặn — chỉ trigger đang bật mới ràng buộc chính sách.
Ở chiều thứ nhất, trình soạn trigger không hiển thị câu giải thích thân thiện. Nó chỉ báo lỗi tự động lưu chung chung "Không thể lưu". Nếu một trigger từ chối lưu mà không rõ lý do, hãy mở Cài đặt → Chạy với tư cách và kiểm tra chính sách trước tiên.
Một quy trình còn ở trạng thái Cần quyết định thì không khởi chạy được bằng bất kỳ cách nào — như trang Tình trạng phân quyền mô tả: "Không cách khởi chạy nào — thủ công, thông tin đăng nhập, lịch, trigger — chạy được cho đến khi chọn." Trên đường khởi chạy thủ công đi qua bộ chọn Khởi chạy phiên (Start instance), quy trình vẫn nằm nguyên trong danh sách và không có gì cảnh báo trước: lời từ chối chỉ đến vào đúng lúc bạn bấm khởi chạy, và thông báo lúc đó trả về nguyên văn từ máy chủ bằng tiếng Anh.
Một đường khởi chạy thủ công khác thì được nói rõ hơn hẳn: khi lời từ chối này đến từ một nút hành động trên bản ghi, người dùng nhận đúng câu "Quy trình này chưa có chủ thể thực thi nên không thể khởi chạy. Quản trị viên cần đặt một lần." thay cho câu lỗi chung chung "Không khởi chạy được quy trình." — vì câu chung chung mời người ta bấm lại một lượt khởi chạy không thể nào thành công. Điều duy nhất gỡ được là bạn đặt chính sách ở mục Đặt chính sách ở đâu bên trên; người dùng cuối gặp câu này ở Chi tiết bản ghi.
Xem trước quyền truy cập trước khi lưu
Khi đã chọn Một service principal và chọn được chủ thể, nút Xem trước quyền truy cập… xuất hiện. Nó trả lời đúng một câu hỏi: nếu quy trình chạy với tư cách chủ thể này, nó có được phép thực hiện thao tác này trên thực thể này (và trên hồ sơ này) không? — kèm danh sách các yếu tố dẫn tới câu trả lời, theo thứ tự.
- Nhấn Xem trước quyền truy cập… để mở hộp thoại "Xem trước quyền truy cập với tư cách {tên chủ thể}", với chủ thể đã bị khóa sẵn.
- Chọn Thực thể, chọn Thao tác (đọc, liệt kê, tạo, cập nhật, xóa), rồi chọn một hồ sơ — hoặc, với thao tác tạo, chọn Đơn vị đích (Destination unit). Ô này chỉ hiện với thao tác tạo: "Chỉ cho thao tác tạo. Chuyển đơn vị là hai câu hỏi: sửa ở nguồn, tạo vào đích."
- Nhấn Giải thích. Kết quả là Được phép / Bị từ chối kèm các yếu tố.
Bỏ trống phần hồ sơ cũng được: "Không bắt buộc. Không có hồ sơ thì câu trả lời ở mức chính sách: chủ thể này có thể chạm tới bất kỳ hồ sơ nào ở đây không?"
Ô Đơn vị đích ở bước 2 chính là chỗ thử trước cái đích mà một bước Bản ghi thực thể sẽ tạo bản ghi vào. Bước đó có ô Đơn vị đích của riêng nó trong trình thiết kế; điền vào đây đúng đơn vị đã đặt ở bước đó rồi nhấn Giải thích, bạn biết được lượt chạy có tạo được vào đấy hay không trước khi xuất bản. Bỏ trống ô này — gợi ý trong ô là "Đơn vị chính (hoặc không)…" — là hỏi đúng trường hợp bước để nguyên mặc định Đơn vị của chủ thể (Principal's unit): đơn vị chính đang hoạt động của chủ thể.
Bản xem trước này đánh giá theo ngữ cảnh của một lượt chạy quy trình, không phải theo ngữ cảnh bạn đang duyệt màn hình: "Đánh giá như cách một lượt chạy quy trình được ủy quyền — lượt chạy không bao giờ nâng quyền, kể cả khi chủ thể có entity.records.elevated. Không lưu gì cả." Nghĩa là một người đang có quyền nâng quyền mà tự xem trước sẽ không thấy phần nâng quyền của chính mình — và hai bản xem trước cùng một chủ thể mở từ hai màn hình khác nhau có thể cho kết quả khác nhau một cách hợp lệ.
Bản xem trước không lưu gì cả, và nó được cấp quyền theo năng lực Thiết kế trên chính thực thể được hỏi — không phải theo workflow.design. Vì vậy bạn có thể đặt được chính sách nhưng vẫn bị từ chối xem trước với một số thực thể. Hỏi về một hồ sơ mà chính bạn không đọc được sẽ nhận câu trả lời đã che, ở mức chính sách — hộp thoại không tiết lộ hồ sơ đó có tồn tại hay không. Xem thêm tại Quyền truy cập Thực thể & Bản ghi.
Chủ thể được chốt khi lượt chạy bắt đầu
Chủ thể của một lượt chạy được xác định một lần duy nhất, trước khi lượt chạy tồn tại, và không đổi trong suốt vòng đời của nó. Sửa chính sách của quy trình sau đó không thay đổi gì đối với các lượt chạy đang chạy — chỉ các lượt chạy mới mới theo chính sách mới.
Hai trường hợp con đáng nhớ:
- Lặp theo phần tử (For each) — mỗi lượt chạy con dùng lại đúng chủ thể đã lưu của lượt chạy cha, không đọc lại chính sách.
- Gọi quy trình khác (Call workflow) — lượt chạy con giải quyết chính sách của chính quy trình được gọi, lấy chủ thể đã lưu của bên gọi làm người khởi chạy.
Từ đó suy ra một cái bẫy: nếu quy trình cha chạy với Hệ thống nâng quyền còn quy trình con để Người khởi chạy, bước Gọi quy trình sẽ thất bại dứt điểm — hệ thống nâng quyền không thể đóng vai người khởi chạy. Hãy đặt cho quy trình con một service principal.
Khi chủ thể mất quyền giữa chừng
Quyền có thể thay đổi trong lúc lượt chạy đang diễn ra: một vai trò bị thu hồi, một quyền cấp trên thực thể bị gỡ, một vị trí đơn vị bị đổi, hoặc chính chủ thể bị vô hiệu hóa. Khi bước tiếp theo bị từ chối, lượt chạy dừng lại và chờ — nó không thất bại, không thử lại và không rơi vào hàng đợi lỗi.
Lượt chạy mang chip màu hồng Bị chặn do phân quyền thay cho chip Đang chờ thông thường — trên danh sách phiên, trên tiêu đề trang chi tiết, và trong khối Quy trình của trang một bản ghi; hộp thoại kết quả sau khi ai đó bấm một nút hành động chạy đồng bộ mang đúng tên đó làm tiêu đề. Không còn màn hình nào báo nó là việc đang chạy. Trạng thái bên dưới vẫn là Tạm dừng, nên bộ lọc "Thất bại" không tìm ra nó, và không có thông báo nào được gửi. Từng màn hình hiện ra sao, và những chỗ mà một lượt chạy bị chặn không xuất hiện, được liệt kê ở Khởi chạy & theo dõi phiên.
Trang chi tiết lượt chạy hiển thị một khối cảnh báo đỏ Bị chặn do phân quyền. với nội dung "Lượt chạy này bị từ chối thao tác {thao tác} và đã dừng — {lý do}. Sẽ không có gì tự đến để gỡ; quản trị viên khắc phục rồi tiếp tục lượt chạy.", kèm các dòng thông tin:
| Dòng | Nội dung |
|---|---|
| Thao tác | Thao tác bị từ chối: đọc, liệt kê, tạo, cập nhật hoặc xóa. |
| Thực thể | Thực thể của thao tác đó. |
| Lý do | Một trong sáu nhóm nguyên nhân ở phần dưới. |
| Từ lúc | Thời điểm lượt chạy bị chặn. |
| Chạy với tư cách | Chủ thể mà lượt chạy đang hành động với tư cách. |
Bản ghi bị từ chối cố ý không được ghi lại và không hiển thị ở đâu cả — không trên trang lượt chạy, không trên trang Tình trạng phân quyền. Lý do rất thực tế: màn hình của quản trị viên không được phép trở thành cách để dò ra những bản ghi nào tồn tại bên ngoài phạm vi của lượt chạy. Thứ duy nhất được lưu thêm là một đơn vị — đơn vị của bản ghi khi lý do là phạm vi, hoặc đơn vị đích bị từ chối khi lý do là đích không hợp lệ — và nó chỉ dùng cho lần kiểm tra lại khi bạn tiếp tục lượt chạy.
Sáu nhóm nguyên nhân và cách khắc phục
| Nhóm | Lý do hiển thị | Quản trị viên làm gì |
|---|---|---|
principal_inactive | "chủ thể của lượt chạy đã bị vô hiệu hóa" | Bật lại người dùng hoặc service principal đó tại Chủ thể dịch vụ — hoặc hủy lượt chạy nếu chủ thể phải giữ nguyên trạng thái tắt. |
coarse_permission_missing | "chủ thể của lượt chạy mất quyền thô cho thao tác này" | Trả lại quyền hệ thống tương ứng (entity.read, entity.write, …) cho vai trò của chủ thể tại Vai trò & quyền. |
no_applicable_grant | "không có quyền nào cho phép thao tác này với chủ thể trên thực thể" | Trên trang quyền truy cập của thực thể, thêm một mục cấp quyền cho chủ thể (hoặc nhóm chứa nó) bao gồm thao tác đó. |
scope_mismatch | "bản ghi nằm ngoài phạm vi của lượt chạy" | Mở rộng phạm vi hàng của mục cấp quyền cho thao tác đó — Đơn vị/Cây con neo tại đơn vị tổ chức đang giữ bản ghi hoặc một đơn vị cấp trên nó, hay Toàn tổ chức. Gán chủ thể vào đơn vị đó chỉ giúp được khi lượt cấp quyền dùng phạm vi theo lượt gán (Đơn vị của họ / Đơn vị của họ và mọi cấp bên dưới) — hai phạm vi duy nhất đọc tới lượt gán; với phạm vi có neo thì không: phạm vi có neo chạm tới đúng đơn vị được nêu, không bao giờ chạm tới đơn vị chủ thể đang đứng — xem Quyền truy cập Thực thể & Bản ghi. |
destination_ineligible | "không có đơn vị đích nào lượt chạy được phép tạo vào" | Xem bước Bản ghi thực thể trước: nếu nó đặt Đơn vị đích là một đơn vị cụ thể thì đơn vị ghi trên khối chặn chính là đơn vị đó — chỗ đặt đích nằm trong trình thiết kế chứ không phải ở Quản trị. Với chính lượt chạy đang dừng, thứ gỡ được là mở rộng quyền tạo để bao trùm đúng đơn vị ấy; sửa thiết lập của bước chỉ đổi các lượt chạy sau, nên nếu hồ sơ không được phép nằm ở đơn vị đó thì hãy sửa bước rồi hủy và khởi chạy lại. Nếu bước để nguyên mặc định Đơn vị của chủ thể, hãy gán chủ thể vào một đơn vị mà nó được phép tạo bản ghi vào, hoặc mở rộng phạm vi của quyền tạo. |
run_as_remediation_required | "lượt chạy không có chủ thể thực thi" | Không dùng Tiếp tục — hãy đặt chủ thể thực thi cho lượt chạy (xem phần dưới). |
Một lượt đọc đi tới scope_mismatch theo hai đường, và cả hai đều dừng lượt chạy như nhau: bước Bản ghi thực thể trỏ vào một id, hoặc nó tra một khóa định danh và khóa ấy khớp một bản ghi chủ thể không được xem. Đường thứ hai trước đây trả lời là "không tìm thấy" — nó không còn làm vậy nữa, vì một nhánh "chưa có" hầu như luôn là nhánh tạo mới.
Khối cảnh báo trên trang lượt chạy gói cả bảng trên vào một câu: "Khôi phục quyền truy cập của chủ thể (quyền, vai trò, vị trí đơn vị hoặc chính chủ thể), rồi tiếp tục. Tiếp tục sẽ bị từ chối khi việc từ chối còn hiệu lực."
Tiếp tục lượt chạy
Sau khi đã khắc phục, nhấn Tiếp tục trong khối cảnh báo. Hộp thoại xác nhận Tiếp tục lượt chạy này? nói rõ điều gì sẽ xảy ra: "Chủ thể đã lưu được kiểm tra lại với thao tác bị chặn trước. Nếu vẫn bị từ chối, không có gì thay đổi và lượt chạy vẫn bị chặn." Chọn Tiếp tục lượt chạy để xác nhận, hoặc Giữ trạng thái chặn để thoát.
Điều được kiểm tra lại là chủ thể đã lưu của lượt chạy, đối chiếu với đúng thao tác và đúng thực thể đã bị chặn — không phải chính sách hiện tại của quy trình. Vì vậy đổi cài đặt Chạy với tư cách không gỡ được một lượt chạy đã bị chặn; những thứ có tác dụng là quyền cấp trên thực thể, vai trò, vị trí đơn vị, hoặc việc bật lại chính chủ thể.
Nếu việc từ chối vẫn còn hiệu lực, yêu cầu bị từ chối ngay trong khối cảnh báo với "Vẫn bị chặn: chủ thể của lượt chạy vẫn bị từ chối thao tác đó. Hãy khắc phục quyền truy cập trước." — và không có gì bị thay đổi, lượt chạy không dao động giữa chạy và chặn. Nếu lượt chạy vừa thay đổi trong lúc bạn xem, bạn nhận "Lượt chạy đã thay đổi trong lúc bạn xem. Hãy tải lại và thử lại."
Khi thành công, thông báo "Đã tiếp tục lượt chạy" xuất hiện và lượt chạy được đánh thức lại — bước bị lỗi và mọi bước đang chờ đều được kích hoạt lại.
Trên Thực thể đã bật phân loại theo đơn vị, có một trường hợp Tiếp tục không bao giờ gỡ được: khi phạm vi của chủ thể là Của mình (chỉ những bản ghi nó sở hữu) và lý do là scope_mismatch. Lần kiểm tra lại so sánh đơn vị đã ghi với các đơn vị của chủ thể, mà phạm vi sở hữu thì không có đơn vị nào để so. Nếu bạn đã khôi phục quyền truy cập bằng cách đổi chủ sở hữu bản ghi, hãy hủy lượt chạy và khởi chạy lại.
Trên Thực thể không phân loại theo đơn vị thì dòng chặn không ghi đơn vị nào để đem ra so, nên Tiếp tục không bị từ chối: nó gỡ chặn và đánh thức lượt chạy — lượt chạy hoặc đi tiếp (ở đó đổi chủ sở hữu đúng là cách gỡ được một lần từ chối theo phạm vi Của mình), hoặc dừng lại y chỗ cũ nếu quyền truy cập thực ra chưa được khôi phục.
Cả Tiếp tục lẫn Đặt chủ thể thực thi… đều cần quyền instance.admin. Người không có quyền vẫn thấy khối cảnh báo và toàn bộ thông tin, nhưng không thấy nút.
Lượt chạy cũ chưa có chủ thể thực thi
Các lượt chạy bắt đầu trước khi có chính sách chạy với tư cách thì không quy được về ai. Trang chi tiết của chúng hiển thị một khối cảnh báo màu hổ phách Lượt chạy này không có chủ thể thực thi. với nội dung "Lượt chạy bắt đầu trước khi có chính sách chạy với tư cách và không thể quy về ai. Sẽ không có bước nào được thực thi cho đến khi quản trị viên đặt chủ thể — đúng một lần; đặt xong, lượt chạy tự tiếp tục."
Nhấn Đặt chủ thể thực thi…, chọn chủ thể trong hộp thoại Đặt chủ thể thực thi cho lượt chạy, rồi nhấn Đặt chủ thể.
Đây là quyết định một lần và không đảo ngược được: "Lượt chạy này hành động với tư cách ai kể từ giờ. Chỉ đặt được một lần và không đổi được; đặt xong lượt chạy sẽ tiếp tục ngay. Nếu không ai nên sở hữu, hãy hủy lượt chạy." Lần thử thứ hai bị từ chối với "Chủ thể của lượt chạy đã được đặt và không thể thay đổi."
Đặt chủ thể và Tiếp tục là hai việc khác nhau cho hai trạng thái khác nhau. Một lượt chạy chưa có chủ thể sẽ tự tiếp tục ngay sau khi bạn đặt chủ thể; bạn chỉ cần thêm Tiếp tục nếu lượt chạy đó đồng thời cũng đã bị chặn do phân quyền.
Xem toàn bộ hiện trạng: trang Tình trạng phân quyền
Từng lượt chạy một là cách sửa; để nhìn cả hệ thống cùng lúc, mở Quản trị → Đơn vị tổ chức rồi nhấn nút Tình trạng phân quyền (nút mang một chấm đếm số phát hiện đang mở). Trang này cần quyền quản trị triển khai.
Đầu trang là một khối trạng thái sẵn sàng — "Thực thi run-as cho quy trình: sẵn sàng." khi mọi thứ đã xong, hoặc "Thực thi run-as cho quy trình: chưa sẵn sàng." kèm giải thích "Vẫn còn định nghĩa mang chính sách run-as chưa xác định hoặc các lượt chạy cũ chưa được quy chủ." Bên dưới là bốn ô số:
| Ô số | Nghĩa |
|---|---|
| định nghĩa chưa xác định | Số quy trình còn ở trạng thái Cần quyết định. |
| lượt chạy đang hoạt động không có chủ thể | Số lượt chạy đang sống chưa được đặt chủ thể thực thi. |
| lượt chạy bị chặn do ủy quyền | Số lượt chạy đang dừng vì bị từ chối một thao tác bản ghi. |
| chủ thể thực thi không hợp lệ | Số lượt chạy đang sống mà chủ thể của nó đã bị vô hiệu hóa hoặc xóa. |
Các phát hiện được nhóm theo họ; họ Chủ thể tự động hóa ("chính sách run-as, chủ thể thực thi, lượt chạy bị chặn") chứa đúng bốn thẻ tương ứng bốn ô số trên, mỗi thẻ kèm bảng chi tiết và cách khắc phục — ví dụ "Mở cài đặt trình thiết kế của từng quy trình → Chạy với tư cách, và chọn chính sách." với liên kết Đặt run-as → dẫn thẳng vào trình thiết kế, hoặc Đặt chủ thể → dẫn thẳng vào trang lượt chạy. Bảng lượt chạy bị chặn hiển thị chủ thể, quy trình, lượt chạy, thực thể, thao tác, thời điểm và nhóm nguyên nhân — và, đúng như thẻ đó ghi, "Bản ghi liên quan không bao giờ hiển thị ở đây."
Thẻ nào có số đếm bằng 0 sẽ biến mất khỏi trang, chứ không hiển thị số 0. Một tổ chức sạch chỉ còn khối trạng thái sẵn sàng và bốn ô số 0.
Khối trạng thái sẵn sàng là tín hiệu, không phải công tắc — không có cờ nào để tắt việc thực thi. Kể từ khi bản phát hành có tính năng này được triển khai, quy trình nào còn ở Cần quyết định là đơn giản không chạy được, và lượt chạy cũ nào chưa có chủ thể là không nhích thêm một bước nào. Hãy làm danh sách này về 0 ngay sau khi nâng cấp, trước khi tự động hóa không giám sát cần tới nó.
Ví dụ
Mỗi đêm, hóa đơn rơi vào một thư mục theo dõi được quy trình Nhập hóa đơn đêm biến thành hồ sơ của thực thể Hồ sơ vụ việc. Không ai bấm nút — quy trình khởi chạy theo lịch lúc 02
. Tổ chức, cây đơn vị và bốn chính sách làm nền cho ví dụ này được dựng từng bước ở Ví dụ: phân quyền cho một tổ chức; phần dưới đi theo đúng quy trình đó, từ lần bật lịch đầu tiên tới lần gỡ chặn cuối cùng.Bật lịch bị từ chối. Quy trình vừa tạo đang để Người khởi chạy. Bạn mở trình soạn trigger, đặt lịch 02
hằng đêm rồi gạt công tắc Đang hoạt động — và nhận đúng ba chữ "Không thể lưu". Lịch không được bật. Lý do nằm cách đó một màn hình: lượt chạy 02 không có ai là người khởi chạy, nên chính sách hiện tại không phục vụ được nó, và trình soạn trigger không nói ra điều đó.Đặt chính sách trước, bật lịch sau. Mở Cài đặt → Chạy với tư cách, chọn Một service principal, chọn Invoice Import, nhấn Lưu — "Đã cập nhật chính sách chạy với tư cách". Quay lại trình soạn trigger và gạt Đang hoạt động: lần này lịch lưu được.
Để Invoice Import thật sự làm được việc, nó phải có sẵn ba thứ trước đêm chạy đầu tiên: quyền thô entity.write qua một vai trò, một lượt cấp quyền trên Hồ sơ vụ việc gồm Tạo · Đơn vị ▪ Accounts Payable, và một đích cho hồ sơ mới. Thứ ba có hai cách làm: gán Accounts Payable làm đơn vị chính của Invoice Import — đây là cách mặc định, vì bước để nguyên Đơn vị của chủ thể sẽ giải ra đúng đơn vị chính ấy — hoặc đặt Đơn vị đích của bước Bản ghi thực thể sang Một đơn vị (A unit) rồi chọn Accounts Payable, cách này không đòi hỏi lượt gán nào phải là đơn vị chính, thậm chí không đòi hỏi lượt gán nào cả. Cách dựng từng thứ nằm ở trang ví dụ dẫn bên trên.
Kiểm chứng trước khi chờ tới 02. Ngay trong hộp thoại Chạy với tư cách, nhấn Xem trước quyền truy cập…, chọn thực thể Hồ sơ vụ việc, thao tác Tạo, rồi hỏi đúng câu hỏi mà bước sẽ hỏi: điền Đơn vị đích là Accounts Payable nếu bạn đã nêu đích ngay trên bước, hoặc bỏ trống ô đó nếu bạn đi theo cách đơn vị chính — chỉ khi bỏ trống, bản xem trước mới bắt được lượt gán chưa được đánh dấu là chính. Nhấn Giải thích. Kết quả Được phép nghĩa là đêm nay quy trình sẽ tạo được hồ sơ. Đặt đúng câu hỏi đó trước khi cấp quyền thì kết quả là Bị từ chối, kèm yếu tố "Không quyền nào trên thực thể này gọi tên chủ thể cho thao tác này — trực tiếp hay qua nhóm."
Một tháng sau, có người gỡ lượt cấp quyền đó. Đêm ấy quy trình vẫn khởi chạy đúng giờ, tạo được vài hồ sơ đầu, rồi dừng. Lượt chạy nằm trong danh sách phiên với chip màu hồng Bị chặn do phân quyền, và trang chi tiết của nó ghi:
| Dòng | Giá trị trên lượt chạy này |
|---|---|
| Thao tác | Tạo |
| Thực thể | Hồ sơ vụ việc |
| Lý do | "không có quyền nào cho phép thao tác này với chủ thể trên thực thể" |
| Từ lúc | 02 |
| Chạy với tư cách | Invoice Import |
Bạn biết đủ để sửa — thao tác nào, trên thực thể nào, với tư cách ai — mà vẫn không biết hồ sơ nào. Hồ sơ đang tạo dở không xuất hiện ở bảng này, cũng không ở bất kỳ chỗ nào khác.
Nhấn Tiếp tục khi chưa sửa thì bị từ chối. Quản trị viên mở lượt chạy, nhấn Tiếp tục, xác nhận Tiếp tục lượt chạy — và khối cảnh báo trả lời ngay tại chỗ: "Vẫn bị chặn: chủ thể của lượt chạy vẫn bị từ chối thao tác đó. Hãy khắc phục quyền truy cập trước." Không có gì thay đổi: lượt chạy vẫn dừng ở đúng bước cũ và những hồ sơ đã tạo vẫn còn.
Cấp lại quyền rồi tiếp tục. Trên tab Quyền truy cập của Hồ sơ vụ việc, thêm lại lượt cấp quyền cho Invoice Import với Tạo · Đơn vị ▪ Accounts Payable. Quay lại trang lượt chạy và nhấn Tiếp tục lần nữa: "Đã tiếp tục lượt chạy", rồi quy trình chạy tiếp từ đúng bước đã bị từ chối.
Ba đêm trôi qua trước khi có người để ý, nên có ba lượt chạy bị chặn chứ không phải một — ô lượt chạy bị chặn do ủy quyền trên trang Tình trạng phân quyền đếm đủ cả ba và liệt kê từng lượt. Cấp lại quyền không tự gỡ lượt nào; mỗi lượt vẫn cần một lần Tiếp tục riêng.