gpt4 book ai didi

javascript - CRM 身份验证问题

转载 作者:行者123 更新时间:2023-12-02 19:24:34 26 4
gpt4 key购买 nike

如何在 JavaScript 中包含GenerateAuthenticationHeader()。我需要包含哪些必要的 DLL?我使用此函数通过 JavaScript 检索 MS CRM 实体。我收到此错误:

Microsoft JScript runtime error: 'GenerateAuthenticationHeader' is undefined

function AccessCRMWebServices() {
debugger;
var auth = GenerateAuthenticationHeader();
var productCode = "ABCDE";
var stock;
var x = Xrm.Page.getAuthenticationHeader();
var fetchXml = '<fetch version="1.0" output-format="xml-platform" mapping="logical">';
// Target Entity Name
fetchXml += '<entity name="new_aditya_products">';
// Required Attribute
fetchXml += '<attribute name="new_productname"/>';
fetchXml += '<attribute name="new_name"/>';
// Condition
fetchXml += '<filter type="and">';
fetchXml += '<condition attribute="new_productcode" operator="eq" value="' + productCode + '" />';
fetchXml += '</filter>';

fetchXml += '</entity>';
fetchXml += '</fetch>';

var Xml = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"
Xml += GenerateAuthenticationHeader()
Xml += "<soap:Body>";
Xml += "<Fetch xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">";
Xml += "<fetchXml>";
//Xml += _HtmlEncode(fetchXml);
Xml += "</fetchXml>";
Xml += "</Fetch>";
Xml += "</soap:Body>";
Xml += "</soap:Envelope>";

var XmlHttp = CreateXmlHttp();

XmlHttp.open("POST", 'http://rxdotnet:5555/MSCRMServices/2007/MetadataService.asmx', false);
XmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
XmlHttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
XmlHttp.send(Xml);
var resultDoc = loadXmlDocument(XmlHttp.responseXML.text);
var resultRecords = resultDoc.selectNodes("//stockvolume");
var resultnames = resultDoc.selectNodes("//new_name");
if (resultRecords.length == 1) {
stock = resultRecords[0].text;
alert('Product ' + resultnames[0].text + ' Contains stock is -' + stock);
}

最佳答案

我假设您使用的是 MS CRM 4.0 版

GenerateAuthenticationHeader 函数只能在表单代码中本地使用(如 SDK 中所述,它是一个全局函数)。我相信在任何其他情况下使用它都是不支持的。这就是您收到错误的原因。

它所做的一切,按照SDK的方法是创建一个如下所示的 SOAP header (因此也许您可以在代码中重新创建它):

<soap:Header>
<CrmAuthenticationToken xmlns="http://schemas.microsoft.com/crm/2007/WebServices">
<AuthenticationType xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes">
0
</AuthenticationType>
<OrganizationName xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes">
AdventureWorksCycle
</OrganizationName>
<CallerId xmlns="http://schemas.microsoft.com/crm/2007/CoreTypes">
00000000-0000-0000-0000-000000000000
</CallerId>
</CrmAuthenticationToken>
</soap:Header>

除此之外,可能还有其他解决方案。您想做什么以及您的代码在哪里运行?

关于javascript - CRM 身份验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12177120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com