/******************************************************************************* * Informations pour le tutoriel web-service * * @url : http://wiki.maarch.org/Tutoriel_sur_les_web_services *******************************************************************************/ I/ Installation du serveur web A/ Sur linux (apt-get) 1/ Installation de apache2 sudo apt-get install apache2 2/ Installation de php5 sudo apt-get install php5 3/ Installation de php-pear sudo apt-get install php-pear 4/ Installation de SOAP sudo pear install SOAP-0.12.0 /!\ au moment de l'écriture la dernière version de SOAP est la 0.12.0, vérifier que ce soit bien la version en cours sinon adaptez la commande comme suit : sudo pear install SOAP- /!\ II/ Création du docservers pour les web-services A/ création du répertoire Créer un répertoire nommé WS au même endroit que vos autres docservers Exemple: Mes docservers se trouvent dans /var/www/docservers/maarch_entreprise/ alors mkdir -p /var/www/docservers/maarch_entreprise/WS/ B/ Ajout du docserver WS dans la base de donnée /!\ Pensez a modifier l'addresse du docserver par celle que vous venez de créer /!\ INSERT INTO docservers ( docserver_id, docserver_type_id, device_label, is_readonly, enabled, size_limit_number, actual_size_number, path_template, ext_docserver_info, chain_before, chain_after, creation_date, closing_date, coll_id, priority_number, docserver_location_id, adr_priority_number ) VALUES ( 'WEB_SERVICES', 'FASTHD', 'zone de stockage pour les web services', 'N', 'Y', 100000000000, 109202, '/var/www/docservers/maarch_entreprise/WS/', NULL, NULL, NULL, '2011-10-17 18:39:17.573393', NULL, 'res_coll', 1, 'NANTERRE', 6 ); III/ Mise en place tutoriel A/ Les fichiers du tutoriel doivent être placés dans le DocumentRoot de votre serveur web Exemple : Votre DocumentRoot est /var/www/ Créez un dossier nommé WS dedans mkdir -p /var/www/WS/ Placez dans ce dossier les fichiers du tutoriels Votre dossier doit se présenter comme ceci ... |-- |--WS |--index.php |--ws_client.php |--style |--style.css |--styleFrame.css |--img |--content.png |--english.gif |--english.png |--fonFooter.png |--france.gif |--header.png |--home.png |--invoices.png |--limit.png |--look.png |--loupe.png |--ombreSide.png IV/ Configuration du web service Accès au cataloge de web-services url d'accès http://127.0.0.1/maarch_entreprise/ws_server.php?wsdl |_______________|_________________|__________________| |_ip du serveur_|rep_instal_maarch|____catalogue_____| Adaptez cette url en fonction de votre configuration V/ Déclaration du web service de recherche de facture Ajoutez à la fin du fichier /core/class/ws.php $SOAP_typedef['searchParams'] = array( 'country' => 'string', 'docDate' => 'date', ); $SOAP_typedef['listOfResources'] = array( 'resid' => 'long', 'identifier' => 'string', 'contactName' => 'string', 'country' => 'integer', 'amount' => 'string', 'customer' => 'string', 'docDate' => 'string', ); $SOAP_typedef['docListReturnArray'] = array( 'status'=>'string', 'value'=>'{urn:MySoapServer}listOfResources', 'error'=>'string', ); AP_dispatch_map['Demo_searchResources'] = array( 'in' => array( 'searchParams' => '{urn:MySoapServer}searchParams', ), 'out' => array( 'out' => '{urn:MySoapServer}docListReturnArray', ), 'method' => "core#resources::Demo_searchResources", ); VI/ Création de la fonction de recherche de facture Ajoutez dans /core/class/resources_controler.php /!\ à ajouter avant la dernière accolade fermante "}" du fichier /!\ function Demo_searchResources($searchParams) { $whereClause = ''; if ($searchParams->countryForm <> '') { $whereClause .= " custom_t3 = '" . $searchParams->countryForm . "' and "; } if ($searchParams->docDateForm <> '') { $whereClause .= " doc_date >= '" . $searchParams->docDateForm . "'"; } $listResult = array(); try { $db = new dbquery(); $db->connect(); $cpt = 0; $db->query("select * from res_x where " . $whereClause . " ORDER BY res_id ASC"); if ($db->nb_result() > 0) { while ($line = $db->fetch_object()) { $listResult[$cpt]['resid'] = $line->res_id; $listResult[$cpt]['subject'] = $line->subject; $listResult[$cpt]['docdate'] = $line->doc_date; $cpt++; } } else { $error = _NO_DOC_OR_NO_RIGHTS; } } catch (Exception $e) { $fault = new SOAP_Fault($e->getMessage(), '1'); return $fault->message(); } $return = array( 'status' => 'ok', 'value' => $listResult, 'error' => $error, ); return $return; } VII/ Vous pouvez maintenant utiliser toutes les fonctions du tutoriel sur les web services