Posts

Dataverse Hierarchy Security - Manager & Position

Dataverse Hierarchy Security - Manager & Position Clear steps, rules and a Position-hierarchy example-styled with Dataverse theme green. Manager Hierarchy - Setup & Notes When to use Use Manager Hierarchy when you want access to flow from a user to their manager(s) based on the Manager field in Azure AD / Entra ID. Important rule The subordinate must be in the same Business Unit or a child Business Unit of the manager. If not, you will see: This user is not a member of the manager's business organization. Quick checklist Table must be User or Team-owned . Record owner must be a User (not a Team). Manager must be assigned in Azure AD (Manager property). Step-by-step (Manager Hierarchy) Go to Settings > User Permissions > Hierarchy Security . Enable Manag...

Dataverse Security Explained: Business Units, Teams, Roles & Ownership

1. Dataverse Table Ownership (Organization vs User/Team) Organization-Owned Table: Records do NOT have individual owners. Only None or Organization permission levels are allowed. Used for: Configuration tables, global reference data. User/Team-Owned Table: Records are owned by users OR teams. Allows scopes: None, User, Business Unit, Parent:Child BU, Organization . Used for: Operational data (Projects, Cases, Accounts). 2. Business Unit vs Team (They Are Not Same) Business Unit: Defines security boundary and data visibility. Every user belongs to exactly one BU. Cannot own records. Team: A group inside a Business Unit. Can own records (Owner Team). You can add/remove members. Roles assigned to Teams apply only to Team members. 3. Default Business Unit Team (Auto-created Team...

Dataverse Table Ownership & Security Permissions

Dataverse Table Ownership & Security Permissions Clear explanation of ownership types and permission scopes (organization vs user/team) Overview In Microsoft Dataverse every table has exactly one ownership type . Ownership determines whether row-level security can be applied and which permission scopes are available in security roles. 1. Organization‑Owned Tables Records are owned by the organization , not by users or teams. Row-level scopes (User / BU / Parent:Child BU) are not available. Available permission scopes in security roles: None  - no user can perform the action Organization  - every user with the privilege can act on all records Typical use: global configuration, metadata, reference lists or settings where everyone can read or manage at org-level. 2. User or Team‑Owned Tables Each record has a...

Dataverse Lookup Permission Matrix

D Dataverse Lookup Permission Matrix Many-to-One lookup: Child → Parent (example: Employee → Department) Quick summary To edit a lookup you must have matching Append / Append To plus appropriate Read/Write levels on the involved tables. Missing any required permission typically shows a 🔒 lock on the lookup. Parent Table -  Department (records you select) Permission Required Level Why Needed If Missing Read Organization Allows user to view/select parent records Lookup dropdown is blank Append To Organization Allows child record to attach to parent If it is not there while saving record it will show error like below Insufficient Permissions Calleruser(Id = 12) is missing prvAppendTosun_RelatedTable pri...

Power Automate Desktop - Excel Consolidation and Summary Automation

PAD Overall Goal You are automating a process to: Collect all Excel files ( .xlsx ) from a folder (including subfolders). Combine their data into one master table. Calculate total and average sales by region ( North, South, East, West ). Save everything in a new consolidated Excel file with two sheets: One sheet with all raw data Another sheet with summarized regional totals and averages Download the sample files from the below link Power-Automate-Desktop Samples Power Automate Desktop – Pseudo Code Explanation This Power Automate Desktop (PAD) pseudo code automates the process of consolidating Excel files and calculating total and average sales by region. Below is the plain English explanation of each step and why it’s performed: 1. Get all Excel files: The flow searches through the folder E:\Power Platform\PAD\Samples (including subfolders) to collect every Excel file with the extension .x...

Use Case: Automating Quarter Close Transaction Reviews with Power Automate

PA Quarter Close – Review Transactions Power Automate Use Case for Finance Teams The finance department of Peters Manufacturing needs your help. At the end of each fiscal quarter, the finance team spends significant time on an important task ,ensuring that all financial obligations were invoiced on time, paid on time, and cleared within the expected period. Using Power Automate , this repetitive verification process can be automated to save time and improve accuracy when validating transaction data between the internal finance system and the Arcadia Banking application. Note: You can view the challenge at the link below. Automation Anywhere Labs - Quarter Close Challenge It will ask you to log in. Use the Community Login option and sign up for a new account if needed. Enter your Gmail or any other email address to sign in. Before running the flow, make sure you are logged in to the site. Use C...

Dynamic UI Selector in Power Automate Desktop

Image
We’ll look at how to select a UI element from a web form when its ID changes every time the form is loaded. Go to https://rpachallenge.com/ and download the Excel file. First, I’ll explain how to capture the element and make the selector dynamic. Consider that we've launched the RPA Challenge website in Power Automate Desktop (PAD). After adding the Populate text field on web page action, click Add UI element . Open this tab in Microsoft Edge. Select the First Name text box. It will be captured using its ID , but since the ID changes each time, replace it with a unique HTML attribute. For this website, the attribute ng-reflect-name is unique and can be used instead. After selecting the element, turn on the Text Editor toggle in the selector window. Then replace the existing selector with: input[ng-reflect-name="labelFirstName"] You can find this attribute value by inspecting the element in the brows...