Általános felület

Általános felület rétegei
Hálózati átvitel
Adatleképezés
Vezérlő
Művelet (OTRS mint szolgáltató)
Meghívó (OTRS mint kérelmező)
Általános felület kommunikációs folyamat
OTRS mint szolgáltató
Távoli kérés:
OTRS-válasz:
OTRS mint kérelmező
OTRS-kérés:
Távoli válasz:
Webszolgáltatások
Webszolgáltatás grafikus felülete
Webszolgáltatás áttekintő
Webszolgáltatás hozzáadása
Webszolgáltatás példa importálása
Webszolgáltatás megváltoztatása
Webszolgáltatás klónozása
Webszolgáltatás exportálása
Webszolgáltatás importálása
Webszolgáltatás előzmények
Webszolgáltatás törlése
Webszolgáltatás hibakereső
Webszolgáltatás-beállítás megváltoztatása
Webszolgáltatás parancssori felülete
Webszolgáltatás-beállítás
Beállítási részletek
Általános
Debugger
Provider
Requester
Csatlakozók
Csomagolt csatlakozók
Munkamenet csatlakozó
Jegy csatlakozó
Példák:
Webszolgáltatás-beállítás
Perl SOAP kérelmező
Perl REST kérelmező
cURL példák a REST kérésekhez

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:

Általános felület rétegei

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.

Megjegyzés

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.

4.112. ábra - A grafikus felület rétegei

A grafikus felület rétegei


Hálózati átvitel

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).

Adatleképezés

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.

Vezérlő

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.

Művelet (OTRS mint szolgáltató)

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.

Meghívó (OTRS mint kérelmező)

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.

Általános felület kommunikációs folyamat

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:

OTRS mint szolgáltató

Távoli kérés:
  1. 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.

  2. 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.

  3. Külső adatok

    • Az adatok, ahogy a távoli rendszer elküldte (ez nem egy modul alapú réteg).

  4. 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.

  5. 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).

  6. 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.

OTRS-válasz:
  1. Művelet

    • Visszaadja az eredmény adatait a szolgáltatónak.

  2. Belső adatok

    • Az adatok, ahogy visszaadásra kerültek a műveletből.

  3. 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.

  4. 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.

  5. 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.

  6. 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.).

OTRS mint kérelmező

OTRS-kérés:
  1. 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 démonhoz (a kérés végrehajtását az ütemező démonra 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 OTRS démonfolyamat 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.

  2. 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.

  3. Belső adatok

    • Az adatok, ahogy a meghívó átadta (ez nem egy modul alapú réteg).

  4. 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.

  5. Külső adatok

    • Az adatok, ahogy át lettek alakítva és elő lettek készítve a távoli rendszernek való küldéshez.

  6. 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.

Távoli válasz:
  1. Hálózati átvitel

    • Fogadja a választ és dekódolja az adat hasznos terhét.

    • Visszaadja az adatokat a kérelmezőnek.

  2. Külső adatok

    • Az adatok, ahogy a távoli rendszerről érkeztek.

  3. 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.

  4. Belső adatok

    • Az adatok, ahogy át lettek alakítva és elkészültek visszaadásra a kérelmezőnek.

  5. 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.

  6. Eseménykezelő vagy OTRS démon

    • Fogadja az adatokat a kérelmezőtől. Az OTRS démon esetében ezek az adatok információkat tartalmazhatnak egy feladat jövőbeli létrehozásához.

Webszolgáltatások

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.

Webszolgáltatás grafikus felülete

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.

Webszolgáltatás áttekintő

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).

Megjegyzés

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.

4.113. ábra - Webszolgáltatások áttekintő

Webszolgáltatások áttekintő


Webszolgáltatás hozzáadása

Az egyetlen kötelező mező ezen a részen a webszolgáltatás Név mezője, 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.

Megjegyzés

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.

4.114. ábra - Webszolgáltatások hozzáadása

Webszolgáltatások hozzáadása


Webszolgáltatás példa importálása

Tudta, hogy léteznek elérhető példa webszolgáltatások az OTRS Business Solution™ csomagban?

Webszolgáltatás megváltoztatá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ő.

Megjegyzés

A Beállítási előzmények és a Hibakereső különböző képernyőkre fogja vezetni.

Webszolgáltatás klónozása

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.

Megjegyzés

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.

4.115. ábra - Webszolgáltatás klónozása

Webszolgáltatás klónozása


Webszolgáltatás exportálá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.

Figyelem

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.

Megjegyzés

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.

4.116. ábra - Webszolgáltatások exportálása

Webszolgáltatások exportálása


Webszolgáltatás importá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.

Megjegyzés

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.

4.117. ábra - Webszolgáltatások importálása

Webszolgáltatások importálása


Webszolgáltatás előzmények

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.

Figyelem

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.

4.118. ábra - Webszolgáltatás előzmények

Webszolgáltatás előzmények


Webszolgáltatás törlése

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.

Figyelem

Egy webszolgáltatás törlése nem vonható vissza, ezért legyen óvatos egy webszolgáltatás törlésekor.

