soneta-addon-planning

This commit is contained in:
Marcin Wojas
2025-12-27 15:13:05 +01:00
parent 09c40f22dc
commit 64a8868797
3 changed files with 587 additions and 0 deletions
+154
View File
@@ -0,0 +1,154 @@
---
name: soneta-addon-planning
description: >
Planowanie projektów dodatków dla platformy enova365/Soneta Enterprise. Tworzy
kompletną dokumentację projektową obejmującą: strukturę danych (tabele, relacje),
elementy konfigurowalne, definicje list i menu, formularze, workery i raporty.
Używaj gdy użytkownik prosi o zaplanowanie nowego modułu/dodatku enova365,
przygotowanie założeń projektu, stworzenie specyfikacji funkcjonalnej dodatku,
lub zdefiniowanie struktury danych i interfejsu użytkownika dla nowego modułu.
---
# Soneta Addon Planning
Skill do tworzenia planów projektów dodatków dla platformy enova365. Plan projektu stanowi podstawę do dalszych prac implementacyjnych z wykorzystaniem skilli `enova365-business-xml` i `soneta-programming-basics`.
## Struktura planu projektu
Plan projektu dodatku enova365 składa się z następujących sekcji:
### 1. Założenia projektu
- Cel biznesowy dodatku
- Zakres funkcjonalny (co dodatek ma robić)
- Elementy konfigurowalne na etapie wdrożenia
- Integracje z istniejącymi modułami enova365
- Ograniczenia i wymagania niefunkcjonalne
### 2. Model danych
- Lista tabel z podziałem na operacyjne i konfiguracyjne
- Pola każdej tabeli (nazwa, typ, wymagalność, opis)
- Relacje między tabelami (diagram lub lista)
- Klucze i indeksy
### 3. Struktura menu modułu
- Hierarchia list w menu głównym
- Grupowanie funkcjonalne
### 4. Definicje list
Dla każdej listy:
- Filtry (pola filtrujące, filtry predefiniowane)
- Kolumny (kolejność, szerokość, formatowanie)
- Czynności (workery) - nazwa i krótki opis
- Raporty/wydruki - nazwa i krótki opis
### 5. Definicje formularzy
Dla każdego formularza obiektu:
- Zakładki (grupowanie logiczne)
- Pola na zakładkach (pogrupowane)
- Listy szczegółów (sublists) z kolumnami
- Czynności (workery) dostępne z formularza
- Raporty/wydruki dostępne z formularza
### 6. Słowniki i konfiguracja
- Tabele słownikowe (config=true)
- Wartości domyślne
- Parametry konfiguracyjne modułu
### 7. Uprawnienia
- Role użytkowników
- Prawa dostępu do obiektów i funkcji
## Workflow tworzenia planu
```
1. Zebranie wymagań
2. Zdefiniowanie założeń i elementów konfigurowalnych
3. Zaprojektowanie modelu danych
4. Określenie struktury menu
5. Zdefiniowanie list (filtry, kolumny, akcje)
6. Zdefiniowanie formularzy (zakładki, pola, sublists)
7. Określenie słowników i konfiguracji
8. Zdefiniowanie uprawnień
```
## Format dokumentu planu
Plan projektu generowany jest jako dokument Markdown z następującą strukturą:
```markdown
# Plan projektu: [Nazwa dodatku]
## 1. Założenia projektu
### 1.1. Cel biznesowy
### 1.2. Zakres funkcjonalny
### 1.3. Elementy konfigurowalne
### 1.4. Integracje
### 1.5. Ograniczenia
## 2. Model danych
### 2.1. Tabele operacyjne
### 2.2. Tabele konfiguracyjne
### 2.3. Diagram relacji
## 3. Struktura menu
### 3.1. Menu główne modułu
## 4. Listy
### 4.1. [Nazwa listy]
#### Filtry
#### Kolumny
#### Czynności
#### Raporty
## 5. Formularze
### 5.1. [Nazwa formularza]
#### Zakładki i pola
#### Listy szczegółów
#### Czynności
#### Raporty
## 6. Słowniki i konfiguracja
## 7. Uprawnienia
```
## Konwencje nazewnicze
| Element | Konwencja | Przykład |
|---------|-----------|----------|
| Tabela operacyjna | PascalCase, l.poj. | `Zlecenie`, `PozycjaZlecenia` |
| Tabela konfiguracyjna | PascalCase, l.poj. | `DefinicjaZlecenia`, `StatusZlecenia` |
| Worker | PascalCase + Worker | `ZatwierdzZlecenieWorker` |
| Raport | PascalCase | `ZestawienieZlecen`, `KartaZlecenia` |
| Lista | l.mn. lub opis | `Zlecenia`, `ZleceniaDoRealizacji` |
## Poziom szczegółowości
Plan projektu zawiera **ogólne opisy** elementów:
- Nazwy i krótkie opisy (1-2 zdania)
- Typy danych bez szczegółów implementacyjnych
- Logiczne grupowanie bez dokładnych pozycji
**Szczegóły doprecyzowywane w kolejnych etapach:**
- Dokładne atrybuty kolumn (długość, walidacje)
- Implementacja workerów (algorytmy, kroki)
- Szablony raportów (układ, pola)
- Warunki filtrów (wyrażenia, wartości domyślne)
## Powiązanie z innymi skillami
Po zatwierdzeniu planu projektu:
1. **enova365-business-xml** - generowanie pliku business.xml na podstawie modelu danych
2. **soneta-programming-basics** - implementacja workerów i logiki biznesowej
## Szczegółowa dokumentacja
- **[references/project-template.md](references/project-template.md)** - pełny szablon dokumentu planu projektu
- **[references/checklist.md](references/checklist.md)** - lista kontrolna kompletności planu
@@ -0,0 +1,136 @@
# Lista kontrolna planu projektu dodatku enova365
Lista kontrolna do weryfikacji kompletności planu projektu przed rozpoczęciem implementacji.
## 1. Założenia projektu
- [ ] Zdefiniowany cel biznesowy (problem do rozwiązania)
- [ ] Określony zakres funkcjonalny (lista funkcji)
- [ ] Wymienione elementy konfigurowalne z opisem sposobu konfiguracji
- [ ] Zidentyfikowane integracje z istniejącymi modułami enova365
- [ ] Opisane ograniczenia i wymagania niefunkcjonalne
## 2. Model danych
### Tabele
- [ ] Każda tabela ma określone:
- [ ] Nazwę (PascalCase, l.poj.)
- [ ] Typ (operacyjna / konfiguracyjna)
- [ ] Atrybut guided (Root / Exported / inner / brak)
- [ ] Krótki opis przeznaczenia
### Pola
- [ ] Każde pole ma określone:
- [ ] Nazwę (PascalCase)
- [ ] Typ danych (string, int, date, relacja, enum itp.)
- [ ] Wymagalność (Tak/Nie)
- [ ] Krótki opis
### Relacje
- [ ] Wszystkie relacje między tabelami są opisane
- [ ] Tabele szczegółów mają wskazaną tabelę główną (relguided="inner")
- [ ] Relacje do modułów zewnętrznych są zidentyfikowane
- [ ] Istnieje diagram relacji lub lista powiązań
### Klucze
- [ ] Zdefiniowane klucze unikalne (keyprimary, keyunique)
- [ ] Określone klucze wyszukiwania (indeksy)
## 3. Struktura menu
- [ ] Zdefiniowana hierarchia menu modułu
- [ ] Listy pogrupowane logicznie
- [ ] Konfiguracja wydzielona do osobnej grupy
## 4. Listy
Dla każdej listy:
- [ ] Określona tabela źródłowa
- [ ] Opisane przeznaczenie listy
- [ ] Zdefiniowane filtry:
- [ ] Filtry polowe (wyszukiwanie po polach)
- [ ] Filtry predefiniowane (najczęstsze scenariusze)
- [ ] Filtry zakresowe (daty, wartości)
- [ ] Określone kolumny z kolejnością
- [ ] Lista czynności (workerów) z krótkim opisem działania
- [ ] Lista raportów/wydruków z krótkim opisem zawartości
## 5. Formularze
Dla każdego formularza:
- [ ] Określona tabela źródłowa
- [ ] Zdefiniowane zakładki:
- [ ] Nazwa zakładki
- [ ] Przeznaczenie (co grupuje)
- [ ] Pola przypisane do zakładek i grup
- [ ] Zdefiniowane listy szczegółów (sublists):
- [ ] Tabela szczegółów
- [ ] Kolumny na liście
- [ ] Ewentualne filtry
- [ ] Lista czynności z kontekstem (pojedynczy/zaznaczone/bez kontekstu)
- [ ] Lista raportów z kontekstem
## 6. Słowniki i konfiguracja
- [ ] Wszystkie tabele konfiguracyjne zidentyfikowane
- [ ] Określone wartości początkowe słowników
- [ ] Zdefiniowane parametry konfiguracyjne modułu
- [ ] Opisane definicje obiektów (jeśli występują)
## 7. Uprawnienia
- [ ] Zdefiniowane role użytkowników
- [ ] Przypisane prawa dostępu do:
- [ ] List
- [ ] Formularzy
- [ ] Workerów
- [ ] Raportów
## 8. Kompletność ogólna
- [ ] Wszystkie nazwy zgodne z konwencjami enova365
- [ ] Brak duplikatów nazw tabel/pól
- [ ] Relacje nie tworzą cykli (poza świadomymi wyjątkami)
- [ ] Każdy worker i raport ma krótki opis
- [ ] Otwarte kwestie są udokumentowane
## 9. Gotowość do implementacji
Po pozytywnej weryfikacji listy kontrolnej można przystąpić do:
1. **Generowania business.xml** (skill: enova365-business-xml)
- Definicje tabel i relacji
- Klucze i indeksy
- Enumy i interfejsy
2. **Implementacji logiki** (skill: soneta-programming-basics)
- Workery i ich algorytmy
- Walidacje biznesowe
- Raporty i wydruki
---
## Typowe braki do uzupełnienia
| Sekcja | Typowy brak | Jak uzupełnić |
|--------|-------------|---------------|
| Model danych | Brak tabeli historii | Dodać tabelę z okresami (FromTo) |
| Model danych | Brak tabeli notatek/załączników | Rozważyć użycie standardowego mechanizmu Attachments |
| Listy | Brak filtra po dacie | Dodać filtr zakresowy dla dat |
| Formularze | Brak zakładki "Historia" | Dodać zakładkę z ChangeInfos |
| Konfiguracja | Brak statusów | Dodać tabelę słownikową statusów |
| Uprawnienia | Brak roli administratora | Dodać rolę z pełnymi uprawnieniami |
## Pytania kontrolne
1. Czy użytkownik może wykonać wszystkie operacje biznesowe opisane w zakresie?
2. Czy dane wprowadzone przez użytkownika mogą być później wyszukane i zmodyfikowane?
3. Czy administrator może skonfigurować wszystkie elementy konfigurowalne?
4. Czy można wygenerować wszystkie potrzebne raporty?
5. Czy uprawnienia pozwalają na bezpieczne rozdzielenie obowiązków?
@@ -0,0 +1,297 @@
# Szablon planu projektu dodatku enova365
Poniżej znajduje się kompletny szablon dokumentu planu projektu. Sekcje oznaczone `[...]` należy wypełnić zgodnie z wymaganiami projektu.
---
# Plan projektu: [Nazwa dodatku]
**Wersja:** 1.0
**Data:** [Data utworzenia]
**Autor:** [Imię i nazwisko]
---
## 1. Założenia projektu
### 1.1. Cel biznesowy
[Krótki opis problemu biznesowego, który dodatek ma rozwiązać. 2-3 zdania.]
### 1.2. Zakres funkcjonalny
[Lista głównych funkcjonalności dodatku:]
- [Funkcjonalność 1]
- [Funkcjonalność 2]
- [Funkcjonalność 3]
### 1.3. Elementy konfigurowalne
Elementy, które będą dostosowywane podczas wdrożenia u klienta:
| Element | Opis | Sposób konfiguracji |
|---------|------|---------------------|
| [Nazwa elementu] | [Co konfigurujemy] | [Słownik / Parametr / Definicja] |
**Przykłady elementów konfigurowalnych:**
- Słowniki (statusy, typy, kategorie)
- Definicje dokumentów (numeracja, pola wymagane)
- Parametry algorytmów (stawki, progi, limity)
- Szablony wydruków
- Uprawnienia i role
### 1.4. Integracje z modułami enova365
| Moduł | Typ integracji | Opis |
|-------|----------------|------|
| [Nazwa modułu] | [Odczyt / Zapis / Relacja] | [Krótki opis] |
**Typowe integracje:**
- **Handel** - dokumenty handlowe, towary, kontrahenci
- **CRM** - kontrahenci, osoby kontaktowe
- **Kadry** - pracownicy, struktury organizacyjne
- **Księgowość** - ewidencje, rozrachunki
### 1.5. Ograniczenia i wymagania niefunkcjonalne
- [Ograniczenie 1]
- [Wymaganie wydajnościowe]
- [Wymaganie bezpieczeństwa]
---
## 2. Model danych
### 2.1. Tabele operacyjne
Tabele przechowujące dane wprowadzane podczas codziennej pracy.
#### [Nazwa tabeli 1] (guided="Root")
**Opis:** [Krótki opis przeznaczenia tabeli]
| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| [Nazwa pola] | [Typ danych] | [Tak/Nie] | [Krótki opis] |
**Klucze:**
- `Wg[NazwaPola]` - [opis przeznaczenia klucza]
**Relacje:**
- → [Tabela docelowa] (przez pole [Nazwa pola])
#### [Nazwa tabeli szczegółów] (relguided="inner")
**Opis:** [Pozycje/szczegóły dla tabeli głównej]
| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| [Tabela główna] | [Relacja] | Tak | Relacja do obiektu głównego |
| [Pole szczegółu] | [Typ] | [Tak/Nie] | [Opis] |
### 2.2. Tabele konfiguracyjne
Tabele zawierające dane konfiguracyjne tworzone podczas wdrożenia (config="true").
#### [Nazwa słownika] (config="true")
**Opis:** [Słownik/definicja dla...]
| Pole | Typ | Wymagane | Opis |
|------|-----|----------|------|
| Kod | string | Tak | Unikalny kod elementu |
| Nazwa | string | Tak | Wyświetlana nazwa |
| Blokada | boolean | Nie | Blokuje wyświetlanie na listach wyboru |
**Wartości początkowe:**
- [Wartość 1]
- [Wartość 2]
### 2.3. Diagram relacji
```
┌─────────────────┐ ┌─────────────────┐
│ [Tabela główna]│────<│ [Tabela szczeg.]│
│ │ │ │
│ - Pole1 │ │ - TabelaGłówna │
│ - Pole2 │ │ - PoleSzczegółu │
└────────┬────────┘ └─────────────────┘
│ relacja
┌─────────────────┐
│ [Tabela słown.] │
│ (config) │
└─────────────────┘
Legenda:
────< relacja 1:N (inner)
──── relacja N:1 (lookup)
```
---
## 3. Struktura menu modułu
### 3.1. Menu główne modułu
```
[Nazwa modułu]
├── [Grupa 1]
│ ├── [Lista 1.1] - [krótki opis]
│ └── [Lista 1.2] - [krótki opis]
├── [Grupa 2]
│ ├── [Lista 2.1] - [krótki opis]
│ └── [Lista 2.2] - [krótki opis]
└── Konfiguracja
├── [Słownik 1]
└── [Słownik 2]
```
---
## 4. Listy
### 4.1. [Nazwa listy]
**Tabela źródłowa:** [Nazwa tabeli]
**Przeznaczenie:** [Krótki opis co lista pokazuje i dla kogo]
#### Filtry
| Filtr | Typ | Opis |
|-------|-----|------|
| [Nazwa filtra] | [Pole / Predefiniowany / Zakres dat] | [Opis działania] |
**Filtry predefiniowane:**
- [Nazwa filtra] - [Warunek filtrowania]
#### Kolumny
| Kolumna | Źródło | Opis |
|---------|--------|------|
| [Nagłówek kolumny] | [Nazwa pola lub wyrażenie] | [Opis zawartości] |
#### Czynności (Workery)
| Czynność | Opis |
|----------|------|
| [Nazwa czynności] | [Krótki opis działania - 1-2 zdania] |
#### Raporty i wydruki
| Raport | Opis |
|--------|------|
| [Nazwa raportu] | [Krótki opis zawartości - 1-2 zdania] |
---
## 5. Formularze
### 5.1. Formularz: [Nazwa obiektu]
**Tabela:** [Nazwa tabeli]
**Przeznaczenie:** [Edycja/Podgląd obiektu typu...]
#### Zakładki i pola
##### Zakładka: [Nazwa zakładki 1]
**Przeznaczenie:** [Co zawiera ta zakładka]
| Grupa | Pola |
|-------|------|
| [Nazwa grupy] | [Pole1], [Pole2], [Pole3] |
| [Nazwa grupy 2] | [Pole4], [Pole5] |
##### Zakładka: [Nazwa zakładki 2]
**Przeznaczenie:** [Co zawiera ta zakładka]
| Grupa | Pola |
|-------|------|
| [Nazwa grupy] | [Pole1], [Pole2] |
#### Listy szczegółów (Sublists)
##### Lista: [Nazwa listy szczegółów]
**Tabela:** [Tabela szczegółów]
**Relacja:** [Pole relacji do obiektu głównego]
| Kolumna | Opis |
|---------|------|
| [Nazwa kolumny] | [Opis] |
**Filtry listy szczegółów:**
- [Nazwa filtra] - [Opis]
#### Czynności (Workery)
| Czynność | Kontekst | Opis |
|----------|----------|------|
| [Nazwa] | [Pojedynczy obiekt / Zaznaczone / Bez kontekstu] | [Opis] |
#### Raporty i wydruki
| Raport | Kontekst | Opis |
|--------|----------|------|
| [Nazwa] | [Pojedynczy / Lista] | [Opis] |
---
## 6. Słowniki i konfiguracja
### 6.1. Słowniki
| Słownik | Przeznaczenie | Pola konfiguracyjne |
|---------|---------------|---------------------|
| [Nazwa] | [Do czego służy] | [Jakie dodatkowe pola poza Kod/Nazwa] |
### 6.2. Parametry konfiguracyjne modułu
| Parametr | Typ | Domyślnie | Opis |
|----------|-----|-----------|------|
| [Nazwa parametru] | [Typ] | [Wartość] | [Co parametr kontroluje] |
### 6.3. Definicje obiektów
| Definicja | Przeznaczenie | Elementy definiowalene |
|-----------|---------------|------------------------|
| [Nazwa] | [Typ obiektów, które definiuje] | [Co można skonfigurować w definicji] |
---
## 7. Uprawnienia
### 7.1. Role użytkowników
| Rola | Opis | Typowe uprawnienia |
|------|------|-------------------|
| [Nazwa roli] | [Kto to jest] | [Ogólny zakres uprawnień] |
### 7.2. Prawa dostępu
| Obiekt/Funkcja | [Rola 1] | [Rola 2] | [Rola 3] |
|----------------|----------|----------|----------|
| [Lista/Formularz/Worker] | [Pełny/Odczyt/Brak] | [...] | [...] |
---
## 8. Załączniki
### 8.1. Słownik terminów
| Termin | Definicja |
|--------|-----------|
| [Termin biznesowy] | [Wyjaśnienie w kontekście dodatku] |
### 8.2. Otwarte kwestie
| Nr | Kwestia | Status | Decyzja |
|----|---------|--------|---------|
| 1 | [Opis problemu do rozstrzygnięcia] | [Otwarta/Zamknięta] | [Podjęta decyzja] |
---
**Koniec dokumentu**