xml — Как извлечь потенциальную выгоду из Microsoft Dynamics CRM с переполнением стека

Здесь я использую SOAP XML-запрос для извлечения данных из CRM.
Моя аутентификация работает нормально, и я получаю системного пользователя, но мне нужно получить потенциальных клиентов из CRM, пожалуйста, помогите мне … если кто-то поможет, мы будем очень благодарны, спасибо …

Вот код, который я использую для получения сведений о пользователе системы.

    Here is the full code i am using can you please go through it, otherwise can you give me your code with  example....<?php
include 'CrmAuth.php';
include 'CrmExecuteSoap.php';
include "CrmAuthenticationHeader.php";

// CRM Online
$url = "URL";
$username = "USERNAME";
$password = "PASSWORD";

$crmAuth = new CrmAuth ();
$authHeader = $crmAuth->GetHeaderOnline ( $username, $password, $url );
// End CRM Online

// CRM On Premise - IFD
// $url = "https://org.domain.com/";
// //Username format could be domain\\username or username in the form of an email
// $username = "username";
// $password = "password";

// $crmAuth = new CrmAuth();
// $authHeader = $crmAuth->GetHeaderOnPremise($username, $password, $url);
// End CRM On Premise - IFD

$userid = WhoAmI ( $authHeader, $url );
if ($userid == null)
return;

$name = CrmGetUserName ( $authHeader, $userid, $url );

print $name;

function WhoAmI($authHeader, $url) {
$xml = "<s:Body>";
$xml .= "<Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\">";
$xml .= "<request i:type=\"c:WhoAmIRequest\" xmlns:b=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:c=\"http://schemas.microsoft.com/crm/2011/Contracts\">";
$xml .= "<b:Parameters xmlns:d=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\"/>";
$xml .= "<b:RequestId i:nil=\"true\"/>";
$xml .= "<b:RequestName>WhoAmI</b:RequestName>";
$xml .= "</request>";
$xml .= "</Execute>";
$xml .= "</s:Body>";

$executeSoap = new CrmExecuteSoap ();
$response = $executeSoap->ExecuteSOAPRequest ( $authHeader, $xml, $url );

$responsedom = new DomDocument ();
$responsedom->loadXML ( $response );

$values = $responsedom->getElementsbyTagName ( "KeyValuePairOfstringanyType" );

foreach ( $values as $value ) {
if ($value->firstChild->textContent == "UserId") {
return $value->lastChild->textContent;
}
}

return null;
}
function CrmGetUserName($authHeader, $id, $url) {
$xml = '<s:Body>
<Execute xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<RetrieveMultiple xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services">
<query xmlns:d4p1="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="d4p1:QueryExpression">
<d4p1:ColumnSet>
<d4p1:AllColumns>false</d4p1:AllColumns>
<d4p1:Columns xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:string>leadid</d6p1:string>
<d6p1:string>subject</d6p1:string>
<d6p1:string>statuscode</d6p1:string>
</d4p1:Columns>
</d4p1:ColumnSet>
<d4p1:Criteria>
<d4p1:Conditions>
<d4p1:ConditionExpression>
<d4p1:AttributeName>statuscode</d4p1:AttributeName>
<d4p1:Operator>Equal</d4p1:Operator>
<d4p1:Values xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:anyType xmlns:d9p1="http://www.w3.org/2001/XMLSchema" i:type="d9p1:int">1</d8p1:anyType>
</d4p1:Values>
<d4p1:EntityName i:nil="true" />
</d4p1:ConditionExpression>
</d4p1:Conditions>
<d4p1:FilterOperator>And</d4p1:FilterOperator>
<d4p1:Filters />
</d4p1:Criteria>
<d4p1:Distinct>false</d4p1:Distinct>
<d4p1:EntityName>lead</d4p1:EntityName>
<d4p1:LinkEntities />
<d4p1:Orders />
<d4p1:PageInfo>
<d4p1:Count>0</d4p1:Count>
<d4p1:PageNumber>0</d4p1:PageNumber>
<d4p1:PagingCookie i:nil="true" />
<d4p1:ReturnTotalRecordCount>false</d4p1:ReturnTotalRecordCount>
</d4p1:PageInfo>
<d4p1:NoLock>false</d4p1:NoLock>
</query>
</RetrieveMultiple>
</Execute>
</s:Body>';

$executeSoap = new CrmExecuteSoap ();

$response = $executeSoap->ExecuteSOAPRequest ( $authHeader, $xml, $url );
echo "<pre>";
print_r($response);

$responsedom = new DomDocument ();
$responsedom->loadXML ( $response );

$firstname = "";
$lastname = "";

$values = $responsedom->getElementsbyTagName ( "KeyValuePairOfstringanyType" );foreach ( $values as $value ) {
if ($value->firstChild->textContent == "firstname") {
$firstname = $value->lastChild->textContent;
}

if ($value->firstChild->textContent == "lastname") {
$lastname = $value->lastChild->textContent;
}
}

return $firstname . " " . $lastname;

}

?>

0

Решение

Чтобы получить потенциальных клиентов, ваше тело запроса должно выглядеть примерно так:

<s:Body>
<RetrieveMultiple xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services">
<query xmlns:d4p1="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" i:type="d4p1:QueryExpression">
<d4p1:ColumnSet>
<d4p1:AllColumns>false</d4p1:AllColumns>
<d4p1:Columns xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:string>leadid</d6p1:string>
<d6p1:string>subject</d6p1:string>
<d6p1:string>statuscode</d6p1:string>
</d4p1:Columns>
</d4p1:ColumnSet>
<d4p1:Criteria>
<d4p1:Conditions>
<d4p1:ConditionExpression>
<d4p1:AttributeName>statuscode</d4p1:AttributeName>
<d4p1:Operator>Equal</d4p1:Operator>
<d4p1:Values xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:anyType xmlns:d9p1="http://www.w3.org/2001/XMLSchema" i:type="d9p1:int">1</d8p1:anyType>
</d4p1:Values>
<d4p1:EntityName i:nil="true" />
</d4p1:ConditionExpression>
</d4p1:Conditions>
<d4p1:FilterOperator>And</d4p1:FilterOperator>
<d4p1:Filters />
</d4p1:Criteria>
<d4p1:Distinct>false</d4p1:Distinct>
<d4p1:EntityName>lead</d4p1:EntityName>
<d4p1:LinkEntities />
<d4p1:Orders />
<d4p1:PageInfo>
<d4p1:Count>0</d4p1:Count>
<d4p1:PageNumber>0</d4p1:PageNumber>
<d4p1:PagingCookie i:nil="true" />
<d4p1:ReturnTotalRecordCount>false</d4p1:ReturnTotalRecordCount>
</d4p1:PageInfo>
<d4p1:NoLock>false</d4p1:NoLock>
</query>
</RetrieveMultiple>
</s:Body>

В приведенном выше примере, я получаю LeadId, Subject а также StatusCode столбцы из ведущих записей, которые находятся в New состояние — это StatusCode = 1

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]