POST /api/v0/Info/tables – informacje o tabelach szablonu

Opis mechanizmu

Endpoint służy do analizy zapytań SQL zaszytych w pliku szablonu (.sp) i wyciągania z nich nazw wszystkich tabel bazodanowych, które biorą udział w generowaniu raportu. System skanuje zarówno raport główny, jak i wszystkie podraporty (subreports).

Jest to kluczowy krok diagnostyczny i walidacyjny. Pozwala programiście upewnić się, czy usługa sPrint API ma dostęp do wszystkich wymaganych tabel systemu ERP oraz czy struktura zapytania nie odwołuje się do nieistniejących obiektów bazodanowych przed faktycznym uruchomieniem procesu wydruku.

  • Wersja: v0
  • Metoda HTTP: POST
  • Format danych: application/json

Struktura żądania (Request Body)

{
  "operationId": "string",
  "data": {
    "server": "string",
    "key": "string",
    "port": 0,
    "type": "string",
    "sqlLogin": "string",
    "sqlPassword": "string"
  },
  "report": {
    "dataFormat": "string",
    "path": "string"
  }
}

Wskazówka
? Dokumentacja modeli: Szczegółowy opis polimorfizmu dla sekcji data (w tym różnice między trybami WebApi, a Sql), która pozwala zmienić sposób połączenia do menedżera kluczy oraz obiektu report (obsługa formatów Path, Bytes oraz S3), który umożliwia wprowadzenie definicji wydruku w innym formacie znajdziesz w osobnych artykułach im poświęconych

  • operationId (string): Wymagany. Unikalny identyfikator biznesowy operacji (np. GUID lub unikalny ciąg tekstowy), generowany przez system integrujący. Służy do śledzenia cyklu życia żądania.

data (object): sekcja odpowiedzialna za autoryzację żądania w menedżerze kluczy sPrint oraz definicję parametrów bramki dostępowej.

  • server (string): Wymagany. Adres sieciowy IP lub nazwa domenowa serwera, na którym uruchomiona jest instancja menedżera licencji sPrint.
  • key (string): Wymagany. Klucz licencyjny przypisany do danej instalacji lub partnera integracji, warunkujący dostęp do zasobów silnika renderującego.
  • port (integer): Wymagany. Port sieciowy, na którym nasłuchuje usługa uwierzytelniająca (wartość liczbowa, np. 5150).
  • type (string): Wymagany. Typ komunikacji i autoryzacji z menedżerem kluczy (np. wartość WebApi).
  • sqlLogin (string): Opcjonalny. Login autoryzacyjny użytkownika używany w przypadku specyficznych połączeń bazodanowych przechodzących przez bramkę.
  • sqlPassword (string): Opcjonalny. Hasło autoryzacyjne przypisane do konta zdefiniowanego w polu sqlLogin.

report (object): Sekcja definiująca format oraz fizyczną lokalizację wejściowego pliku szablonu z rozszerzeniem .sp, który ma zostać poddany analizie strukturalnej.

  • dataFormat (string): Wymagany. Określa format, w jakim dostarczany jest plik szablonu do silnika sPrint. Przyjmuje wartości słownikowe, takie jak Bytes (dla strumienia zakodowanego w Base64) lub Path (dla fizycznej ścieżki dyskowej).
  • source (string): Warunkowy. Zawiera pełny plik szablonu .sp przekonwertowany do surowego ciągu tekstowego Base64. Pole jest wymagane, jeżeli w parametrze dataFormat wybrano tryb Bytes.
  • path (string): Warunkowy. Pełna ścieżka dostępu do pliku szablonu na dysku serwera (np. lokalna lub sieciowa ścieżka UNC). Pole jest wymagane, jeżeli w parametrze dataFormat wybrano tryb Path.
  • url (string): Warunkowy. Zewnętrzny adres URL, pod którym silnik sPrint API może bezpośrednio pobrać plik szablonu. Używany w architekturach rozproszonych.

Kody odpowiedzi (Responses)

? HTTP 200 OK

  • Format odpowiedzi
{
  "reports": [
    {
      "reportId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "tableNames": [
        "string"
      ]
    }
  ]
}

reports (array): Lista wszystkich sekcji oraz podraportów wykrytych w analizowanym pliku makiety.

  • reportId (string): Unikalny identyfikator GUID konkretnej sekcji lub podraportu, zdefiniowany w strukturze makiety sPrint.

  • name (string): Nazwa własna danej sekcji nadana przez projektanta w Edytorze sPrint.

  • tableNames (array of strings): Lista nazw tabel fizycznych (np. z bazy MS SQL), które zostały wykryte przez parser wewnątrz zapytania SQL skojarzonego z tą sekcją.

? HTTP 401 Unauthorized

Brak autoryzacji. Przekazany klucz licencyjny Comarch jest nieprawidłowy, nieaktywny lub wygasł.

Format odpowiedzi: application/json (string)

? HTTP 422 Unprocessable Content

Błąd biznesowy przetwarzania makiety (np. błąd ładowania pliku, niepoprawna ścieżka lub uszkodzona struktura pliku).

Format odpowiedzi:application/json (string)

Przykład wywołania:

Żądanie:

{
  "operationId": "info-tables-test-guid-2026",
  "data": {
    "server": "jelcz",
    "port": 5150,
    "key": "5000311484",
    "type": "WebApi"
  },
  "report": {
    "dataFormat": "Path",
    "path": "C:\\sPrintSzablony\\szablon.sp"
  }
}

Odpowiedź:

{
  "reports": [
    {
      "reportId": "bf1fca04-e53e-4000-88d9-108f51e1596a",
      "name": "glowny_szablon",
      "tableNames": [
        "tranag"
      ]
    },
    {
      "reportId": "862f5203-159f-4fff-99f1-eeaf9dbdcc96",
      "name": "podszablon",
      "tableNames": [
        "traelem"
      ]
    }
  ]
}
Wskazówka
Powyższy przykład przedstawia użycie opisywanego endpoint’u na szablonie o nazwie szablon.sp. W głównym raporcie mamy zdefiniowane zapytania na tabelę TraNag oraz jeden podszablon, który odwołuje się do tabeli TraElem.

Czy ten artykuł był pomocny?