4.119. ábra - Webszolgáltatás törlése

Webszolgáltatás törlése


Webszolgáltatás hibakereső

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.

Megjegyzés

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.

4.120. ábra - Webszolgáltatás hibakereső

Webszolgáltatás hibakereső


Webszolgáltatás-beállítás megváltoztatása

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.

4.121. ábra - Webszolgáltatások megváltoztatása

Webszolgáltatások megváltoztatása


Megjegyzés

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.

Webszolgáltatás szolgáltatójának hálózati átvitele

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.

4.122. ábra - Webszolgáltatás szolgáltatójának hálózati átvitele (HTTP::SOAP)

Webszolgáltatás szolgáltatójának hálózati átvitele (HTTP::SOAP)


Adott esetben meghatározhat további válaszfejléceket is. Ezek használhatók statikus fejlécértékek hozzáadásához az egyes válaszokhoz. Egyszerűen kattintson a Válaszfejléc hozzáadása gombra, és töltse ki mind a kulcs, mind az érték mezőket. Nincs korlát a további fejlécsorok számára vonatkozóan.

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.

4.123. ábra - Webszolgáltatás szolgáltatójának hálózati átvitele (HTTP::REST)

Webszolgáltatás szolgáltatójának hálózati átvitele (HTTP::REST)


Webszolgáltatás művelete

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.

4.124. ábra - Webszolgáltatás művelete

Webszolgáltatás művelete


Webszolgáltatás kérelmezőjének hálózati átvitele

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ő.

Megjegyzés

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.

Figyelem

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.

4.125. ábra - Webszolgáltatás kérelmezőjének hálózati átvitele (HTTP::SOAP)

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.

4.126. ábra - Webszolgáltatás kérelmezőjének hálózati átvitele (HTTP::REST)

Webszolgáltatás kérelmezőjének hálózati átvitele (HTTP::REST)


Webszolgáltatás meghívója

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 olyan események az OTRS-en belül, mint például a TicketCreate, ArticleSend, stb. Ezek viselkedhetnek aktiválókként a meghívó végrehajtásához. Minden egyes meghívónak rendelkeznie kell legalább egy regisztrált eseményaktiválóval, különben a meghívó használhatatlan lesz, mert soha sem kerül meghívásra. Ezen kívül az egyes eseményekhez szabályok halmaza (feltételek) is meghatározható, hogy nagyobb irányítása legyen az események aktiválása felett. Ezek a szabályok az eseményhez rendelt objektum adataitól függenek. Az eseményaktiválók aszinkron tulajdonsága határozza meg, hogy az OTRS folyamatot a meghívó fogja-e kezelni, vagy az OTRS démon lesz-e megbízva vele.

Megjegyzés

Az OTRS démon egy külön folyamatkészlet, 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 OTRS démont, 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.

Az Eseményaktiválók listájáról minden egyes esemény megjeleníti, hogy tartalmaz-e feltételeket vagy sem. A feltétel tulajdonság mellett lévő szerkesztés gomb lehetővé teszi az esemény aktuális feltételeinek hozzáadását vagy szerkesztését.

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.

4.127. ábra - Webszolgáltatás meghívója

Webszolgáltatás meghívója


Webszolgáltatás meghívó esemény

Néha egy meghívó aktiválásához meghatározott esemény sok szükségtelen vagy rossz kérést eredményezhet egy távoli kiszolgáló felé. Ilyen esetekben az esemény feltételei beállíthatók a meghívó aktiválásának korlátozásához.

Az esemény beállításai képernyő eléréséhez – ahol a feltételek meghatározhatók – az szükséges, hogy a meghívó képernyőn legyen, és onnan kattintson a feltétel állapota melletti szerkesztés ikonra annál az eseménynél, ahol a feltételnek hatással kell lennie.

Az esemény beállításai képernyőn belül a műveletsávban van egy gomb a meghívó képernyőre való visszatéréshez, valamint egy gomb az esemény összes feltételének eltávolításához. Alapértelmezetten a képernyő előre ki van töltve az első feltétellel. Frissítse a kapcsolódás típusát a feltételek között, ha egynél több feltételt terveznek, majd változtassa meg a kapcsolódás típusát az 1. feltételről, ha egynél több mezőt terveznek. Mindkét kapcsolódási mező elfogadja és, vagy, illetve kizáró vagy értékekként.

Töltse ki a Mező nevét, állítsa be az illesztés típusát (Szöveg a pontos egyezéshez, Reguláris kifejezés a reguláris kifejezés használatához vagy Ellenőrző modul), és állítsa be az értéket az illesztéshez (Ellenőrző modul esetén a teljes osztálynevet, mint például: Kernel::GenericInterface::Event::Validation::ValidateDemo).

A feltételhez történő további mezők hozzáadásához kattintson a + gombra a mezők fejlécében. Egy mező eltávolításához kattintson a - gombra a mező sorában. Feltételenként legalább egy mező megtartása szükséges.

