Rendszerhívás folyamatkezelés-modul

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:

  1. Menjen a folyamatkezelés képernyőre, és hozzon létre egy új folyamatot.

  2. Adjon hozzá egy új vezérelt feladat tevékenységet a folyamathoz.

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

  4. Kattintson a Parancsfájl mező mellett lévő Beállítás gombra.

  5. 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>
    
  6. 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>
    
  7. Kattintson a Mentés és befejezés gombra.

  8. Állítsa üzembe a folyamatot.

  9. Hozzon létre egy új folyamatjegyet az ügyintézői felületen, majd kattintson a tevékenység Indítás gombjára.

  10. Várjon, amíg a démon végrehajtja a rendszerhívást.

  11. A jegy címe megváltozott az uname -s eredményére.

Scroll to Top