Bonjour !

Je viens vers vous pour un problème avec le WSDL.

Le sujet : j'ai un logiciel nommé Mantis. Sur ce logiciel, il y a des requêtes avec des statuts : Non attribuée, Résolue, Modifiée récemment.
J'aimerai pouvoir afficher ça sur salesforce.
Il faut donc que je puisse faire la connexion salesforce avec Mantis (qui est sur l'intranet).


J'ai donc généré le fichier xml suivant (provenant de Mantis) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?xml version="1.0"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://futureware.biz/mantisconnect" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://futureware.biz/mantisconnect">
<types>
<xsd:schema targetNamespace="http://futureware.biz/mantisconnect">
 <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
 <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>

  <message name="mc_issue_existsRequest">
  <part name="username" type="xsd:string" />
  <part name="password" type="xsd:string" />
  <part name="issue_id" type="xsd:integer" /></message>
<message name="mc_issue_existsResponse">
  <part name="return" type="xsd:boolean" /></message>

  
  

<portType name="MantisConnectPortType">
  <operation name="mc_issue_exists">
    <documentation>Check there exists an issue with the specified id.</documentation>
    <input message="tns:mc_issue_existsRequest"/>
    <output message="tns:mc_issue_existsResponse"/>
  </operation>
</portType>
<binding name="MantisConnectBinding" type="tns:MantisConnectPortType">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="mc_issue_exists">
    <soap:operation soapAction="http://ach-mantis/api/soap/mantisconnect.php/mc_issue_exists" style="document"/>
    <input><soap:body use="literal" namespace="http://futureware.biz/mantisconnect" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="literal" namespace="http://futureware.biz/mantisconnect" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
</binding>
<service name="MantisConnect">
  <port name="MantisConnectPort" binding="tns:MantisConnectBinding">
    <soap:address location="http://ach-mantis/api/soap/mantisconnect.php"/>
  </port>
</service>
</definitions>

Lorsque je vais dans classes apex => Générer à partir du WSDL, je choisis mon fichier, je l'analyse et aucune erreur n'est retournée. Par contre, lorsque je fais "Générer du code Apex code", cela me retourne l'erreur suivante :

"Echec de génération Apex
Element not defined for part 'return' "

J'ai essayé de changer quelques trucs dans le fichier xml mais sans succès pour le moment... :'(


De ce que j'ai également compris, Mantis génère un WSDL version 1.1 de type RPC/Encoded alors que Salesforce attend un WSDL version 2.0 de type Document/Literal. Est-ce que je me trompe ?


Je ne sais pas trop vers où me diriger pour que Salesforce puisse lire ou convertir le WSDL de Mantis...

Faut-il que je le convertisse à la main ?
Ce projet est-il possible ? Si oui, pourriez-vous m'orienter vers le droit chemin ? Ou m'expliquer ?


Je vous remercie par avance.


Bon courage à tous !