Den første start i Business Central AL er meget vanskelig for mange. Uanset om man kommer fra Navision-verdenen eller er nybegynder: Barriererne er utroligt meget højere end i "native" tider.
Det skyldes ikke nødvendigvis, at Business Central er så kompliceret at programmere. Det skyldes snarere, at tidligere versioner af Navision var utroligt nemme at programmere! Enhver, der virkelig har udviklet i Navision 3.5x (DOS) eller Navision op til version 2009R2, vil finde alt, der kommer derefter, unødvendigt og frygteligt kompliceret. Og det er det også. Som en „behagelig“ bivirkning kan det bemærkes, at enhver lille udvikling/tilpasning nu tager mindst dobbelt så lang tid sammenlignet med versionerne op til 2009R2. Hvis der tilføjes et rapportlayout lige over „Liste“, bør man ud fra sin erfaring regne med en faktor 3-5. Hvad der tidligere blev klaret på sekunder i native Navision (indsæt kolonne eller felt, klik hurtigt et par udtræk sammen) tager nu - selv med et etableret udviklingsmiljø! - snarere 10 minutter. Så snart det handler om dokumenter (hoved/linjer, sideskift), bliver det hurtigt til timer og dage.
Bare det at sætte udviklingsmiljøet op tager nu let en time for de første skridt.
Yderligere søgetermer: Kom godt i gang med Navision / Business Central 2020, Start programmering med Navision / Business Central AL 2020, Introduktion til Visual Studio Code for Navision / Business Central 2020, Opsætning af Visual Studio Code for Navision / Business Central Extensions.
Opsætning af virtuel maskine
Hvis kun én enkelt Navision-forekomst administreres, f.eks. den produktive i virksomheden, bortfalder dette trin.
Tiderne, hvor 5 forskellige Navision-installationer kørte problemfrit på en computer, er forbi. Hele den efterfølgende opsætning skal passe præcist til den installerede Navision eller Business Central, helst endda til patch-niveauet (CU = Cumulative Update). Min anbefaling, især til programmører og udviklere: En VM pr. installation, f.eks. en VM til en demoversion, en VM til kundeforversion 2019 Second Wave Cu2 osv.
Opsætning af en HyperV med 4 kerner og 4096 MB RAM, mindst 50 GB harddisk.






Installation af Windows 10 eller Windows Server behøver jeg ikke at dokumentere her, da det er ukritisk. Simpelthen „som altid“. Jeg anbefaler en offlinekonto, deaktivering af alle funktioner, der tilbydes under installationen inklusiv Cortana, direkte fjernelse af søgefeltet, Mail, Microsoft Store fra proceslinjen.
Kontrollér straks efter den første opsætning, om Windows har placeret genoprettelsespartitionen BAG datapartitionerne:


Sletning af gendannelsespartitionen
For fortsat at kunne udvide datapartitionen er opdelingen af Windows med gendannelsespartitionen bagved at datapartitionen er yderst forstyrrende. Du kan f.eks. ikke bare lige gøre drevet større og bagefter lige så let gøre det mindre igen for at gendanne en databasesikkerhedskopi. På en VM kan du dog sagtens undvære gendannelsespartitionen.


