Komme i gang (bygg og kjør lokalt)¶
Hvordan en ny utvikler får hele stacken opp lokalt. De fire kodebasene og hvordan de henger sammen er beskrevet i For utviklere.
Forutsetninger¶
| Verktøy | Brukes til | Merknad |
|---|---|---|
| Visual Studio 2022 + .NET Framework 4.8 | Connect API, jhlVismaAPI, ConnectMonitor | Alle er .NET Framework (ikke .NET Core) |
| IIS Express | Kjøre Connect API lokalt | Følger med Visual Studio |
| SQL Server | Visma- og Connect-databasene | Instans-mønster i connection strings, f.eks. ‹host›\MSSQLSERVER02 |
| Visma Business + VBS GenericService | Ordre-/bilagsskriving | Kan pekes til via VBS_Endpoint; lesing går mot SQL |
| Node 20 + pnpm | Ionic-appen | Bruk pnpm, ikke npm |
| Python 3.12 | Dokumentasjonen (mkdocs) | pip install -r docs/requirements.txt |
1. jhlVismaAPI (forretningslaget — bygg først)¶
Eget repo (knapphus connect visma api, branch develop). Connect API og
ConnectMonitor bruker den som DLL, ikke prosjektreferanse.
1. Åpne jhlVismaAPI_Business.sln i Visual Studio
2. Build Solution (Release)
3. Kopier bin/Release/jhlVismaAPI.dll til
«Knapphus Connect API\knapphus-connect-api\dependencies\jhlVismaAPI.dll»
DLL-en ligger allerede i dependencies/ i API-repoet, så dette trengs bare når
du har endret forretningslaget.
2. Connect API¶
1. Åpne knapphus-connect-api.sln (.NET Framework 4.8, 8 prosjekter)
2. Web.config: legg inn connection strings for selskapet du tester
(ConnectSQL_{id} OG VismaSQL_{id} — mangler en, gir login 500)
og VBS_*-oppsettet.
3. F5 → IIS Express. API-et svarer på http://localhost:2200/api
NuGet gjenopprettes ved bygg (packages.config, bl.a. EntityFramework 6.4.4,
Web API 5.2.7, Microsoft.Data.SqlClient). Logg: jhlVismaAPILog.txt.
Røyktest: curl http://localhost:2200/api/Company/GetCompanies skal gi 200 +
selskapsliste.
3. Ionic-appen¶
cd "Knapphus Connect Ionic App"
pnpm install
# Pek appen på lokalt API (valgfritt): sett API_ENDPOINT i
# src/app/shared/app-settings.ts til http://localhost:2200/api
pnpm start # dev-server (8100)
pnpm build # produksjonsbygg → www/
Android: android/-mappen bygges med Capacitor 7 (npx cap sync android, så
./gradlew assembleRelease). minSdk 23, target/compileSdk 35. Husk å bumpe
appVersion i app-settings.ts før release.
4. ConnectMonitor¶
1. Åpne KnapphusConnectMonitor.sln (konsoll + 9 hjelpeprosjekter)
2. App.config: VismaSQL-connection + VBSURL/VBClient
3. Bygg, og kjør konsollen med ett jobbflagg, f.eks. -e (EnergiApp-ordrer)
Jobbene og flaggene er dokumentert under ConnectMonitor. I drift planlegges hvert flagg som en egen oppgave i Windows Task Scheduler.
5. Dokumentasjonen (denne håndboken)¶
cd "Knapphus Connect Ionic App"
python -m pip install -r docs/requirements.txt
python -m mkdocs serve -f docs/mkdocs.yml # http://127.0.0.1:8000
pnpm docs:validate # referansesjekk
Avhengighetskart¶
flowchart LR
APP[Ionic-app] -->|HTTP| API[Connect API]
API -->|DLL| VAPI[jhlVismaAPI]
CM[ConnectMonitor] -->|DLL| VAPI
VAPI -->|WCF/SQL| VISMA[(Visma Business)]
API -->|SQL| VISMA
CM -->|SQL| VISMA
Det du må vite (fallgruver)¶
- pnpm, ikke npm —
pnpm-lock.yamler fasit. - Manglende connection string for et selskap gir HTTP 500 ved login/refresh
for akkurat det selskapet (ingen null-guard i
RefreshTokenRepository). - jhlVismaAPI er en DLL — endringer i forretningslaget krever ny bygg +
kopiering til
dependencies/. .env.local, ikke.env— Playwright/skjermbilder laster.env.local.- Enum-avvik app ↔ backend — UserType/Userlevel har ulike tallverdier; se API-arkitektur.