Anlegen eines ConfigItems per Webservice

Hilfe zu OTRS Problemen aller Art
Post Reply
danielwe
Znuny newbie
Posts: 12
Joined: 02 Apr 2024, 08:51
Znuny Version: 7.0
Real Name: Daniel

Anlegen eines ConfigItems per Webservice

Post by danielwe »

Hi zusammen,

mal wieder ein Webservice-Thema. Diesmal geht es um die Abfrage eines externen Inventory-Tools. Dieses lässt sich via Webservice get abfragen und liefert dann eine Liste mit Devices zurück. Die Antwort sieht so aus:

Code: Select all


[
  {
    "Id": 2,
    "DeviceInfo": {
      "ChassisType": "Printer"
    },
    "LastInventory": {
      "Ip": "1.2.3.4"
    },
    "HardwareProduct": {
      "Manufacturer": "Xerox",
      "Name": "Megadrucker"
    },
    "Name": "Printer01",
    "SerialNumber": "394893489"
  },
  {
    "Id": 18,
    "DeviceInfo": {
      "ChassisType": "Printer"
    },
    "LastInventory": {
      "Ip": "1.2.3.5"
    },
    "HardwareProduct": {
      "Manufacturer": "Xerox",
      "Name": "Megadrucker"
    },
    "Name": "Printer02",
    "SerialNumber": "98453943"
  },
In Znuny möchte ich diese dann natürlich so mappen, dass Änderungen durchgeführt oder neue Devices angelegt werden. Allerdings konnte ich bisher keine Möglichkeit dazu finden. In der Doku finde ich keine API-Befehle, die ich im Mapping mit meiner XSLT aufrufen könnte. Und so etwas wie unten angegeben, funktioniert auch nicht:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:date="http://exslt.org/dates-and-times" 
                extension-element-prefixes="date">
	<xsl:output method="xml" encoding="utf-8" indent="yes"/>
	<xsl:template match="RootElement">
		<xsl:copy>
            		<ConfigItem>
        			<Class>Printer</Class>
        			<Name>Test1111</Name>
        			<DeplState>Production</DeplState>
        			<InciState>Operational</InciState>
        			<CIXMLData>
            				<Vendor>HP</Vendor>
            				<Model>Drucker</Model>
            				<Description>Ein Drucker</Description>
        			</CIXMLData>
			</ConfigItem>
        	</xsl:copy>
	</xsl:template>
</xsl:stylesheet>
Wie kann ich mit meiner erhaltenen Antwort denn nun ein Config-Item anlegen?
VG
Daniel
root
Administrator
Posts: 3969
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Anlegen eines ConfigItems per Webservice

Post by root »

Hi,

wenn mit der Frage gemeint ist ob Du aus der Antwort eines von Znuny ausgehenden Request ein CI anlegen kann dann geht das nur "indirekt". Anders als wie mit Ticket wo man mit ja einiges mit der Response machen kann, braucht es hier einen Trick. Das benötigt einen Webservice der CIs anlegt, der wird dann aus der Response verarbeitet (OTRS_AsynchronousInvokerExecution).

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
danielwe
Znuny newbie
Posts: 12
Joined: 02 Apr 2024, 08:51
Znuny Version: 7.0
Real Name: Daniel

Re: Anlegen eines ConfigItems per Webservice

Post by danielwe »

Das hatte ich schon befürchtet. Nun ich es ja möglich, über die CLI CIs anzulegen. Im Zweifelsfall könnte mein externes Programm auch einfach ein CSV bereitstellen, dass dann per Skript ausgelesen wird, welches wiederum die entsprechenden Befehle in der CLI aufruft.
Kann ich die Befehle ähnlich über einen Webservice bereitstellen, wie das z.B. mit den Ticket-Befehlen schon geht? Also wie beim GenericTicketConnector, der auf Github bereitgestellt wird: https://github.com/znuny/Znuny/tree/dev ... ebservices.

VG
Daniel
Post Reply