Kas ir notikumu sūtītājs?
Funkcionalitāte, kas automātiski nosūta informāciju par izmaiņām uz ārējām sistēmām, izmantojot webhook mehānismu. Tas ļauj integrēt Horizon ar citām sistēmām reāllaikā, automātiski nosūtot datus par notikumiem, piemēram, lietotāju izmaiņām vai nomenklatūru atlikumiem. Horizon ceļš: Sistēma -> Datu apmaiņa -> Notikumu sūtītājs
Lai aktivizētu notikumu sūtītāju ir jāizpilda sekojoši soļi:
1. Atveriet izvēlni Sistēma → Datu apmaiņa → Notikumu sūtītājs → Notikumu sūtītāja metodes un nospiediet pogu Jauns. 2. Pamatinformācijas aizpildīšana
Aizpildiet galvenos obligātos laukus: • Kods: Ievadiet unikālu identifikatoru, • Nosaukums: Ievadiet metodei saprotamu nosaukumu • Notikuma veids: Izvēlieties vajadzīgo tipu, piemēram, "WEB lietotāji" vai "Nomenklatūru brīvie atlikumi". Svarīgi! Ja izvēlaties Nomenklatūru brīvos atlikumus, sadaļā "Konfigurācija" obligāti jāizvēlas esošs vai jāizveido jauns datu filtrs. 3. Metodes aktivizēšana un adreses norādīšana • Statuss: Lai metodi aktivizētu, izvēlieties statusu Aktīvs. • Endpoint: Ievadiet ārējās sistēmas URL adresi, uz kuru sūtīt datus (adresei obligāti jāsākas ar https://). 4. Autentifikācija un sūtīšanas laiki • Autentifikācija: Izvēlieties Bez auth (ja ārējā adrese ir publiska) vai Basic auth (ievadot lietotājvārdu un paroli).
• Periodiskums: Varat atstāt noklusētos iestatījumus, kas sūtīs datus ik pēc 5 minūtēm darba laikā no 06:00 līdz 21:00, vai arī pielāgot tos savām vajadzībām.
Lai strādātu ar notikumu sūtītāju, nepieciešamas tiesības:
Sistēma → Datu apmaiņa → Notikumu sūtītāja metodes → Apskatīt
Sistēma → Datu apmaiņa → Notikumu sūtītāja metodes → Labot
Notikumu sūtītājs būs pieejams visiem, kam ir Integrāciju paka.
Kā strādā notikumu sūtītājs?
• Notikumu reģistrēšana: Kad Horizon sistēmā notiek piesaistītās izmaiņas (piemēram, saglabājot saņemšanas dokumentu vai ievadot kases dokumentu, mainās nomenklatūru atlikumi), sistēma fiksē šo notikumu datubāzē ar statusu "Jauns". Ja metodei ir iestatīta konfigurācija jeb filtri, sistēma pirms tam pārbauda, vai notikums atbilst noteiktajiem kritērijiem. • Datu formēšana: Reģistrētie notikumi tiek apkopoti un pārvērsti JSON formātā. Lai optimizētu datu pārraidi, vairāki atsevišķi notikumi pirms sūtīšanas tiek apvienoti vienā datu pakā. • Nosūtīšanas process (Serviss): Fona serviss seko līdzi iestatītajam periodiskumam (piemēram, ik pēc 5 minūtēm atļautajā laika intervālā) un ģenerē HTTP POST pieprasījumus uz ārējās sistēmas adresi (Endpoint). Ja konfigurācijā ir norādīta Basic auth autentifikācija, serviss automātiski pievieno autentifikācijas galveni HTTP pieprasījumam. • Atbildes apstrāde un atkārtošana: Lai sūtījums tiktu uzskatīts par veiksmīgu, ārējai sistēmai ir jāatgriež HTTP statusa kods 200-299. Ja saziņa neizdodas tīkla vai ārējās sistēmas kļūdas dēļ, Horizon serviss piešķir ierakstam statusu "Tiks sūtīts atkārtoti" (īslaicīga aizture pirms atkārtota mēģinājuma) vai "Neizdevās nosūtīt" (atkārtos nākamajā plānotajā ciklā). Ja tiek sasniegts maksimālais atļautais neveiksmīgo mēģinājumu skaits, metode tiek automātiski deaktivizēta aizsardzības nolūkos. • Automātiskā uzturēšana: Lai sistēma nepārpildītos ar veciem žurnālu datiem, katru dienu ārpus darba laika automātiski tiek dzēsti veiksmīgi nosūtītie ieraksti un dublikāti (vecāki par 10 dienām), kā arī kļūdainie ieraksti (vecāki par 30 dienām).
Kā atsekot sūtāmajiem notikumiem?
Horizon Notikumu sūtītāja funkcionalitāte ietver divus žurnālu sarakstus, kas nepieciešami datu nosūtīšanas procesa uzraudzībai, pārbaudei un kļūdu (piemēram, nepiegādātu datu vai nepieejamas ārējās adreses) identificēšanai.
1. Notikumu sūtītāja ierakstu žurnāls: Parāda visus atsevišķos notikumus, kas reģistrēti sistēmā. Tas ir nepieciešams, lai detalizēti izsekotu katra konkrētā notikuma stāvoklim, redzētu tā reģistrēšanas datumu un metodi, kas atbild par šī notikuma apstrādi.
2. Notikumu sūtītāja paku žurnāls: Parāda nosūtītās notikumu pakas, jo bieži vien vairāki notikumi tiek apvienoti vienā pakā. Šis žurnāls ir noderīgs, lai pārraudzīt kopējo uz ārējās sistēmas adresi (endpoint URL) nosūtīto datu plūsmu un pakas piegādes gaitu.
Sistēmas žurnālos ierakstiem var būt dažādi statusi, kas atspoguļo to apstrādes fāzi (paku žurnālā statusi ir analogi atsevišķu ierakstu statusiem): • Jauns: Notikums ir reģistrēts, taču serviss vēl nav mēģinājis to nosūtīt. Ja saņēmēja adrese ir aktīva, piegāde notiks nākamajā plānotajā sūtīšanas reizē. • Tiks sūtīts atkārtoti: Īslaicīgs statuss, ko izmanto īslaicīgu problēmu, piemēram, tīkla pārtraukumu, risināšanai. Tas nozīmē, ka sūtīšana tikko neizdevās, bet serviss ar nelielu aizturi tūlīt veiks atkārtotu mēģinājumu. • Neizdevās nosūtīt: Sūtīšanas mēģinājums nav izdevies, bet serviss turpinās mēģināt datus piegādāt nākamajā plānotajā izpildes reizē. Sistēma šādus ierakstus un pakas automātiski dzēš pēc 30 dienām. • Nosūtīts: Gala statuss, kas nozīmē, ka notikums vai paka ir veiksmīgi nosūtīta uz norādīto endpoint adresi. Šie ieraksti automātiski tiek dzēsti pēc 10 dienām. • Dublikāts: Gala statuss, kas norāda, ka notikums netiks sūtīts, jo tā dati sakrīt ar citu jau esošu notikumu. Arī šos ierakstus sistēma izdzēsīs pēc 10 dienām.
Ja notikumi netiek sūtīti, ieteicams veikt šādas pārbaudes, lai identificētu un novērstu problēmu: • Pārbaudiet metodes statusu: Sistēmā metodei obligāti jābūt ar statusu "Aktīvs". Ja tas ir iestatīts kā "Tikai datu vākšana", notikumi tiek uzkrāti žurnālā, bet netiek sūtīti uz ārējo sistēmu. Jāņem vērā, ka metode var tikt automātiski deaktivizēta, ja ir sasniegts maksimālais neveiksmīgo sūtīšanas mēģinājumu skaits (piemēram, ilgstošu ārējās sistēmas traucējumu dēļ). Tādā gadījumā pēc problēmas atrisināšanas statuss manuāli jānomaina atpakaļ uz "Aktīvs".
Ja nepieciešams caur REST API noskaidrot vai metode ir aktīva, tad ir jāizmanto TdmEventSenderMethodsBL klase.
Rest pieprasījums, lai izsauktu visas metodes: /rest/TdmEventSenderMethodsSL/query?columns=EVSENDMETH.KODS&EVSENDMETH.NOSAUK&filter=EVSENDMETH.STATUS eq '0'
Rest pieprasījums, lai pārbaudītu konkrētu metodi:
/rest/TdmEventSenderMethodsSL/query?columns=EVSENDMETH.KODS,EVSENDMETH.NOSAUK,EVSENDMETH.STATUS&filter=EVSENDMETH.PK_EVENTSENDERMETHODS eq '{Metodes PK}' {Metodes PK} ir metodes ID. • Pārbaudiet sūtīšanas laika intervālu un nedēļas dienas: Pārliecinieties, vai attiecīgā nedēļas diena ir atzīmēta un vai pašreizējais laiks ietilpst atļautajā sūtīšanas laika intervālā. Ja laiks ietilpst ārpus atļautā intervāla, notikumi turpina uzkrāties, bet tiks nosūtīti tikai nākamajā sūtīšanas logā. • Pārbaudiet notikumu žurnālus: Ieskatieties ierakstu žurnālā un pievērsiet uzmanību statusiem, kas var norādīt uz kļūdām, piemēram, "Neizdevās nosūtīt" vai "Tiks sūtīts atkārtoti". • Pārbaudiet saņēmēja adresi (endpoint): Pārliecinieties, ka URL adrese ir ievadīta pareizi, ietver https:// un ārējā sistēma ir reāli pieejama. • Pārbaudiet autentifikācijas datus: Ja metodei izmantojat Basic auth, vēlreiz pārliecinieties, vai ievadītais lietotājvārds un parole sakrīt ar ārējās sistēmas prasībām.
Kā testēt notikumu sūtīšanu?
1. Izveidojiet testa endpoint adresi: Atveriet vietni https://webhook.site (vai citu līdzīgu servisu), kas uzģenerēs unikālu testa URL adresi un ļaus pārlūkprogrammā reāllaikā redzēt visus saņemtos datus.
2. Iestatiet drošu statusu Horizon: Metodes iestatījumos norādiet iegūto testa URL adresi un izvēlieties statusu "Tikai datu vākšana". Šis statuss ļauj sistēmai reģistrēt notikumus, taču tie netiks uzreiz nosūtīti un pagaidām neparādīsies ierakstu žurnālā.
3. Izveidojiet testa notikumus: Veiciet Horizon sistēmā darbības, kurām vajadzētu izsaukt datu sūtīšanu, piemēram, pievienojiet jaunu WEB lietotāju vai izmainiet nomenklatūras atlikumu.
4. Aktivizējiet sūtīšanu: Nomainiet metodes statusu uz "Aktīvs". Pēc šīs darbības iepriekš savāktie testa notikumi parādīsies ierakstu žurnālā un tiks nosūtīti uz jūsu testa adresi.
5. Pārbaudiet rezultātu: Atgriezieties webhook.site lapā un pārliecinieties, vai dati ir veiksmīgi saņemti.
Kā var deaktivizēt sūtīšanas metodi?
• Automātiska deaktivizācija: Sistēma automātiski deaktivizēs metodi, ja tiks sasniegts maksimālais atļautais neveiksmīgo datu sūtīšanas mēģinājumu skaits. Tas kalpo kā aizsargmehānisms un parasti norāda uz ilgstošām problēmām ar ārējās sistēmas (endpoint) pieejamību vai nepareizu konfigurāciju. Šādā gadījumā ir jāatrod un jāizlabo problēmas cēlonis (piemēram, jāsalabo endpoint adrese vai autentifikācija) un pēc tam metodes statuss manuāli jānomaina atpakaļ uz "Aktīvs", lai sistēma atsāktu datu sūtīšanu. • Manuāla deaktivizācija: Lietotājs var jebkurā brīdī metodi atslēgt pats, metodes kartītē izvēloties statusu "Neaktīvs". Šajā statusā jauni notikumi netiek ne vākti, ne nosūtīti uz ārējo adresi.
Skatīt visu rakstu