You are not logged in.
Pages: 1
Bonjour à tous et désolé si la solution se trouve sur le forum mais rien ne fonctionne chez moi.
Précision avant tout: j'arrive déjà à faire pas mal de choses avec mes requêtes sous PowerShell (ajout commentaire, ajout task, validation task, suppression utilisateurs).
Mais justement donc, impossible d'ajouter un utilisateur sur un ticket créé.
Voici ce que j'utilise en json :
$json = @{
input = @{
"tickets_id"=$data_ticket.id
"users_id"="3679"
"type"="2"
"use_notification"="1"
}
} | ConvertTo-Json
Avec cette requête (j'ai tout tenté Post Put et Patch)
(uri = ...glpi/apirest.php/Ticket/47369/Ticket_User/)
Invoke-RestMethod -Uri "$(($data_ticket.links | ? {$_.rel -eq "Ticket_User"}).href)" -Headers @{"session-token"=$SessionToken.session_token;"App-Token" = $glpi_appToken.GetNetworkCredential().Password; "ContentType" = "application/json"} -Method Put -Body $json
(uri = .../glpi/apirest.php/Ticket/47369)
Invoke-RestMethod -Uri "$($AppURL)/Ticket/$($data.2)" -Headers @{"session-token"=$SessionToken.session_token;"App-Token" = $glpi_appToken.GetNetworkCredential().Password; "ContentType" = "application/json"} -Method Put -Body $json
sur les PUT et PATCH j'ai une réponse sans intérêt ou tout est à zéro/false sans Rank à 1 et IsFixedSize à true.
sur les POST je reçois 400 BAD REQUEST. Your browser sent a request that this server could not understand
dans tous les cas il ne se passr rien sur GLPI.
sauf une fois mon compte de service est passé dans l'historique en dernier modifiant du ticket alors qu'il n'a rien fait mais je sais pas reproduire.
GLPI 10.0.3
Last edited by mrvls (2023-10-02 15:24:20)
Offline
bonjour je suis surpris par le nom de la variable.
$data_ticket.id
avez vous essayé avec des valeurs en dur.
pour ajouter un utilisateur c'est la méthode POST
avez vous des "règles" ou paramétrages qui pourraient bloquer ? ( tentative sur un ticket fermé, un seul technicien autorisé, technicien pas dans l'entité du ticket, une seul technicien ou groupe autorisé, ...
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
Pour la variable je fais de la sorte pour toutes mes requêtes. Dans le doute j'ai essayé en dur mais j'ai toujours 400 Bad Request en réponse, sur un Post donc.
Pas de règles à ma connaissance, là je tente d'ajouter l'utilisateur en Assigné ou en Observateur alors qu'il n'y a personne dessus. Le compte utilisé dispose de touts les droits et se trouve.
Je précise que sur ce même ticket j'ai déjà créé des task, followup et delete des user sans aucun problème.
Offline
Sachant qu'il ne s'agit pas d'une création d'un ticket mais bien d'un changement de ticket existant, y-a-t-il réellement des règles que je devrais contrôler ?
Type de règle
Règles d'import et de liaison des équipements
Règles d'affectation d'un élément à une entité
Règles de localisation
Règles pour assigner un ticket créé via un collecteur de courriels
Règles d'affectation d'habilitations à un utilisateur
Règles d'affectation d'une catégorie aux logiciels
Règles métier pour les tickets
Règles métier pour les matériels
Transférer
Listes noires
Offline
pouvez vous ajouter un technicien sur ce ticket via l'interface graphique ? ( vérifiez le profil, voter entité, et l'entité du ticket ).
si oui l'API devrait le permettre( avec le même utilisateur, le même profil, et la même entité)
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
oui, je n'y avais pas pensé mais je viens de tester à l'instant et je n'ai aucun problème pour l'ajouter manuellement depuis l'interface graphique avec le compte de service utilisé dans l'API.
D'ailleurs c'est le compte de service qui s'ajoute lui-même pour info.
le ticket est issue d'un formulaire mais je ne pense pas que ce soit important ?
je vais tester sur un autre ticket au cas où.
Last edited by mrvls (2023-10-02 15:06:34)
Offline
pareil sur un autre ticket.
toujours erreur 400 quand je cherche à POST un nouvel user en assigné en plus d'un premier (je pensais que le statuts pouvait poser problème mais il change bien quand je retire (DELETE) les user via API).
et toutes mes excuses nous sommes en 10.0.3.
Last edited by mrvls (2023-10-02 15:24:44)
Offline
alors j'ai contourné le problème pour arriver à mon résultat qui était en vérité de positionner le followup ou la task toujours du même côté graphiquement dans le ticket (à gauche) pour simplifier la documentation et rendre l'ensemble plus cohérant.
c'est stupide mais j'avais constaté que si mon compte de service n'était pas affecté au ticket ses actions étaient disposées à gauche. donc sur une action où il doit garder la main sur le ticket après avoir ajouter à un commentaire je cherchais à le supprimer pour le repositionner juste après.
mais tout ceci est inutile grâce à ce paramètre qui permet de place à gauche (1) ou à droite (4 je crois) les contributions du compte de service qui envoie ces requêtes :
"timeline_position"=1
j'aurais probablement bientôt besoin de répondre au sujet de ce post mais pour le moment tout ce que j'ai réussi à faire c'est ajouter un utilisateur à une tâche :
$json = @{
#suprime automate de la tâche
input = @{
"id"=($ticket_tasks | ? {$_.taskcategories_id -eq 2}).id
"users_id_recipient"=3775
}
} | ConvertTo-Json -Depth 4
Invoke-RestMethod -Uri "$(($data_ticket.links | ? {$_.rel -eq "TicketTask"}).href)" -Headers @{"session-token"=$SessionToken.session_token;"App-Token" = $glpi_appToken.GetNetworkCredential().Password} -ContentType "application/json" -Method Patch -Body ([System.Text.Encoding]::UTF8.GetBytes($json))
ou pour tout supprimer :
"users_id_recipient"=0
peut être une piste à creuser..
Offline
Hi Guys.. Did you manage to solve this?
I´m trying to assign a technician to a created ticket using the API but nothing worked.
If I use the GET "getpActiveProfile", I get this:
"active_profile": {
"id": 4,
"name": "Super-Admin",
"interface": "central",
"is_default": 0,
"helpdesk_hardware": 3,
"helpdesk_item_type": [
"Computer",
"Monitor",
"NetworkEquipment",
"Peripheral",
"Phone",
"Printer",
"Software"
],
So, Im sure that I have right access to make any changes..
When I run POST or PUT https://domain.com/apirest.php/Ticket/1 … cket_User/
{
"input": {
"id": 13014,
"users_id": 620
}
}
Get the error:
"ERROR_GLPI_UPDATE",
"No tiene permiso para realizar esta acción."
But I´m not sure if this is the Uri that I have to use to assign a technician to a ticket.
As you said, there is no documentation about tickets.
Sorry for my English.. I´m from Argentina.
Thanks
Last edited by raiden86 (2023-10-05 22:14:39)
Offline
Never mind.. I could assign a technician using the API.
I used POST on /Ticket/numberofticket/Ticket_User/ with the following code
{
"input": {
"tickets_id": 13014,
"users_id": 620,
"type": 2,
"use_notification": 1,
"alternative_email": ""
}
}
Offline
Pages: 1