You are not logged in.
Pages: 1
Topic closed
Bonjour à tous,
fervent utilisateur de GLPI depuis plusieurs années, je souhaite aller encore plus loin en intégrant cet outil dans notre intranet. Pour ce faire je souhaite m'appuyer tout logiquement sur le plugin webServices.
Je suis donc en train de réaliser un client complet full java.
et je me heurte à un petit problème sur le addTicketDocument qui ne fonctionne apparemment pas (même avec le script php de test fourni avec le plugin)
root@systechinf40:/opt/glpi/current/www/plugins/webservices/scripts# php testxmlrpc.php --host=glpi.agglo-larochelle.fr --url=/plugins/webservices/xmlrpc.php --username=admin --password=XXXXXXX --method=glpi.addTicketDocument --session=e0f908517738b090c65bcb0c4fab3cb7 --ticket=22260 --base64=/tmp/sortir.png --name=sortir.png
+ Calling 'glpi.addTicketDocument' on [url]http://glpi.agglo-larochelle.fr//plugins/webservices/xmlrpc.php?session=e0f908517738b090c65bcb0c4fab3cb7[/url]
xmlrpc error(15): Command failed
Ca a l'air de planter sur $new = $documentitem->add($input);
dans les logs :
2015-06-12 20:04:58 [9@systechinf40]
Execute method:glpi.addTicketDocument (xml-rpc), function:PluginWebservicesMethodHelpdesk::methodAddTicketDocument, duration:0.044, size:68
2015-06-12 20:04:58 [9@systechinf40]
Connexion: j.rautureau, 172.17.150.40
Protocol: xml-rpc, Method: glpi.addTicketDocument, Function: PluginWebservicesMethodHelpdesk::methodAddTicketDocument
Params: Array
(
[ticket] => 22260
[base64] => iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAFMQAABTEBt+0oUgAAAAd0SU1FB9sLHQoJImi7h2QAAAThSURBVEjHtZXfax3VFsc/a8/eMydpNLZpbNKYao3FWKjR5lbFiLXWWsEKiv+B4oso+GDaaBKSNFrBi9IHLxf8C9pGX7xwfZBUEVIUNNi0akyFVtGcNL+T5iRz5szM8uGcHJNasQgOLPae2Xu+3+9e3732hn/4keuZtKv1/ttE0t0iZocxEhoxMwKDX31xJvu3CO7YtYsfz52jZc/9r6Zp8kqaasMtDQ1svOkmRITFK4tkJyaw1s4453qHPj39XmtbG18PDV0fwe4HHrw7SZNPamtqbt63d6/u3HmXWM9DVQHBOUscx4z+MKZDZ87I7PzcrHOubfDjj0f/kuC+Bx96NNF0cO/DD+t9ra0SFSJEBEEQAUT4+dIlFLi9qQlnLd+MjOgXX34pznr7///R/05fk+DAoT0sLGxoNqTfP3HwoNZt2SKgRXD5ferlbJauzk5+GBvj1MAAjdu2YUSYmp7Wzz7/XKxnWzzrjXx44sQfV9D2yL6ZPf9q3bitsVGKoAYREBFSVa4sLNDd2QnAwAcf8Gt2nCDIYEoixicm9Pz581Mfnjy1ZRXTW+3se/zgSzU1m569c8cOKRQKxHFCksQkSUIURYRLS3R3daGq/Do+zqmBAaqrq0nihDiNSZKUqqoqWbpyZUPzzp25c2fPnilKXGXyTO/2W2/V5VyOMJ8nH4aEYUgul6OQz9Pd3Y1qMWXHjh2jfmsd+XyefJQnykfk83lWlldobLxFPc+8ss6DJw89Ve/5bvyu5mbSNEWMICLEcUJ1VVVZuYhw/Phx5pcWy6aLmLJPIgbPM1y8dBFFtr//n/9esgBe4O931mNhcZEg8AGI45i6zbV0lcABhoeH+Xb0e2prN5dApSTGYAAxhjBMcNaBpruBIoHv2xpBmJ2dobKyAuc57mhq4nB7e1l5GIa88+671DfUU9y6BlNSbYygCoVCRFSIsNYgYncAWADnXMZQVLNqapLE6+pDUeIkplAoFPNqhGJZSHFUwRjBdz4igjGEZZN9ay9YZ3HO4ZyjsqKCsR8v0NvXh4igqmSCDIdfbWd6ehotmVcEEjzv93+ds/jO4pw/UyZwvhv21w06KisrmZjM0tPbU1IJra2t3NtyD75vce5aoBa/9C2wZnBdob348ou/iJitYkRMyUBjhDRJuaHqRvqP9pf9eP6F52ho2Fp8N4JZ3UlGMCIqIrNdr/dsXlcHzrnjzllZXcGqkkxFhigO6e7uKqerr+co2Wy2qN46bEm9sxZrrVhre6952LV3tF82Rmql+GDWqFNV0kR5o/9NAE6ePMHo2HcEQVBOoaqqwFzHka6aVczyCvr6+3CeOeCcFeec+mvUBUFAVdUGNm6qpqe3B4CWlnuZm5tfv9EEUby2t99+88+P66NHex8Vj0ERUREjQSagIpMhCDL4vo8xhp8u/kxuZYn6ujqWV5ZRVVVURNnfcaTr9F9eOG/9u79Z1Ayp6iZrrQZBIL4fYK0tF1UYhoThihYKBVFlUkQOdBx+feRqLHMtAk/NaMfhzhpBXo7jeDaXyzE/P8fMzBSTk1NMTU2yuLhAFEXjira/dqRzS245N3I9d7JXCrOmzT3z9KHm7U1NjxnP1IiYTBTlL0xkLw+fPDFwFtgApKVI1oSuJXCl8EsRXBWZNX0BolKEQP6qiEptAYh+Awbk/k/k+PgEAAAAAElFTkSuQmCC
[name] => sortir.png
)
Compression: Server:/, Config:0, Agent:?
Duration: 0.044
Response size: 68
Response content: Array
(
[faultCode] => 15
[faultString] => Command failed
)
...tiens en écrivant ce post je me suis rendu compte que même via l'interface de GLPI je n'arrive pas à uploader / attacher de documents à un ticket...Il met téléchargement réussi et puis plus rien...(sur Chrome comme sur Firefox)
Si vous avez une idée ?
Plugin webservices : 1.5.0
GLPI : 0.8.4
Last edited by lezell (2015-06-12 20:23:42)
Offline
Bon en fait si les documents sont bien attachés dans l'interface aux tickets.
Par contre je ne vois pas comment le webservice peut fonctionner...
J'ai parcouru le code et il me semble obsolète sur cette partie...
Offline
Bon, je me suis débrouillé tout seul et corrigé deux classes :
/www/plugins/webservices/inc/methodhelpdesk.class.php
et
document.class.php
Sans quoi cela ne fonctionne pas.
Offline
@lezell
Merci pour ces infos, effectivement il y a un problème sur la méthode addTicketDocument pourrais tu nous faire partager tes corrections sur ces deux classes ? pastebin ou autre ?
Merci beaucoup
Offline
Bonjour,
J'ai eu le même problème et je me suis débrouillé aussi pour corriger le plugin.
Je n'ai modifié que le fichier "plugins/webservices/inc/methodhelpdesk.class.php"
Je vous mets le patch depuis la version 1.5.0
--- methodhelpdesk.class.php.old 2015-07-24 10:55:17.991708584 +0200
+++ methodhelpdesk.class.php.new 2015-07-24 10:55:25.815768112 +0200
@@ -1264,7 +1264,10 @@
$document_name = addslashes(sprintf(__('%1$s %2$s'), _x('phone', 'Number'),
$ticket->fields['id']));
}
- $filename = tempnam(GLPI_TMP_DIR, 'PWS');
+ $filename = GLPI_TMP_DIR.'/'.$document_name;
+ if ( !touch($filename) ) {
+ return self::Error($protocol, WEBSERVICES_ERROR_FAILED, '', "can't create " . $filename);
+ }
$response = parent::uploadDocument($params, $protocol, $filename, $document_name);
//An error occured during document upload
if (parent::isError($protocol, $response)) {
@@ -1291,6 +1294,7 @@
'tickets_id' => $ticket->getID(),
'entities_id' => $ticket->getEntityID(),
'is_recursive' => $ticket->isRecursive(),
+ '_filename' => Array(basename($filename)),
'documentcategories_id' => $CFG_GLPI["documentcategories_id_forticket"]);
$new = $doc->add($input);
}
GLPI 9.4.5 - Module Node.js glpi-api
Offline
Je n'ai aucun problème pour ajouter un document depuis le webservices.
Plusieurs corrections ont eu lieues dans la 0.85 pour corriger les patchs, avez-vous appliqué ces corrections ?
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Plusieurs corrections ont eu lieues dans la 0.85 pour corriger les patchs, avez-vous appliqué ces corrections ?
J'utilise la version 0.85.4 de GLPI mise à jour depuis une 0.84.6 avec le plugin webservices 1.5.0 disponible ici : https://forge.glpi-project.org/projects … ices/files
Quelles corrections supplémentaires ont été faites ? Dois-je prendre la Daily tarball ?
GLPI 9.4.5 - Module Node.js glpi-api
Offline
Bonjour,
J'ai testé cela sur la dernière bugfix de GLPI 0.85 et le trunk de webservices.
Il y a plusieurs problèmes :
- La méthode uploadDocument de methodcommon.class est obsolète, car la variable globale $_FILES n'est plus utilisée pour l'ajout de documents.
- La vérification du type de fichier se fait maintenant avec l'extension du fichier, le nom du fichier devrait donc être obligatoire dans le méthode addTicketDocument
- Il manque le paramètre '_filename' pour ajouter le nouveau document
Je propose une correction que tsmr a posté sur la forge : https://forge.glpi-project.org/issues/5432
Offline
Version du webservice sortie avec cette correction
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Pages: 1
Topic closed