SourceSet – zapis danych w źródle statycznym
Do czego służy SourceSet
SourceSet zapisuje dane w źródle typu Static. Funkcja może ustawić jedną kolumnę albo wiele kolumn w wierszu wskazanym przez klucz główny.
Źródło musi mieć dokładnie jedną kolumnę klucza głównego.
Zapis jednej kolumny
SourceSet("BudzetMPK", "2026|MPK-100|01", "Wykonanie", 1200);
Ten wariant ustawia wartość kolumny Wykonanie w wierszu o kluczu 2026|MPK-100|01.
Zapis wielu kolumn
values = CreateObject();
values.Budzet = 50000;
values.Wykonanie = 1200;
values.Rezerwacje = 300;
SourceSet("BudzetMPK", "2026|MPK-100|01", values);
Klucze obiektu values muszą odpowiadać nazwom kolumn w źródle.
Co dzieje się, gdy klucz nie istnieje
SourceSet aktualizuje istniejący wiersz albo tworzy nowy wiersz z podanym kluczem. Gdy funkcja tworzy nowy wiersz, kolumny niepodane w obiekcie wartości otrzymują NULL, poza kolumną klucza głównego.
To zachowanie jest przydatne przy inicjowaniu stanu, na przykład pierwszego wpisu budżetu dla danego MPK i miesiąca.
Wartości puste i typy kolumn
Jeżeli do kolumny liczbowej, daty albo innej kolumny nietekstowej przekażesz pusty tekst, AMODIT zapisze NULL. Dla kolumn tekstowych pusty tekst pozostaje tekstem.
Wartość zwracana
SourceSet zwraca NULL. Funkcja służy do zmiany danych, więc wynik należy sprawdzać przez kolejny odczyt SourceGet albo przez logikę procesu.
Typowe błędy
- Nazwa źródła w pierwszym argumencie nie istnieje.
- Źródło ma typ inny niż Static.
- Źródło nie ma dokładnie jednego klucza głównego.
- Nazwa kolumny nie występuje w widocznych kolumnach źródła.
- Wartość nie pasuje do typu kolumny.
Przykład kontroli po zapisie
SourceSet("BudzetMPK", "2026|MPK-100|01", "Wykonanie", 1200);
query = CreateObject();
query.srcName = "BudzetMPK";
query.keyValue = "2026|MPK-100|01";
query.columns = "Wykonanie";
aktualneWykonanie = SourceGet(query);
