Skip to content

BeOne-PL/operaton-event-handler

Repository files navigation

Operaton Event Handler

Jest to plugin do Operatona, który przechwytuje rzucane eventy, tworzy z nich wiadomości i wysyła na kolejkę.

Konfiguracja

  • wymagana minimalna wersja Operaton to 1.0.0
  • należy dodać do pliku pom.xml naszego projektu (Operaton) następującą zależność (dependency pluginu musi znajdować się nad dependency operaton w pomie):
<dependencies>
        <dependency>
            <groupId>pl.beone</groupId>
            <artifactId>operaton_event_handler</artifactId>
            <version>${}</version>
        </dependency>
</dependencies>
  • konfiguracja połączenia do RabbitMQ znajduje się w pliku application.yml, należy podać nazwę hosta, port, nazwę użytkownika, hasło oraz nazwę kolejki, poniżej domyślne dane:
denormalization:
  rabbitmq:
    host: rabbitmq
    port: 5672
    username: guest
    password: guest
    queue: queueEventHandler
  • istnieje możliwość filtrowania procesów tzn. jedynie wymienione po przecinku nazwy procesów będą wysyłane na kolejkę, w przykładzie poniżej jedynie procesy o nazwach MyProcess oraz YourProcess będą wysyłane, w przypadku braku ustawionej tej własności lub gdy wartość tej własności jest pusta, będą wysyłane wszystkie procesy:
denormalization:
    process.include: MyProcess, YourProcess

EDIT

  • propsy zostały przeniesione do pliku operatoneventhandler.properties
    • ustawiamy je analogicznie do tego jak to jest przedstawione wyżej

API

  • udostępnione endpointy:
    • POST /admin/reindex/   , reindeksuje dane z bazy camundy do bazy denormalizacji dla wszystkich procesów
    • POST /admin/reindex/{definitionKey}   , reindeksuje dane z bazy camundy do bazy denormalizacji dla procesu o podanym definitinonKey
    • POST /admin/reindex/process-instance-id/{processInstanceId}   , reindeksuje dane z bazy camundy do bazy denormalizacji dla procesu o podanym processInstanceId
    • przykładowy request: POST http://nginx-test.apps.seod-d1.diag.pl/operaton/admin/reindex/leaveRequestProcess  
  • w przypadku powodzenia zostanie zwrócony kod odpowiedzi HTTP: 200 OK
  • aby korzystać z API potrzebujemy uprawnień admina (ACTIVITI_ADMIN)

Inicjalizacja tabel w denormalizacji

Można skonfigurować camundę tak aby przy uruchamianiu tworzone były wybrane tabele i kolumny zmiennych procesowych. Aby skorzystać z tej możliwości należy w katalogu resources utworzyć katalog initializeOperatonConfig, z którego następnie pobierane będą wszystkie pliki z rozszerzeniem json. Pliki te powinny mieć następującą strukturę:

[
  {
    "name": "nazwa_procesu",
    "variables": [
      {
        "name": "zmienna_procesowa_1",
        "type": "integer"
      },
      {
        "name": "zmienna_procesowa_2",
        "type": "string"
      }
    ]
  }
]

Następnie operaton wyśle wiadomości na kolejkę do denormalizacji, która utworzy tabele operaton_nazwa_procesu oraz operaton_hi_nazwa_procesu, i w nich kolumny execution_id, process_id, zmienna_procesowa_1 oraz zmienna_procesowa_2.

Możliwe typy danych to:

  • boolean
  • short
  • long
  • double
  • string
  • integer
  • date
  • serializable

Przykładowy plik test.json:

[
  {
    "name": "test_process",
    "variables": [
      {
        "name": "test_uuid",
        "type": "string"
      },
      {
        "name": "test_num",
        "type": "integer"
      },
      {
        "name": "isTest",
        "type": "boolean"
      },
      {
        "name": "testDate",
        "type": "date"
      }
    ]
  },
  {
    "name": "test_process_2",
    "variables": [
      {
        "name": "test_2_id",
        "type": "long"
      }
    ]
  }
]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •