Šta je urađeno
Windows program koji radi u pozadini i umesto operatera upravlja pregledačem: otvara zadate sajtove, prolazi kroz njihove korake i popunjava obrasce podacima koji već postoje u CacaTajka poslovnom sistemu. Ishod svakog prolaza vraća nazad u sistem, pa evidencija u svakom trenutku pokazuje dokle se stiglo.
Ono što ga izdvaja nije to što ume da klikne po stranici — to ume svaki alat za automatizaciju — nego gde mu stoji postupak. Koraci nisu napisani u programu, nego se vode kao podaci u poslovnom sistemu, u običnim tabelama koje se uređuju u pregledaču.
Zašto je postupak podatak, a ne kod
Tuđi sajtovi se menjaju bez najave: premesti se polje, doda se korak, promeni se tekst na dugmetu. Kod klasičnog robota svaka takva sitnica znači izmenu programa, novu verziju i novu instalaciju kod klijenta.
Ovde se u tom slučaju menja jedan red u tabeli. I sam način na koji se polje pronalazi na stranici stoji u tabeli, zajedno sa vrednošću koja se u njega upisuje, pa se izmena sajta rešava ispravkom podatka. Program ostaje isti. Isto važi i za uvođenje novog sajta ili nove vrste posla — dodaje se novi postupak, a ne novi program.
Svaki korak nosi i uslov pod kojim se izvršava, pa jedan postupak pokriva i slučajeve koji se granaju, bez pisanja posebne varijante za svaki. Korak može da nosi i oznaku od koje verzije programa važi, pa se izmene pripremaju unapred i ne remete rad instalacija koje još nisu ažurirane.
Šta klijent dobija
- Posao koji se odvija bez čoveka – zadaci se obrađuju u ciklusima, sami od sebe, i noću.
- Izmenu bez programera – kada se sajt promeni, ovlašćeni korisnik ispravi korak u tabeli i rad se nastavlja.
- Jedan sistem umesto tri – prijem podataka, evidencija i obrada su povezani; ništa se ne prekucava.
- Trag o svakom prolazu – snimci ekrana, dnevnik rada i zapis o tome šta je i kada promenjeno.
- Više programa na više računara – svaka instalacija preuzima samo vrstu posla koja joj je dodeljena, pa se opterećenje deli.
Kada nešto pođe naopako
Automatizacija koja radi sa tuđim sajtom povremeno naiđe na nešto što nije predviđeno. Zato program nije pravljen tako da se u tom slučaju samo zaustavi.
Operater ima kontrole za pokretanje, pauzu i zaustavljanje, može da bude pozvan da ručno dopuni ono što nedostaje pa da nastavi od istog mesta, a ponašanje kod greške se bira: prekid, pauza radi provere, ili nastavak uz upis u dnevnik. Kod svake sumnjive tačke ostaje snimak ekrana, tako da se posle može videti šta je sajt tačno prikazao.
Gde je granica
Program ne odlučuje umesto čoveka i ne zaobilazi zaštite sajtova sa kojima radi — radi ono što bi operater i sam radio, samo bez prekucavanja i bez čekanja. Provere koje traže ljudsku procenu ostaju kod operatera, a program mu ih iznosi umesto da ih preskoči.
Gde se ovakvo rešenje koristi
Svuda gde se svakodnevno popunjava isti tuđi obrazac podacima koji već postoje u nekoj evidenciji: prijave i zahtevi na portalima koji nemaju svoj API, upiti u registre, provere statusa, prenos naloga iz jednog sistema u drugi.
Zato je ovo i najjasniji primer čemu CacaTajka služi: sistem drži podatke, pravila i evidenciju, a program koji se instalira je samo ruka koja to izvršava.
U kojim tehnologijama postoji
U upotrebi je varijanta pisana u VB.NET-u, koja je i isporučena klijentu.
Razrađena je i varijanta u C#-u. Pošto sav postupak stoji u tabelama poslovnog sistema, obe varijante rade po istim podacima — bira se ona koja se bolje uklapa u ono što klijent već koristi i održava.
U planu je verzija kao Electron aplikacija u JavaScript-u, koja isti posao radi i van Windowsa. Podela na sistem koji drži postupak i program koji ga izvršava upravo to i omogućava: menja se izvršilac, a ne pravila po kojima radi.
Korišćene tehnologije
Program je razvijen u VB.NET-u i C#-u, sa WinForms korisničkim okruženjem, upravlja pregledačem Microsoft Edge preko Selenium WebDriver-a, a sa poslovnim sistemom razgovara preko REST API-ja. Poslovni sistem je PHP i MySQL, sa Tabulator.js tabelama za uređivanje postupaka. Isporučuje se sa Windows instalacijom, a u pripremi je i Electron verzija u TypeScript-u.
Ako vam treba ovakva automatizacija, pogledajte uslugu izrada programa, a za povezivanje sa tuđim sistemima API integracije.
Ostavite odgovor