Debugging¶
TI4M365 podporuje lokální debugování, které umožňuje spouštět API lokálně, načítat konfiguraci z lokálních souborů a zpracovávat workflow události bez závislosti na cloudových službách.
Lokální API¶
SPFx frontend lze přesměrovat na lokálně běžící API přidáním parametru ?localApi=true do URL stránky SharePoint. Všechny API volání ze SPFx komponent se poté směrují na http://localhost:7183/api.
Spuštění lokálního API¶
- Spusťte Azure Functions API lokálně:
cd TI4M365.API func start - Otevřete SharePoint stránku s parametrem
localApi=true:https://tenant.sharepoint.com/sites/mysite/Lists/MyList/DispForm.aspx?ID=1&localApi=true
Vlastní URL API¶
Parametr localApiUrl umožňuje přesměrovat na jiný port nebo server:
https://tenant.sharepoint.com/sites/mysite/Lists/MyList/DispForm.aspx?ID=1&localApi=true&localApiUrl=http://localhost:8080/api
Poznámka: Parametr localApiUrl má efekt pouze pokud je současně nastaven localApi=true.
Lokální data overlay¶
Systém lokálního data overlay nahrazuje čtení z Cosmos DB čtením z lokálních JSON souborů. Zápisové operace jsou vždy předávány do Cosmos DB.
Konfigurace¶
V souboru TI4M365.API/local.settings.json:
{
"Values": {
"LocalData__Enabled": "true",
"LocalData__BasePath": "../../../local-data",
"LocalData__Dataset": "default",
"LocalData__OverlayContainers__0": "Templates",
"LocalData__OverlayContainers__1": "Wf_Definitions"
}
}
| Vlastnost | Popis | Výchozí |
|---|---|---|
| Enabled | Zapnutí overlay. Automaticky se zapne při nastavení BasePath. | Vypnuto |
| BasePath | Cesta ke kořenové složce s lokálními daty. | local-data |
| Dataset | Název aktivní podsložky (datasetu) pod BasePath. | default |
| OverlayContainers | Názvy kontejnerů servírovaných z lokálních souborů. Ostatní kontejnery se čtou z Cosmos DB. | Templates |
Struktura složek¶
local-data/
├── default/ # Výchozí dataset
│ ├── templates/ # Šablony (Print, Text, Task, Email)
│ ├── wf_definitions/ # Workflow definice
│ └── form_config_overrides/ # Přepisovací konfigurace formulářů
├── v1/ # Vlastní dataset
│ ├── templates/
│ └── form_config_overrides/
└── fixtures/ # Testovací dataset
└── templates/
Přepínání mezi datasety se provádí změnou hodnoty LocalData:Dataset.
Form config override¶
Soubory v form_config_overrides/ se pojmenovávají podle názvu content type (např. Faktura.json). Obsahují parciální JSON, který se sloučí s konfigurací formuláře ze SharePoint.
Lokální fronta workflow událostí¶
Lokální fronta nahrazuje Azure Service Bus in-memory frontou a zpracovává workflow události přímo v procesu API.
Konfigurace¶
{
"Values": {
"LocalQueue__Enabled": "true"
}
}
| Vlastnost | Popis | Výchozí |
|---|---|---|
| Enabled | Zapnutí in-memory fronty a in-process workeru. | Vypnuto |
| ChannelCapacity | Maximální počet událostí ve frontě. | 1000 |
Ruční spouštění událostí¶
Endpoint POST /api/dev/trigger-event umožňuje ručně odeslat workflow událost:
{
"eventType": "ItemAdded",
"itemId": "22",
"listId": "a2d6f181-477d-4818-8122-07dc0daffbbf",
"webUrl": "https://tenant.sharepoint.com/sites/mysite",
"tenantId": "6e2d1a6e-9bc4-4306-bc0b-e9bb5f6e9b14"
}
Typy událostí: ItemAdded, ItemUpdated, ItemDeleted.
Poznámka: Endpoint je dostupný pouze v Development režimu.
E-maily¶
V lokálním režimu se e-maily nezasílají — pouze se zaznamenávají do logu. Workflow s notifikacemi tak lze testovat bez skutečného odesílání.
Srovnání produkce a lokálního režimu¶
| Aspekt | Produkce | Lokální režim |
|---|---|---|
| Fronta událostí | Azure Service Bus | In-memory fronta |
| Worker proces | Samostatný TI4M365.Worker | BackgroundService v API procesu |
| Šablony | Cosmos DB | Lokální JSON soubory s Cosmos DB fallback |
| E-maily | Skutečné odesílání | Pouze logování |
| SharePoint webhooky | Automatické | Ruční trigger přes /dev/trigger-event |
Časté problémy¶
SPFx nevolá lokální API¶
- Ověřte přítomnost
?localApi=truev URL (zkontrolujtewindow.ENV.API_BASE_URLv konzoli prohlížeče). - Ověřte, že API běží na portu
7183(func startvTI4M365.API/). - Zkontrolujte CORS: v
local.settings.json→Host.CORSmusí být"*".
Lokální data se nenačítají¶
- Zkontrolujte výstup konzole pro zprávu
Local data overlay ENABLED. - Ověřte, že
LocalData:BasePathukazuje na správnou cestu. - Ověřte existenci podsložky datasetu (např.
local-data/default/).
Šablony se stále načítají z Cosmos DB¶
- Ověřte, že
Templatesje v seznamuOverlayContainers. - Zkontrolujte, že JSON soubor šablony má
isActive: true.
Workflow události se nezpracovávají¶
- Ověřte
LocalQueue:Enablednatruevlocal.settings.json. - Zkontrolujte konzoli pro zprávu
LocalQueueWorkerService started.
Endpoint /dev/trigger-event vrací 404¶
- Ověřte, že API běží v Development režimu (
ASPNETCORE_ENVIRONMENT=Development).