Több feltétel hozzáadásához kattintson az utolsó feltétel doboza alatti gombra. Egy feltétel eltávolításához kattintson a - gombra a feltétel fejlécében. Legalább egy feltétel megtartása szükséges a beállításban. Az összes feltétel eltávolításához használja az oldalsávon lévő gombot.

4.128. ábra - Webszolgáltatás meghívó esemény

Webszolgáltatás meghívó esemény


Webszolgáltatás leképezése

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.

Megjegyzés

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.

4.129. ábra - Webszolgáltatás leképezése

Webszolgáltatás leképezése


Webszolgáltatás parancssori felülete

A bin/otrs.Console.pl Admin::WebService::* parancsokat azért fejlesztették ki, hogy alapvető, de gyors és hatékony eszközöket hozzanak létre a webszolgáltatás beállításaival végzett munkához. A következő műveletek végrehajtásához adnak 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.

  • Kiírás: a jelenlegi webszolgáltatás beállításainak mentése egy fájlba.

  • 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.

Példa: Egy új webszolgáltatás-beállítás létrehozása:

shell> bin/otrs.Console.pl Admin::WebService::Add --name <webservice_name> --source-path /útvonal/a/yaml/fájlhoz
        

Webszolgáltatás-beállítás

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.

Megjegyzés

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
        Condition:
          Condition:
            '1':
              Fields:
                Queue:
                  Match: Raw
                  Type: String
              Type: and
          ConditionLinking: and
          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
            
        

Beállítási részletek

Általános
  • Description: egy rövid szöveg, amely leírja a webszolgáltatást.

  • RemoteSystem: a távoli rendszer rövid leírása.

  • Debugger: egy konténer a hibakereső beállításaihoz.

  • Provider: egy konténer a szolgáltató beállításaihoz.

  • Requester: egy konténer a kérelmező beállításaihoz.

Debugger
  • DebugThreshold: a hibakereső szintje.

    Lehetséges értékek

    • debug: az összes napló eltárolásra kerül az adatbázisban.

    • info: az információ, az értesítés és a hiba szintek naplói kerülnek eltárolásra az adatbázisban.

    • notice: az értesítés és a hiba szintek naplói kerülnek eltárolásra az adatbázisban.

    • error: csak a hiba szintek naplói kerülnek eltárolásra az adatbázisban.

Provider
  • Operation: egy konténer az egyes műveleti beállításokhoz.

  • Transport: egy konténer a szolgáltató hálózati átvitelének beállításaihoz.

Operation
  • <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).

<Műveletnév>

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.

  • Description: egy rövid szöveg, amely leírja a műveletet.

  • MappingInbound: egy konténer a bejövő kérésadatok leképezési beállításaihoz.

  • MappingOutbound: egy konténer a kimenő válaszadatok leképezési beállításaihoz.

  • Type: a művelet háttérprogramja Vezérlő::Művelet formátumban.

MappingInbound

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.

  • Config: egy konténer ezekhez a leképezési beállításokhoz.

  • Type: a leképező háttérprogram.

Config
  • KeyMapDefault: egy konténer az összes nem leképezett kulcs beállításaihoz.

  • ValueMapDefault: egy konténer az összes nem leképezett érték beállításaihoz.

  • KeyMapExact: egy konténer az összes pontos kulcsleképezéshez (0..1 számosságú).

  • KeyMapRegEx: egy konténer az összes reguláris kifejezéses kulcsleképezéshez (0..1 számosságú).

  • ValueMap: egy konténer az összes értékleképezéshez (0..1 számosságú).

KeyMapDefault
  • MapTo: a használandó új érték (csak akkor alkalmazható, ha a MapType tulajdonság MapTo értékre van állítva).

  • MapType: a leképezés szabálya.

    Lehetséges értékek

    • Keep: változatlanul hagyás.

    • Ignore: eldobás.

    • MapTo: megváltoztatás a MapTo értékére.

ValueMapDefault

Hasonló a KeyMapDefault tulajdonsághoz.

KeyMapExact
  • <régikulcs>: <újkulcs> (0..n számosságú, de nem kettőzött).

KeyMapRegEx
  • <régikulcs(RegEx)>: <újkulcs> (0..n számosságú, de nem kettőzött).

ValueMap
  • <újkulcs>: egy konténer ennek az új kulcsnak az értékleképezéséhez (a számosság a KeyMapExact és a KeyMapRegEx tulajdonságból származó új kulcsoktól függ).

<újkulcs>
  • ValueMapExact: egy konténer az összes pontos értékleképezéshez (0..1 számosságú).

  • ValueMapRegEx: egy konténer az összes reguláris kifejezéses értékleképezéshez (0..1 számosságú).

ValueMapExact
  • <régiérték>: <újérték> (0..n számosságú, de nem kettőzött).

ValueMapRegEx
  • <régiérték(RegEx)>: <újérték> (0..n számosságú, de nem kettőzött).

MappingOutbound

Ugyanaz mint a MappingInbound tulajdonság.

Transport

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.

  • Config: egy konténer az adott hálózati átvitel konfigurációs beállításaihoz.

  • Type: a szolgáltató hálózati átviteli háttérprogramja.

