从XRMServices / 2011 / Organization.svc

时间:2016-10-18 03:31:38

标签: php soap dynamics-crm dynamics-crm-2015 dynamics-crm-2016

我有一些类似于以下Jason Lattimer的代码,但现在已经失败了。我可以找到"标识符"在wsdl中了。任何人都可以提供此方面的帮助吗?

function GetADFS($url) {
    $ch = curl_init ();
    curl_setopt ( $ch, CURLOPT_URL, $url . "XrmServices/2011/Organization.svc?wsdl=wsdl0" );
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 );
    curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );

    $response = curl_exec ( $ch );
    curl_close ( $ch );

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

    // **************************************************       
    // **************************************************
    // Can no longer find this Identifier
    // **************************************************
    // **************************************************
    $identifiers = $responsedom->getElementsbyTagName ( "Identifier" );
    $identifier = $identifiers->item ( 0 )->textContent;

    return str_replace ( "http://", "https://", $identifier );
}

1 个答案:

答案 0 :(得分:0)

它位于命名空间' ms-xrm'所以替换

$identifiers = $responsedom->getElementsbyTagName ( "Identifier" );

$identifiers = $responsedom->getElementsbyTagNameNS ( "ms-xrm","Identifier" );

并检查。接下来是检查实际的WSDL,如果你看到这个节点,那么你的CRM配置可能会出现问题,因为该节点仅在你使用ADFS时可用。