Az OTRS általános felülete egy többrétegű keretrendszerből áll, amely az OTRS-t kommunikálni hagyja más rendszerekkel egy webszolgáltatáson keresztül. Ez a kommunikáció lehet kétirányú is:
OTRS mint szolgáltató: az OTRS kiszolgálóként működik, figyel a külső rendszerből érkező kérésekre, feldolgozza az információkat, végrehajtja a kért műveletet, és válaszol a kérésre.
OTRS mint kérelmező: az OTRS kliensként működik, információkat gyűjt, elküldi a kérést a távoli rendszernek, és várakozik a válaszra.
Az általános felület egy rétegmodell alapján épül fel, hogy rugalmas és könnyen személyre szabható legyen.
Egy réteg olyan fájlok halmaza, amelyek azt vezérlik, hogy az általános felület hogyan hajtsa végre egy webszolgáltatás különböző részeit. A megfelelő beállítás használatával egyesek különböző webszolgáltatásokat tudnak felépíteni különböző külső rendszerekhez új modulok létrehozása nélkül.
Ha a távoli rendszer nem támogatja az általános felület jelenleg csomagolt moduljait, akkor speciális modulok fejlesztése szükséges az adott webszolgáltatáshoz.
Az OTRS-sel szállított szolgáltatott általános felület modulok listája idővel frissítve és növelve lesz.
Ábra: A grafikus felület rétegei.
Ez a réteg felelős a távoli rendszerrel való megfelelő kommunikációért. Fogadja a kéréseket és válaszokat állít elő, amikor szolgáltatóként működik, és kéréseket állít elő és válaszokat fogad, amikor kérelmezőként működik.
A szolgáltató kommunikációját egy új „nph-genericinterface.pl” nevű webszolgáltatás kezelő kezeli.
A kérelmező kommunikációja kezdeményezhető egy általános felület modul vagy bármely egyéb OTRS modul által aktivált esemény közben. Ezt az eseményt az eseménykezelő kapja el, és a beállítástól függően az eseményt közvetlenül a kérelmező objektum fogja feldolgozni, vagy delegálja az ütemezőnek (egy különálló démon, amelyet feladatok aszinkron módon történő feldolgozására terveztek).
Ez a réteg felelős az adatszerkezetek átfordításáért az OTRS és a távoli rendszer között (belső adatok és külső adatok rétegek). Általában a távoli rendszereknek eltérő adatszerkezetük van az OTRS adatszerkezetétől (beleértve a különböző értékeket és neveket azoknál az értékeknél), és itt rejlik a réteg fontossága, hogy a fogadott információkat valami olyanná változtassa meg, amelyet az OTRS meg tud érteni, és ellenkező módon, az információkat minden egyes távoli rendszerhez a saját adatszótáruk használatával küldje el.
Példa: a „Prioritást” (OTRS) nevezhetnék „Prio”-nak a távoli rendszeren, és lehet, hogy az „1 alacsony” (OTRS) értéket „Információra” kell leképezni a távoli rendszeren.
A vezérlők hasonló műveletek és meghívók gyűjteményei. Például egy jegyvezérlő számos szabványos jegyműveletet tartalmazhat. Egyéni vezérlők is megvalósíthatók, például egy „TicketExternalCompany” vezérlő, amely hasonló függvényeket tartalmazhat mint a szabványos jegyvezérlő, de eltérő adatfelülettel vagy függvénynevekkel (a távoli rendszer függvényneveihez alkalmazkodva) vagy teljesen eltérő kóddal.
Egy alkalmazás az általános felületnél lehet, hogy információkat szinkronizál egy olyan távoli rendszerrel, amely csak egy másik ugyanolyan távoli rendszerrel tud beszélgetni. Ebben az esetben új vezérlőket kell fejleszteni, és a műveleteknek és a meghívóknak a távoli rendszer viselkedését kell emulálniuk oly módon, hogy az a felület, amelyet az OTRS kitesz, hasonló legyen a távoli rendszer felületéhez.
Egy művelet egy olyan önálló tevékenység, amely az OTRS-en belül hajtható végre. Az összes műveletnek ugyanolyan programozási felülete van. Fogadják az adatokat egy speciális paraméterbe, és egy adatszerkezetet adnak vissza egy sikeres állapottal, egy lehetséges hibaüzenettel és a visszaadott adatokkal.
Normális esetben a műveletek a már leképezett (belső) adatokat használják a központi modulok meghívásához és a tevékenységek végrehajtásához az OTRS-ben, mint például: egy jegy létrehozása, egy felhasználó frissítése, egy várólista érvénytelenítése, egy értesítés küldése, stb. Egy műveletnek teljes hozzáférése van az OTRS API-hoz egy tevékenység végrehajtásához.
Egy meghívó egy olyan tevékenység, amelyet az OTRS egy távoli rendszerrel szemben hajt végre. A meghívók az OTRS központi moduljait használják a kérés létrehozásához szükséges információk feldolgozásához és összegyűjtéséhez. Amikor az információk készen állnak, akkor le kell képezni azokat a távoli rendszer formátumára azért, hogy elküldhetők legyenek a távoli rendszernek, amely fel fogja dolgozni az információkat, végre fogja hajtani a tevékenységet, és vissza fogja küldeni a választ a siker feldolgozásához vagy a hibák kezeléséhez.
Az általános felületnek meghatározott folyamata van a tevékenységek végrehajtásához szolgáltatóként és kérelmezőként.
Ezek a folyamatok vannak alább leírva:
HTTP-kérés
Az OTRS fogadja a HTTP-kérést és továbbadja a rétegeken keresztül.
A szolgáltató modul felelős ezen tevékenységek végrehajtásáért és vezérléséért.
Hálózati átvitel
A hálózati átvitel modul dekódolja az adat hasznos terhét, és elválasztja a művelet nevét az adat többi részétől.
A művelet neve és a művelet adatai visszakerülnek a szolgáltatóhoz.
Külső adatok
Az adatok, ahogy a távoli rendszer elküldte (ez nem egy modul alapú réteg).
Leképezés
Az adatok átalakításra kerülnek a külső rendszer formátumáról az OTRS belső formátumára, ahogy a leképezési beállításban meg van adva ennél a műveletnél (leképezés a bejövő kérés adataihoz).
A már átalakított adatok visszakerülnek a szolgáltatóhoz.
Belső adatok
Az adatok, ahogy át lettek alakítva és elő lettek készítve a műveletnek való átadáshoz (ez nem egy modul alapú réteg).
Művelet
Fogadja és ellenőrzi az adatokat.
Felhasználói hozzáférés-vezérlést hajt végre.
Végrehajtja a műveletet.
Művelet
Visszaadja az eredmény adatait a szolgáltatónak.
Belső adatok
Az adatok, ahogy visszaadásra kerültek a műveletből.
Leképezés
Az adatok visszaalakításra kerülnek a távoli rendszer formátumára, ahogy a leképezési beállításban meg van adva (leképezés a kimenő válasz adataihoz).
A már átalakított adatok visszakerülnek a szolgáltatóhoz.
Külső adatok
Az adatok, ahogy át lettek alakítva és elő lettek készítve a hálózati átvitelhez való átadáshoz válaszként.
Hálózati átvitel
Fogadja a már a távoli rendszer formátumában lévő adatokat.
Felépít egy érvényes választ ehhez a hálózati átviteltípushoz.
HTTP-válasz
A válasz visszaküldésre kerül a webszolgáltatás kliensének.
Egy hiba esetén hibaválasz kerül elküldésre a távoli rendszernek (például SOAP-hiba, HTTP-hiba, stb.).
Esemény-aktiváló kezelő
A webszolgáltatás beállítása alapján meghatározza, hogy a kérés szinkron vagy aszinkron lesz-e.
Szinkron
Egy közvetlen hívás készül a kérelmezőhöz azért, hogy létrehozzon egy új kérést és továbbadja a rétegeken keresztül.
Aszinkron
Egy új általános felület (kérelmező) feladat létrehozása az OTRS ütemezőhöz (a kérés végrehajtását az ütemezőre delegálva a felhasználói élmény erősen növelhető, egyébként a kérés előkészítéséhez szükséges összes idő és a távoli végrehajtás hozzáadásra kerül az OTRS eseményekhez, amely aktiválja azokat a kéréseket).
A következő ciklusában az ütemező folyamat beolvassa az új feladatot, és létrehoz egy hívást a kérelmezőhöz, amely létre fog hozni egy új kérést, és azután továbbadja azt a rétegeken keresztül.
Meghívó
Fogadja az adatokat az eseményből.
Ellenőrzi a fogadott adatokat (ha szükséges).
Meghívja a központi modulokat az adatok kiegészítéséhez (ha szükséges).
Visszaadja a kért adatszerkezetet, vagy egy kommunikáció leállítása jelet küld a kérelmezőnek a kérés elegáns megszakításához.
Belső adatok
Az adatok, ahogy a meghívó átadta (ez nem egy modul alapú réteg).
Leképezés
Az adatok átalakításra kerülnek a távoli rendszer formátumára, ahogy a leképezési beállításban meg van adva (leképezés a kimenő válasz adataihoz).
A már átalakított adatok visszakerülnek a kérelmezőhöz.
Külső adatok
Az adatok, ahogy át lettek alakítva és elő lettek készítve a távoli rendszernek való küldéshez.
Hálózati átvitel
Fogadja a távoli művelet nevét és a már a távoli rendszer formátumára átalakított adatokat a kérelmezőtől.
Felépít egy érvényes kérést a hálózati átvitelhez.
Elküldi a kérést a távoli rendszernek, és várakozik a válaszra.
Hálózati átvitel
Fogadja a választ és dekódolja az adat hasznos terhét.
Visszaadja az adatokat a kérelmezőnek.
Külső adatok
Az adatok, ahogy a távoli rendszerről érkeztek.
Leképezés
Az adatok átalakításra kerülnek a külső rendszer formátumáról az OTRS belső formátumára, ahogy a leképezési beállításban meg van adva ennél a műveletnél (leképezés a bejövő válasz adataihoz).
A már átalakított adatok visszakerülnek a kérelmezőhöz.
Belső adatok
Az adatok, ahogy át lettek alakítva és elkészültek visszaadásra a kérelmezőnek.
Meghívó
Fogadja a visszaadott adatokat.
Kezeli az adatokat, ahogy minden egyes meghívónál speciálisan szükséges (beleértve a hibakezelést, ha van).
Visszaadja a meghívó eredményét és adatait a kérelmezőnek.
Eseménykezelő vagy ütemező
Fogadja az adatokat a kérelmezőtől. Az ütemező esetében ezek az adatok információkat tartalmazhatnak a feladat azonnali vagy jövőbeli újraütemezéséhez.
A webszolgáltatás egy kommunikációs módszer két rendszer között, a mi esetünkben az OTRS és egy távoli rendszer között.
A webszolgáltatás szíve annak beállítása, ahol az van meghatározva, hogy a webszolgáltatás milyen műveleteket hajthat végre belsőleg (művelet), az OTRS kérés milyen műveleteket hajthat végre a távoli rendszeren (meghívók), az adatok hogyan lesznek átalakítva az egyik rendszerről a másikra (leképezés), és mely protokollon keresztül kerüljön sor a kommunikációra (átvitel).
Az általános felület az a keretrendszer, amely lehetővé teszi webszolgáltatások létrehozását az OTRS-hez egy előre meghatározott módon a már elkészített építőkockák használatával, amelyek egymástól függetlenek és kicserélhetők.
A webszolgáltatások grafikus felhasználói felülete (GUI) egy olyan eszköz, amely egy felhasználóbarát és kényelmes felületen teszi lehetővé összetett webszolgáltatás beállítások felépítését. Lehetővé teszi:
Webszolgáltatások létrehozását és törlését.
Beállítások importálását és exportálását (YAML fájlformátumban) meglévő webszolgáltatásokhoz.
Régi beállítások megtekintését, visszaállítását és exportálását a meglévő webszolgáltatásokhoz a webszolgáltatás előzmények képernyőn.
Az összes kommunikációs napló követését minden webszolgáltatásnál a hibakereső képernyőn.
Az adminisztrációs felület fő képernyőjén (a Rendszeradminisztráció dobozban) lévő „Webszolgáltatások” hivatkozás vezet a webszolgáltatások áttekintő képernyőjéhez, ahol lehetősége van a webszolgáltatások beállításainak kezelésére. Hozzáadhat új webszolgáltatásokat vagy megváltoztathatja a meglévők beállításait erről a képernyőről.
Minden egyes webszolgáltatás beállítási képernyőnek egy „kenyérmorzsa” stílusú navigációs útvonala van a képernyő felső részén. Ez a navigációs útvonal azért hasznos, hogy pontosan tudjuk, hogy a webszolgáltatás beállításainak mely részén vagyunk, valamint bármikor lehetővé teszi a felhasználónak a beállítási folyamat bármely részére történő visszalépést (ez a művelet nem fog elmenteni semmilyen változtatást).
Egy új webszolgáltatás létrehozásához nyomja meg a „Webszolgáltatás hozzáadása” gombot, és adja meg a szükséges információkat.
Ábra: Webszolgáltatások áttekintő.
Az egyetlen kötelező mező ezen a részen a webszolgáltatás „neve”, amelynek egyedinek kell lennie a rendszeren, és nem lehet üresen hagyni. A többi mezők is szükségesek a beállításhoz, mint például a „Hibakereséséi küszöbszint” és az „Érvényesség”, de ezek a mezők már ki vannak töltve az alapértelmezett értékkel minden listánál.
A „Hibakeresési küszöbszint” alapértelmezett értéke a „Hibakeresés”. Ha ilyen módon állítjuk be, akkor az összes kommunikációs napló regisztrálva lesz az adatbázisban. Minden későbbi hibakeresési küszöbszint érték korlátozóbb és eldobja az annál alacsonyabb rendű kommunikációs naplókat, mint amely a rendszeren be van állítva.
A hibakeresési küszöbszint szintjei (az alacsonyabbtól a magasabbig)
Hibakeresés
Információ
Értesítés
Hiba
Lehetséges a hálózati átviteli protokoll meghatározása is az „OTRS mint szolgáltató” és az „OTRS mint kérelmező” szakaszoknál.
Kattintson a „Mentés” gombra az új webszolgáltatás regisztrálásához az adatbázisba, vagy kattintson a „Mégse” gombra a művelet eldobásához. Most vissza fog térni a webszolgáltatás áttekintő képernyőjéhez.
Ha már rendelkezik egy YAML-formátumú webszolgáltatás beállítófájllal, akkor rákattinthat a „Webszolgáltatás importálása” gombra a képernyő bal oldalán. A webszolgáltatások importálásával kapcsolatos további információkért nézze meg a következő „Webszolgáltatás megváltoztatása” szakaszt.
Egy webszolgáltatás megváltoztatásához vagy további részletek hozzáadásához kattintson a webszolgáltatás nevére a webszolgáltatás áttekintő képernyőjén.
Ábra: Webszolgáltatások hozzáadása.
Ezen a képernyőn függvények teljes készlete van egy webszolgáltatás minden részének kezeléséhez. A bal oldalon a művelet oszlopban néhány gombot találhat, amelyek lehetővé teszik az összes lehetséges művelet végrehajtását egy webszolgáltatáson:
Webszolgáltatás klónozása.
Webszolgáltatás exportálása.
Webszolgáltatás importálása.
Beállítási előzmények.
Webszolgáltatás törlése.
Hibakereső.
A „Beállítási előzmények” és a „Hibakereső” különböző képernyőkre fogja vezetni.
Egy webszolgáltatás klónozásához a „Webszolgáltatás klónozása” gombra kell kattintania. Egy párbeszédablak fog megjelenni, ahol használhatja az alapértelmezett nevet vagy beállíthat egy új nevet a (klónozott) webszolgáltatáshoz.
Ne feledje, hogy a webszolgáltatás nevének egyedinek kell lennie a rendszeren belül.
Kattintson a „Klónozás” gombra a webszolgáltatás klónjának létrehozásához vagy a „Mégse” gombra a párbeszédablak bezárásához.
Ábra: Webszolgáltatás klónozása.
A „Webszolgáltatás exportálása” gomb lehetőséget ad a jelenlegi webszolgáltatás beállításainak kiírására egy YAML-fájlba, annak letöltésére és eltárolására a fájlrendszerén. Ez különösen akkor lehet hasznos, ha át szeretné költöztetni a webszolgáltatást az egyik kiszolgálóról a másikra, például a tesztkörnyezetből a produktív rendszerre.
A webszolgáltatás beállításaiban tárolt összes jelszó egyszerű szöveges formátumban lesz exportálva.
Közvetlenül a „Webszolgáltatás exportálása” gombra kattintás után a böngészője mentési párbeszédablaka fog megjelenni, akárcsak amikor egy fájl letöltési hivatkozására kattint egy weboldalon.
Az egyes operációs rendszereken minden böngészőnek saját mentési párbeszédablak képernyője és stílusa van. A böngészőtől és annak beállításától függően lehetséges, hogy nem jelenik meg párbeszédablak, és a fájl az alapértelmezett könyvtárba lesz elmentve a fájlrendszeren. Nézze meg a böngészője dokumentációját a konkrétabb utasításokért, ha szükséges.
Ábra: Webszolgáltatások exportálása.
Egy érvényes webszolgáltatás beállító YAML-fájl szükséges a webszolgáltatás importálása funkció használatához. Kattintson a „Webszolgáltatás importálása” gombra, és tallózzon rá a beállítófájlra vagy adja meg a teljes útvonalat a beviteli dobozban.
Kattintson az „Importálás” gombra egy új webszolgáltatás létrehozásához egy fájlból vagy a „Mégse” gombra a párbeszédablak bezárásához.
A webszolgáltatás neve a beállítófájl nevéből lesz átvéve (például ha a fájl neve SajátWebszolgáltatás.yml, akkor a kapott webszolgáltatás SajátWebszolgáltatás elnevezésű lesz). Ha egy ugyanolyan nevű webszolgáltatás van regisztrálva a rendszeren, mint amilyet importálni szeretne, akkor a rendszer a webszolgáltatás megváltoztatása képernyőre fogja vezetni, hogy megváltoztathassa az importált webszolgáltatás nevét.
Ábra: Webszolgáltatások importálása.
A webszolgáltatás beállításain végzett minden változtatás új bejegyzést hoz létre a webszolgáltatás előzményeiben (mint egy napló). A webszolgáltatás előzmények képernyő egy webszolgáltatás összes beállítási verziójának listáját jeleníti meg. A „Beállítási előzmények listája” részen lévő minden egyes sor (verzió) egy önálló módosítást képvisel a webszolgáltatás előzményeiben.
Kattintson a sorok egyikére a teljes beállítás megjelenítéséhez, ahogy az egy adott dátumkor vagy időpontban volt. A beállítás ennek a képernyőnek az „Előzményrészletek” szakaszában lesz megjelenítve. Itt is lehetősége van a kijelölt webszolgáltatás-beállítás verziójának exportálására vagy annak a verziónak a visszaállítására a jelenlegi webszolgáltatás beállításaiba.
A „Webszolgáltatás-beállítás exportálása” pontosan úgy viselkedik mint a webszolgáltatás megváltoztatásának képernyőjén lévő „Webszolgáltatás exportálása” funkció. További információkért nézze meg azt a szakaszt.
Ha a jelenlegi webszolgáltatásra történő váltás nem az elvárt módon működik, és nem könnyű a változtatásokat kézzel visszaállítani, akkor rákattinthat a „Webszolgáltatás-beállítás visszaállítása” gombra. Ez meg fog nyitni egy párbeszédablakot azt kérdezve, hogy biztos-e a webszolgáltatás-beállítás visszaállításában. Kattintson a „Webszolgáltatás-beállítás visszaállítása” gombra ezen a párbeszédablakon a jelenlegi beállítás lecseréléséhez a kijelölt verzióra, vagy kattintson a „Mégse” gombra a párbeszédablak bezárásához.
Ne feledje, hogy a webszolgáltatás beállításaiban tárolt összes jelszó egyszerű szöveges formátumban lesz exportálva.
Legyen óvatos egy beállítás visszaállításakor, mert ez a folyamat visszafordíthatatlan.
Ábra: Webszolgáltatás előzmények.
Néha szükséges egy webszolgáltatást teljesen törölni. Ennek elvégzéséhez kattintson a „Webszolgáltatás törlése” gombra, és egy új párbeszédablak fog megjelenni egy megerősítés kéréséhez.
Kattintson a „Törlés” gombra a webszolgáltatás eltávolításának megerősítéséhez vagy a „Mégse” gombra a párbeszédablak bezárásához.
Egy webszolgáltatás törlése nem vonható vissza, ezért legyen óvatos egy webszolgáltatás törlésekor.
Ábra: Webszolgáltatás törlése.
A hibakereső tárolja egy webszolgáltatás naplóját. A hibakereső ablakban nyomon követheti az összes webszolgáltatás kommunikációt, mind a szolgáltató, mind a kérelmező típusokat.
Amikor ez a képernyő megjelenik, akkor a kéréslista elkezd betölteni. Miután a lista teljesen ki van töltve, akkor kiválaszthatja a sorok egyikét (amely egy kommunikációs sorozatot jelent) annak részleteinek ellenőrzéséhez. Ezek a részletek fognak megjelenni egy lenti dobozban.
A képernyő jobb oldalán lévő szűrő használatával szűkítheti a kommunikációs listát. A következőkre szűrhet:
Kommunikáció típusa (szolgáltató vagy kérelmező)
Dátum: egy bizonyos dátum előtt és/vagy után
A távoli IP-cím
Ezek bármilyen kombinációja
Miután a szűrőbeállítások beállításra kerültek, nyomja meg a „Frissítés” gombot, és egy új lista lesz megjelenítve a keresési feltétek szerint.
A szűrőknél a keresési feltételektől függően az új lista eredmények nélkül is visszatérhet.
A képernyő bal oldalán a művelet oszlop alatt kiválaszthatja a „Vissza a webszolgáltatáshoz” lehetőséget, vagy törölheti a hibakereső naplóját a „Törlés” gomb megnyomásával. Ez egy párbeszédablakot fog megnyitni, amely arra kéri, hogy erősítse meg a napló törlését. Kattintson a „Törlés” gombra a párbeszédablakon a művelet végrehajtásához, vagy kattintson a „Mégse” gombra a párbeszédablak bezárásához.
A „Kérésrészletek” szakaszban láthatja a kijelölt kommunikáció összes részletét. Itt nyomon követheti a teljes folyamatot, és ellenőrizheti a lehetséges hibákat vagy jóváhagyhatja a sikeres válaszokat.
Ábra: Webszolgáltatás hibakereső.
A webszolgáltatás megváltoztatása képernyőre visszatérve most át fogjuk tekinteni annak jobb oldalát. Itt lehetőségünk van a webszolgáltatás összes általános adatának módosítására, mint például név, leírás, hibakeresési küszöbszint, stb. Van itt további két szakasz is lent, amely lehetővé teszi számunkra bizonyos paraméterek módosítását az „OTRS mint szolgáltató” és az „OTRS mint kérelmező” kommunikációs típusoknál.
A webszolgáltatás beállítását el kell menteni minden egyes szinten. Ez azt jelenti, hogy ha egy beállítás megváltozik, akkor az egyéb, a beállítás mélyebb részeire mutató hivatkozások le lesznek tiltva arra kényszerítve Önt, hogy elmentse a jelenlegi beállítási szintet. A mentés után a letiltott hivatkozások ismét újra engedélyezve lesznek, lehetővé téve a beállítás folytatását.
Az „OTRS mint szolgáltató” szakasznál lehetséges a hálózati átviteli protokoll megadása vagy beállítása. Csak azok a hálózati átviteli háttérprogramok vannak megjelenítve a listában, amelyek regisztrálva vannak. A hálózati átvitel beállításához kattintson a „Beállítás” gombra. Lehetőség van új műveletek hozzáadásához is ebben a dobozban. Ehhez válassza ki az elérhető műveletek egyikét a „Művelet hozzáadása” listából. Ez a művelet beállítása képernyőre fogja vezetni. Az új művelet mentése után az a fenti táblázatban lesz felsorolva.
Az „OTRS mint kérelmező” nagyon hasonló az előzőhöz, de a „műveletek” helyett itt meghívókat adhat hozzá.
Kattintson a „Mentés” gombra a webszolgáltatás mentéséhez és a beállítás folytatásához, a „Mentés és befejezés” gombra a mentéshez és a webszolgáltatás áttekintő képernyőjéhez való visszatéréshez, vagy a „Mégse” gombra a jelenlegi beállítási szint változtatásainak eldobásához és a webszolgáltatás áttekintő képernyőjéhez való visszatéréshez.
Ábra: Webszolgáltatások megváltoztatása.
A többi általános felület beállítási képernyőhöz hasonlóan - mint például a hálózati átvitel, művelet, meghívó és leképezés - a kezdeti beállítás (hozzáadás) képernyő csak két lehetőséget fog megjeleníteni: „Mentés” és „Mégse”. Ha a beállítást újra meglátogatja, akkor egy új „Mentés és befejezés” lehetőség fog megjelenni. Ennek a funkciónak a viselkedése lentebb van meghatározva.
A „Mentés” el fogja tárolni a jelenlegi beállítási szintet az adatbázisban, és vissza fog térni az előző képernyőre a változtatások áttekintéséhez vagy a mélyebb beállítások konfigurálásához.
A „Mentés és befejezés” el fogja tárolni a jelenlegi beállítási szintet az adatbázisban, és vissza fog térni az előző képernyőre a beállítási hierarchiában (a közvetlenül fölötte lévő beállítási szintre).
A „Mégse” el fog dobni minden beállítási változtatást a jelenlegi beállítási szintnél, és vissza fog térni az előző képernyőre a beállítási hierarchiában.
A jövőben az elérhető hálózati átvitelek listája meg lesz növelve. Jelenleg csak a „HTTP::SOAP” és a „HTTP::REST” átvitelek érhetők el. Minden átvitelnek különböző beállítási lehetőségei vannak a beállításhoz, és különböző előtétprogram modulokat használhatnak azok beállításához.
Nagyon egyszerű a „HTTP::SOAP” protokoll szolgáltatóként történő beállítása. Csak két beállítás van: „Névtér” és „Legnagyobb üzenethossz”. Ezek a mezők kötelezők. Az első egy URI a SOAP metódusokhoz történő környezet adásához csökkentve a félreérthetőséget, és a második egy olyan mező, ahol megadhatja a SOAP üzenetek legnagyobb méretét (bájtban), amelyet az OTRS fel fog dolgozni.
Ábra: Webszolgáltatás szolgáltatójának hálózati átvitele HTTP::SOAP.
A „HTTP::REST” esetén a beállítás egy kissé bonyolultabb lehet, mivel az dinamikusan nő minden beállított műveletnél az „Útvonal leképezés a <Műveletnév> művelethez:” és az „Érvényes kérési módszerek a <Műveletnév> művelethez:” beállítások hozzáadásával a „Legnagyobb üzenethossz:” és az „Életben tartás küldése:” alapértelmezett átviteli beállításokhoz.
Útvonal leképezés a „<Műveletnév>” művelethez:
Ebben a beállításban egy erőforrás útvonala van beállítva. Ezt az útvonalat a webszolgáltatás igényei szerint kell meghatározni figyelembe véve, hogy az útvonal a HTTP kérési módszerrel együtt határozza meg a végrehajtandó általános felületi műveletet.
Az útvonal tartalmazhat változókat „:<Változónév>” formájában. Minden útvonalszöveg, amely megfelel a változónév pozícióján, hozzá lesz adva a kérés hasznos terhéhez az ebben a beállításban meghatározott változónév használatával.
Példák:
Útvonal leképezés: /Eroforras
Érvényes kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras?Param1=Egy
Érvénytelen kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras?Param1=Egy
Útvonal leképezés: /Eroforras/:ID
Érvényes kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/1
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/1?Param1=Egy
Mindkét esetben az ID = 1 lesz elküldve a műveletnek a hasznos teher részeként. A második esetben a Param1 = Egy is hozzá lesz adva. A HTTP kérési módszertől függően egyéb paraméterek is hozzá lesznek adva, ha azok JSON szövegként érkeznek a kérés fejlécében.
Érvénytelen kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras?Param1=Egy
Útvonal leképezés: /Eroforras/EgyebEroforras/:ID/:Szin
Érvényes kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras/1/Piros
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras/123/Kek?Param1=Egy
Az első példában ID = 1 és Szin = Piros, míg a másodikban ID = 123 és Szin = Kek.
Érvénytelen kérések:
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/1
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras/1
http://localhost/otrs/nph-genericinterface.pl/Webservice/Proba/Eroforras/MasikEroforras/1?Param1=Egy
Az első példában a „/MasikEroforras” útvonal része, valamint a :Szin változó hiányzik. A második példában csak a :Szin változó hiányzik.
Érvényes kérési módszerek a „<Műveletnév>” művelethez:
A HTTP kérési módszerek az útvonal leképezéssel együtt használandó művelet meghatározásához. Lehetséges lehetőségek: CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT és TRACE.
Teljesen különböző műveletek is megoszthatják pontosan ugyanazt a leképezési útvonalat, de a kérési módszernek egyedinek kell lennie minden egyes műveletnél azért, hogy minden kérésnél helyesen meghatározható legyen a használandó művelet.
Ábra: Webszolgáltatás szolgáltatójának hálózati átvitele HTTP::REST.
Azokat a tevékenységeket, amelyeket akkor lehet végrehajtani, amikor az OTRS-t szolgáltatóként használja, „Művelteknek” hívják. Minden művelet egy vezérlőhöz tartozik. A vezérlők műveletek vagy meghívók gyűjteményei. Normális esetben az azonos vezérlőtől származó műveleteknek hasonló beállításokra van szükségük, és ugyanazon a beállítási párbeszédablakon osztoznak. Azonban az egyes műveleteknek lehetnek független beállítási párbeszédablakaik is, ha szükséges.
A név, a leírás, a háttérprogram és a leképezések azok a mezők, amelyek normális esetben minden egyes műveletnél megjelennek, de egyéb speciális mezők jelenhetnek meg a nem alapértelmezett beállítási párbeszédablakokban, hogy teljesítsék a művelet különleges szükségleteit.
Normális esetben két leképezés-beállítási szakasz van minden egyes műveletnél: egy a bejövő adatokhoz, és egy másik a kimenő adatokhoz. Különböző leképezési típusokat (háttérprogramokat) választhat minden egyes leképezési irányhoz, mivel a beállításaik függetlenek egymástól, valamint függetlenek a művelet háttérprogramjától is. A normál és leggyakoribb gyakorlat az, hogy a művelet ugyanazt a leképezési típust használja mindkét esetben (fordított beállítással). A teljes leképezési beállítás külön képernyőn végezhető el, amely a leképezési típustól függ.
A művelet háttérprogramja előre ki van töltve és nem szerkeszthető. Akkor fogja látni ezt a paramétert, amikor kiválasztja a műveletet a webszolgáltatás szerkesztési képernyőjén. Ez a mező csak tájékoztató.
A képernyő bal oldalán lévő művelet oszlopban a következő lehetőségei vannak: „Vissza a webszolgáltatáshoz” (az összes változtatás eldobása a legutóbbi mentés óta) és „Törlés”. Ha az utóbbira kattint, akkor egy párbeszédablak fog megnyílni, és azt fogja kérdezni, hogy el szeretné-e távolítani a műveletet. Kattintson a „Törlés” gombra a művelet és annak beállításai eltávolításának megerősítéséhez, vagy a „Mégse” gombra a törlés párbeszédablak bezárásához.
Ábra: Webszolgáltatás művelete.
A hálózati átvitel beállítása a kérelmezőnél hasonló a szolgáltatónál lévő beállításhoz. A kérelmező „HTTP::SOAP” hálózati átvitelénél több beállítandó mező található.
A „Végpont” (a távoli rendszer webszolgáltatás felületének URI-ja a kérések fogadásához) és a „Névtér” mezőktől eltekintve, amelyek kötelező mezők, a következőket is megadhatja:
Kódolás (mint például utf-8, latin1, iso-8859-1, cp1250, stb.) a SOAP üzeneteknél.
SOAPAction fejléc: ezt egy üres vagy kitöltött SOAPAction fejléc küldéséhez használhatja. Állítsa „Nem” értékre, és a SOAPAction fejléc a SOAP üzenetnél egy üres szöveg lesz, vagy állítsa „Igen” értékre a SOAP művelet Névtér#Művelet formában történő elküldéséhez, és határozza meg az elválasztót (tipikusan „/” a .Net webszolgáltatásoknál és „#” REST esetén).
Hitelesítés: a hitelesítési mechanizmus beállításához. Állítsa „-” értékre, hogy semmilyen hitelesítést se használjon, vagy válasszon egyet a listából, és meg fog jelenni a részletek mező.
Jelenleg csak a „BasicAuth” (HTTP) hitelesítési mechanizmus van megvalósítva. A távoli rendszer beállításától függően eldöntheti, hogy használja-e vagy sem. Ha használja, akkor meg kell adnia a felhasználónevet és jelszót a távoli rendszerhez való hozzáféréshez.
Ha a hitelesítéshez megad egy jelszót, akkor miután exportálja a webszolgáltatást egy YAML-fájlba, ez a jelszó fel lesz fedve, és egyszerű szöveges formátumban lesz kiírva a YAML-fájlon belül. Legyen tudatában ennek, és tegye meg az óvintézkedéseket, ha szükséges.
Ábra: Webszolgáltatás kérelmezőjének hálózati átvitele (HTTP::SOAP).
A HTTP::REST esetén ez a beállítás is dinamikusan nő a „Vezérlő leképezés a <Meghívónév> meghívóhoz:” és az „Érvényes kérési parancsok a <Meghívónév> meghívóhoz:” beállításoknak az egyes meghívásokhoz való hozzáadásától függően. A hitelesítés és az SSL beállítások hasonlóak a HTTP::SOAP szakaszban lévőkhöz.
Gép
A távoli rendszer gépneve vagy IP-címe és portja. Ha nincs port megadva, akkor a 80-as portot használja alapértelmezetten.
Vezérlő leképezés a „<Meghívónév>” meghívóhoz:
Ebben a beállításban egy erőforrás útvonala van beállítva. Ezt az útvonalat a távoli webszolgáltatás igényei szerint kell meghatározni, és követni kell annak meghatározását.
Az útvonal tartalmazhat változókat „:<Változónév>” formájában. Minden változónév, amely illeszkedik az (elküldendő) jelenlegi adatokra, ki lesz cserélve a megfelelő adatértékkel. Ezek az illesztett változónevek és értékek el lesznek távolítva a jelenlegi adatokból. A HTTP kérési parancstól függően a megmaradó adatok elküldhetők JSON-szövegként a kérés törzsében, vagy lekérdezési paraméterekként az URI-n belül.
Példák:
A következő adatoknál: Valtozo1 = Egy, Valtozo2 = Kettő, Valtozo3 = Három és Valtozo4 = Négy.
Vezérlő leképezés: /Eroforras
A cserék után:
/Eroforras
Megmaradó adatok:
Valtozo1 = Egy, Valtozo2 = Kettő, Valtozo3 = Három és Valtozo4 = Négy
Vezérlő leképezés: /Eroforras/:Valtozo1
A cserék után:
/Eroforras/Egy
Megmaradó adatok:
Valtozo2 = Kettő, Valtozo3 = Három és Valtozo4 = Négy
Vezérlő leképezés: /Eroforras/:Valtozo1?Param1=:Valtozo2&Valtozo3=:Valtozo3
A cserék után:
/Eroforras/Egy?Param1=Kettő&Valtozo3=Három
Megmaradó adatok:
Valtozo4 = Négy
Érvényes kérési parancsok a „<Meghívónév>” meghívóhoz:
Ez határozza meg a használandó HTTP kérési módszert, a lehetséges lehetőségek: CONNECT, DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT és TRACE. Ha nincs parancs kiválasztva, akkor az alapértelmezett parancsot használja.
Alapértelmezett parancs
Tartalékként van használva a meghatározott kérési parancs nélküli összes meghívónál.
Ábra: Webszolgáltatás szolgáltatójának hálózati átvitele HTTP::REST.
Azokat a tevékenységeket, amelyeket akkor lehet végrehajtani, amikor az OTRS-t kérelmezőként használja, „Meghívóknak” hívják. Minden meghívó egy vezérlőhöz tartozik (a vezérlők műveletek vagy meghívók gyűjteményei). Általában az azonos vezérlőtől származó meghívóknak hasonló beállításokra van szükségük, és ugyanazon a beállítási párbeszédablakokon osztoznak. Az egyes meghívóknak lehetnek független beállítási párbeszédablakaik is, ha szükséges.
A név, a leírás, a háttérprogram és a leképezések azok a mezők, amelyek normális esetben minden egyes meghívónál megjelennek. Továbbá az eseményaktiválók listája és egyéb speciális mezők jelenhetnek meg a nem alapértelmezett beállítási párbeszédablakokban, hogy teljesítsék a meghívó speciális szükségleteit.
Normális esetben két leképezés-beállítási szakasz van minden egyes meghívónál: egy a bejövő adatokhoz, és egy másik a kimenő adatokhoz. Különböző leképezési típusokat (háttérprogramokat) választhat minden egyes leképezési irányhoz, mivel a beállításaik függetlenek egymástól, valamint függetlenek a meghívó háttérprogramjától is. A normál és leggyakoribb gyakorlat az, hogy a meghívó ugyanazt a leképezési típust használja mindkét esetben, fordított beállítással. A teljes leképezési beállítás külön képernyőn végezhető el, amely a leképezési típustól függ.
A meghívó háttérprogramja előre ki van töltve és nem szerkeszthető. Akkor fogja látni ezt a paramétert, amikor kiválasztja a meghívót a webszolgáltatás szerkesztési képernyőjén. Ez a mező csak tájékoztató.
Az eseményaktiválók az OTRS-en belüli események, mint például „TicketCreate”, „ArticleSend”, stb. Ezek szerepelhetnek aktiválókként a meghívó végrehajtásához. Minden meghívónak legalább egy regisztrált eseményaktiválóval kell rendelkeznie, különben a meghívó hasznavehetetlen lesz, mert sosem lesz meghívva. Az eseményaktiválók aszinkron tulajdonsága határozza meg, hogy az OTRS folyamat fogja-e kezelni a meghívót, vagy hogy az OTRS ütemezőre lesz-e delegálva.
Az OTRS ütemező egy külön folyamat, amely feladatokat hajt végre a háttérben. Ennek használatával maga az OTRS folyamat nem lesz érintett, ha a távoli rendszernek hosszú ideig tart válaszolni, ha nem érhető el, vagy hálózati problémák vannak. Ha nem használja az ütemezőt, akkor a webszolgáltatások használata lelassíthatja vagy válaszképtelenné teheti az OTRS keretrendszert. Ezért erősen ajánlott az aszinkron eseményaktiválók használata, amilyen gyakran csak lehetséges.
Egy eseményaktiváló hozzáadásához először válassza ki az eseménycsaládot az első listából, majd az eseménynevet a második listából, ezután állítsa be az aszinkron tulajdonságot (ha nincs bejelölve, akkor az azt jelenti, hogy az eseményaktiváló nem lesz aszinkron), és végül kattintson a plusz gombra. Egy új eseményaktiváló lesz létrehozva, és figyelni fog a meghívó „Eseményaktiválók” listáján.
Egy eseményaktiváló törléséhez egyszerűen keresse meg a törlendő eseményaktiválót az „Eseményaktiválók” listájában, és kattintson a kuka ikonra a sor végén. Ez meg fog nyitni egy párbeszédablakot, amely azt kérdezi, hogy biztosan törölni szeretné-e az eseményaktiválót. Kattintson a „Törlés” gombra az eseményaktiváló eltávolításához a listából, vagy a „Mégse” gombra a párbeszédablak bezárásához.
A képernyő bal oldalán lévő művelet oszlopban a következő lehetőségei vannak: „Vissza a webszolgáltatáshoz” (az összes változtatás eldobása a legutóbbi mentés óta) és „Törlés”. Ha az utóbbira kattint, akkor egy párbeszédablak fog felbukkanni, és azt fogja kérdezni, hogy el szeretné-e távolítani a meghívót. Kattintson a „Törlés” gombra a meghívó és annak beállításai eltávolításának megerősítéséhez, vagy a „Mégse” gombra a törlés párbeszédablak bezárásához.
Ábra: Webszolgáltatás meghívója.
Vannak olyan esetek, ahol át kell alakítania az adatokat az egyik formátumról egy másik (adatszerkezet leképezése vagy megváltoztatása), mert normális esetben egy webszolgáltatást arra használnak, hogy kölcsönhatásba lépjen egy távoli rendszerrel, amely nagyon valószínű, hogy nem egy másik OTRS rendszer és/vagy nem tudja megérteni az OTRS adatszerkezeteit és értékeit. Ezekben az esetekben néhány vagy az összes adatot meg kell változtatni, és néha még az értékek (kulcsok) neveit is, vagy akár a teljes szerkezetet annak érdekében, hogy egyezzen a másik végen elvárt adatokkal. A feladat végrehajtásához van jelen az általános felület leképező rétege.
Minden egyes távoli rendszernek saját adatszerkezete van, valamint lehetséges új leképezőmodulok létrehozása minden esetre (például van egy személyre szabott leképezőmodul az OTRS keretrendszerrel szállított SAP megoldáskezelőhöz), de ez nem mindig szükséges. A Mapping::Simple modulnak le kell fednie a leképezési szükségletek legtöbbjét.
Amikor a Mapping::Simple nem fedi le egy webszolgáltatás összes leképezési szükségletét, akkor létre kell hozni egy új leképezőmodult. Ha többet szeretne megtudni arról, hogy hogyan hozhatók létre új leképezőmodulok, akkor nézzen utána az OTRS fejlesztői kézikönyvében.
Ez a modul alkalmat ad arra, hogy alapértelmezett értékeket állítson be az egyes kulcsok vagy értékek leképezéséhez a teljes kommunikációs adatoknál.
A képernyő elején egy általános szakaszt fog látni, ahol azokat az alapértelmezett szabályokat állíthatja be, amelyeket alkalmazni kell az összes leképezetlen kulcsnál és értéknél. Három lehetőség érhető el, ezek a lehetőségek vannak alább felsorolva:
Megtartás (változatlanul hagyás): semmilyen módon sem nyúl a kulcsokhoz vagy értékekhez.
Mellőzés (kulcs/érték pár eldobása): amikor ezt a kulcson alkalmazzák, akkor törli a kulcsot és az értéket, mert amikor egy kulcs törlődik, akkor annak következtében a hozzárendelt érték is törölve lesz. Amikor ezt az értéken alkalmazzák, akkor csak az érték törlődik megtartva a kulcsot, amely most már egy üres értékhez lesz hozzárendelve.
Leképezés (a megadott kulcs vagy érték használata alapértelmezettként): egy meghatározott leképezési szabály nélküli összes kulcs és/vagy érték ezt fogja alapértelmezettként használni. Amikor ezt a lehetőséget választja, akkor egy új szövegmező fog megjelenni az alapértelmezett beállításához.
A „+” gombra kattintva az új kulcstérképnél egy új dobozt fog megjeleníteni egy egyedülálló leképezési beállításhoz. Annyi kulcsleképezést adhat hozzá, amennyi szükséges. Egyszerűen kattintson ismét a „+” gombra, és egy új leképezési doboz fog megjelenni a meglévő alatt. A leképezési dobozokból határozhat meg egy leképezést egy egyedüli kulcshoz a következő lehetőségekkel:
Pontos érték(ek): a régi kulcsszöveg meg lesz változtatva egy újra, ha a régi kulcs pontosan egyezik.
Reguláris kifejezés: a kulcsszöveg le lesz cserélve egy reguláris kifejezési szabályt követve.
Az új értékleképezés „+” gombjának megnyomása egy új sort fog megjeleníteni egy értékleképezéshez. Itt is ugyanazokkal a lehetőségekkel lehetséges szabályok meghatározása az egyes leképezendő értékekhez mint a kulcsleképezésnél (pontos érték vagy reguláris kifejezés). Annyi értéket adhat a leképezéshez, amennyi szükséges, és ha törölni szeretné az egyiküket, akkor kattintson a „-” gombra az egyes leképezési értékek sorában.
A teljes kulcsleképezési szakasz (doboz) törlése is lehetséges. Egyszerűen nyomja meg az egyes dobozok jobb felső sarkában található „-” gombot annál a doboznál, amelyet törölni szeretne.
Ha egy teljes leképezési beállítás törlésére van szüksége: menjen vissza a megfelelő művelet vagy meghívó képernyőjére, keresse meg azt a leképezési irányt, amelyet korábban kiválasztott, és állítsa az értékét „-” értékre, majd mentse el a beállítást a változtatások alkalmazásához.
Ábra: Webszolgáltatás leképezése.
A parancssori felület (CLI) a webszolgáltatásokkal végzett munka gyors módja. Olyan eszközök halmazából áll, amelyeket alapvető műveletek végrehajtásához lehet használni, úgymint:
Webszolgáltatások létrehozása, frissítése, beolvasása és törlése YAML-fájlok alapján.
A hibakereső naplójának olvasása szűrőlehetőségekkel.
Nem szükséges a parancssori felület használata a webszolgáltatásokkal végzett munkához. Az adminisztrációs felületbe integrálva képernyők teljes készlete létezik a webszolgáltatás minden részével való kapcsolatba lépéshez. Olvassa el ebben a kézikönyvben megtalálható webszolgáltatás grafikus felületéről szóló szakaszt.
A „WebserviceConfig.pl” parancsfájlt azért fejlesztették ki, hogy alapvető, de gyors és hatékony eszközt hozzanak létre a webszolgáltatás beállításaival végzett munkához. A következő műveletek végrehajtásához ad képességet:
Hozzáadás: webszolgáltatások létrehozásához egy YAML-fájl használatával beállítási forrásként.
Frissítés: egy meglévő webszolgáltatás megváltoztatásához. A beállítások egy eltérő vagy módosított YAML-fájl használatával változtathatók meg.
Beolvasás: a képernyőn megjelenített jelenlegi webszolgáltatás beállításainak lekéréséhez.
Listázás: a rendszeren regisztrált összes webszolgáltatás teljes listájának lekéréséhez.
Törlés: egy webszolgáltatás törléséhez a rendszerről. Legyen óvatos, amikor használja, mert ez a művelet nem vonható vissza.
Egy webszolgáltatás READ művelete az összes beállítást egyszerű szövegként fogja megjeleníteni a képernyőn, beleértve az összes eltárolt jelszót is. Legyen tudatában ennek, és tegye meg a szükséges óvintézkedéseket!
Példa: Egy új webszolgáltatás-beállítás létrehozása:
shell> OTRS_HOME/bin/otrs.WebserviceConfig.pl -a write -n <webszolgáltatás_neve> -f /útvonal/a/yaml/fájlhoz
Az „otrs.WebserviceConfig.pl” parancsfájlt a következő kapcsolókkal is használhatja:
-a read -i <webszolgáltatás_azonosító> - Egy tárolt beállítás beolvasásához.
-a write -n <webszolgáltatás_neve> -f /útvonal/a/yaml/fájlhoz - Egy új webszolgáltatás létrehozásához.
-a write -i <webszolgáltatás_azonosító> -f /útvonal/a/yaml/fájlhoz - Egy webszolgáltatás frissítéséhez.
-a list - Az elérhető webszolgáltatások felsorolásához.
-a delete -i <webszolgáltatás_azonosító> - Egy webszolgáltatás törléséhez.
A parancssori felületen keresztül elérhető másik eszköz az „otrs.GenericInterfaceDebugRead.pl” parancsfájl, amely egy felület a webszolgáltatás hibakeresőjének naplóbejegyzéseiben való kereséshez.
Példa: Hibakereső naplóbejegyzések keresése:
shell> bin/otrs.GenericInterfaceDebugRead.pl
Opcionális paraméterek is használhatók az „otrs.GenericInterfaceDebugRead.pl” parancsfájlnál:
-c - a kommunikáció azonosítója (md5sum formátum) szerinti szűréshez.
-t - a kommunikáció típusa („Szolgáltató” vagy „Kérelmező”) szerinti szűréshez.
-a - dátum szerinti szűréshez (egy dátumkor vagy azután).
-b - dátum szerinti szűréshez (egy dátumkor vagy azelőtt).
-i - IP-cím szerinti szűréshez (érvényes IPv4 vagy IPv6 címnek kell lennie).
-w - webszolgáltatás azonosítója szerinti szűréshez.
-d - részletes kommunikációs adatok tartalmazásához.
Példa: Hibakereső naplóbejegyzések keresése az összes paraméterrel:
shell> ./otrs.GenericInterfaceDebugRead.pl -c a7cc4d9f5c70387a9bfbe1351bc88966 -t Provider -a '2011-07-22 00:00:00' -b '2011-07-26 00:00:00' -i 127.0.0.1 -w 123 -d 1
Erősen ajánlott felvenni a fent felsorolt szűrőkapcsolók legalább egyikét, valamint még még többet, ha a „-d” kapcsoló van kiválasztva, mert nagyon sok információ kérhető le az adatbázisból, és jeleníthető meg a képernyőn. Ez lassú válaszidőket és sokkal több információt eredményezhet, mint amire valójában szüksége van.
A tervezésétől kezdve úgy gondolták ki a webszolgáltatásokat, hogy hordozhatók legyenek az egyik OTRS rendszerről a másikra, például egy teszt vagy fejlesztői környezetből egy produktív rendszerre. Ezért szükség volt arra, hogy egyszerű módja legyen a webszolgáltatás beállításának kinyeréséhez az adatbázisból, és annak importálásához egy másikba. A feladat végrehajtásához az általános felület YAML-fájlokat használ a webszolgáltatások beállításainak alapjaként.
Miért YAML? A YAML egy olyan jelölőnyelv, amelyet úgy terveztek, hogy emberbarát módon legyen olvasható és írható (könnyebb megérteni a JSON formátumnál), nem rendelkezik az XML-szerű numerikus címkék néhány korlátozásával, nyílt, szabványosított, és teljesen elegendő a teljes webszolgáltatás beállításának eltárolásához.
Ha többet szeretne megtudni a YAML formátumról, akkor látogassa meg a http://www.yaml.org/ oldalt.
A következő egy webszolgáltatás beállítófájl példája YAML-formátumban:
--- Debugger: DebugThreshold: debug Description: Ez egy példa egy webszolgáltatás beállítására Provider: Operation: CloseIncident: Description: Ez egy próba művelet MappingInbound: {} MappingOutbound: {} RemoteSystemGuid: '' Type: Test::Test Test: Description: Ez egy próba művelet MappingInbound: Config: KeyMapDefault: MapTo: '' MapType: Keep KeyMapExact: Prio: Priority ValueMap: Priority: ValueMapExact: Critical: 5 Very High Information: 1 Very Low Warning: 3 Normal ValueMapDefault: MapTo: 3 Normal MapType: MapTo Type: Simple MappingOutbound: Config: KeyMapDefault: MapTo: '' MapType: Ignore KeyMapExact: Priority: Prio ValueMap: Prio: ValueMapExact: 1 Very Low: Information 3 Normal: Warning 5 Very High: Critical ValueMapDefault: MapTo: '' MapType: Ignore Type: Simple Type: Test::Test Transport: Config: MaxLength: 10000000 NameSpace: http://www.example.com/actions Type: HTTP::SOAP RemoteSystem: remote.system.description.example.com Requester: Invoker: Test: Description: Ez egy próba meghívó Events: - Asynchronous: 1 Event: TicketCreate - Asynchronous: 0 Event: ArticleUpdate MappingInbound: Type: Simple MappingOutbound: Type: Simple Type: Test::Test Transport: Config: Authentication: Password: '*******' Type: BasicAuth User: otrs Encoding: utf-8 Endpoint: http://www.example.com:8080/endpoint NameSpace: http://www.example.com/actions SOAPAction: Yes SOAPActionSeparator: '#' Type: HTTP::SOAP
Leírás (Description): egy rövid szöveg, amely leírja a webszolgáltatást.
Távoli rendszer (RemoteSystem): a távoli rendszer rövid leírása.
Hibakereső (Debugger): egy konténer a hibakereső beállításaihoz.
Szolgáltató (Provider): egy konténer a szolgáltató beállításaihoz.
Kérelmező (Requester): egy konténer a kérelmező beállításaihoz.
Hibakeresési küszöbszint (DebugThreshold): a hibakereső szintje.
Lehetséges értékek
hibakeresés (debug): az összes napló eltárolásra kerül az adatbázisban.
információ (info): az információ, az értesítés és a hiba szintek naplói kerülnek eltárolásra az adatbázisban.
értesítés (notice): az értesítés és a hiba szintek naplói kerülnek eltárolásra az adatbázisban.
hiba (error): csak a hiba szintek naplói kerülnek eltárolásra az adatbázisban.
Művelet (Operation): egy konténer az egyes műveleti beállításokhoz.
Átvitel (Transport): egy konténer a szolgáltató hálózati átvitelének beállításaihoz.
<Műveletnév>: Egyedi név a művelethez, egy konténer a saját műveletének beállításaihoz (0..n számosságú, de nem kettőzött).
Ez a szakasz a „Test::Test” típusból való műveleteken alapul. Az egyéb műveletek több vagy különböző beállításokat tartalmazhatnak.
Leírás (Description): egy rövid szöveg, amely leírja a műveletet.
Bejövő leképezés (MappingInbound): egy konténer a bejövő kérésadatok leképezési beállításaihoz.
Kimenő leképezés (MappingOutbound): egy konténer a kimenő válaszadatok leképezési beállításaihoz.
Típus (Type): a művelet háttérprogramja Vezérlő::Művelet formátumban.
Ez a szakasz a „Simple” típusból való leképezéseken alapul. Az egyéb leképezések több vagy különböző beállításokat tartalmazhatnak.
Beállítás (Config): egy konténer ezekhez a leképezési beállításokhoz.
Típus (Type): a leképező háttérprogram.
Alapértelmezett kulcsleképezés (KeyMapDefault): egy konténer az összes nem leképezett kulcs beállításaihoz.
Alapértelmezett értékleképezés (ValueMapDefault): egy konténer az összes nem leképezett érték beállításaihoz.
Pontos kulcsleképezés (KeyMapExact): egy konténer az összes pontos kulcsleképezéshez (0..1 számosságú).
Reguláris kifejezéses kulcsleképezés (KeyMapRegEx): egy konténer az összes reguláris kifejezéses kulcsleképezéshez (0..1 számosságú).
Értékleképezés (ValueMap): egy konténer az összes értékleképezéshez (0..1 számosságú).
Leképezés (MapTo): a használandó új érték (csak akkor alkalmazható, ha a leképezés típusa „MapTo” értékre van állítva).
Leképezés típusa (MapType): a leképezés szabálya.
Lehetséges értékek
Megtartás (Keep): változatlanul hagyás.
Mellőzés (Ignore): eldobás.
Leképezés (MapTo): megváltoztatás a „MapTo” értékére.
<régikulcs(RegEx)>: <újkulcs> (0..n számosságú, de nem kettőzött).
<újkulcs>: egy konténer ennek az új kulcsnak az értékleképezéséhez (a számosság a pontos kulcsleképezésből és a reguláris kifejezéses kulcsleképezésből származó új kulcsoktól függ).
Pontos értékleképezés (ValueMapExact): egy konténer az összes pontos értékleképezéshez (0..1 számosságú).
Reguláris kifejezéses értékleképezés (ValueMapRegEx): egy konténer az összes reguláris kifejezéses értékleképezéshez (0..1 számosságú).
Ez a szakasz a szolgáltató HTTP::SOAP hálózati átvitelén alapul. Az egyéb átvitelek több vagy különböző beállításokat tartalmazhatnak.
Beállítás (Config): egy konténer az adott hálózati átvitel konfigurációs beállításaihoz.
Típus (Type): a szolgáltató hálózati átviteli háttérprogramja.
Meghívó (Invoker): egy konténer az egyes kérelmezők beállításokhoz.
Átvitel (Transport): egy konténer a kérelmező hálózati átvitelének beállításaihoz.
<Meghívónév>: Egyedi név a meghívóhoz, egy konténer a saját meghívójának beállításaihoz (0..n számosságú, de nem kettőzött).
Ez a szakasz a „Test::Test” típusból való meghívókon alapul. Az egyéb meghívók több vagy különböző beállításokat tartalmazhatnak.
Leírás (Description): egy rövid szöveg, amely leírja a meghívót.
Események (Events): egy konténer az eseményaktiváló beállításainak névtelen listájához.
Bejövő leképezés (MappingInbound): egy konténer a bejövő válaszadatok leképezési beállításaihoz.
Kimenő leképezés (MappingOutbound): egy konténer a kimenő kérésadatok leképezési beállításaihoz.
Típus (Type): a meghívó háttérprogramja Vezérlő::Meghívó formátumban.
Listaelem: (0..n számosságú).
Aszinkron (Asynchronous): annak beállításához, hogy a meghívó végrehajtása delegálásra kerüljön-e az ütemezőhöz.
Lehetséges értékek
0: nem kezeli az ütemező.
1: az ütemező kezeli.
Esemény (Event): az eseményaktiváló neve.
Lehetséges értékek (a jegyeseményeknél)
TicketCreate
TicketDelete
TicketTitleUpdate
TicketUnlockTimeoutUpdate
TicketQueueUpdate
TicketTypeUpdate
TicketServiceUpdate
TicketSLAUpdate
TicketCustomerUpdate
TicketFreeTextUpdate
TicketFreeTimeUpdate
TicketPendingTimeUpdate
TicketLockUpdate
TicketArchiveFlagUpdate
TicketStateUpdate
TicketOwnerUpdate
TicketResponsibleUpdate
TicketPriorityUpdate
HistoryAdd
HistoryDelete
TicketAccountTime
TicketMerge
TicketSubscribe
TicketUnsubscribe
TicketFlagSet
TicketFlagDelete
TicketSlaveLinkAdd
TicketSlaveLinkDelete
TicketMasterLinkDelete
Lehetséges értékek (a bejegyzéseseményeknél)
Bejegyzésesemények
ArticleCreate
ArticleFreeTextUpdate
ArticleUpdate
ArticleSend
ArticleBounce
ArticleAgentNotification
ArticleCustomerNotification
ArticleAutoResponse
ArticleFlagSet
ArticleFlagDelete
ArticleAgentNotification
ArticleCustomerNotification
Ez a szakasz a kérelmező HTTP::SOAP hálózati átvitelén alapul. Az egyéb átvitelek több vagy különböző beállításokat tartalmazhatnak.
Beállítás (Config): egy konténer az adott hálózati átvitel konfigurációs beállításaihoz.
Típus (Type): a kérelmező hálózati átviteli háttérprogramja.
Hitelesítés (Authentication): egy konténer a hitelesítés beállításaihoz.
Kódolás (Encoding): a SOAP üzenetkérés kódolása.
Végpont (Endpoint): a távoli kiszolgáló webszolgáltatásának URI-ja az OTRS kérések elfogadásához.
Névtér (NameSpace): egy URI, amely egy környezetet ad az összes olyan meghívóhoz, amely ehhez a webszolgáltatáshoz tartozik.
SOAP művelet (SOAPAction): egy üres vagy kitöltött SOAP művelet fejléc küldéséhez a SOAP üzenetben („<Névtér> <Elválasztó> <Művelet>” formátumban).
Lehetséges értékek
Igen (Yes): egy kitöltött SOAP művelet fejléc küldéséhez.
Nem (No): egy üres SOAP művelet fejléc küldéséhez.
SOAP művelet elválasztó (SOAPActionSeparator): egy kitöltött SOAP művelet fejléc <Elválasztójának> beállításához.
Lehetséges értékek
'/': a .net webszolgáltatásoknál használják.
'#': az összes REST webszolgáltatásnál ezt használják.
Egy csatlakozó lényegében olyan tevékenységek halmaza, amelyeket vagy műveleteknek hívnak, ha az OTRS egy webszolgáltatás szolgáltatójaként működik, vagy meghívóknak hívnak, ha az OTRS egy webszolgáltatás kérelmezőjeként működik. De tartalmazhat speciális leképezéseket vagy átviteleket is.
Egy csatlakozónak lehetnek csak műveletei, csak meghívói vagy mindkettő. Egy csatlakozó akár más csatlakozók részeit is használhatja, mint például a leképezések vagy átvitelek, ha azok nem sajátosak annál a csatlakozónál, amely megpróbálja megvalósítani azokat.
Más szavakkal egy csatlakozó nincs korlátozva csak a vezérlő rétegére, hanem kiterjeszthető az adatleképezés vagy a hálózati átvitel rétegekre is, ha szükséges.
Az általános felület moduláris tervezésének köszönhetően egy csatlakozó bővítményként látható. Ez azt jelenti, hogy csatlakozók hozzáadásával az általános felület képességei kiterjeszthetők a következők használatával: OTRS funkcióbővítmények, egyéni OTRS modulok, harmadik féltől származó modulok, és így tovább.
Az OTRS ezen verziója a következő csatlakozókat tartalmazza használatra készen.
Munkamenet
Jegy
Ez a csatlakozó képes egy olyan érvényes munkamenet-azonosító létrehozására, amely bármely egyéb műveletben használható.
Biztosítja:
Műveletek:
SessionCreate
Egy új érvényes munkamenet-azonosítót hoz létre egyéb műveletekben történő használatra más csatlakozókból, mint például TicketCreate.
A munkamenet-azonosító használatához egyéb műveletekben más csatlakozókból az szükséges, hogy a művelet megvalósítsa a munkamenet-azonosító szerinti hitelesítést. Az összes többi csomagolt művelet képes egy érvényes munkamenet-azonosító elfogadására hitelesítési módszerként.
Lehetséges jellemzők:
<SessionCreate> <!--Ezen a szinten a következő 2 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <UserLogin>?</UserLogin> <!--Választható:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Választható:--> <Password>?</Password> </SessionCreate>
Ez a csatlakozó látja el az alapvető funkcionalitást a jegyekkel való kölcsönhatáshoz.
Biztosítja:
Műveletek:
TicketCreate
TicketUpdate
TicketGet
TicketSearch
Egy felületet biztosít egy jegy létrehozásához az OTRS-ben. Egy jegynek tartalmaznia kell egy bejegyzést, és tartalmazhat néhány mellékletet, valamint az összes meghatározott dinamikus mező is beállítható a TicketCreate műveletnél.
Lehetséges jellemzők:
<TicketCreate> <!--Ezen a szinten a következő 3 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <UserLogin>?</UserLogin> <!--Választható:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Választható:--> <SessionID>?</SessionID> <!--Választható:--> <Password>?</Password> <Ticket> <Title>?</Title> <!--Ezen a szinten a következő 2 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <QueueID>?</QueueID> <!--Választható:--> <Queue>?</Queue> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <TypeID>?</TypeID> <!--Választható:--> <Type>?</Type> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ServiceID>?</ServiceID> <!--Választható:--> <Service>?</Service> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <SLAID>?</SLAID> <!--Választható:--> <SLA>?</SLA> <!--Ezen a szinten a következő 2 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <StateID>?</StateID> <!--Választható:--> <State>?</State> <!--Ezen a szinten a következő 2 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <PriorityID>?</PriorityID> <!--Választható:--> <Priority>?</Priority> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <OwnerID>?</OwnerID> <!--Választható:--> <Owner>?</Owner> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ResponsibleID>?</ResponsibleID> <!--Választható:--> <Responsible>?</Responsible> <CustomerUser>?</CustomerUser> <!--Választható:--> <CustomerID>?</CustomerID> <!--Választható:--> <PendingTime> <Year>?</Year> <Month>?</Month> <Day>?</Day> <Hour>?</Hour> <Minute>?</Minute> </PendingTime> </Ticket> <Article> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ArticleTypeID>?</ArticleTypeID> <!--Választható:--> <ArticleType>?</ArticleType> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <SenderTypeID>?</SenderTypeID> <!--Választható:--> <SenderType>?</SenderType> <!--Választható:--> <From>?</From> <Subject>?</Subject> <Body>?</Body> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ContentType>?</ContentType> <Charset>?</Charset> <MimeType>?</MimeType> <!--Választható:--> <HistoryType>?</HistoryType> <!--Választható:--> <HistoryComment>?</HistoryComment> <!--Választható:--> <AutoResponseType>?</AutoResponseType> <!--Választható:--> <TimeUnit>?</TimeUnit> <!--Választható:--> <NoAgentNotify>?</NoAgentNotify> <!--Nulla vagy több ismétlés:--> <ForceNotificationToUserID>?</ForceNotificationToUserID> <!--Nulla vagy több ismétlés:--> <ExcludeNotificationToUserID>?</ExcludeNotificationToUserID> <!--Nulla vagy több ismétlés:--> <ExcludeMuteNotificationToUserID>?</ExcludeMuteNotificationToUserID> </Article> <!--Nulla vagy több ismétlés:--> <DynamicField> <Name>?</Name> <!--1 vagy több ismétlés:--> <Value>?</Value> </DynamicField> <!--Nulla vagy több ismétlés:--> <Attachment> <Content>cid:61886944659</Content> <ContentType>?</ContentType> <Filename>?</Filename> </Attachment> </TicketCreate>
A TicketUpdate művelet egy meglévő jegyből történő jellemzők módosításának vagy egy új bejegyzés hozzáadásának a képességét adja hozzá, beleértve a mellékleteket és minden dinamikus mezőt a jegynél és az új bejegyzésnél.
Nem szükséges egy új bejegyzést létrehozni egy jegyjellemző módosításához.
Lehetséges jellemzők:
<TicketUpdate> <!--Ezen a szinten a következő 3 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <UserLogin>?</UserLogin> <!--Választható:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Választható:--> <SessionID>?</SessionID> <!--Választható:--> <Password>?</Password> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <TicketID>?</TicketID> <TicketNumber>?</TicketNumber> <!--Választható:--> <Ticket> <!--Választható:--> <Title>?</Title> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <QueueID>?</QueueID> <!--Választható:--> <Queue>?</Queue> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <TypeID>?</TypeID> <!--Választható:--> <Type>?</Type> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ServiceID>?</ServiceID> <!--Választható:--> <Service>?</Service> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <SLAID>?</SLAID> <!--Választható:--> <SLA>?</SLA> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <StateID>?</StateID> <!--Választható:--> <State>?</State> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <PriorityID>?</PriorityID> <!--Választható:--> <Priority>?</Priority> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <OwnerID>?</OwnerID> <!--Választható:--> <Owner>?</Owner> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ResponsibleID>?</ResponsibleID> <!--Választható:--> <Responsible>?</Responsible> <!--Választható:--> <CustomerUser>?</CustomerUser> <!--Választható:--> <CustomerID>?</CustomerID> <!--Választható:--> <PendingTime> <Year>?</Year> <Month>?</Month> <Day>?</Day> <Hour>?</Hour> <Minute>?</Minute> </PendingTime> </Ticket> <!--Választható:--> <Article> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ArticleTypeID>?</ArticleTypeID> <!--Választható:--> <ArticleType>?</ArticleType> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <SenderTypeID>?</SenderTypeID> <!--Választható:--> <SenderType>?</SenderType> <!--Választható:--> <From>?</From> <Subject>?</Subject> <Body>?</Body> <!--Ezen a szinten a következő 2 elem VÁLASZTÁSA van--> <!--Választható:--> <ContentType>?</ContentType> <Charset>?</Charset> <MimeType>?</MimeType> <!--Választható:--> <HistoryType>?</HistoryType> <!--Választható:--> <HistoryComment>?</HistoryComment> <!--Választható:--> <AutoResponseType>?</AutoResponseType> <!--Választható:--> <TimeUnit>?</TimeUnit> <!--Választható:--> <NoAgentNotify>?</NoAgentNotify> <!--Nulla vagy több ismétlés:--> <ForceNotificationToUserID>?</ForceNotificationToUserID> <!--Nulla vagy több ismétlés:--> <ExcludeNotificationToUserID>?</ExcludeNotificationToUserID> <!--Nulla vagy több ismétlés:--> <ExcludeMuteNotificationToUserID>?</ExcludeMuteNotificationToUserID> </Article> <!--Nulla vagy több ismétlés:--> <DynamicField> <Name>?</Name> <!--1 vagy több ismétlés:--> <Value>?</Value> </DynamicField> <!--Nulla vagy több ismétlés:--> <Attachment> <Content>cid:166861569966</Content> <ContentType>?</ContentType> <Filename>?</Filename> </Attachment> </TicketUpdate>
Ez a művelet egy jegy összes jellemzőjének lekéréséhez használható, beleértve a dinamikus mezőket, az összes bejegyzést és az összes mellékletet, amelyek a jegyhez tartoznak.
Lehetséges jellemzők:
<TicketGet> <!--Ezen a szinten a következő 3 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <UserLogin>?</UserLogin> <!--Választható:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Választható:--> <SessionID>?</SessionID> <!--Választható:--> <Password>?</Password> <!--1 vagy több ismétlés:--> <TicketID>?</TicketID> <!--Választható:--> <DynamicFields>?</DynamicFields> <!--Választható:--> <Extended>?</Extended> <!--Választható:--> <AllArticles>?</AllArticles> <!--Választható:--> <ArticleSenderType>?</ArticleSenderType> <!--Választható:--> <ArticleOrder>?</ArticleOrder> <!--Választható:--> <ArticleLimit>?</ArticleLimit> <!--Választható:--> <Attachments>?</Attachments> <!--Választható:--> <HTMLBodyAsAttachment>?</HTMLBodyAsAttachment> </TicketGet>
A TicketSearch művelet azon jegyazonosítók listáját adja vissza, amelyek illeszkednek az előre meghatározott feltételekre.
Lehetséges jellemzők:
<TicketSearch> <!--Ezen a szinten a következő 3 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <UserLogin>?</UserLogin> <!--Választható:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Választható:--> <SessionID>?</SessionID> <!--Választható:--> <Password>?</Password> <!--Választható:--> <Limit>?</Limit> <!--Nulla vagy több ismétlés:--> <TicketNumber>?</TicketNumber> <!--Nulla vagy több ismétlés:--> <Title>?</Title> <!--Nulla vagy több ismétlés:--> <Queues>?</Queues> <!--Nulla vagy több ismétlés:--> <QueueIDs>?</QueueIDs> <!--Választható:--> <UseSubQueues>?</UseSubQueues> <!--Nulla vagy több ismétlés:--> <Types>?</Types> <!--Nulla vagy több ismétlés:--> <TypeIDs>?</TypeIDs> <!--Nulla vagy több ismétlés:--> <States>?</States> <!--Nulla vagy több ismétlés:--> <StateIDs>?</StateIDs> <!--Nulla vagy több ismétlés:--> <StateType>?</StateType> <!--Nulla vagy több ismétlés:--> <StateTypeIDs>?</StateTypeIDs> <!--Nulla vagy több ismétlés:--> <Priorities>?</Priorities> <!--Nulla vagy több ismétlés:--> <PriorityIDs>?</PriorityIDs> <!--Nulla vagy több ismétlés:--> <Services>?</Services> <!--Nulla vagy több ismétlés:--> <ServiceIDs>?</ServiceIDs> <!--Nulla vagy több ismétlés:--> <SLAs>?</SLAs> <!--Nulla vagy több ismétlés:--> <SLAIDs>?</SLAIDs> <!--Nulla vagy több ismétlés:--> <Locks>?</Locks> <!--Nulla vagy több ismétlés:--> <LockIDs>?</LockIDs> <!--Nulla vagy több ismétlés:--> <OwnerIDs>?</OwnerIDs> <!--Nulla vagy több ismétlés:--> <ResponsibleIDs>?</ResponsibleIDs> <!--Nulla vagy több ismétlés:--> <WatchUserIDs>?</WatchUserIDs> <!--Nulla vagy több ismétlés:--> <CustomerID>?</CustomerID> <!--Nulla vagy több ismétlés:--> <CustomerUserLogin>?</CustomerUserLogin> <!--Nulla vagy több ismétlés:--> <CreatedUserIDs>?</CreatedUserIDs> <!--Nulla vagy több ismétlés:--> <CreatedTypes>?</CreatedTypes> <!--Nulla vagy több ismétlés:--> <CreatedTypeIDs>?</CreatedTypeIDs> <!--Nulla vagy több ismétlés:--> <CreatedPriorities>?</CreatedPriorities> <!--Nulla vagy több ismétlés:--> <CreatedPriorityIDs>?</CreatedPriorityIDs> <!--Nulla vagy több ismétlés:--> <CreatedStates>?</CreatedStates> <!--Nulla vagy több ismétlés:--> <CreatedStateIDs>?</CreatedStateIDs> <!--Nulla vagy több ismétlés:--> <CreatedQueues>?</CreatedQueues> <!--Nulla vagy több ismétlés:--> <CreatedQueueIDs>?</CreatedQueueIDs> <!--Nulla vagy több ismétlés:--> <DynamicFields> <!--Ezen a szinten a következő 6 elem KÖTELEZŐ VÁLASZTÁSA van--> <!--Választható:--> <Equals>?</Equals> <!--Választható:--> <Like>?</Like> <!--Választható:--> <GreaterThan>?</GreaterThan> <!--Választható:--> <GreaterThanEquals>?</GreaterThanEquals> <!--Választható:--> <SmallerThan>?</SmallerThan> <!--Választható:--> <SmallerThanEquals>?</SmallerThanEquals> </DynamicFields> <!--Választható:--> <Ticketflag> <!--Választható:--> <Seen>?</Seen> </Ticketflag> <!--Választható:--> <From>?</From> <!--Választható:--> <To>?</To> <!--Választható:--> <Cc>?</Cc> <!--Választható:--> <Subject>?</Subject> <!--Választható:--> <Body>?</Body> <!--Választható:--> <FullTextIndex>?</FullTextIndex> <!--Választható:--> <ContentSearch>?</ContentSearch> <!--Választható:--> <ConditionInline>?</ConditionInline> <!--Választható:--> <ArticleCreateTimeOlderMinutes>?</ArticleCreateTimeOlderMinutes> <!--Választható:--> <ArticleCreateTimeNewerMinutes>?</ArticleCreateTimeNewerMinutes> <!--Választható:--> <ArticleCreateTimeNewerDate>?</ArticleCreateTimeNewerDate> <!--Választható:--> <ArticleCreateTimeOlderDate>?</ArticleCreateTimeOlderDate> <!--Választható:--> <TicketCreateTimeOlderMinutes>?</TicketCreateTimeOlderMinutes> <!--Választható:--> <ATicketCreateTimeNewerMinutes>?</ATicketCreateTimeNewerMinutes> <!--Választható:--> <TicketCreateTimeNewerDate>?</TicketCreateTimeNewerDate> <!--Választható:--> <TicketCreateTimeOlderDate>?</TicketCreateTimeOlderDate> <!--Választható:--> <TicketLastChangeTimeOlderMinutes>?</TicketLastChangeTimeOlderMinutes> <!--Választható:--> <TicketLastChangeTimeNewerMinutes>?</TicketLastChangeTimeNewerMinutes> <!--Választható:--> <TicketLastChangeTimeNewerDate>?</TicketLastChangeTimeNewerDate> <!--Választható:--> <TicketLastChangeTimeOlderDate>?</TicketLastChangeTimeOlderDate> <!--Választható:--> <TicketChangeTimeOlderMinutes>?</TicketChangeTimeOlderMinutes> <!--Választható:--> <TicketChangeTimeNewerMinutes>?</TicketChangeTimeNewerMinutes> <!--Választható:--> <TicketChangeTimeNewerDate>?</TicketChangeTimeNewerDate> <!--Választható:--> <TicketChangeTimeOlderDate>?</TicketChangeTimeOlderDate> <!--Választható:--> <TicketCloseTimeOlderMinutes>?</TicketCloseTimeOlderMinutes> <!--Választható:--> <TicketCloseTimeNewerMinutes>?</TicketCloseTimeNewerMinutes> <!--Választható:--> <TicketCloseTimeNewerDate>?</TicketCloseTimeNewerDate> <!--Választható:--> <TicketCloseTimeOlderDate>?</TicketCloseTimeOlderDate> <!--Választható:--> <TicketPendingTimeOlderMinutes>?</TicketPendingTimeOlderMinutes> <!--Választható:--> <TicketPendingTimeNewerMinutes>?</TicketPendingTimeNewerMinutes> <!--Választható:--> <TicketPendingTimeNewerDate>?</TicketPendingTimeNewerDate> <!--Választható:--> <TicketPendingTimeOlderDate>?</TicketPendingTimeOlderDate> <!--Választható:--> <TicketEscalationTimeOlderMinutes>?</TicketEscalationTimeOlderMinutes> <!--Választható:--> <TTicketEscalationTimeNewerMinutes>?</TTicketEscalationTimeNewerMinutes> <!--Választható:--> <TicketEscalationTimeNewerDate>?</TicketEscalationTimeNewerDate> <!--Választható:--> <TicketEscalationTimeOlderDate>?</TicketEscalationTimeOlderDate> <!--Választható:--> <ArchiveFlags>?</ArchiveFlags> <!--Nulla vagy több ismétlés:--> <OrderBy>?</OrderBy> <!--Nulla vagy több ismétlés:--> <SortBy>?</SortBy> <!--Nulla vagy több ismétlés:--> <CustomerUserID>?</CustomerUserID> </TicketSearch>
A következő egy alap, de teljes webszolgáltatás beállítófájl YAML formátumban az összes jegy csatlakozó művelet használatához SOAP hálózati átvitellel. Azért, hogy használhassa az OTRS-ben, ki kell másolnia a tartalmát, el kell mentenie egy GenericTicketConnectorSOAP.yml nevű fájlba, és importálnia kell az OTRS-be az adminisztrációs panelen lévő Webszolgáltatások képernyőn a „Webszolgáltatás hozzáadása” gombra kattintva az áttekintő képernyőről, majd ezután a „Webszolgáltatás importálása” gombra kattintva a hozzáadás képernyőn.
--- Debugger: DebugThreshold: debug TestMode: 0 Description: Jegy csatlakozó SOAP példa FrameworkVersion: 3.4.x git Provider: Operation: SessionCreate: Description: Létrehoz egy munkamenetet MappingInbound: {} MappingOutbound: {} Type: Session::SessionCreate TicketCreate: Description: Létrehoz egy jegyet MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketCreate TicketUpdate: Description: Frissít egy jegyet MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketUpdate TicketGet: Description: Lekéri a jegyadatokat MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketGet TicketSearch: Description: Jegyek keresése MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketSearch Transport: Config: MaxLength: 100000000 NameSpace: http://www.otrs.org/TicketConnector/ Type: HTTP::SOAP RemoteSystem: '' Requester: Transport: Type: ''
Hasonló példát lehet készíteni a REST hálózati átvitelhez. A REST webszolgáltatások olyan HTTP műveleteket használnak, mint például „POST”, „GET”, „PUT”, „PATCH”, stb. Ezek a műveletek egy erőforrásnak hívott URI-útvonallal együtt határoznak meg egy OTRS általános felület műveletet vagy meghívót (a kommunikációs módszertől függően).
A következő példa a /Session erőforrást használja a SessionCreate műveletnél, a /Ticket erőforrást a TicketSearch és a TicketCreate műveleteknél, valamint a /Ticket/{TicketID} erőforrást a TicketGet és a TicketUpdate műveleteknél (ahol a {TicketID} egy jegy aktuális jegyazonosító értéke, például /Ticket/123). Azért, hogy használhassa az OTRS-ben, ki kell másolnia a tartalmát, el kell mentenie egy GenericTicketConnectorREST.yml nevű fájlba, és importálnia kell az OTRS-be az adminisztrációs panelen lévő Webszolgáltatások képernyőn a „Webszolgáltatás hozzáadása” gombra kattintva az áttekintő képernyőről, majd ezután a „Webszolgáltatás importálása” gombra kattintva a hozzáadás képernyőn.
--- Debugger: DebugThreshold: debug TestMode: '0' Description: Jegy csatlakozó REST példa FrameworkVersion: 3.4.x git Provider: Operation: SessionCreate: Description: Létrehoz egy munkamenetet MappingInbound: {} MappingOutbound: {} Type: Session::SessionCreate TicketCreate: Description: Létrehoz egy jegyet MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketCreate TicketGet: Description: Lekéri a jegyadatokat MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketGet TicketSearch: Description: Jegyek keresése MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketSearch TicketUpdate: Description: Frissít egy jegyet MappingInbound: {} MappingOutbound: {} Type: Ticket::TicketUpdate Transport: Config: KeepAlive: '' MaxLength: '100000000' RouteOperationMapping: SessionCreate: RequestMethod: - POST Route: /Session TicketCreate: RequestMethod: - POST Route: /Ticket TicketGet: RequestMethod: - GET Route: /Ticket/:TicketID TicketSearch: RequestMethod: - GET Route: /Ticket TicketUpdate: RequestMethod: - PATCH Route: /Ticket/:TicketID Type: HTTP::REST RemoteSystem: '' Requester: Transport: Type: ''
A következő kód egy Perl-parancsfájl, amely képes kapcsolódni az OTRS-hez az általános felületen keresztül. Azért, hogy a jegy csatlakozó által biztosított műveleteket végrehajtsa, két Perl CPAN modult használ: SOAP::Lite és Data::Dumper. Győződjön meg arról, hogy a környezete képes ezen modulokat használni, mielőtt megpróbálná a parancsfájlt futtatni.
#!/usr/bin/perl -w # -- # otrs.SOAPRequest.pl - sample to send a SOAP request to OTRS Generic Interface Ticket Connector # Copyright (C) 2001-2018 OTRS AG, https://otrs.com/ # -- # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt. # -- use strict; use warnings; # use ../ as lib location use File::Basename; use FindBin qw($RealBin); use lib dirname($RealBin); use SOAP::Lite; use Data::Dumper; # --- # Variables to be defined. # this is the URL for the web service # the format is # <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/Webservice/<WEB_SERVICE_NAME> # or # <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl/WebserviceID/<WEB_SERVICE_ID> my $URL = 'http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnector'; # this name space should match the specified name space in the SOAP transport for the web service. my $NameSpace = 'http://www.otrs.org/TicketConnector/'; # this is operation to execute, it could be TicketCreate, TicketUpdate, TicketGet, TicketSearch # or SessionCreate. and they must to be defined in the web service. my $Operation = 'TicketCreate'; # this variable is used to store all the parameters to be included on a request in XML format. Each # operation has a determined set of mandatory and non mandatory parameters to work correctly. Please # check the OTRS Admin Manual in order to get a complete list of parameters. my $XMLData = ' <UserLogin>some user login</UserLogin> <Password>some password</Password> <Ticket> <Title>some title</Title> <CustomerUser>some customer user login</CustomerUser> <Queue>some queue</Queue> <State>some state</State> <Priority>some priority</Priority> </Ticket> <Article> <Subject>some subject</Subject> <Body>some body</Body> <ContentType>text/plain; charset=utf8</ContentType> </Article> '; # --- # create a SOAP::Lite data structure from the provided XML data structure. my $SOAPData = SOAP::Data ->type( 'xml' => $XMLData ); my $SOAPObject = SOAP::Lite ->uri($NameSpace) ->proxy($URL) ->$Operation($SOAPData); # check for a fault in the soap code. if ( $SOAPObject->fault ) { print $SOAPObject->faultcode, " ", $SOAPObject->faultstring, "\n"; } # otherwise print the results. else { # get the XML response part from the SOAP message. my $XMLResponse = $SOAPObject->context()->transport()->proxy()->http_response()->content(); # deserialize response (convert it into a perl structure). my $Deserialized = eval { SOAP::Deserializer->deserialize($XMLResponse); }; # remove all the headers and other not needed parts of the SOAP message. my $Body = $Deserialized->body(); # just output relevant data and no the operation name key (like TicketCreateResponse). for my $ResponseKey ( keys %{$Body} ) { print Dumper( $Body->{$ResponseKey} ); } }
A következő kód egy Perl-parancsfájl, amely képes kapcsolódni az OTRS-hez az általános felületen keresztül. Azért, hogy a jegy csatlakozó által biztosított műveleteket végrehajtsa, három Perl CPAN modult használ: JSON, REST::Client::Lite és Data::Dumper. Győződjön meg arról, hogy a környezete képes ezen modulokat használni, mielőtt megpróbálná a parancsfájlt futtatni.
#!/usr/bin/perl # -- # otrs.RESTRequest.pl - sample to send a REST request to OTRS Generic Interface Ticket Connector # Copyright (C) 2001-2018 OTRS AG, https://otrs.com/ # -- # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see https://www.gnu.org/licenses/gpl-3.0.txt. # -- use strict; use warnings; ## nofilter(TidyAll::Plugin::OTRS::Perl::Dumper) # use ../ as lib location use File::Basename; use FindBin qw($RealBin); use lib dirname($RealBin); use JSON; use REST::Client; # --- # Variables to be defined # This is the HOST for the web service the format is: # <HTTP_TYPE>:://<OTRS_FQDN>/nph-genericinterface.pl my $Host = 'http://localhost/otrs/nph-genericinterface.pl'; my $RestClient = REST::Client->new( { host => $Host, } ); # This is the Controller and Request the format is: # /Webservice/<WEB_SERVICE_NAME>/<RESOURCE>/<REQUEST_VALUE> # or # /WebserviceID/<WEB_SERVICE_ID>/<RESOURCE>/<REQUEST_VALUE> # This example will retrieve the Ticket with the TicketID = 1 (<REQUEST_VALUE>) my $ControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1'; my $Params = { UserLogin => "some user login", # to be filled with valid agent login Password => "some user password", # to be filled with valid agent password DynamicFields => 1, # optional, if set to 1, # ticket dynamic fields included in response AllArticles => 1, # optional, if set to 1, # all ticket articles are included in response # more options to be found in # /Kernel/GenericInterface/Operation/Ticket/TicketGet.pm's # Run() subroutine documentation. }; my @RequestParam; # As sample web service configuration for TicketGet uses HTTP method GET all other parameters needs # to be sent as URI query parameters # ---- # For GET method my $QueryParams = $RestClient->buildQuery( %{ $Params } ); $ControllerAndRequest .= $QueryParams; # The @RequestParam array on position 0 holds controller and request @RequestParam = ($ControllerAndRequest); $RestClient->GET(@RequestParam); # ---- # # ---- # # For POST method # my $JSONParams = encode_json $Params; # # The @RequestParam array on position 0 holds controller and request # # on position 1 it holds the JSON data string that gets posted # @RequestParam = ( # $ControllerAndRequest, # $JSONParams # ); # $RestClient->POST(@RequestParam); # # ---- # If the host isn't reachable, wrong configured or couldn't serve the requested page: my $ResponseCode = $RestClient->responseCode(); if ( $ResponseCode ne '200' ) { print "Request failed, response code was: $ResponseCode\n"; exit; } # If the request was answered correctly, we receive a JSON string here. my $ResponseContent = $RestClient->responseContent(); my $Data = decode_json $ResponseContent; # Just to print out the returned Data structure: use Data::Dumper; print "Response was:\n"; print Dumper($Data);
A fenti példára tekintettel egy REST beállításnál az általános jegy csatlakozóhoz a következőkkel rendelkezünk:
A jegy létrehozásához: POST metódus használata a /Ticket útvonalon.
A jegy kereséséhez: GET metódus használata a /Ticket útvonalon.
A jegy frissítéséhez: PATCH metódus használata a /Ticket/{TicketID} útvonalon (ahol a {TicketID} egy :TicketID által ábrázolt sablon az átvitel beállításában)
A jegy lekéréséhez: GET metódus használata a /Ticket/{TicketID} útvonalon (ahol a {TicketID} egy :TicketID által ábrázolt sablon az átvitel beállításában)
cURL parancs:
shell> curl "http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket?UserLogin=agent&Password=123" -H "Content-Type: application/json" -d "{\"Ticket\":{\"Title\":\"REST létrehozás próba\", \"Type\": \"Unclassified\", \"Queue\":\"Raw\",\"State\":\"open\",\"Priority\":\"3 normal\",\"CustomerUser\":\"customer\"},\"Article\":{\"Subject\":\"Rest létrehozás próba\",\"Body\":\"Ez csak egy próba\",\"ContentType\":\"text/plain; charset=utf8\"}}" -X POST
Válasz:
{ "ArticleID":5484, "TicketNumber":"1001936", "TicketID":"1686" }
cURL parancs:
curl "http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/1686?UserLogin=agent&Password=123"
Válasz:
{ "Ticket": [ { "Age": 777, "PriorityID": 3, "ServiceID": "", "Type": "Unclassified", "Responsible": "root@localhost", "StateID": 4, "ResponsibleID": 1, "ChangeBy": 2, "EscalationTime": 0, "Changed": "2014-06-30 19:08:14", "OwnerID": 2, "RealTillTimeNotUsed": 0, "GroupID": 1, "Owner": "agent", "CustomerID": "OTRS", "TypeID": 1, "Created": "2014-06-30 19:08:12", "Priority": "3 normal", "UntilTime": 0, "EscalationUpdateTime": 0, "QueueID": 2, "Queue": "Raw", "State": "open", "Title": "REST létrehozás próba", "CreateBy": 2, "TicketID": 1686, "StateType": "open", "EscalationResponseTime": 0, "UnlockTimeout": 0, "EscalationSolutionTime": 0, "LockID": 1, "TicketNumber": "1001936", "ArchiveFlag": "n", "Lock": "unlock", "CreateTimeUnix": 1404173292, "SLAID": "", "CustomerUserID": "customer" } ] }
cURL parancs:
curl "http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket/1686?UserLogin=agent&Password=123" -H "Content-Type: application/json" -d "{\"Ticket\":{\"Queues\":\"Postmaster\"}}" -X PATCH
Válasz:
{ "TicketNumber":"1001936", "TicketID":"1686" }