Konfiguracja z poziomu Low-code

Definicja konfiguracji dostępna jest w module Aplikacja Eximee Designer.

Aplikacje, które używają serwera konfiguracji do pobierania konfiguracji, muszą mieć skonfigurowany Model danych oraz ustawiony punkt startowy.

Przechodząc do okna danej aplikacji w lewym panelu dostępna jest zakładka Konfiguracja, a w prawym okno Edytora konfiguracji:

Ilustracja 1. Konfiguracja z poziomu Eximee Designer - zakładka konfiguracja

Format konfiguracji

Konfiguracje definiowane są w formacie: klucz = wartość

Ustalenie środowiska

Dodatkowo istnieje możliwość określenia środowiska, dla którego będzie dostępny dany settings, za pomocą dodania do klucza suffixu |${klucz_środowiska} np.

application.login|prod=wartoscKlucza

Taki settings będzie domyślnie dostępny tylko dla środowiska oznaczonego jako "prod".

Środowisko możemy określić za pomocą ENV'a - CONFIG_SERVER_ENVIRONMENT_NAME w aplikacji serwera konfiguracji.

W przypadku braku klucza suffixu z aktualnym środowiskiem, brane są wartości bez określonego suffixa.

Komentarze

W oknie edycji konfiguracji jest możliwość dodawania komentarzy w zawartości konfiguracji. Komentarze powinny zaczynać się od nowej linii, a treść komentarza powinna być poprzedzona symbolem kratki (#).

Definicja ról uprawniających do edycji w Eximee Dashboard

Wraz z konfiguracją w Eximee Designer można zdefiniować role, które umożliwią edycję konfiguracji runtime w Eximee Dashboard. W przypadku braku zdefiniowanych ról w konfiguracji aplikacji Eximee Designer, edycja konfiguracji aplikacji z poziomu Eximee Dashboard nie będzie dostępna dla żadnego użytkownika.

Definicje ról można określić w polu "Role uprawniające do edycji w Eximee Dashboard" nad edytorem konfiguracji w Eximee Designer.

Jeśli aplikacja serwera konfiguracji ma zdefiniowany parametr AUTH_ROLE_STRIP_PREFIX to należy podany prefix ról pominąć na elementach listy. Czyli jeśli AUTH_ROLE_STRIP_PREFIX = "PDC000000001-" a rola nazywa się "PDC000000001-config-editor-role", to na liście w Eximee Designer należy wskazać "config-editor-role".

Modyfikacja konfiguracji w Eximee Dashboard: Modyfikacja (runtime) konfiguracji biznesowych

Ilustracja 2. Konfiguracja z poziomu Eximee Dashboard - zakładka "Konfiguracja aplikacji"

Przykład konfiguracji

CONFIG_SERVER_ENVIRONMENT_NAME = dev

Treść konfiguracji:

#url links to test environment
test.url|dev=urlDev
test.url=urlDefault
 
test.password=passwordBasic
test.password|prod=passwordProd
test.password|dev=passwordDev
 
 
test.login|prod=loginProd
test.login=loginDefault
 
 
test.enabled=true

Config server dla takich ustawień zwróci 4 konfiguracje (bez suffixu):

test.url=urlDev
 
test.password=passwordDev
 
test.login=loginDefault
 
test.enabled=true

Edycja konfiguracji

Edycja konfiguracji blokuje artefakt aplikacji, z tego też powodu nie można do niej dodać nowych artefaktów, np.: procesu, formularza. Jednak próba dodania takiego artefaktu utworzy go w repozytorium, ale nie zostanie on podpięty pod artefakt aplikacji.

W przypadku błędów składniowych konfiguracji (np.: dla konfiguracji o typie PROPERTIES podano niepoprawny unicode) wystąpi błąd przy zapisie konfiguracji, który będzie miał ogólną postać błędów, występujących przy zapisie artefaktu:

Ilustracja 3. Błąd przy zapisie niepoprawnej konfiguracji aplikacji

Użytkownik pozostanie w trybie edycji i będzie mógł poprawić ewentualne błędy składniowe i ponownie spróbować zapisać konfigurację.

Użycie wartości z konfiguracji w ScriptCode

W ScriptCode możemy pobrać wartość z konfiguracji korzystając z api do pobierania konfiguracji: Api:

interface Api {
    config: {
        v1: {
          get(klucz: string): string;
          getOrDefault(klucz: string, defaultValue: string): string;
        }
    }
}

przykładowy skrypt korzystający z Api:

function callService(context) {
    let value1
    try {
        value1 = api.config.v1.get("dummy.url2");
    } catch(e) {
        value1 = "default"
    }
  
    var value2 = api.config.v1.get("dummy.url");
  
    var value3 = api.config.v1.getOrDefault("not_existing_key", "defaultValue")
  
    return [{'value1': value1, 'value2': value2, 'value3': value3}];
}

*Api działa również dla wywołań skryptów w modelu danych.

Edytor oferuje również podpowiedzi:

Ilustracja 4. Przykład podpowiedzi w trakcie wpisywania kodu

Użycie wartości z konfiguracji w zadaniu skryptowym

Przykładowe zadanie skryptowe:

function handle(task, context) {
    // Pobranie zmiennych z konfiguracji
    const skipTask = api.config.v1.get("script.task.skip.task")
    const titleName = api.config.v1.getOrDefault("script.task.title.name", "Domyślny tytuł")
     
    // Zakończenie zadania i przekazanie zmiennych (skipTask, titleName) do procesu
    context.complete({'skipTask': skipTask, 'titleName': titleName});
}

użycie w procesie:

Ilustracja 5. Przykład użycia wartości z konfiguracji w procesie

W rezultacie do procesu zostaną przekazane wartości z konfiguracji i zapisane pod kluczami: skipTask i titleName.

Konfiguracja biznesowa w Eximee: Business Application Configuration

Last updated

Was this helpful?