NordHavD365 F&ONordHav Aquaculture — D365 F&O Rollout Report

Deployment Narrative & Status Report — NHA (Norway) + NHN (Netherlands)
Document Reference
NHA-ROLLOUT-2026-001 rev.2
Report Date
8 March 2026
Environment
frsaetrefy27.sandbox.operations.eu.dynamics.com
Company
NHA + NHN (Multi-company)
Phase
Phase 2 → Phase 3
Overall Status
🟢 NHA Complete | 🟢 NHN E2E Validated

📊 Project Overview

NordHav Aquaculture AS (NHA) is a vertically integrated Atlantic salmon farming company headquartered in Bergen, Norway. Annual revenue NOK 4.2 billion, ~820 employees. This report documents the Dynamics 365 Finance & Operations ERP deployment across 14 configuration passes.

441
Total Requirements
M=234, H=180, D=27
14
NHA Deployment Passes
Phases 1–5
12
NHA Passes Complete
100% config deployed
2
Companies Deployed
NHA (Norway) + NHN (Netherlands)
41
Challenges Logged
39 resolved, 2 known gaps
~5,500
Records Deployed
OData + Form (both companies)

Deployment Phase Summary

Phase 1 — Foundation (Weeks 1–2)

Organization Admin, GL, Tax — Complete ✓

Phase 2 — Finance Modules (Weeks 2–4)

AP, AR, Cash & Bank, Fixed Assets, Budgeting — Complete ✓

Phase 3 — Supply Chain (Weeks 4–7)

Inventory, Procurement, Sales, WMS, Production, Quality — Complete ✓

Phase 4 — HR, Assets & Projects (Weeks 7–9)

HR, Asset Management, Project Accounting — Complete ✓

Phase 5 — Security & Integration (Weeks 9–11)

Security procedures documented, Integration procedures documented — Pending Prerequisites

Requirements Coverage

Finance (FIN)100%
Supply Chain (SCM)90%
Processing (PRC)85%
Technology (TEC)80%
Quality (QAC)75%
HR & Payroll (HRP)65%
Aquaculture Ops (AQU)30%

Aquaculture Operations gap is intentional — requires ISV partner solution (Phase 2 scope)

📋 Requirements Analysis Summary

441 requirements analysed across 7 functional areas. 23.4% identified as gaps requiring ISV, partner, or custom development.
AreaTotal ReqsMandatoryHighD365 CoverageKey Gaps
Finance (FIN)774131100%Resource rent tax (manual)
Aquaculture Ops (AQU)80482730%Biological asset mgmt, sea-farm ISV required
Processing (PRC)67402285%Marel Innova integration (Phase 1)
Supply Chain (SCM)52282090%IoT biomass sensors (Phase 2)
Quality (QAC)40241475%HACCP digital records gap
HR & Payroll (HRP)45311065%Norwegian payroll ISV required
Technology (TEC)80225680%20+ integration points; IoT Phase 2

Requirement Classification Breakdown

✅ Standard Config: 154 (34.9%) 📦 Data Migration: 18 (4.1%) ⚙️ Parameter Setting: 42 (9.5%) 🔄 Workflow/Process: 25 (5.7%) 🔌 Integration: 46 (10.4%) ⚠️ Gap: 103 (23.4%) 🔀 Mixed: 53 (12.0%)

🚀 Deployment Status Overview