Config
  • MaxLength: az OTRS által egy SOAP üzenetben beolvasandó legnagyobb hossz bájtban.

  • NameSpace: egy URI, amely egy környezetet ad az összes olyan művelethez, amely ehhez a webszolgáltatáshoz tartozik.

Requester
  • Invoker: egy konténer az egyes kérelmezők beállításaihoz.

  • Transport: egy konténer a kérelmező hálózati átvitelének beállításaihoz.

Invoker
  • <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).

<Meghívónév>

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.

  • Description: egy rövid szöveg, amely leírja a meghívót.

  • Events: egy konténer az eseményaktiváló beállításainak névtelen listájához.

  • MappingInbound: egy konténer a bejövő válaszadatok leképezési beállításaihoz.

  • MappingOutbound: egy konténer a kimenő kérésadatok leképezési beállításaihoz.

  • Type: a meghívó háttérprogramja Vezérlő::Meghívó formátumban.

Events
  • Listaelem: (0..n számosságú).

    • Asynchronous: annak beállításához, hogy a meghívó végrehajtása delegálásra kerüljön-e az OTRS démonhoz.

      Lehetséges értékek

      • 0: nem kezeli az OTRS démon.

      • 1: az OTRS démon kezeli.

    • Condition: eseményfeltételek konténere a meghívó aktiválásához; ha nincsenek feltételek, akkor az esemény mindig aktiválni fogja a meghívót.

    • Event: az eseményaktiváló neve.

      Lehetséges értékek (a jegyeseményeknél)

      • TicketCreate

      • TicketDelete

      • TicketTitleUpdate

      • TicketUnlockTimeoutUpdate

      • TicketQueueUpdate

      • TicketTypeUpdate

      • TicketServiceUpdate

      • TicketSLAUpdate

      • TicketCustomerUpdate

      • 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)

      • ArticleCreate

      • ArticleUpdate

      • ArticleSend

      • ArticleBounce

      • ArticleAgentNotification

      • ArticleCustomerNotification

      • ArticleAutoResponse

      • ArticleFlagSet

      • ArticleFlagDelete

Condition
  • Condition: konténer a tényleges eseményfeltételekhez.

  • ConditionLinking: azt határozza meg, hogy több feltétel hogyan álljon egymással kölcsönhatásban.

    Lehetséges értékek (a feltételkapcsolásánál)

    • and

    • or

    • xor

Condition -> Condition
  • <Feltételnév>: konténer a feltétel elemeihez.

<Feltételnév>

Egyedi név a feltételhez a meghívón és az eseményen belül. A grafikus felhasználói felület folyamatosan növekvő egész számot rendel a feltétel neveihez 1-től kezdve.

  • Fields: konténer a mező feltételeihez.

  • Type: annak meghatározása, hogy több mező milyen kölcsönhatásban legyen egymással a feltételén belül.

    Lehetséges értékek (a feltételkapcsolásánál)

    • and

    • or

    • xor

Fields
  • <Mezőnév>: konténermező attribútumok.

<Mezőnév>

Egy mező neve az eseményobjektumból (például a jegyeseményeknél a mezők a következők lehetnek: Queue, Priority, Type, stb.).

  • Match: az érték a kiválasztottból az eseményobjektummal való illesztéshez a Type módosító használatával.

  • Type: módosító a Match értékhez.

    Lehetséges értékek (a típusmódosítónál)

    • String: közvetlen összehasonlítás az objektummező értéke és a Match értéke között.

    • Regexp: az objektummező értékének összehasonlítása a Match értékében meghatározott reguláris kifejezéssel.

    • Module: a Match tulajdonságban meghatározott modul használata az objektum adataival.

MappingInbound

Ugyanaz mint az Operation szakasz MappingInbound tulajdonsága.

MappingOutbound

Ugyanaz mint az Operation szakasz MappingInbound tulajdonsága.

Transport

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.

  • Config: egy konténer az adott hálózati átvitel konfigurációs beállításaihoz.

  • Type: a kérelmező hálózati átviteli háttérprogramja.

Config
  • Authentication: egy konténer a hitelesítés beállításaihoz.

  • Encoding: a SOAP üzenetkérés kódolása.

  • Endpoint: a távoli kiszolgáló webszolgáltatásának URI-ja az OTRS kérések elfogadásához.

  • NameSpace: egy URI, amely egy környezetet ad az összes olyan meghívóhoz, amely ehhez a webszolgáltatáshoz tartozik.

  • SOAPAction: egy üres vagy kitöltött SOAPAction fejléc küldéséhez a SOAP üzenetben (<Névtér> <Elválasztó> <Művelet> formátumban).

    Lehetséges értékek

    • Yes: egy kitöltött SOAPAction fejléc küldéséhez.

    • No: egy üres SOAPAction fejléc küldéséhez.

  • SOAPActionSeparator: egy kitöltött SOAPAction fejléc <Elválasztó> beállításához.

    Lehetséges értékek

    • '/': a .net webszolgáltatásoknál használják.

    • '#': az összes többi webszolgáltatásnál ezt használják.

