POST /api/v0/Info – informacje o strukturze szablonu

Opis mechanizmu

Endpoint służy do pobierania pełnej struktury metadanych zaszytych wewnątrz pliku szablonu (.sp). Pozwala na bezinwazyjne „odpytanie” pliku o zdefiniowane parametry, zapytania SQL, źródła danych oraz unikalne identyfikatory (GUID) raportu głównego i podraportów.

Jest to kluczowy krok integracyjny, ponieważ uzyskane stąd identyfikatory reportId oraz dataSourceId są niezbędne do prawidłowego sterowania dynamicznymi zapytaniami w kolejnych endpointach (np. /Print lub /PrintQueue/enqueue).

  • 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

Żądanie wykonane pomyślnie. Usługa sPrint API zwraca pełne mapowanie struktury technicznej dokumentu.

  • Format odpowiedzi:
{
  "rootGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "parameters": [
    {
      "name": "string",
      "description": "string",
      "type": "string",
      "isMultiValue": true
    }
  ],
  "reports": [
    {
      "reportId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "query": "string",
      "dataSourceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "extraReportInfo": {
        "measureUnit": "HundredthsOfAnInch",
        "reportOrientation": "Vertical"
      }
    }
  ],
  "dataSources": [
    {
      "dataSourceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "name": "string",
      "description": "string"
    }
  ]
}

rootGuid (string): Główny, techniczny identyfikator szablonu raportu.

parameters (array): Lista parametrów wejściowych zdefiniowanych bezpośrednio w szablonie raportu (np. filtry, zakresy dat)

  • name (string): Nazwa parametru użyta w definicji szablonu.

  • description (string): Opis przeznaczenia danej zmiennej.

  • type (string): Typ danych parametru (np. Integer, String, DateTime).

  • isMultiValue (boolean): Określa, czy parametr przyjmuje pojedynczą wartość, czy tablicę danych (np. listę identyfikatorów).

reports (array): Lista wszystkich sekcji, tabel oraz podraportów wykrytych w pliku szablonu.

  • reportId (string): Unikalny identyfikator GUID konkretnej sekcji raportu. Wartość ta jest kluczowa w kolejnych etapach integracji, ponieważ pozwala na precyzyjne wskazanie podsekcji, w której aplikacja kliencka chce dynamicznie nadpisać zapytanie SQL.

  • name (string): Nazwa własna głównego szablonu nadana przez projektanta w Edytorze sPrint.

  • query (string): Treść oryginalnego zapytania SQL, które zostało fabrycznie osadzone w danej sekcji szablonu.

  • dataSourceId (string): Identyfikator bazy danych skojarzonej z zapytaniem dla tej konkretnej sekcji raportu.

  • extraReportInfo.measureUnit (string): Jednostka miary układu szablonu (np. TenthsOfAMillimeter – dziesiąte części milimetra, lub HundredthsOfAnInch – setne części cala).

  • extraReportInfo.reportOrientation (string): Orientacja strony wydruku dla danej sekcji (Vertical – pionowa, lub Horizontal – pozioma).

dataSources (array): Definicje oraz szczegółowe parametry połączeń bazodanowych zadeklarowanych wewnątrz szablonu.

  • dataSourceId (string): Unikalny identyfikator GUID mapowania źródła danych.

  • name (string): Nazwa techniczna połączenia w strukturze szablonu.

  • description (string): Opcjonalny opis tekstowy źródła danych.

  • type (string): Rodzaj źródła danych.

  • server (string): Adres serwera bazy danych (host lub IP).

  • port (integer): Port sieciowy usługi bazodanowej.

  • connectionTimeout (integer): Maksymalny czas w sekundach oczekiwania na ustanowienie połączenia z bazą danych.

  • commandTimeout (integer): Maksymalny czas w sekundach przeznaczony na wykonanie zapytania SQL przez silnik bazodanowy.

  • serviceName (string/null): Nazwa dodatkowej usługi (wykorzystywana opcjonalnie przy wybranych silnikach bazodanowych).

  • dbConnectionType (string): Techniczny typ połączenia oraz metoda uwierzytelniania zastosowana dla silnika bazy danych (np. MsSqlWindows dla autentykacji zintegrowanej).

  • databaseName (string): Domyślna nazwa bazy danych, z którą łączy się szablon w celu pobrania danych.

? 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 szablonu (np. błąd ładowania pliku, niepoprawna ścieżka lub uszkodzona struktura pliku).

Format odpowiedzi:application/json (string)

Przykład wywołania:

Żądanie:

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

Wskazówka
Użyty przykładowy szablon szablon.sp ma wewnątrz jeden podraport co można zaobserwować w odpowiedzi poniżej

Odpowiedź:

{
  "rootGuid": "bf1fca04-e53e-4000-88d9-108f51e1596a",
  "parameters": [],
  "reports": [
    {
      "reportId": "bf1fca04-e53e-4000-88d9-108f51e1596a",
      "name": "glowny_szablon",
      "query": "select top 10 * from cdn.tranag where\ntrn_gidtyp = 2033 and trn_gidnumer = 165",
      "dataSourceId": "665883ba-bc29-47a7-9d96-019e6926c4d5",
      "extraReportInfo": {
        "measureUnit": "TenthsOfAMillimeter",
        "reportOrientation": "Vertical"
      }
    },
    {
      "reportId": "862f5203-159f-4fff-99f1-eeaf9dbdcc96",
      "name": "podszablon",
      "query": "select * from cdn.traelem\nwhere tre_gidtyp = @gidtyp and tre_gidnumer = @gidnumer",
      "dataSourceId": "665883ba-bc29-47a7-9d96-019e6926c4d5",
      "extraReportInfo": {
        "measureUnit": "TenthsOfAMillimeter",
        "reportOrientation": "Vertical"
      }
    }
  ],
  "dataSources": [
    {
      "server": "localhost",
      "port": 1433,
      "connectionTimeout": 5,
      "commandTimeout": 600,
      "serviceName": null,
      "dbConnectionType": "MsSqlWindows",
      "databaseName": "KB_PROGRESS_FR_2026",
      "dataSourceId": "665883ba-bc29-47a7-9d96-019e6926c4d5",
      "name": "BazaXLProdukcyjna",
      "description": "",
      "type": "Db"
    }
  ]
}

Czy ten artykuł był pomocny?