Шта је урађено
Windows програм који ради у позадини и уместо оператера управља прегледачем: отвара задате сајтове, пролази кроз њихове кораке и попуњава обрасце подацима који већ постоје у ЦацаТајка пословном систему. Исход сваког пролаза враћа назад у систем, па евиденција у сваком тренутку показује докле се стигло.
Оно што га издваја није то што уме да кликне по страници — то уме сваки алат за аутоматизацију — него где му стоји поступак. Кораци нису написани у програму, него се воде као подаци у пословном систему, у обичним табелама које се уређују у прегледачу.
Зашто је поступак податак, а не код
Туђи сајтови се мењају без најаве: премести се поље, дода се корак, промени се текст на дугмету. Код класичног робота свака таква ситница значи измену програма, нову верзију и нову инсталацију код клијента.
Овде се у том случају мења један ред у табели. И сам начин на који се поље проналази на страници стоји у табели, заједно са вредношћу која се у њега уписује, па се измена сајта решава исправком податка. Програм остаје исти. Исто важи и за увођење новог сајта или нове врсте посла — додаје се нови поступак, а не нови програм.
Сваки корак носи и услов под којим се извршава, па један поступак покрива и случајеве који се гранају, без писања посебне варијанте за сваки. Корак може да носи и ознаку од које верзије програма важи, па се измене припремају унапред и не ремете рад инсталација које још нису ажуриране.
Шта клијент добија
- Посао који се одвија без човека – задаци се обрађују у циклусима, сами од себе, и ноћу.
- Измену без програмера – када се сајт промени, овлашћени корисник исправи корак у табели и рад се наставља.
- Један систем уместо три – пријем података, евиденција и обрада су повезани; ништа се не прекуцава.
- Траг о сваком пролазу – снимци екрана, дневник рада и запис о томе шта је и када промењено.
- Више програма на више рачунара – свака инсталација преузима само врсту посла која јој је додељена, па се оптерећење дели.
Када нешто пође наопако
Аутоматизација која ради са туђим сајтом повремено наиђе на нешто што није предвиђено. Зато програм није прављен тако да се у том случају само заустави.
Оператер има контроле за покретање, паузу и заустављање, може да буде позван да ручно допуни оно што недостаје па да настави од истог места, а понашање код грешке се бира: прекид, пауза ради провере, или наставак уз упис у дневник. Код сваке сумњиве тачке остаје снимак екрана, тако да се после може видети шта је сајт тачно приказао.
Где је граница
Програм не одлучује уместо човека и не заобилази заштите сајтова са којима ради — ради оно што би оператер и сам радио, само без прекуцавања и без чекања. Провере које траже људску процену остају код оператера, а програм му их износи уместо да их прескочи.
Где се овакво решење користи
Свуда где се свакодневно попуњава исти туђи образац подацима који већ постоје у некој евиденцији: пријаве и захтеви на порталима који немају свој API, упити у регистре, провере статуса, пренос налога из једног система у други.
Зато је ово и најјаснији пример чему ЦацаТајка служи: систем држи податке, правила и евиденцију, а програм који се инсталира је само рука која то извршава.
У којим технологијама постоји
У употреби је варијанта писана у VB.NET-у, која је и испоручена клијенту.
Разрађена је и варијанта у C#-у. Пошто сав поступак стоји у табелама пословног система, обе варијанте раде по истим подацима — бира се она која се боље уклапа у оно што клијент већ користи и одржава.
У плану је верзија као Electron апликација у JavaScript-у, која исти посао ради и ван Windows-а. Подела на систем који држи поступак и програм који га извршава управо то и омогућава: мења се извршилац, а не правила по којима ради.
Коришћене технологије
Програм је развијен у VB.NET-у и C#-у, са WinForms корисничким окружењем, управља прегледачем Microsoft Edge преко Selenium WebDriver-а, а са пословним системом разговара преко REST API-ја. Пословни систем је PHP и MySQL, са Tabulator.js табелама за уређивање поступака. Испоручује се са Windows инсталацијом, а у припреми је и Electron верзија у TypeScript-у.
Ако вам треба оваква аутоматизација, погледајте услугу прављење рачунарских програма, а за повезивање са туђим системима API интеграције.
Оставите одговор