Gå til innhold

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 npmpnpm-lock.yaml er 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.

Relaterte sider