Showing posts with label Dynamics 365. Show all posts
Showing posts with label Dynamics 365. Show all posts

Document Malware Scanning in Dynamics 365: What’s Covered by SharePoint vs Dataverse

Author: Forrest Zhang

When someone asks whether “Dynamics 365 supports virus scanning or document quarantining,” the correct answer is: it depends on where the document is stored. In Microsoft’s ecosystem, documents attached to Dynamics experiences typically live in one of two places:

  • SharePoint / OneDrive (via Dynamics 365 “Document Management” integration)
  • Dataverse (Notes/attachments, File columns, and other Dataverse-backed storage)

Both can provide malware protection, but the capabilities and the operational behavior differ.

Thumbnail Grid PCF: User Guidance

Author: Forrest Zhang  •  Version: 0.2.3

The Thumbnail Grid PCF turns a standard Dataverse subgrid into a clean, visual card layout with image, title, subtitle, and badges. It is useful when users need to quickly understand records by picture (files, products, assets, properties, listings, etc.) instead of scanning rows.

Dataverse + Cloudflare Integration Playbook

Author: Forrest Zhang

A privacy-safe reference architecture for secure, scalable self-service portals backed by Microsoft Dataverse—written as a reusable technical reference without any product or client branding.

Implementing Audit-Ready Status Transitions in Dataverse (Custom API + Guard Plugin Pattern)

Author: Forrest Zhang

Series: Audit-Ready Modernization – Implementation Track (Post A)

Designing Defensible Signature Experiences in Microsoft Power Pages

A risk-based blueprint for replacing PDF signatures in modern online intake portals

From One-Off Projects to Repeatable Platforms: Proving Impact with Metrics and Reusable Components

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 3 of 3)

RBAC That Scales: A Governance Model for Regulated Workflows (Role × Scope × Authority)

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 2 of 3)

Audit-Ready by Design: A Practical Framework for Modernizing Regulated Operations at Scale

Author: Forrest Zhang

Series: Audit-Ready Modernization (Part 1 of 3)

Dataverse Custom API vs. Classic Action

In Microsoft Dataverse / Dynamics 365 projects, we often need a clean way to implement “business operations” such as Submit, Approve, Reject, Close, Recalculate, or Validate. Two common options come up:
  • Custom API (modern, contract-based)
  • Classic Action (legacy process-based “Action”)

This article compares them in plain language, with real scenarios and governance considerations (security, auditability, and maintainability). It’s designed for solution architects, functional consultants, and makers who need to make the right platform choice, not just “get it working.”

Do Dataverse Application Users Need API Permissions or Admin Consent?

 Short Answer: No.

When you use the Dataverse application user pattern, you do not need to:

  • Add “Dynamics CRM” API permissions to your app registration, or

  • Click “Grant admin consent” in Entra ID (Azure AD).

Everything is governed by the Dataverse application user + security roles, not by Entra “API permissions”.

Implementing Dynamic Subgrid Filtering in Power Apps Model-Driven Forms Introduction

 In the Rental Smart MVP project, we often need to display filtered data in subgrids on forms like the Property form. This helps property managers quickly view owner expenses without clutter. Here's a simple JavaScript function to dynamically filter the Owner Expense History subgrid for Bills that are historical (Paid or Void), linked to the property owner, and not unit-specific. It uses setFilterXml for UCI compatibility and assumes the subgrid is set up as a related entity grid for Charges.

Dataverse Date & Time columns: a practical guide

The two settings that matter

  • Format: Date only or Date and time.

  • Behavior: User Local, Date Only, or Time zone independent.

These decide storage, conversion, and what users see.

Dynamics 365 → Clio Integration with Azure Service Bus & Durable Functions

From Zero to Working Demo: Power Automate → Azure Service Bus → Azure Durable Functions → Clio API

This guide walks a junior developer from a blank Azure subscription to a running integration that accepts a message, runs a Durable Function, and creates a contact in Clio via OAuth. It includes the Azure setup, the required environment variables, the project structure, and the end-to-end flow.

Assigning (or Un-assigning) a Contact’s Web Role with a Classic D365 Workflow

 

Portal web-roles drive what a portal user (contact) can see and do. If you only need a straightforward set-it-and-forget-it rule—no complex branching or API calls—a classic background workflow is still the quickest tool in the box.

Reactivate a Business Process Flow and Jump to a Target Stage with a Pre-Operation Plug-in

1 · Scenario

Problem statement ↴
Records previously flagged as Ineligible (statecode = Inactive) are later re-activated by users. Their associated Business Process Flow rows remain inactive and stuck on an early stage.

Edit related table records directly from another table’s main form

Reference: 1

There are multiple ways that you can work with related table records on a table form within Power Apps. For example, you can include related tables in read-only mode with a quick view form and create or edit a record using a main form in a dialog.

Another way you can work with related table records is by adding a form component control to another table's main form. The form component control lets users edit information of a related table record directly from another table’s form.

How to Check Whether Any Dataverse Record Is in a Particular Business-Process-Flow (BPF) Stage

Knowing the current stage of a Business Process Flow (BPF) lets you lock fields, hide buttons, or trigger downstream logic. Below are two generic patterns that work in every online environment—no proprietary entity names, no deprecated APIs, and no plug-ins.

Call Dataverse actions directly in Power Fx

Reference: 1 

As a part of the Power Fx language, authors can now directly invoke a Dataverse action within a formula. Both unbound and bound actions are supported. Authors can add a Power Fx Environment language object to their app and access Dataverse actions.