Skip to main content

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);

Powiązane artykuły