2009-10-21 12 views
6

Yeni kişiler ve php kullanarak potansiyel müşteriler oluşturmak istiyorum. Mscrm 3 web hizmetinin yöntemlerini nasıl arayacağımı anlayamıyorum.PHP aracılığıyla Microsoft CRM 3.0 web hizmeti Sabun sınıfı

php sabunu sınıfı kullanımı oldukça basit görünüyor. CRM web servisine bağlanabilir ve kimlik doğrulaması yapabilir ve kullanılabilir işlevlerin bir listesini alabilirim, ancak onları arama konusunda nasıl emin olacağımı bilmiyorum.

Sabun başlıkları ve zarflar dahil olmak üzere XML yığınlarını içerdiği düşünülen mscrm 4.0 için örnekler gördüm.

Bir sabo sınıfı kullanmanın bunu atladığını ve tüm fazladan xml'yi benim için yazmam gerektiğini, çünkü tek yapmam gereken bir dizi parametre ile bir işlevi çağırmak olduğu izleniminin altındayım.

Burada tamamen yanlış mıyım?

Bunu mscrm 3 ile bazı örnek kodlar sağlayabilen veya belki de bana Create() yöntemini doğru olarak nasıl arayacağımı gösteren birkaç işaretçi vermiş olan var mı?

cevap

3

: bu adamı kontrol edin. Bu şimdi beklendiği gibi çalışıyor. Çağrı yöntemini kullanarak ms crm 3 web hizmeti tarafından gerekli olandan farklı bir XML döndürüyor gibiydi.

2

Uygun bir SOAP araç takımı, doğru XML'yi otomatik olarak tükürecektir. Ben aramanın yerine gönderme yöntemini kullanarak dize serisiyle olarak NuSOAP ve inşaat sonrası XML mesaj kullanarak bu çalışma almak mümkün olmuştur

http://us2.php.net/xmlrpc_encode_request

+0

Gerçekten sorun yaşadığım PHP Soap sınıfını kullanıyorum. Create parametrelerine hangi parametrelerin doğru biçimlendirildiğini bilmek . – Ben

2
require_once ('/var/mtp/lib/vendor/nusoap/lib/nusoap.php'); 

$login ='domain\username'; 
$pass ='password'; 
$useCURL = true; 

$client = new nusoap_client('http://server:5555/mscrmservices/2006/crmservice.asmx?wsdl', 'wsdl'); 
$client->setCredentials($login, $pass, 'ntlm'); 
$client->setUseCurl($useCURL); 
$client->useHTTPPersistentConnection(); 
$client->soap_defencoding = 'UTF-8'; 

$err = $client->getError(); 
if ($err) { 
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; 
    echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>'; 
    exit(); 
} 

$soapHeader='<soap:Header>' . 
     '<CallerId xmlns="http://schemas.microsoft.com/crm/2006/WebServices">'. 
     '<CallerGuid xmlns="http://schemas.microsoft.com/crm/2006/CoreTypes">00000000-0000-0000-0000-000000000000</CallerGuid></CallerId>' . 
    '</soap:Header>'; 

$soapBody='<soap:Body>' . 
    '<entity xmlns="http://schemas.microsoft.com/crm/2006/WebServices" xsi:type="lead">' . 
     '<ownerid type="Owner">2408c7dc-c0a3-dd11-b3cd-001a4bd3009a</ownerid>' .   
     '<firstname>Fred</firstname>' . 
     '<lastname>Bloggs</lastname>' . 
    '</entity>' . 
    '</soap:Body>'; 


$xml = '<?xml version="1.0" encoding="utf-8"?>' . 
    '<soap:Envelope' .   
     ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . 
     ' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' . 
     ' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' . 
    $soapHeader . 
    $soapBody . 
    '</soap:Envelope>'; 

//SOAP call 
$result = $client->send($xml,'http://schemas.microsoft.com/crm/2006/WebServices/Create'); 

//result 
if ($client->fault) { //check for fault 
    echo '<p><b>Fault: ';   
    print_r($result);   
    echo '</b></p>'; 
} 

else { //no fault 
    $err = $client->getError(); 
    if ($err) { // error 
     echo 'Error: ' . $err . ''; 
     echo "\n\n# # # # # # # Request # # # # # # #\n"; 
     var_dump($client->request); 
     echo "\n\n# # # # # # Response # # # # # # #\n"; 
     var_dump($client->response); 
    } 
    else { // display the result 
    print_r($result); 
    } 
} 
İlgili konular