欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

crm使用soap创建下拉框

发布时间:2025/3/20 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 crm使用soap创建下拉框 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

//C#代码
//#region OptionMetadataCollection
//OptionMetadataCollection opCollection = new OptionMetadataCollection();
//opCollection.Add(new OptionMetadata(new Label("2000年", languageCode), 2000));
//opCollection.Add(new OptionMetadata(new Label("2001年", languageCode), 2001));
//opCollection.Add(new OptionMetadata(new Label("2002年", languageCode), 2002));
//opCollection.Add(new OptionMetadata(new Label("2003年", languageCode), 2003));
//opCollection.Add(new OptionMetadata(new Label("2004年", languageCode), 2004));
//opCollection.Add(new OptionMetadata(new Label("2005年", languageCode), 2005));
//#endregion

//OptionSetMetadata optionSet = new OptionSetMetadata(opCollection);
//optionSet.Name = "new_year";
//optionSet.Description = new Label("年份", languageCode);
//optionSet.DisplayName = new Label("年份", languageCode);
//optionSet.IsGlobal = true;
//optionSet.OptionSetType = OptionSetType.Picklist;

//CreateOptionSetRequest request = new CreateOptionSetRequest();
//request.OptionSet = optionSet;
//CreateOptionSetResponse response = (CreateOptionSetResponse)service.Execute(request);

//样例
function demo() {
    //字段名称
    var attrName = "new_year";
    //标签
    var labelName = "年份";
    //语言编码
    var code = 2052;
    //集合
    var dataArray = [];
    dataArray.push(getOptionItem("2000年", 2000));
    dataArray.push(getOptionItem("2001年", 2001));
    dataArray.push(getOptionItem("2002年", 2002));
    dataArray.push(getOptionItem("2003年", 2003));
    dataArray.push(getOptionItem("2004年", 2004));
    dataArray.push(getOptionItem("2005年", 2005));
    dataArray.push(getOptionItem("2006年", 2006));

    createOption(attrName, labelName, code, dataArray); 
    
}

function getOptionItem(name, value) {
    var item = new Object();
    item.name = name;
    item.value = value;
    return item;
}


function createOption(attrName,labelName,code,dataArray) {
    var request = "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>";
    request += "<s:Body>";
    request += "<Execute xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>";
    request += "<request i:type='a:CreateOptionSetRequest' xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts'>";
    request += "<a:Parameters xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>";
    request += "<a:KeyValuePairOfstringanyType>";
    request += "<b:key>OptionSet</b:key>";
    request += "<b:value i:type='c:OptionSetMetadata' xmlns:c='http://schemas.microsoft.com/xrm/2011/Metadata'>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<c:Description>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>"+ labelName +"</a:Label>";
    request += "<a:LanguageCode>2052</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += "</c:Description>";
    request += "<c:DisplayName>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>"+ labelName +"</a:Label>";
    request += "<a:LanguageCode>2052</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += " </c:DisplayName>";
    request += "<c:IsCustomOptionSet i:nil='true' />";
    request += "<c:IsCustomizable i:nil='true' />";
    request += "<c:IsGlobal>true</c:IsGlobal>";
    request += "<c:IsManaged i:nil='true' />";
    request += "<c:Name>"+ attrName +"</c:Name>";
    request += "<c:OptionSetType>Picklist</c:OptionSetType>";
    request += "<c:Options> ";
    //加入详细的每一小项
    if (dataArray != null && dataArray.length > 0) {
        var len = dataArray.length;
        for (var i = 0; i < len; i++) {
            var item = dataArray[i];
            request += getItem(item.name, item.value, code);
        }
    } 
    request += "</c:Options>";
    request += "</b:value>";
    request += "</a:KeyValuePairOfstringanyType>";
    request += "</a:Parameters>";
    request += "<a:RequestId i:nil='true' />";
    request += "<a:RequestName>CreateOptionSet</a:RequestName>";
    request += "</request>";
    request += "</Execute>";
    request += "</s:Body>";
    request += "</s:Envelope>";

    execSoap(request);
}

function getItem(name,value,code) {
    var request = "<c:OptionMetadata>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<c:Description i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />"; 
    request += "<c:Label>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>" + name + "</a:Label>";
    request += "<a:LanguageCode>"+ code +"</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += "</c:Label>";
    request += "<c:Value>"+ value +"</c:Value>";
    request += "</c:OptionMetadata>"; 
    return request;
}


//获取服务地址
function getWebUrl() {
    var serverUrl = Xrm.Page.context.getServerUrl();
    if (serverUrl.match(/\/$/)) {
        serverUrl = serverUrl.substring(0, serverUrl.length - 1);
    }
    return serverUrl + "/XRMServices/2011/Organization.svc/web";
}
//运行请求
function execSoap(request) {
    var ajaxRequest = new XMLHttpRequest();
    ajaxRequest.open("POST", getWebUrl(), true)
    ajaxRequest.setRequestHeader("Accept", "application/xml, text/xml, */*");
    ajaxRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    ajaxRequest.setRequestHeader("SOAPAction", "
http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
    ajaxRequest.send(request);
}





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5224094.html,如需转载请自行联系原作者

总结

以上是生活随笔为你收集整理的crm使用soap创建下拉框的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。