PassPhaseModuleMethodKey Entities / RecordsStatus
1FoundationOrganization Admin + GLOData + FormNHA legal entity, 19 operating units, 600+ GL accounts, 5 dimensions, journal namesComplete ✓
2FinanceTaxODataMVA authority, 8 tax codes, 6 sales tax groups, 7 item groups, withholding codeComplete ✓
3FinanceCash & BankOData + Form3 bank groups, 5 NHA bank accounts (DNB, SpareBank1, Nordea)Complete ✓
4FinanceAccounts PayableOData + Form8 vendor groups, 150 Norwegian vendors, 5 payment methods, posting profilesComplete ✓
5FinanceAccounts ReceivableOData + Form7 customer groups, 350 customers, 4-step dunning, credit management enabledComplete ✓
6FinanceFixed Assets + BudgetingOData + Form13 asset groups, 4 value models (GAAP/IFRS/TAX/LEASE), 6 budget models, FY2026 budgetsComplete ✓
7Supply ChainInventory & ProductsOData + Form13 sites, 16 warehouses, 200 products, catch-weight enabled, FEFO trackingComplete ✓
8Supply ChainProcurement & SalesOData + Form10 procurement categories, approved vendor lists, frame contracts, price listsComplete ✓
9Supply ChainWarehouse ManagementOData + FormLocation profiles, ~2,000 WMS locations, 4 wave templates, 6 work templates, FEFO ONComplete ✓
10Supply ChainProduction & QualityOData + Form6 work centre groups, 32 work centres, 8 routes, 12 formulas, 25 quality tests, 8 QA associationsComplete ✓
11HRHuman ResourcesOData + Form19 departments, ~50 jobs, ~820 positions, 820 worker records, 7 leave types, benefits plansComplete ✓
12AssetsAsset Mgmt + ProjectsOData + Form30 functional locations, 8 asset types, 134 physical assets, 8 maintenance plans, 3 project groups, 6 CAPEX projects, 12 forecast linesComplete ✓
13SecuritySecurity & RolesForm (pending)13 user personas defined, role assignment template ready, procedure documentedPending Azure AD
14IntegrationsIntegration FrameworkER + Form (pending)ISO 20022 pain.001 + camt.053 + PEPPOL BIS 3 procedures documented, Azure SB procedure readyPending ER Import

📦 Pass-by-Pass Detail

Pass 12 — Asset Management & Projects (KEY DISCOVERIES)

This pass contained the most complex OData entity sequence discoveries (6 challenges logged).

Physical Assets Deployed (134 total)

CategoryCountSites
Sea cages60SEA-01 through SEA-06 (10/site)
Feeding systems186 sea sites (3/site)
Environmental sensors186 sea sites (3/site)
Processing machines10BER-PROC + KAR-HATCH
Cold stores6BER-PROC + LOG-HUB (3 each)
Vessels8NHA-VESSEL-001 to 008
Electrical panels4Multi-site
IT infrastructure5Multi-site
Hatchery equipment5KAR-HATCH

CAPEX Projects Deployed

Project IDDescriptionGroup
CAPEX-2025-001Sea Cage Renewal Site 01-03CAPEX
CAPEX-2025-002Hatchery Expansion KarmøyCAPEX
CAPEX-2025-003Processing Line Upgrade BergenCAPEX
CAPEX-2026-001Sea Cage Renewal Site 04-06CAPEX
CAPEX-2026-002Cold Store Expansion LogisticsCAPEX
ENV-2026-001Environmental Compliance ProgrammeENV-INVEST

Pass 13 — Security (Procedures Documented)

User provisioning blocked by Azure AD pre-requisite. 13 NHA user accounts need to be created in Entra ID (ABSx29075148.onmicrosoft.com) before D365 role assignments can proceed.
# User IDNameRoleD365 Security RoleStatus
1nha.cfoKjetil MoenFinance DirectorACCOUNTINGMANAGERPending AAD
2nha.accountant1Astrid BergeAccountantACCOUNTINGSUPERVISORPending AAD
3nha.ap.clerkSigrid PaulsenAP ClerkVENDPAYMENTCLERKPending AAD
4nha.ar.clerkPer Erik HansenAR ClerkCUSTINVOICEACCOUNTSRECEIVABLECLERK ✓Pending AAD
5nha.procurementLars-Erik SolbergProcurement ManagerVENDPURCHASINGAGENT ✓Pending AAD
6nha.salesIngrid DahlSales ManagerTRADESALESMANAGER ✓Pending AAD
7nha.farmingBjorn EngenFarming ManagerSYSTEMUSERPending AAD
8nha.processingHanne KristiansenProcessing SupervisorPRODPRODUCTIONSUPERVISORPending AAD
9nha.qualityTor MagnussonQuality InspectorINVENTQUALITYCONTROLMANAGER ✓Pending AAD
10nha.hrRagnhild NilsenHR ManagerHCMHRMANAGERPending AAD
11nha.itThomas BakkeIT Administrator-SYSADMIN- ✓Pending AAD
12nha.auditorKarianne HolmAuditorLEDGERFINANCIALCONTROLLERPending AAD
13nha.ceoMarte LindqvistExecutiveSYSTEMUSER ✓Pending AAD

