Amikor egy folyamat az egyik tevékenységből egy másik tevékenységbe lép, akkor egy művelet csatolható a szekvenciafolyamhoz. Ezek a műveletek olyan modulokként vannak meghatározva, amelyek meghatározott feladatokat hajtanak végre, mint például a jegy attribútumainak megváltoztatása, bejegyzések létrehozása, dinamikus mezők beállítása stb. A modulok bizonyos folyamatkezelési tevékenységekhez is csatolhatók, amelyeket vezérelt feladat tevékenységnek nevezünk, és amelyek elérésekor végrehajtják a csatolt modult.
A rendszerhívás modul lehetővé teszi az ügyintézők számára, hogy bármilyen programot, parancsfájlt, bináris vagy futtatható programot meghívjanak, amelyek elérhetők az OTRS-t futtató kiszolgáló operációs rendszerén. A rendszerhívás eredménye felhasználható a jegyinformációk frissítésére.
A rendszerhívás modulhoz XSLT leképezések használata szükséges. A kimenő leképezés a meghívandó rendszerparancs meghatározására használható, a bejövő leképezés pedig a rendszerhívásból származó eredmények átalakításával az aktuális jegy frissítéséhez használható.
A kimenő leképezésben szükség van a <Command>
kulcs meglétére és egy vagy több <Argument>
kulcsra, ha szükséges. A beállítandó értékek átalakíthatók a folyamatjegyből a <Ticket>
kulcs alatt, majd a normál jegyattribútumokat alkulcsokként való megadásával, mint például <Priority>`, ``<QueueID>`, ``<Title>
stb. Vagy meghatározhatók rögzített értékekként is.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy>
<RootElement>
<Command>command</Command>
<Arguments>argument1</Arguments>
<Arguments>argument2</Arguments>
<Arguments>argumentN</Arguments>
<Arguments><xsl:value-of select="//Ticket/Priority"/></Arguments>
</RootElement>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Biztonsági okokból csak azokat a parancsokat lehet hozzáadni a <Command>
kulcshoz, amelyek hozzá lettek adva a ProcessManagement::Modules::SystemCall::CommandWhiteList
beállításhoz engedélyezett parancsokként. Ez megakadályozza a felhasználókat abban, hogy nem engedélyezett parancsokat futtassanak a kiszolgálón.
A bejövő leképezés a rendszerhívás eredményeinek az aktuális jegy frissítéséhez szükséges információkba való átalakításához használható. Minden alkulcsnak a <Ticket>
kulcson belül kell lennie. Itt az alkulcsok lehetséges listája:
<CustomerUser>
<DynamicField>
<Lock>
<LockID>
<Owner>
<OwnerID>
<Pending>
<Priority>
<PriorityID>
<Queue>
<QueueID>
<Responsible>
<ResponsibleID>
<Service>
<ServiceID>
<SLA>
<SLAID>
<State>
<StateID>
<Title>
<Type>
<TypeID>
Az eredmény értékei a következőkből érhetők el:
<ReturnCode>
-
Egy rendszerfolyamat végrehajtásából visszaadott számérték.
<Output>
-
A szabványos kimenetre kiírt bármilyen szöveg.
<ErrorOutput>
-
A szabványos hibakimenetre kiírt bármilyen szöveg.
Itt egy bejövő leképezés példája, amely beállítja a rendszerhívás kimenetét jegycímként:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy>
<RootElement>
<Ticket>
<Title><xsl:value-of select="//Output" /></Title>
</Ticket>
</RootElement>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Lásd még
Található egy Leképezéskezelés magyarázata szakasz a beállító-képernyőn. Ez a magyarázat használható hivatkozásként.
A rendszerhívásokat az OTRS démon aszinkron módon hajtja végre a háttérben a megfelelő jogosultságokkal. Ha egy rendszerhívás eltart egy ideig, akkor a folyamatkezelés addig fog várni, amíg a rendszerhívás befejeződik és a rendszerhívás eredményei készen állnak. Ezen időszak alatt a folyamat nem léphet tovább a következő állapotra, de az ügyintézői felület egyéb részei továbbra is használhatók.
Használati példa
Ebben a példában egy nagyon egyszerű folyamatot határozunk meg egy vezérelt feladat tevékenységgel. A folyamat úgy van beállítva, hogy megváltoztassa a jegy címét az uname -s
rendszerparancs eredményére. Az eredmény lehet Darwin, Linux, GNU stb. az operációs rendszertől függően.
Egy példafolyamat meghatározásához:
-
Menjen a folyamatkezelés képernyőre, és hozzon létre egy új folyamatot.
-
Adjon hozzá egy új vezérelt feladat tevékenységet a folyamathoz.
-
Válassza a
SystemCall
lehetőséget a Parancsfájl beállításai szakasz Parancsfájl mezőjében. Kattintson a Mentés gombra. -
Kattintson a Parancsfájl mező mellett lévő Beállítás gombra.
-
Adja hozzá a következő sorokat a Kimenő: XSLT leképezés sablonhoz.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:copy> <RootElement> <Command>uname</Command> <Arguments>-s</Arguments> </RootElement> </xsl:copy> </xsl:template> </xsl:stylesheet>
-
Adja hozzá a következő sorokat a Bejövő: XSLT leképezés sablonhoz.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:copy> <RootElement> <Ticket> <Title><xsl:value-of select="//Output" /></Title> </Ticket> </RootElement> </xsl:copy> </xsl:template> </xsl:stylesheet>
-
Kattintson a Mentés és befejezés gombra.
-
Állítsa üzembe a folyamatot.
-
Hozzon létre egy új folyamatjegyet az ügyintézői felületen, majd kattintson a tevékenység Indítás gombjára.
-
Várjon, amíg a démon végrehajtja a rendszerhívást.
-
A jegy címe megváltozott az
uname -s
eredményére.