惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
Vercel News
Vercel News
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
N
Netflix TechBlog - Medium
Google DeepMind News
Google DeepMind News
H
Help Net Security
罗磊的独立博客
The Cloudflare Blog
J
Java Code Geeks
博客园 - 叶小钗
I
InfoQ
B
Blog
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
腾讯CDC
月光博客
月光博客
博客园_首页
雷峰网
雷峰网
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
美团技术团队
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Centralized procurement D365: global address book + vendors
SapotaCorp · 2026-05-24 · via DEV Community

Multi-legal-entity enterprises standing up centralized procurement on D365 Finance face a recurring master data problem. The same vendor gets purchases from multiple LEs, each with its own currency, tax rules, and approval hierarchy. Without discipline, the same vendor ends up configured three or four times - different addresses in each LE, different contact emails, different payment terms that don't actually reflect the contract.

Teams reach for custom sync services or per-LE vendor duplicates. Neither is necessary.

The wrong answers in procurement design

Configure separate vendor records per LE with custom sync. Adds a custom integration service between LEs to keep vendor data aligned. The service becomes a dependency that has to be maintained, monitored, and upgraded indefinitely. Every field addition requires integration changes.

Route all requisitions through manual intercompany transactions. Avoids duplicating vendors but shifts the pain to operations. Every cross-LE purchase becomes a multi-step manual process. Procurement teams resist; shadow-procurement workarounds appear within a month.

Enable procurement categories per LE and consolidate via Excel Power Query. Looks simple in design but means spend visibility lags behind transactions by whatever the reporting cycle is. CFO asks for "current total spend with Vendor X" and waits for a manual refresh.

The pattern that scales

The global address book plus centralized procurement features in D365 F&O.

What each piece does:

Global address book is the party-based master data layer that sits above legal entities. Each vendor is a party in the global address book with one canonical record. The party is released to each LE that transacts with it, with per-LE vendor metadata layered on top (payment terms, posting profile, default financial dimensions).

Centralized procurement allows one LE to purchase on behalf of another. The purchasing LE issues the PO, receives from the vendor, and then inter-companies the goods or services to the requesting LE. Standard feature, configured at the purchasing-LE level.

Shared vendor governance - new vendor requests route through a central procurement workflow. The vendor is created at the party level, then released to LEs with approval. No vendor exists in any LE without central approval.

Global address book discipline

The rules that keep global address book clean:

  • One party per legal entity of the supplier. Same vendor in multiple countries may be multiple parties if they have separate tax IDs and legal identities; if it's the same legal entity selling globally, one party.
  • Address hierarchy on the party - primary address, alternate shipping addresses, branch offices all hang off one party.
  • Contact records at the party level where the contact works across LEs, at the vendor-release level when contact is LE-specific.
  • Duplicate detection rules configured at party creation to prevent the same vendor entering twice.

Without discipline, the global address book becomes the same mess as per-LE records with extra steps.

Per-LE vendor configuration

What stays LE-specific:

  • Payment terms - contracted per LE, reflecting local currency and payment-cycle norms
  • Posting profile - accounting treatment per LE
  • Default financial dimensions - different LEs may have different cost-center default for the same vendor
  • Bank accounts - vendor might have one US bank for USD payments, one EUR bank for European payments
  • Purchase approval hierarchies - per-LE because policies differ

The party data (name, address, tax registration) stays at the global level. The operational behavior stays per-LE. Both are automatically consistent because they're one object with layered attributes.

Approval hierarchies per LE

Centralized procurement doesn't mean centralized approval. Each LE configures its own approval workflow based on:

  • Purchase amount thresholds (may be in local currency, converted)
  • Requester's organizational position
  • Commodity category (office supplies vs IT hardware vs capital equipment)
  • Vendor classification (existing vendor vs first-time vendor)

The workflow is LE-local. The vendor record is global. The PO knows which LE it's from and applies the right workflow.

Intercompany trade for shared purchasing

When LE A buys on behalf of LE B:

  1. LE A's buyer issues the PO to the vendor
  2. Vendor ships to LE A's receiving point (or directly to LE B per drop-ship configuration)
  3. LE A creates the receipt and invoice against the PO
  4. Intercompany trade creates the paired LE B transactions automatically - intercompany PO at LE B, GR at LE B, invoice posting
  5. LE A and LE B settle through intercompany accounts

Standard functionality. Configured once per LE pair at setup.

Reporting against centralized spend

With shared vendor master, cross-LE spend reporting is a query, not a consolidation project. Power BI over the shared vendor tables, financial dimensions cutting across LEs, and Procurement analytics workspaces surface:

  • Total spend per vendor across all LEs
  • Commodity spend across the enterprise
  • Vendor compliance metrics (cycle time, PO accuracy)
  • Savings achieved via negotiated rates applied centrally

All of this works because the vendor is one record.

What ships with the pattern

A working centralized procurement architecture has:

  • Global address book populated with vendor parties
  • Duplicate detection rules configured at party creation
  • Shared-vendor governance workflow for new vendor requests
  • Per-LE release with LE-specific operational configuration
  • Centralized procurement configured where one LE buys for another
  • Intercompany trade configured for LE pairs
  • Approval workflows per LE fitting local policy
  • Analytics consuming the shared vendor data

The feature existed before the requirement. Getting the architecture right is about using it correctly, not extending it.