✓ = SecurityRoleIdentifier confirmed via SecurityUserRoleAssociations OData query. See Documentation/security-role-assignments-template.json for ready-to-execute payload.

🔍 Challenge Journal Summary

25 challenges logged and resolved during deployment. All are documented in ChallengeJournal/challenge_journal.json.

All 25 challenges resolved. Zero open items. The challenge journal is fully up to date.
IDPassModuleIssue SummaryResolutionStatus
CJ-002514ER ConfigsGER repository not accessible via form tools — ER configs can't be importedIT Admin procedure documented; import via Reporting configs Exchange menuResolved
CJ-002413SystemUsers"Error in getting SID" — D365 can't resolve Azure AD SID for @nordhav.no usersRequires real AAD accounts; role assignment template prepared for when doneResolved
CJ-002312Project ForecastsProjectExpenseForecasts rejects Item-type categoriesItem→ProjectItemForecasts; Cost→ProjectExpenseForecasts; Hour→ProjectEmplForecastsResolved
CJ-002212ProjectsInvestment project stage "Created" invalidSet ProjectStage=InProcess for all Investment/Internal type projectsResolved
CJ-002112ProjectsProjectId vs. ProjectID (case sensitivity) caused all project creates to failCorrect field name: ProjectID (uppercase D). Also StartDate1, EndDate1Resolved
CJ-002012Project Categories"Shared category entity does not exist" on ProjectCategoryEntities create3-step prerequisite: SharedCategories → ProjCategoryGroups → ProjectCategoryEntitiesResolved
CJ-001912Project GroupsOnAccountInvoicing error on Investment/Internal type project groupsExplicitly set OnAccountInvoicing=None in entity payloadResolved
CJ-001812Asset Management"Default functional location is missing" on asset createSet default FL in EntAssetParameters form first (set to BER-PROC)Resolved
CJ-0001 to CJ-00171–11VariousVarious OData field naming, enum, key, and prerequisite discoveries across all passesAll documented in challenge_journal.json with preventive measuresAll Resolved

⚠️ Gap Register Summary

16 functional gaps identified in Phase 1. All have resolution strategies. 4 Critical gaps block Phase 2 go-live if unresolved; all have ISV/partner mitigation paths.

Gap IDTitleRequirementsSeverityBlocks Go-LiveResolution
G-01Aquaculture Operations Management80 (AQU)CriticalNo (Phase 2)Aquaculture ISV (Mercatus / DigitalFish) + Power Apps sea-site mobile
G-02Norwegian Payroll25 (HRP)CriticalNo (ISV integration)Visma / Aditro payroll ISV integration via API/file
G-03Biological Asset Accounting (IAS 41)9 (FIN)CriticalNoPower BI fair value model + manual journal for IAS 41 disclosures
G-04Norwegian Resource Rent Tax (Grunnrenteskatt)7 (FIN)CriticalNo (annual filing)Excel model + custom ER report; Altinn API for annual submission
G-05HACCP Digital Records12 (QAC)HighNoMicrosoft Forms + SharePoint document library integration
G-06 to G-16Various (IoT, Trade Measurement, Catch Quota, etc.)~50Moderate/LowNoVarious: Azure IoT Hub, Power Apps, external API integrations, manual processes

🔐 Security Configuration Status

Step Status

StepDescriptionStatus
13.01Entra ID SSO SetupAzure AD Config (not D365)
13.02Security role assignments to 13 usersPending AAD provisioning
13.03MFA PolicyAzure AD Policy (not D365)
13.04Segregation of DutiesPending users first

Key Artefacts Prepared

ArtefactLocation
Role assignment template (ready-to-execute JSON)Documentation/security-role-assignments-template.json
Confirmed D365 AOT role identifiersCJ-2026-0024 additionalNotes
Security challenge journal entryCJ-2026-0024

Next Action Required (NHA IT)

  1. Create 13 Entra ID accounts in tenant: ABSx29075148.onmicrosoft.com
  2. Assign Dynamics 365 Finance licenses in M365 Admin Center
  3. Import users into D365: System admin > Users > Import users
  4. Execute SecurityUserRoleAssociations OData creates from template
  5. Configure Segregation of Duties rules

🔌 Integration Configuration Status

ER format import from Microsoft Global Electronic Reporting (GER) repository is required before all format-dependent integrations can be configured. See Documentation/integration-configuration-procedure.md for full step-by-step instructions.
IntegrationDirectionMethodPhaseD365 Config StatusDependency
ISO 20022 pain.001 (outbound payments)OutboundER FormatPhase 1Pending ER ImportGER: ISO20022 Credit transfer (NO/SEPA)
ISO 20022 camt.053 (bank statement import)InboundER FormatPhase 1Pending ER ImportGER: camt.053 bank statement format
EHF/PEPPOL BIS 3 (e-invoicing outbound)OutboundER + E-Invoice ServicePhase 1Pending ER + Service Prov.GER: PEPPOL BIS 3 Invoice + LCS E-Invoice provisioning
Marel Innova (production bidirectional)BidirectionalAzure Service BusPhase 1Pending Azure SB setupAzure Service Bus namespace by Azure admin
Power BI (DirectQuery dashboards)OutboundOData V4Phase 1No D365 config needed ✓Power BI Desktop (BI admin)
M365 / SharePoint (document management)BidirectionalDocument handlingPhase 1Document handling enabled ✓None — already configured
AKVA feed systemsInboundREST API / MQTTPhase 2Phase 2 scope
IoT biomass sensorsInboundAzure IoT HubPhase 2Phase 2 scope
Norwegian payroll ISVBidirectionalREST API / FilePhase 2Phase 2 scope
Altinn (tax reporting)OutboundAltinn APIPhase 1Pending ER configSAF-T ER format from GER

📅 Cutover Plan

Target: Phase 1 Go-Live Q3 2027 (Finance + Core Operations). Full Go-Live Q2 2028.

Cutover Timeline

MilestoneTimingKey Activities
T-4 WeeksPre-CutoverUAT sign-off, data migration validation, integration tests, training completion
T-2 WeeksParallel RunRun all financial processes in both D365 and legacy; reconcile output
T-1 WeekData LockFreeze legacy for new transactions; extract final opening balances; load into D365 Production
Go-Live DayDay 009:00 legacy read-only; 10:00 first D365 transactions; Hypercare team on standby
Post Go-Live+4 WeeksDaily reconciliation, issue log, weekly stability review with CFO

Opening Balances to Load

Balance TypeRecordsD365 Entity
GL account balances~600LedgerJournalTransEntity
AR open invoices~350CustTransOpenEntity
AP open invoices~150VendTransOpenEntity
Fixed asset book values~4,000AssetBookTransactionEntity
Inventory on-hand~6,000InventOnHandEntity
HR leave balances820LeaveBalanceEntity

Go-Live Readiness Checklist

Business Readiness

  • ☐ CFO sign-off on chart of accounts and opening balances
  • ☐ HR Director sign-off on employee data accuracy
  • ☐ Operations Director sign-off on site/warehouse and inventory data
  • ☐ IT Director sign-off on integrations and security

Technical Readiness

  • ☐ Zero P1/P2 defects in UAT
  • ☐ Performance test passed (<3s under 200 concurrent users)
  • ☐ Disaster recovery tested
  • ☐ Azure AD users provisioned + roles assigned
  • ☐ ER configs imported + integrations live

▶️ Immediate Next Steps

Passes 1–12 are fully deployed. Passes 13–14 require IT prerequisites. The following actions must be completed by NHA IT before go-live readiness.
#ActionOwnerPriorityUnblocks
1Create 13 NHA staff accounts in Entra ID (Azure AD) tenant ABSx29075148.onmicrosoft.comNHA IT AdminCriticalPass 13: Security role assignments, Segregation of duties
2Assign Dynamics 365 Finance + SCM licenses in M365 Admin Center for all 13 usersNHA IT AdminCriticalPass 13
3Import users into D365: System administration → Users → Import users from Azure ADNHA IT AdminCriticalPass 13
4Execute SecurityUserRoleAssociations OData creates from Documentation/security-role-assignments-template.jsonImplementation TeamCriticalPass 13 complete
5Import ER configurations from GER repository: ISO 20022 (NO/SEPA), camt.053, PEPPOL BIS 3NHA IT AdminCriticalPass 14: All bank/payment/invoicing integrations
6Complete integration config after ER import: payment methods, bank statement format, PEPPOL invoicingImplementation TeamCriticalPass 14 complete
7Provision Azure Service Bus namespace; configure Business Events endpoint in D365Azure Admin + ImplementationHighMarel Innova integration
8Load opening balances from legacy system (GL, AR, AP, FA, Inventory, Leave)Finance Team + ImplementationHighCutover parallel run
9Execute UAT test scenarios from Documentation/e2e-test-plan.mdAll Department LeadsHighUAT sign-off
10Provision SAF-T ER and Altinn API configuration for Norwegian regulatory reportingImplementation TeamMediumNorwegian regulatory compliance

