Journaleintrag per API Call aus Powershell hinzufügen
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Journaleintrag per API Call aus Powershell hinzufügen
Hallo Ihr,
Auch wenn ich ansonsten gerade gut zurechtkomme, aber das Hinzufügen eines Journaleintrags in einem Incident per API Aufruf (mit Powershell!) bereitet mir gerade Kopfzerbrechen ... kann mir jemand hilfreich zur Seite springen?
Vielen Dank im Voraus!
Auch wenn ich ansonsten gerade gut zurechtkomme, aber das Hinzufügen eines Journaleintrags in einem Incident per API Aufruf (mit Powershell!) bereitet mir gerade Kopfzerbrechen ... kann mir jemand hilfreich zur Seite springen?
Vielen Dank im Voraus!
Re: Journaleintrag per API Call aus Powershell hinzufügen
Guten Morgen,
anbei ein Beispiel (Musst nur apiToken, baseUrl und IncEOID füllen):
Der ReturnCode sollte dann immer 200 (OK) sein.
anbei ein Beispiel (Musst nur apiToken, baseUrl und IncEOID füllen):
Code: Select all
$apiToken = "<apiKey>"
$baseUrl = "https://test.imagoverum.com"
$IncEOID = "<Object ID of INC>"
$createDate = (Get-Date -Format s)
$commentHtml = "Test123 <b>TEST</b>"
$comment = "Test123 TEST"
### Get Token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $apiToken")
$tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body
$tokenResponse.RawToken
### Run Webservice-Call - Create journal entry
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Content-Type", "application/json")
$body = @{
UsedInType = $IncEOID;
TypeID = "fe098714-ac94-47f1-9724-df5bac86b3fb";
CreatedDate = $createDate;
OriginalSolutionHtml = $commentHtml;
OriginalSolution = $comment;
} | ConvertTo-Json
$response = Invoke-WebRequest "$baseUrl/m42Services/api/data/fragments/SPSActivityClassUnitOfWork" -Method 'POST' -Headers $headers -Body $body
$returnCode = $response.StatusCode
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
Da sage ich schon einmal vielen vielen Dank, funktioniert wunderbar!cboss wrote: ↑30. Sep 2021, 08:02 Guten Morgen,
anbei ein Beispiel (Musst nur apiToken, baseUrl und IncEOID füllen):Der ReturnCode sollte dann immer 200 (OK) sein.Code: Select all
$apiToken = "<apiKey>" $baseUrl = "https://test.imagoverum.com" $IncEOID = "<Object ID of INC>" $createDate = (Get-Date -Format s) $commentHtml = "Test123 <b>TEST</b>" $comment = "Test123 TEST" ### Get Token $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", "Bearer $apiToken") $tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body $tokenResponse.RawToken ### Run Webservice-Call - Create journal entry $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken) $headers.Add("Content-Type", "application/json") $body = @{ UsedInType = $IncEOID; TypeID = "fe098714-ac94-47f1-9724-df5bac86b3fb"; CreatedDate = $createDate; OriginalSolutionHtml = $commentHtml; OriginalSolution = $comment; } | ConvertTo-Json $response = Invoke-WebRequest "$baseUrl/m42Services/api/data/fragments/SPSActivityClassUnitOfWork" -Method 'POST' -Headers $headers -Body $body $returnCode = $response.StatusCode
Wenn ich das Ganze für Tasks oder andere Objekte mit der SPSActivityClassUnitOfWork etc. machen möchte, was muss ich dann anpassen?
Re: Journaleintrag per API Call aus Powershell hinzufügen
Hi,
dann einfach im Body die TypeID anpassen. Die passende TypeID bekommst du aus der Tabelle SchemaObjectType
dann einfach im Body die TypeID anpassen. Die passende TypeID bekommst du aus der Tabelle SchemaObjectType
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
Perfekt, vielen Dank!
Re: Journaleintrag per API Call aus Powershell hinzufügen
Sehr gerne 

neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Re: Journaleintrag per API Call aus Powershell hinzufügen
Kann man das ganze noch um den Upload eines Anhangs mit dem Journal-Eintrag erweitern?
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
Das würde mich tatsächlich auch interessieren, ob man per API Anhänge hochladen kann ...
Re: Journaleintrag per API Call aus Powershell hinzufügen
Hallo,
natürlich geht das. Hier ein Beispiel, welches ein Attachment an eine Störung anhängt:
natürlich geht das. Hier ein Beispiel, welches ein Attachment an eine Störung anhängt:
Code: Select all
Add-Type -AssemblyName System.Web
$baseurl = "https://<esm-url>/"
$bearertoken = "<token>"
$entity = 'SPSActivityTypeIncident'
$objectIds = '27626588-ed3b-ca09-e524-08d945d4218b'
$Filepath = "C:\temp\test.png"
$Fileurlencoded = [System.Web.HttpUtility]::UrlEncode((Split-Path $Filepath -leaf))
### Get Token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $bearertoken")
$tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body
### Run Webservice-Call - Upload File
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken)
$headers.Add("Content-Type", "application/octet-stream")
$response = Invoke-WebRequest "$("$baseurl/m42Services/api/filestorage/add?entity=$entity&objectIds=$objectIds&fileName=$Fileurlencoded")" -Method 'POST' -Headers $headers -InFile $Filepath
$returnCode = $response.StatusCode
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
Vielen Dank und alles wunderbar, nur das ich da einen (401) Nicht autorisiert bekomme. Muss ich da noch etwas spezielles berechtigen?cboss wrote: ↑07. Oct 2021, 14:53 Hallo,
natürlich geht das. Hier ein Beispiel, welches ein Attachment an eine Störung anhängt:
Code: Select all
Add-Type -AssemblyName System.Web $baseurl = "https://<esm-url>/" $bearertoken = "<token>" $entity = 'SPSActivityTypeIncident' $objectIds = '27626588-ed3b-ca09-e524-08d945d4218b' $Filepath = "C:\temp\test.png" $Fileurlencoded = [System.Web.HttpUtility]::UrlEncode((Split-Path $Filepath -leaf)) ### Get Token $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", "Bearer $bearertoken") $tokenResponse = Invoke-RestMethod "$baseUrl/M42Services/api/ApiToken/GenerateAccessTokenFromApiToken/" -Method 'POST' -Headers $headers -Body $body ### Run Webservice-Call - Upload File $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", "Bearer "+$tokenResponse.RawToken) $headers.Add("Content-Type", "application/octet-stream") $response = Invoke-WebRequest "$("$baseurl/m42Services/api/filestorage/add?entity=$entity&objectIds=$objectIds&fileName=$Fileurlencoded")" -Method 'POST' -Headers $headers -InFile $Filepath $returnCode = $response.StatusCode
Re: Journaleintrag per API Call aus Powershell hinzufügen
Hallo,
gibt der erste oder der zweite Call die 401?
Vielleicht einmal die Zielgruppe dieser Webserviceoperation prüfen:

Man muss jedoch auch wissen, dass die Filestorage-API noch nicht als "Public" freigegeben ist. Könnte also immer passieren, dass der Hersteller an dem Endpunkt noch etwas verändert.
gibt der erste oder der zweite Call die 401?
Vielleicht einmal die Zielgruppe dieser Webserviceoperation prüfen:
Man muss jedoch auch wissen, dass die Filestorage-API noch nicht als "Public" freigegeben ist. Könnte also immer passieren, dass der Hersteller an dem Endpunkt noch etwas verändert.
- Attachments
-
- Webservice.png
- (45.65 KiB) Downloaded 962 times
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
POST gegen filestorage gibt den 401. Habe jetzt "spaßeshalber" die Zielruppe einmal auf "Uneingeschränkt" gestellt um zu testen und es bleibt das gleiche Ergebnis ... Matrix Version ist 10.0.4.3240 ... noch Ideen dazu? ... und nur um es noch einmal gesagt zu haben: DANKESCHÖN!
Re: Journaleintrag per API Call aus Powershell hinzufügen
Guten Morgen,
wird die Variable $tokenResponse.RawToken denn korrekt befüllt?
Und der User für den der Token erstellt wurde muss auf die Webservice-Operation "FileStorage.Add" berechtigt sein.
Ansonsten müssten wir uns das vielleicht mal zusammen ansehen.
wird die Variable $tokenResponse.RawToken denn korrekt befüllt?
Und der User für den der Token erstellt wurde muss auf die Webservice-Operation "FileStorage.Add" berechtigt sein.
Ansonsten müssten wir uns das vielleicht mal zusammen ansehen.
neo42 GmbH
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
Ihr Partner für Unified Endpoint Management, IT Service Management, Software Asset Management und Enterprise Mobility Management
http://www.neo42.de
--------------------------------------------------------------------------
Morpheus42
Entdecke mit uns die Welt des Enterprise Service Management & Matrix42
https://www.morpheus42.com
-
- Posts: 17
- Joined: 22. Feb 2017, 15:17
- Contact:
Re: Journaleintrag per API Call aus Powershell hinzufügen
Vielen Dank, ich werde das gleich prüfen! Token funktioniert alles wunderbar.
Who is online
Users browsing this forum: No registered users and 11 guests