Jeśli masz problem ze zrozumieniem jak działa zadanie zaplanowane, sprawdź opis: Zadanie zaplanowane

Pakiet: com.suncode.plugin.scheduled_tasks.RewriteDataFromDatasourceToDb

Dostępna od wersji: 1.0.1

Co najmniej jedno zdefiniowane źródło danych umożliwiające operację odczytu danych.

Zadanie zaplanowane pozwalające na przepisanie danych ze źródła danych do bazy danych. Źródło może zostać wywołane z parametrami podanymi w Zadaniu Zaplanowanym. Jako wartość parametru wywołania oprócz stałych wartości można użyć znaczników czasowych.

Nazwa parametruTyp parametruOpisUwagi i ograniczenia
Id źródła danych*TekstId źródła danych z którego dane zostaną przepisane. 
Nazwa bazy danych*Tekst

Nazwa bazy w której dane zostaną zapisane.

Alias bazy DBExplorera.
Nazwa schematu w bazie danych*TekstSchemat w bazie danych, w którym znajduje się tabela docelowa.

 

Nazwa tabeli*TekstNazwa tabeli w której zostaną zapisane dane. 
Mapowanie parametrów*Tekst

Mapowanie parametrów wyjściowych źródła na odpowiadające nazwy kolumn z tabeli z bazy danych.

Wzór mapowania parametrów:

<parametrŹródła>=<kolumnaTabeli>

Kolejne mapowania powinny być rozdzielane za pomocą przecinka np.

<parametrŹródła1>=<kolumnaTabeli1>,<parametrŹródła2>=<kolumnaTabeli2>

Typ synchronizacji*TekstTyp synchronizacji danych.

Do wyboru są następujące rodzaje:

  • insert- tylko dopisuje,
  • overwrite- usuwa wszystkie rekordy i dodaje nowe,
  • upsert- dopisz lub zaktualizuj, jeżeli wartość podana w parametrze "Klucz" już istnieje.
KluczeTekstKlucze, których wartości będą sprawdzane przy typie synchronizacji "upsert". Możliwość podania większej liczby kluczy po przecinku.Kolejne klucze powinny być rozdzielane za pomocą przecinka np. klucz1,klucz2,klucz3
Parametry źródła danychTekstParametry z jakimi zostanie wywołane źródło danych. Możliwość używania tagów czasowych. np: {current_YYYY}-{current_MM}-{current_DD} postawi aktualną datę w formacie yyyy-MM-dd.

Wzór przekazywania parametrów:

<parametrŹródła>=<wartość>

Kolejne mapowania powinny być rozdzielane za pomocą przecinka np.

<parametrŹródła1>=<wartość1>,<parametrŹródła2>=<wartość2>

Warunek zapisu danych
TekstWarunek zapisu danych (zapisany w JavaScript), który musi zostać spełniony aby kontynuować przetwarzanie danych zwróconych ze źródła.

Przykład:

Załóżmy, że parametrem wyjściowym źródła jest "statusCode". Możemy np. kontynuować przetwarzanie danych jeśli statusCode jest pomiędzy 200 a 300:

 statusCode >= 200 && statusCode <= 300

Jeśli statusCode zwracany przez źródło składa się z więcej niż jednego elementu i chcemy
przetworzyć całą listę, możemy zastosować bardziej rozbudowany warunek.
Ten warunek będzie uwzględniał wszystkie elementy listy.

function condition(){
var condition = true;
for (var i = 0; i < statusCode.length; i++) {
  if (statusCode[i] < 200 || statusCode[i] > 300) {  
    condition = false;
  } 
}
return condition;
}
condition();

Możemy dowolnie łączyć różne parametry oraz wartości, pamiętając żeby wynik naszych operacji miał wartość logiczną.

Parametr*- pole wymagane

TAGI Możliwe do użycia w parametrze wejściowych źródła
Czas wykonania  zadania zaplanowanego
{current_timestamp}trzynastocyfrowa liczba milisekund liczona od 01.01.1970 (timestamp)
{current_DD}dwucyfrowa liczba reprezentująca dzień miesiąca
{current_MM}dwucyfrowa liczba reprezentująca dzień miesiąca
{current_YY}dwucyfrowa liczba reprezentująca rok
{current_YYYY}czterocyfrowa liczba reprezentująca rok
{current_hh}dwucyfrowa liczba reprezentująca godzinę
{current_mm}dwucyfrowa liczba reprezentująca minuty
{current_ss}dwucyfrowa liczba reprezentująca sekundy
{current_nnn}trzycyfrowa liczba reprezentująca nanosekundy
Czas ostatniego wykonania zadania zaplanowanego
{timestamp}trzynastocyfrowa liczba milisekund liczona od 01.01.1970 (timestamp)
{DD}dwucyfrowa liczba reprezentująca dzień miesiąca
{MM}dwucyfrowa liczba reprezentująca dzień miesiąca
{YY}dwucyfrowa liczba reprezentująca rok
{YYYY}czterocyfrowa liczba reprezentująca rok
{hh}dwucyfrowa liczba reprezentująca godzinę
{mm}dwucyfrowa liczba reprezentująca minuty
{ss}dwucyfrowa liczba reprezentująca sekundy
{nnn}trzycyfrowa liczba reprezentująca nanosekundy

Dane ze źródła danych nie zostaną pomyślnie zapisane w tabeli w bazie danych, jeżeli zwrócone wartości nie są zgodne ze zdefiniowanymi typami kolumn tabeli.

If you have trouble understanding how the action works, check the descriptionScheduled task

A scheduled task that allows you to rewrite data from a datasource to a database. Datasource can be invoked with input parameters specified in Scheduled Task definition. Input parameters can use time and date placeholders (see tag table below).

One or more defined data sources that enable the data read operation.

Name of the parameterParameter typeDescriptionNotes and restrictions
Datasource id*TextId of the datasource from which the data will be rewritten. 
Database name*TextThe name of the database where the data will be saved. 
Schema name in database*TextThe schema in the database where the target table exists. 
Table name*TextName of the table in which the data will be saved. 
Parameters mappings*TextMapping the output parameters from data source to the corresponding column names from the database table.

Parameter mapping formula:

<dataSourceParameter>=<TableColumn>

Subsequent mappings should be separated by a comma, e.g.

<dataSourceParameter1>=<TableColumn1>,<dataSourceParameter2>=<TableColumn2>

Synchronization type*TextData synchronization type.

The following types are available:

  • insert (only adds),
  • overwrite (removes all records and adds new ones),
  • upsert (add or update, if the value given in the "Key" already exists).
KeysTextThe key value of which will be checked with the "upsert" synchronization type.  Possibility of specifying multiple comma-delimited keys.Successive keys should be separated by a comma, e.g. key1,key2,key3
Datasource parametersTextDatasource input parameters. Example time and date tag usage: {current_YYYY}-{current_MM}-{current_DD} - will insert current date (format: yyyy-MM-dd).

Input parameters pattern:

<datasourceParam>=<value>

Each subsequent input parameter should be separated by comma e.g.

<datasourceParam1>=<value1>,<datasourceParam2>=<value2>

Save data condition
TextSave data condition written in JavaScript that needs to be met in order to process datasource response.

Example:

Let's assume that "statusCode" is one of the datasource's output parameter. We can condition further processing by specifing that it's value should be between 200 and 300:

statusCode >= 200 && statusCode <= 300

We can mix and match different datasource parameters and values keeping in mind that the result must be a boolen type.

Parameter*- required field

Data from the data source will not be successfully written to the database table if the returned values do not match the defined table column types.