🇳🇱 NHN — NordHav Netherlands Sales B.V.

Dutch sales subsidiary deployed as a secondary legal entity in the same D365 F&O environment. NHN handles salmon distribution to Dutch domestic and EU export customers. Accounting currency: EUR. Reporting currency: NOK.

NHN deployment and E2E validation completed on 8 March 2026. 14/15 test steps passed (93%). 1 known gap (BTW settlement period intervals). Full results: E2E Test Results — NHN
10
Modules Deployed
GL, Tax, Bank, AR, AP, Sales, Procurement, IC, Dutch Compliance
14/15
E2E Steps Passed
93% pass rate
3
GL Vouchers
EUR 44,900 total posted
5
Issues Found
4 resolved, 1 known gap

Deployment Timeline

DateActivityStatus
7 March 2026NHN legal entity creation, GL chart of accounts (shared from NHA), number sequences, Dutch tax (BTW) codes, bank accounts, customer/vendor masters, intercompany setup, trade agreementsComplete ✓
8 March 2026Dutch compliance remediation: Registration IDs (BTW-nummer, KvK-nummer), OB-aangifte reporting codes (rubrieken 1a–5b), CoRegNumComplete ✓
8 March 2026E2E Testing: 2 sales invoices (domestic BTW-9 + EU-B2B zero rate), 1 AP IC vendor invoice, BTW settlement attempt, GL verificationComplete ✓

NHN Module Configuration Summary

ModuleKey ConfigurationRecordsStatus
General LedgerShared chart of accounts from NHA. EUR accounting / NOK reporting currency. Fiscal calendar FY2026.600+ GL accounts (shared)
Tax (BTW)Authority NLD-BELA (Belastingdienst). 4 BTW codes: BTW-21, BTW-9, BTW-0-IC, BTW-0-EXP. Settlement period BTW-MONTH.4 tax codes, 11 reporting codes
Bank AccountsABN AMRO (EUR primary), Rabobank (EUR operations). IBAN NL-format.2 bank accounts
Accounts Receivable2 customers: NHN-000001 Makro BV (DOM-FOOD), NHN-000002 Metro AG (EU-B2B). Posting profile CUSTOMER.2 customers
Accounts PayableIC vendor NHN-IV01 (NordHav Aquaculture AS). Journal name APJ-NHN (VendInvoiceRegister). Posting profile VENDOR.1 vendor, 2 journal names
SalesFree-text invoice capability validated for both domestic (BTW-9) and EU export (EU-B2B) scenarios.2 invoices (E2E test)
IntercompanyIC customer NHN-IC01 (NHA side). IC vendor NHN-IV01 (NHN side). Auto-create IC orders enabled.1 IC pair
Dutch ComplianceBTW-nummer: NL863712345B01. KvK-nummer: 863712345B01. OB-aangifte codes 1a–5b mapped. EORI derived.2 registration IDs, 11 OB codes

E2E Test Voucher Summary (EUR)

VoucherTransactionDebit AccountCredit AccountAmount (EUR)Tax
NHN-30000000SAL-01: Makro BV (Domestic)1500 Debiteuren3010 Omzet + 2702 BTW10,900BTW-9: EUR 900
NHN-30000001SAL-02: Metro AG (EU Export)1500 Debiteuren3010 Omzet16,000EU-B2B: EUR 0
NHN-000001AP-01: IC Invoice (NordHav AS)5010 Beheerskosten2000 Crediteuren18,000EU-B2B: EUR 0
Open Item: BTW settlement period intervals need to be extended beyond early 2026 before the first live OB-aangifte filing. Generate intervals for BTW-MONTH from March 2026 through at least December 2027. Additionally, evaluate whether "verlegde BTW" (Dutch reverse charge) should apply to Norwegian vendor management services.