Diagnostyka funkcji Source*
Gdzie zacząć
Funkcje SourceGet, SourceSet, SourceSum i SourceDelete korzystają ze źródła typu Static oraz z jednej kolumny klucza głównego. Większość problemów wynika z nazwy źródła, typu źródła, klucza głównego, nazw kolumn albo składni warunku.
Źródło nie zostało znalezione
Sprawdź nazwę przekazywaną do srcName albo pierwszego argumentu funkcji. Nazwa musi odpowiadać nazwie źródła danych w AMODIT.
Przykład:
query.srcName = "BudzetMPK";
Zwróć uwagę na spacje, wielkość liter i znaki specjalne w nazwie źródła.
Źródło ma nieprawidłowy typ
Funkcje Source* pracują na źródłach typu Static. Jeżeli wskażesz źródło typu File, Online, Local, Agent albo inny wariant, funkcja zakończy się błędem.
W konfiguracji źródła sprawdź typ połączenia oraz to, czy źródło ma lokalną tabelę danych.
Brak klucza głównego
Źródło musi mieć ustawioną jedną kolumnę klucza głównego. Klucz jest potrzebny do odczytu, zapisu i usuwania konkretnego wiersza.
W konfiguracji źródła sprawdź pole Kolumny klucza głównego.
Więcej niż jedna kolumna klucza
Funkcje Source* wymagają dokładnie jednej kolumny klucza głównego. Jeżeli scenariusz biznesowy ma wiele wymiarów, przygotuj jedną kolumnę techniczną, na przykład:
2026|MPK-100|01
Kolumny Rok, MPK i Miesiac możesz zostawić jako osobne kolumny pomocnicze.
Kolumna nie istnieje
SourceGet, SourceSet i SourceSum sprawdzają nazwy kolumn przekazane w argumentach. Błąd pojawi się, gdy nazwa kolumny nie występuje w widocznych kolumnach źródła.
Sprawdź:
- literówki,
- spacje w nazwach,
- mapowanie kolumn źródła,
- widoczność kolumny w konfiguracji.
whereQuery nie działa
W whereQuery nazwy pól i wartości zapisuj w apostrofach.
query.whereQuery = "'Rok' = '2026' AND 'MPK' = 'MPK-100'";
Dla wartości pustej używaj is null.
query.whereQuery = "'DataZamkniecia' is null";
Wynik jest pusty
Pusty wynik ma różną postać zależnie od wariantu odczytu:
| Wariant | Wynik |
|---|---|
SourceGet z jedną kolumną |
NULL |
SourceGet po kluczu bez jednej kolumny |
Pusty obiekt |
SourceGet z whereQuery |
Pusta lista |
SourceDelete dla brakującego klucza |
false |
Jeżeli wynik jest pusty, sprawdź najpierw wartość klucza, a potem typy danych i format wartości, na przykład format miesiąca albo roku.
SourceSet utworzył nowy wiersz
SourceSet zapisuje dane przez aktualizację albo utworzenie wiersza. Jeżeli klucz nie istnieje, funkcja tworzy nowy wiersz.
W scenariuszach, w których wiersz musi istnieć wcześniej, wykonaj kontrolny odczyt przez SourceGet przed zapisem.
query = CreateObject();
query.srcName = "BudzetMPK";
query.keyValue = klucz;
rekord = SourceGet(query);