Authentication
  • User: a kiváltságos felhasználó neve, akinek hozzáférése van a távoli webszolgáltatáshoz.

  • Password: a kiváltságos felhasználó jelszava egyszerű szövegként.

  • Type: a hitelesítés típusa.

Csatlakozó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.

Csomagolt csatlakozók

Az OTRS ezen verziója a következő csatlakozókat tartalmazza használatra készen:

  • Munkamenet

  • Jegy

Munkamenet csatlakozó

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

    • SessionGet

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.

Megjegyzés

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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--Választható:-->
         <UserLogin>?</UserLogin>
         <!--Választható:-->
         <CustomerUserLogin>?</CustomerUserLogin>
         <!--Választható:-->
         <Password>?</Password>
      </SessionCreate>
                            
                        

SessionCreate

Adatokat gyűjt egy érvényes munkamenetből, kivéve az érzékeny információkat, mint például a felhasználó jelszava vagy a kihívási token.

Megjegyzés

Ha az értékei bármelyike összetett szerkezet, akkor automatikusan átalakításra kerül egy JSON karakterlánccá.

Lehetséges jellemzők:

                            
      <SessionGet>
         <SessionID>?</SessionID>
      </SessionGet>
                            
                        

Jegy csatlakozó

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

    • TicketHistoryGet

Műveletek
TicketCreate

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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
            <!--Választható:-->
            <QueueID>?</QueueID>
            <!--Választható:-->
            <Queue>?</Queue>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <TypeID>?</TypeID>
            <!--Választható:-->
            <Type>?</Type>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <ServiceID>?</ServiceID>
            <!--Választható:-->
            <Service>?</Service>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <SLAID>?</SLAID>
            <!--Választható:-->
            <SLA>?</SLA>
            <!--Ezen a szinten a következő 2 elemből kell KÖTELEZŐEN VÁLASZTANI-->
            <!--Választható:-->
            <StateID>?</StateID>
            <!--Választható:-->
            <State>?</State>
            <!--Ezen a szinten a következő 2 elemből kell KÖTELEZŐEN VÁLASZTANI-->
            <!--Választható:-->
            <PriorityID>?</PriorityID>
            <!--Választható:-->
            <Priority>?</Priority>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <OwnerID>?</OwnerID>
            <!--Választható:-->
            <Owner>?</Owner>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <ResponsibleID>?</ResponsibleID>
            <!--Választható:-->
            <Responsible>?</Responsible>
            <CustomerUser>?</CustomerUser>
            <!--Választható:-->
            <CustomerID>?</CustomerID>
            <!--Választható:-->
            <PendingTime>
               <!--Ezen a szinten a következő és a többi 5 elemből lehet VÁLASZTANI-->
               <Diff>?</Diff>
               <Year>?</Year>
               <Month>?</Month>
               <Day>?</Day>
               <Hour>?</Hour>
               <Minute>?</Minute>
            </PendingTime>
         </Ticket>
         <Article>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <CommunicationChannelID>?</CommunicationChannelID>
            <!--Választható: a lehetséges értékek: Email, Internal vagy Phone-->
            <CommunicationChannel>?</CommunicationChannel>
            <IsVisibleForCustomer>?</IsVisibleForCustomer>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <SenderTypeID>?</SenderTypeID>
            <!--Választható:-->
            <SenderType>?</SenderType>
            <!--Választható:-->
            <From>?</From>
            <Subject>?</Subject>
            <Body>?</Body>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--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ődés:-->
            <ForceNotificationToUserID>?</ForceNotificationToUserID>
            <!--Nulla vagy több ismétlődés:-->
            <ExcludeNotificationToUserID>?</ExcludeNotificationToUserID>
            <!--Nulla vagy több ismétlődés:-->
            <ExcludeMuteNotificationToUserID>?</ExcludeMuteNotificationToUserID>
         </Article>
         <!--Nulla vagy több ismétlődés:-->
         <DynamicField>
            <Name>?</Name>
            <!--1 vagy több ismétlődés:-->
            <Value>?</Value>
         </DynamicField>
         <!--Nulla vagy több ismétlődés:-->
         <Attachment>
            <Content>cid:61886944659</Content>
            <ContentType>?</ContentType>
            <Filename>?</Filename>
         </Attachment>
      </TicketCreate>
                            
                        

TicketUpdate

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.

