You are not logged in.
Bonjour,
je suis présentement entrain de faire une application C# et j'utilise le plugin WebServices XML RPC pour communiquer avec GLPI.
La librairie .NET que j'utilise est http://xml-rpc.net/
j'essaie donc de représenter le code php suivant en C#:
['fields'] = array(
'Computer'=>array(
array('id'=>30,
'serial'=>'J87G-FDZF-970',
'comment'=>'Commentaire 1',
'otherserial'=>'000094'),
array('id'=>31,
'serial'=>'5454542-029475',
'comment'=>'Commentaire 2',
'otherserial'=>'000096')
),
'Monitor'=>array(
array('id'=>7,
'serial'=>'12133432RE2R2'),
array('id'=>8,
'serial'=>'4234-43-EFZ-434')
)
);
Voilà ce que j'ai fait :
public void updateObjects(List<GLPIObject> glpiObjects)
{
XmlRpcStruct[] fields = new XmlRpcStruct[1];
XmlRpcStruct[] objects = new XmlRpcStruct[glpiObjects.Count()];
int i = 0;
foreach (GLPIObject glpiObject in glpiObjects)
{
XmlRpcStruct anObject = new XmlRpcStruct();
anObject.Add("id", glpiObject.getId());
anObject.Add("serial", glpiObject.getSerial());
anObject.Add("comment", glpiObject.getComment());
anObject.Add("otherserial", glpiObject.getOtherSerial());
objects[i] = anObject;
i++;
}
fields[0] = new XmlRpcStruct();
fields[0].Add("Computer", objects);
mGLPIProxy.updateObjects(fields);
}
Malheureusement j'obtiens l'erreur suivante dans le "apache_error.log" :
[Fri May 24 11:01:34 2013] [error] [client 127.0.0.1] PHP Fatal error: Class name must be a valid object or a string in C:\\wamp\\www\\glpi83\\plugins\\webservices\\inc\\methodinventaire.class.php on line 981
car le $itemtype vaut 0 (semble être l'index de l'array pour la valeur "Computer")
Est-ce que quelqu'un a un idée ou a déjà implémenté updateObjects en C#?
Merci
Offline
J'ai finalement trouvé... J'ai éliminer les array.
Problème résolu, merci quand même.
Solution:
public void updateObjects(List<GLPIObject> glpiObjects)
{
XmlRpcStruct fields = new XmlRpcStruct();
XmlRpcStruct objects = new XmlRpcStruct();
int i = 0;
foreach (GLPIObject glpiObject in glpiObjects)
{
XmlRpcStruct anObject = new XmlRpcStruct();
anObject.Add("id", glpiObject.getId());
anObject.Add("serial", glpiObject.getSerial());
anObject.Add("comment", glpiObject.getComment());
anObject.Add("otherserial", glpiObject.getOtherSerial());
objects.Add("", anObject);
i++;
}
fields.Add("Computer", objects);
mGLPIProxy.updateObjects(fields);
}
Offline