3. Slå fra med vælg disk 0 til den første datalagringsenhed (der er jo kun én i VM'en!)
4. Vis partitionerne med liste volumen en

Baseret på størrelserne kan du hurtigt finde de volumener (partitioner), der skal slettes, her Volume 2 og Volume 3.
5. Slå til med vælg bind 2 på det første volumen (partition), der skal slettes, og slet det med slet partitionsjustering. Gentag dette trin, hvis nødvendigt.
Nu kan du ændre størrelsen på datapartitionen som normalt og derved tilpasse den tilhørende virtuelle harddisk til det faktiske behov.
Hvis du bruger Oracle VM VirtualBox, kan du ikke grafisk forstørre den virtuelle harddisk. Her administreres harddisken generelt fra kommandolinjen. Forstør den derefter f.eks. med c:\“Programfiler\Oracle\VBoxManage“ modifyhd „volume.vdi“ –resize 60000.
Windows starter ikke længere med virtualisering
Siden Windows 2004 / 2020H2 ser det ud til at være en inkompatibilitet med Intel Virtualization. I det mindste havde jeg den ubehagelige oplevelse, at efter en helt normal genstart af computeren – uden bevidst opdatering/ændring – hilste min Lenovo Thinkpad P73 mig kun med Bluescreens of Death (BSOD). Oftest kom fejlmeddelelsen IRQL NOT LESS OR EQUAL, sjældnere Kernel Security Check Failure. Frakobling af USB-C dockingstationen, fjernelse af RAM, fjernelse af andre systemdiske, aktivering af et gendannelsespunkt, selv geninstallation af en via egen WIMage script oprettet sikkerhedskopi medførte ingen ændring. Nogle gange frøs Windows endda direkte under opstart: Cirklen af punkter, der drejer sig under Windows-logoet, stoppede pludselig, og efter kort tid genstartede computeren helt.
Her hjalp det kun på min maskine at slå Intels virtualiseringsunderstøttelse fra!
I (UEFI-)BIOS: Sikkerhed/Virtualisering, indstil de to valgmuligheder „Intel Virtualization Technology“ og „Intel VT-d Feature“ til Deaktiveret.
„DMA Memory Protection“ bør alligevel være slået fra på Lenovo-maskinen, når man bruger en USB-C dockingstation, ellers får man endnu flere problemer. Ikke dårligt for en professionel arbejdsstation fra mærkeproducenten Lenovo, hva'? Men så kører HyperV naturligvis heller ikke længere. Min eneste løsning: Afinstaller HyperV & Sandbox i Windows, og fortsæt med Oracle VM Virtual Box.
Mit vboxmanage clonehd „Quelle.VHDX“ „Ziel.VDI“ –format VDI kan du udtrække et VDI-harddisk fra en VHDX-fil. VHDX-filen kan derefter slettes. Via vboxmanage kan du også initialisere en komplet VM! Dermed er OracleVM Virtualbox vboxmanage samlet set mere kraftfuld end HyperV… men ikke så elegant integreret som HyperV.
Opsætning af Navision og Business Central som demo/udviklingsmiljø
Hvis der allerede er et produktionssystem tilgængeligt, bortfalder dette trin. Udfør kun opsætningen på en computer, som du ikke vil bruge produktivt til en 2. Navision, f.eks. Test & Produktionssystem. Her anbefaler jeg brugen af to virtuelle maskiner.
Med denne vejledning installerer du en 2020 SecondWave "out of the box". De tidligere versioner med C/AL "side by side". findes meget kompakt her.
Med denne vejledning her vil du også oprette en demoversion af Business Central (Navision). Målet er dog opsætning af et komplet miljø for Business Central / Navision programmører/udviklere/konsulenter.
Tildel din lokale administrator konto tilladelsen "Log på som en tjeneste".


2. Start opsætningen fra Business Central CD'en, acceptér licensbetingelserne, og vælg „Avancerede installationsmuligheder“:


3. Vælg Brugerdefineret. Advarsel: Rør ikke ved „Indlæs konfiguration“.

Foretag følgende indstillinger:


Tjenesten kunne ikke startes. Kontroller, at du har tilstrækkelige rettigheder til at starte systemtjenester
Ja... „normalt“ virker et setup direkte ud af boksen. Og hvis du har et frisk, simpelt Windows-system, så vil det også fungere som ovenfor. Domænetilhørsforhold, udførelsesrestriktioner, antivirusprogrammer... Der er så mange ting, der kan gøre livet svært for dig 🙂
Hvis du får fejlmeddelelsen „Service Microsoft Dynamics 365 Business Central Server (BusinessCentral 140) (MicrosoftDynamicsNavServer$BusinessCentral140) kunne ikke startes. Kontroller, at du har tilstrækkelige rettigheder til at starte systemtjenester (hvor 140 erstattes af det installerede versionsnummer), så bliver det lidt kompliceret.
Måske er porte, som du har angivet for Navision (for eksempel ved at lade standardportene stå, hvilket er helt fint), allerede optaget.
Prøv følgende:
Åbn en kommandoprompt som administrator, og indtast der
netsh http vis urlacl
en. Du får så en længere liste med sådanne poster:
Reserveret URL: https://*:5358/
Bruger: FORUDBESTEMT\Bruger
Aflytning: Ja
Deleger: Nej
Bruger: NT-AUTORITET\Lokalt system
Aflytning: Ja
Deleger: Nej
D:(A;;GX;;;BU)(A;;GX;;;LS)
Hvis du finder en post der med tallet 7047, 7048, 7049 eller de værdier, du selv har tildelt under opsætningen, skal du slette denne reservation som vist i eksemplet ovenfor.
netsh http delete urlacl url= https://*:5358/
Tjek derefter, om Navision Service Tier er installeret. Hvis ja, slet det med konfigurationskonsollen. Konfigurer derefter en ny NST.
En anden metode til at få Navision / Business Central til at køre på trods af fejlmeddelelsen „Service Microsoft Dynamics 365 Business Central Server (BusinessCentral 150) (MicrosoftDynamicsNavServer$BusinessCentral150) failed to start. Verify that you have sufficient privileges to start system services„ er at narre installationsprogrammet. Hvis du trykker “Annuller" ved denne fejlmeddelelse under opsætningen (og du kommer alligevel ikke videre), afinstallerer Navision eller Business Central servicen igen.
Prøv venligst følgende:
Tryk ikke på Gentag (det nytter intet) eller Annuller (afinstallerer alt).
Gå til systemtjenester, du bør se Navision-tjenesten her:

I dette tilfælde har du allerede klaret 99% af arbejdet... Det er bare det, at opsætningen ikke vil anerkende denne præstation.
I tjenesteindstillingen skal du ændre login-navnet til den service-udbyder, der blev nævnt tidligere, og forsøge at starte tjenesten.
På dette tidspunkt kan du også foretage ændringer i opsætningen ved hjælp af den allerede installerede Microsoft Dynamics 365 Business Central Server Console, hvilket ikke var muligt før (på grund af manglende service-mappe).
Formodentlig vil ServiceStart stadig ikke fungere, men du har nu de værktøjer, du har brug for.
Nu kommer det mest usædvanlige: Afslut opsætningen uden at give den mulighed for at rulle tilbage!
Det virker som regel ikke med Joblisten (men du kan prøve). Som regel genkender installationen systemkommandoen Luk, og ruller tilbage: Alt er væk.
Start i stedet jobkillen, vi har brug for PID'en fra opsætningen:

Start nu en kommandoprompt med administratorrettigheder, og indtast:
taskkill /PID 1644 /T /F (PID'en 1644 fandt du lige i Jobliste, du kan også finde den ved at bruge tasklist i kommandolinjen. Måske har du fanget en underordnet proces fra opsætningen, så vil Taskkill rapportere: Fejl: Processen med PID XXXX (underordnet proces af YYYY) kunne ikke afsluttes.
Gentag derefter `taskkill` igen med YYYY. Det kan være nødvendigt rekursivt.
Hvis du ikke kan komme videre på den måde, så træk stikket ud, eller sluk for VM'en med en hård nedlukning. Tryk under ingen omstændigheder på „Annuller“!
Efter genstart kan du holde øje med Navision-tjenesten via hændelsesloggen og se, hvorfor den laver problemer. Med overvejende sandsynlighed vil den efter denne hårde kur stadig ikke køre... men i det mindste kan du nu nemt observere og administrere den.
Lad dig ikke irritere af en vedvarende status „starter“. Tryk F5 i tjenesteoversigten, opstartsforsøget tager altid kun få (typisk <30) sekunder.
Genstart tjenesten, når computeren er startet helt op, og kontroller derefter hændelsesloggen.
Du vil sandsynligvis finde den eneste gyldige vejledning om, hvad du skal gøre der.
Forbindelsen til SQL-serveren kunne ikke oprettes Gå ind i den nu funktionelle administrationskonsol, og kontroller serverindstillingerne. Tjek selvfølgelig også lige diskret, om SQL-serveren med (demo)databasen overhovedet kører.
Bemærk: Du kan også installere en Navision-servertjeneste med ServiceControll (SC):
sc \\Computernavn opret MicrosoftDynamicsNAVServer$NAVision binpath= „Program Files (x86)\Microsoft Dynamics NAV\140\Service\Microsoft.Dynamics.Nav.Server.exe $NAVision“ DisplayName= „Microsoft Dynamics NAV Server 140“ start= auto type= own depend= NetTcpPortSharing Men jeg anbefaler konfigurationen via Setup.exe. Når du først er nået dertil, hvor du skal bruge sc..., er installationen så ødelagt, at du sandsynligvis ikke kan få den til at fungere alligevel. Måske hjælper det også bare: Træk vejret dybt, sæt computeren helt fra bunden op igen, start forfra.
Login mislykkedes for brugeren ‚NavServer‘. Årsag: Et forsøg på at logge ind med SQL-godkendelse mislykkedes. Serveren er kun konfigureret til Windows-godkendelse.
Det sker ofte, når man skifter Navision / Business Central Server-tjenesten fra Windows-godkendelse (f.eks. Networkservices eller Netværkstjeneste) til SQL Server-godkendelse, eller omvendt.
Grund: Navision-installationen installerer SQL Express med Windows-godkendelse. Det betyder, at du kan oprette så mange SQL-brugere i SQL Server, som du vil, men Navision vil stadig ikke kunne oprette forbindelse til SQL.
Højreklik på MS SQL SMS på serveren, vælg Egenskaber, Sikkerhed, aktiver blandet tilstand.
Søg ikke i hændelsesloggen! Denne note findes kun i SQL_Log.
Ekstra tip: Lige så snart du har mulighed for det, lægger du i det mindste disse programmer i proceslinjen:

Hvis du allerede har en SQL Server i brug, som skal hoste Navision-databasen, kan du blot angive denne SQL Server i dette trin.
Efter få minutter vil opsætningen rapportere succesfuldt. Du har nu installeret Business Central, en SQL-server, 3-lags-arkitekturen og et link på din computer.

Afhængigt af den anvendte Windows-version mangler du nu en browser, der kan vise Navision eller Business Central korrekt. Her har du valget mellem Google Chrome (fungerede allerede meget tidligt meget godt med Navision, min anbefaling), Edge (fungerer først med Business Central, efter Microsoft opgav deres egen engine og overtog Chromiums), Firefox (fungerer „ret godt“, men er i denne sammenhæng 2. valg). Internet Explorer er kun tilgængelig for dig, hvis du ellers foretrækker at dryppe Tabasco og limesaft i øjnene. Men den er rigtig god til at installere Chrome med :-).
Opsætning af Business Central Server
For at mit VSC (Visual Studio Code) automatisk kan indlæse symboler og basale applikationer, skal Business Central og Navision service serveren frigives til udviklingsmiljøet. Start Business Central Administration, naviger til den ønskede instans (i denne demo er det BC160), Udvikling

Fejlfinding aktiveret
Aktiver udviklertjenestepunkt
Resten forbliver som standard.
Opsætning VS Code
Tiden med et integreret udviklingsmiljø er forbi, også kaldet „Low-code“ eller „easy-programming“. Hvor man tidligere kunne oprette en komplet datastruktur (dog uden slettevideregivelse, hvilket Navision/Microsoft aldrig rigtig fik til) inkl. en dokumentrapport med hoved/linjestruktur helt uden en programmérlinje, kan man i dag ikke engang ændre et "Editable Ja/Nej" uden noget, der ligner programmering.
Jeg vil absolut anbefale at undgå „Docker“, medmindre du allerede er erfaren med emnet („Docker“ på Windows med Business Central eller Navision). I så fald behøver du sandsynligvis heller ikke min vejledning. Brug i stedet konceptet med virtuelle maskiner som beskrevet ovenfor, især til begyndere.
- Download, installer og start Visual Studio Code fra her (Du kan også simpelthen søge efter Visual Studio Code i din browser).
Anbefaling: Aktiver alle indstillinger.

2. Installer AL-miljøet „AL Language“ (det tager et par sekunder)


3. Aktivering af det nuværende Navision og Business Central-miljø
Med Shift+Ctrl+P kalder du processen (eller hvad P nu måtte betyde) kommandoen, og med al:go starter du dit første Navision-objekt. Før det kan du ikke indlæse AL-miljøet!

Tip: Kør en gang snippetet AL:Go, og notér (ja, med blyant og det hele) de forespørgsler, der kommer, sammen med svarene. Eventuelt kan du skrive svarene ind. Derefter skal du forkaste dette første projekt, skrive alle manglende svar ind i din note, og starte forfra.
Du skal bruge: Projeknavn (vælg dig hurtigt en central mappe!), Målplatform (din server), evt. Brugernavn, Adgangskode, Servernavn
Tilpas launch.json og app.json
Redigér den resulterende launch.json med det samme.
Tilføj „schemaOpdateringstilstand„:“Tving Synkronisering“tilføj:
(Tip: På dette tidspunkt skal der efter indtastning af skeme allerede AutoCompleteWizzard vises!)
Tilføj „port“:7049 (se Udviklingsport ovenfor)
Ændre Autentificering op Windows

Rediger app.json, tilføj „mål„: „lokalt“tilføj:

Bemærkning: Selvsagt skal man også tilpasse en masse andre parametre for en almindelig udvikling, men det er et andet, vildt og meget vidtstrakt emne. Her handler det kun om at skabe en første følelse af lykke.
Bemærkning 2: Hvorfor OnPrem? Kun på denne måde kan du fortsætte med at integrere .Net (DotNet) objekter i Business Central eller Navision – og det på en så professionel måde, at du kan få rigtig glæde af det i det nye Navision. Omvendt bliver det: I alle andre mål (Targets), især i skyen, eksisterer der simpelthen ikke længere .Net (DotNet). Slut. Punktum. Forbi. Ingen „men“ og ingen „jeg har da brug for...!“.
Ok Ok ok… Det handler så alligevel om Blazor, men det er jo heller ikke emnet for en introduktion her.
Symboler ladet
Nu kan / skal du indlæse symbolerne (alle interne referencer, kommandoer, funktioner, tabelnavne, felter...): CTRL+SHIFT+P, AL:Download Symbols

Efter få sekunder vises meddelelsen om, at ikonerne er downloadet korrekt. Meddelelsen forsvinder, glæden består: HelloWorld-applikationen, der blev indtastet af guiden, kompilerer pludselig uden fejl:

Velkommen til dit nye Navision / Business Central udviklingsmiljø (udviklingsmiljø).
Licensadministration Fin.flf
Selv Microsoft anbefaler i 2020 at Navision udviklingsklient at bruge til at se og opdatere licensen. Det er selvfølgelig bare en joke... håber jeg. For den leveres slet ikke længere med siden Navision & Business Central 2019 second Wave. Du skal bruge Powershell til det.
Start Business Central og Navision Administration Powershell som administrator:

Vis aktuelle licensoplysninger
Skriv „export-navs“ og tryk på TAB-tasten, derefter et mellemrum og instansnavn + Enter. I vores eksempel altså
Eksporter-NAVServerLicensInformation bc160
Navision eller Business Central viser dig licensoplysningerne gemt i denne licens:

Importer en ny licensfil
I den samme shell skal du skrive Import-NAVS og trykke på TAB. Hvis den rigtige kommando ikke vises med det samme, kan du bladre gennem kommandoerne med TAB i PowerShell (ligesom i tidligere batchprogrammering med filnavne).
Import-NAVServerLicense BC160 -LicenseData ([Byte[]]$(Get-Content -Path „c:\temp\fin.flf“ -Encoding Byte)) -Database NavDatabase
Bemærk venligst: BC160 er din instans, „c:\temp\fin.flf“ er stien og filnavnet på din licensfil. Advarsel! Business Central og Navision eller Powershell kontrollerer allerede, om licensen er egnet til dit system. Hvis ikke, udstedes en tilsvarende advarsel. Men licensfilen importeres stadigvæk! Før du derfor importerer en ny licensfil, skal du altid kontrollere, at du har den hidtidige licensfil liggende som en fil. På den måde kan du i tilfælde af fejl skifte tilbage til den forrige tilstand ved blot at importere den fungerende FIN.FLF igen.

Rapportgenerator kunne ikke indsætte succesfuldt
Dette hører ikke direkte hjemme under "Introduktion til AL", men snarere under "Introduktion til RDLC" eller "Report Builder"... men det bliver for voldsomt her. Derfor kun et lille uddrag om dette virkelig irriterende emne fra Microsoft SQL Report Builder, når man vil kopiere et felt. Grundlæggende er dette en fejl, ikke en funktion, men der findes en hurtig løsning.
Scenarie: Man ønsker at kopiere et felt i Report Builder (uanset om det er SQL Report Builder, som følger med alle Navision/Business Central versioner, eller den rigtige Visual Studio (ikke: Visual Studio Code!)) og får denne fejlmeddelelse:

Årsagen er klart en programfejl, men set fra vores synspunkt er dette problemet: „Value“ af en tekstboks, som findes via tekstboksen, højreklik, Text Box Properties, Value, formelknappen, eller, kortere, tekstboks, højreklik, Expression. På begge måder kommer man til Expression, som genkendes eller betegnes som „Custom Code“ af Report Builder:

Alt, hvad vi skal gøre her, er at tilføje en kommentar i udtrykket i tekstfeltet FØR vi kopierer det. Virkelig! Velkommen til Microsoft.
Udtrykket ser derefter f.eks. sådan ud:

Denne tekstboks kan nu kopieres i Report Builder uden fejlmeddelelsen „Report Builder kunne ikke indsætte succesfuldt“ til evig tid.
På internettet cirkulerer også tipset om at bruge en dobbelt skråstreg (//Kommentar eller hvad som helst) i stedet for apostroffen (‚). Det virker også, men skal fjernes igen efter indsættelse, ellers får man den grimme fejlmeddelelse i Navision
Microsoft Dynamics NAV Udviklingsmiljø
Fejl ved kontrol af RDL-indhold:
Value-udtrykket for tekstkørsels-objektet ‚FooderMiddle4.Paragraphs[0].TextRuns[0]‘ indeholder en fejl: [BC30201] Udtryk forventes.
Hvis man i stedet for //Comment bruger ‚Comment, kan teksten bare forblive inde. Og især med den ret fjollede måde, som Microsoft overfører linjeelementer med SetData og GetData til header og footer, kan man lige så godt bruge denne kommentar til at bruge noget meningsfuldt (f.eks. fakturanummer).