Megjegyzés

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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--Választható:-->
         <UserLogin>?</UserLogin>
         <!--Választható:-->
         <CustomerUserLogin>?</CustomerUserLogin>
         <!--Választható:-->
         <SessionID>?</SessionID>
         <!--Választható:-->
         <Password>?</Password>
         <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
         <TicketID>?</TicketID>
         <TicketNumber>?</TicketNumber>
         <!--Választható:-->
         <Ticket>
            <!--Választható:-->
            <Title>?</Title>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <QueueID>?</QueueID>
            <!--Választható:-->
            <Queue>?</Queue>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <TypeID>?</TypeID>
            <!--Választható:-->
            <Type>?</Type>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <ServiceID>?</ServiceID>
            <!--Választható:-->
            <Service>?</Service>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <SLAID>?</SLAID>
            <!--Választható:-->
            <SLA>?</SLA>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <StateID>?</StateID>
            <!--Választható:-->
            <State>?</State>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <PriorityID>?</PriorityID>
            <!--Választható:-->
            <Priority>?</Priority>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <OwnerID>?</OwnerID>
            <!--Választható:-->
            <Owner>?</Owner>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <ResponsibleID>?</ResponsibleID>
            <!--Választható:-->
            <Responsible>?</Responsible>
            <!--Választható:-->
            <CustomerUser>?</CustomerUser>
            <!--Választható:-->
            <CustomerID>?</CustomerID>
            <!--Választható:-->
            <PendingTime>
               <!--Ezen a szinten a következő és a többi 5 elemből lehet VÁLASZTANI-->
               <Diff>?</Diff>
               <Year>?</Year>
               <Month>?</Month>
               <Day>?</Day>
               <Hour>?</Hour>
               <Minute>?</Minute>
            </PendingTime>
         </Ticket>
         <!--Választható:-->
         <Article>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <CommunicationChannelID>?</CommunicationChannelID>
            <!--Választható: lehetséges értékek: Email, Internal vagy Phone-->
            <CommunicationChannel>?</CommunicationChannel>
            <IsVisibleForCustomer>?</IsVisibleForCustomer>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--Választható:-->
            <SenderTypeID>?</SenderTypeID>
            <!--Választható:-->
            <SenderType>?</SenderType>
            <!--Választható:-->
            <From>?</From>
            <Subject>?</Subject>
            <Body>?</Body>
            <!--Ezen a szinten a következő 2 elemből lehet VÁLASZTANI-->
            <!--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ődés:-->
            <ForceNotificationToUserID>?</ForceNotificationToUserID>
            <!--Nulla vagy több ismétlődés:-->
            <ExcludeNotificationToUserID>?</ExcludeNotificationToUserID>
            <!--Nulla vagy több ismétlődés:-->
            <ExcludeMuteNotificationToUserID>?</ExcludeMuteNotificationToUserID>
         </Article>
         <!--Nulla vagy több ismétlődés:-->
         <DynamicField>
            <Name>?</Name>
            <!--1 vagy több ismétlődés:-->
            <Value>?</Value>
         </DynamicField>
         <!--Nulla vagy több ismétlődés:-->
         <Attachment>
            <Content>cid:166861569966</Content>
            <ContentType>?</ContentType>
            <Filename>?</Filename>
         </Attachment>
      </TicketUpdate>
                            
                        

TicketGet

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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--Választható:-->
         <UserLogin>?</UserLogin>
         <!--Választható:-->
         <CustomerUserLogin>?</CustomerUserLogin>
         <!--Választható:-->
         <SessionID>?</SessionID>
         <!--Választható:-->
         <Password>?</Password>
         <!--1 vagy több ismétlődé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ó:-->
         <GetAttachmentContents>?</GetAttachmentContents>
         <!--Választható:-->
         <HTMLBodyAsAttachment>?</HTMLBodyAsAttachment>
      </TicketGet>
                            
                        

TicketSearch

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 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--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ődés:-->
         <TicketNumber>?</TicketNumber>
         <!--Nulla vagy több ismétlődés:-->
         <Title>?</Title>
         <!--Nulla vagy több ismétlődés:-->
         <Queues>?</Queues>
         <!--Nulla vagy több ismétlődés:-->
         <QueueIDs>?</QueueIDs>
         <!--Választható:-->
         <UseSubQueues>?</UseSubQueues>
         <!--Nulla vagy több ismétlődés:-->
         <Types>?</Types>
         <!--Nulla vagy több ismétlődés:-->
         <TypeIDs>?</TypeIDs>
         <!--Nulla vagy több ismétlődés:-->
         <States>?</States>
         <!--Nulla vagy több ismétlődés:-->
         <StateIDs>?</StateIDs>
         <!--Nulla vagy több ismétlődés:-->
         <StateType>?</StateType>
         <!--Nulla vagy több ismétlődés:-->
         <StateTypeIDs>?</StateTypeIDs>
         <!--Nulla vagy több ismétlődés:-->
         <Priorities>?</Priorities>
         <!--Nulla vagy több ismétlődés:-->
         <PriorityIDs>?</PriorityIDs>
         <!--Nulla vagy több ismétlődés:-->
         <Services>?</Services>
         <!--Nulla vagy több ismétlődés:-->
         <ServiceIDs>?</ServiceIDs>
         <!--Nulla vagy több ismétlődés:-->
         <SLAs>?</SLAs>
         <!--Nulla vagy több ismétlődés:-->
         <SLAIDs>?</SLAIDs>
         <!--Nulla vagy több ismétlődés:-->
         <Locks>?</Locks>
         <!--Nulla vagy több ismétlődés:-->
         <LockIDs>?</LockIDs>
         <!--Nulla vagy több ismétlődés:-->
         <OwnerIDs>?</OwnerIDs>
         <!--Nulla vagy több ismétlődés:-->
         <ResponsibleIDs>?</ResponsibleIDs>
         <!--Nulla vagy több ismétlődés:-->
         <WatchUserIDs>?</WatchUserIDs>
         <!--Nulla vagy több ismétlődés:-->
         <CustomerID>?</CustomerID>
         <!--Nulla vagy több ismétlődés:-->
         <CustomerUserLogin>?</CustomerUserLogin>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedUserIDs>?</CreatedUserIDs>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedTypes>?</CreatedTypes>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedTypeIDs>?</CreatedTypeIDs>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedPriorities>?</CreatedPriorities>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedPriorityIDs>?</CreatedPriorityIDs>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedStates>?</CreatedStates>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedStateIDs>?</CreatedStateIDs>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedQueues>?</CreatedQueues>
         <!--Nulla vagy több ismétlődés:-->
         <CreatedQueueIDs>?</CreatedQueueIDs>
         <!--Nulla vagy több ismétlődés:-->
         <DynamicField>
            <Name>?<Name>
            <!--Ezen a szinten a következő 6 elemből kell KÖTELEZŐEN VÁLASZTANI-->
            <!--Választható:-->
            <Equals>?</Equals>
            <!--Választható:-->
            <Like>?</Like>
            <!--Választható:-->
            <GreaterThan>?</GreaterThan>
            <!--Választható:-->
            <GreaterThanEquals>?</GreaterThanEquals>
            <!--Választható:-->
            <SmallerThan>?</SmallerThan>
            <!--Választható:-->
            <SmallerThanEquals>?</SmallerThanEquals>
         </DynamicField>
         <!--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ődés:-->
         <OrderBy>?</OrderBy>
         <!--Nulla vagy több ismétlődés:-->
         <SortBy>?</SortBy>
         <!--Nulla vagy több ismétlődés:-->
         <CustomerUserID>?</CustomerUserID>
      </TicketSearch>
                            
                        

TicketHistoryGet

Ez a művelet az összes előzménybejegyzés lekéréséhez használható egy jegyből vagy jegyekből.

Lehetséges jellemzők:

                            
      <TicketHistoryGet>
         <!--Ezen a szinten a következő 2 elemből kell KÖTELEZŐEN VÁLASZTANI-->
         <!--Választható:-->
         <UserLogin>?</UserLogin>
         <!--Választható:-->
         <SessionID>?</SessionID>
         <!--Választható:-->
         <Password>?</Password>
         <!--1 vagy több ismétlődés:-->
         <TicketID>?</TicketID>
      </TicketHistoryGet>
                            
                        

Példák:

Webszolgáltatás-beállítás

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: Jegycsatlakozó SOAP minta
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
    TicketHistoryGet:
      Description: Lekéri egy jegy előzményeit
      MappingInbound: {}
      MappingOutbound: {}
      Type: Ticket::TicketHistoryGet
  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: Jegycsatlakozó REST minta
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
    TicketHistoryGet:
      Description: Lekéri egy jegy előzményeit
      MappingInbound: {}
      MappingOutbound: {}
      Type: Ticket::TicketHistoryGet
  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
        TicketHistoryGet:
          RequestMethod:
          - GET
          Route: /TicketHistory/:TicketID
    Type: HTTP::REST
RemoteSystem: ''
Requester:
  Transport:
    Type: ''
                    
                

Perl SOAP kérelmező

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-2020 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} );
    }
}
                    
                

Perl REST kérelmező

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
# --
# Copyright (C) 2001-2020 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 utf8;

## 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;

# 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,
    }
);

# These are the Controllers and Providers the format is:
# /Webservice/<WEB_SERVICE_NAME>/<RESOURCE>/<REQUEST_VALUE>
# or
# /WebserviceID/<WEB_SERVICE_ID>/<RESOURCE>/<REQUEST_VALUE>
#
# See the documentation on how to setup Providers.
#
# This example will retrieve the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $GetControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This example is the base URL for Ticket Create
my $CreateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This example will update the Ticket with the TicketID = 1 (<REQUEST_VALUE>)
my $UpdateControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket/1';

# This is the base URL for Ticket Search
my $SearchControllerAndRequest = '/Webservice/GenericTicketConnectorREST/Ticket';

# This is the base URL for Ticket history with the TicketID = 1 (<REQUEST_VALUE>)
my $HistoryControllerAndRequest = '/Webservice/GenericTicketConnectorREST/TicketHistory/1';

# TicketGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
#   - webservice
#   - transport
#   - operations
my $GetParams = {
    UserLogin => "some agent user login",       # to be filled with valid agent login
    Password  => "some agent user password",    # to be filled with valid agent password
};

# Build GetParams as part of the URL for REST-GET requests
my $QueryParams = $RestClient->buildQuery( %{$GetParams} );
$GetControllerAndRequest .= $QueryParams;

$RestClient->GET($GetControllerAndRequest);

my $GetResponseCode = $RestClient->responseCode();

if ( $GetResponseCode ne '200' ) {
    print "Get request failed, response code was: $GetResponseCode\n";
}
else {

    # 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 "Get response was:\n";
    print Dumper($Data);

}

# TicketSearch Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
#   - webservice
#   - transport
#   - operations
my $SearchParams = {
    UserLogin => "some agent user login",       # to be filled with valid agent login
    Password  => "some agent user password",    # to be filled with valid agent password
    Queues    => ['Raw'],
};

# Build SearchParams as part of the URL for REST-GET requests
$QueryParams = $RestClient->buildQuery( %{$SearchParams} );
$SearchControllerAndRequest .= $QueryParams;

$RestClient->GET($SearchControllerAndRequest);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $SearchResponseCode = $RestClient->responseCode();

if ( $SearchResponseCode ne '200' ) {
    print "Search request failed, response code was: $SearchResponseCode\n";
}
else {

    # 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 "Search Response was:\n";
    print Dumper($Data);

}

# TicketCreate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
# - webservice
# - transport
# - operations
my $CreateOrUpdateParams = {
    UserLogin => "some agent user login",       # to be filled with valid agent login
    Password  => "some agent user password",    # to be filled with valid agent password
    Ticket    => {
        Title        => 'some ticket title',
        Queue        => 'Raw',
        Lock         => 'unlock',
        Type         => 'Unclassified',
        State        => 'new',
        Priority     => '3 normal',
        Owner        => 'some agent user login',
        CustomerUser => 'customer-1',
    },
    Article => {
        Subject     => 'some subject',
        Body        => 'some body',
        ContentType => 'text/plain; charset=utf8',
    },
};

my $CreateJSONParams = encode_json $CreateOrUpdateParams;

my @CreateRequestParam = (
    $CreateControllerAndRequest,
    $CreateJSONParams
);

# We have to use REST-POST requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->POST(@CreateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $CreateResponseCode = $RestClient->responseCode();

if ( $CreateResponseCode ne '200' ) {
    print "Create request failed, response code was: $CreateResponseCode\n";
}
else {

    # 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 "Create Response was:\n";
    print Dumper($Data);

}

# TicketUpdate Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
#   - webservice
#   - transport
#   - operations
my $UpdateJSONParams = encode_json $CreateOrUpdateParams;

my @UpdateRequestParam = (
    $UpdateControllerAndRequest,
    $UpdateJSONParams
);

# We have to use REST-PATCH requests in order to send UserLogin and Password correctly
# though other REST methods would fit better.
$RestClient->PATCH(@UpdateRequestParam);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $UpdateResponseCode = $RestClient->responseCode();
if ( $UpdateResponseCode ne '200' ) {
    print "Update request failed, response code was: $UpdateResponseCode\n";
}
else {

    # 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 "Update response was:\n";
    print Dumper($Data);

}

# TicketHistoryGet Example
# See the documentation of OTRSGenericInterfaceREST on how to setup
#   - webservice
#   - transport
#   - operations
my $HistoryParams = {
    UserLogin => "some agent user login",       # to be filled with valid agent login
    Password  => "some agent user password",    # to be filled with valid agent password
    TicketID  => [1],
};

# Build SearchParams as part of the URL for REST-GET requests
$QueryParams = $RestClient->buildQuery( %{$HistoryParams} );
$HistoryControllerAndRequest .= $QueryParams;

$RestClient->GET($HistoryControllerAndRequest);

# If the host isn't reachable, wrong configured or couldn't serve the requested page:
my $HistoryResponseCode = $RestClient->responseCode();

if ( $HistoryResponseCode ne '200' ) {
    print "History request failed, response code was: $HistoryResponseCode\n";
}
else {

    # 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 "History Response was:\n";
    print Dumper($Data);

}

                    
                

cURL példák a REST kérésekhez

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)

A jegy előzményeinek lekéréséhez: GET metódus használata a /TicketHistory/{TicketID} útvonalon (ahol a {TicketID} egy :TicketID által ábrázolt sablon az átvitel beállításában)

Egy új jegy létrehozása

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"
}
                    

Jegy részleteinek lekérése

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"
    }
  ]
}
                    

Jegy frissítése

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"
}
                    

Jegyek keresése

cURL parancs:


curl "http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/Ticket?UserLogin=agent&Password=123&Queue=Postmaster"

                    

Válasz:

{
  "TicketID": [
    "1686",
    "102",
    "100",
    "1"
  ]
}
                    

Jegyelőzmények részleteinek lekérése

cURL parancs:


curl "http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorREST/TicketHistory/1686?UserLogin=agent&Password=123"

                    

Válasz:

{
  "TicketHistory":[
    {
      "History":[
        {
          "CreateBy":1,
          "HistoryType":"NewTicket",
          "TicketID":"1",
          "CreateTime":"2017-06-08 22:44:48",
          "TypeID":1,
          "OwnerID":1,
          "QueueID":1,
          "Name":"Az új [2015071510123456] jegy létrejött.",
          "StateID":1,
          "PriorityID":3,
          "ArticleID":"1",
          "HistoryTypeID":1
        }
      ],
      "TicketID":"1"
    }
  ]
}