Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics CRM forum
Unanswered

Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

Posted on by Microsoft Employee

I need to call a Web Service from a Ajax in my entity form and i need to put the return data in some fields, but i got an error: "Error: Operation aborted\r\n"

I got the error at this line: 

error: function (jqXHR, textStatus, errorThrown) {
failureCallback(new Error(errorThrown));
},





The ALL code is:

/// <reference path="jquery-1.6.1.min.js" />

var AddressService = {


_bindings: {},
addressFieldNames: null,

setFieldNames: function (arg) {
var name = "name";
var line1 = "line1";
var line2 = "line2";
var line3 = "line3";
var postalCode = "postalcode";
var city = "city";
var state = "stateorprovince";
var country = "country";

var prefix;

if (typeof (arg) === "string") {
prefix = arg;
}
else {
var context = arg;
var sourceFieldName = context.getEventSource().getName();

var index = sourceFieldName.lastIndexOf("_");
if (index > -1) {
prefix = sourceFieldName.substring(0, index + 1);
}
else {
prefix = "";
}
}

AddressService.addressFieldNames = {
name: prefix + name,
line1: prefix + line1,
line2: prefix + line2,
line3: prefix + line3,
postalCode: prefix + postalCode,
city: prefix + city,
state: prefix + state,
country: prefix + country
};

if (!AddressService._bindings[prefix]) {
AddressService._bindings[prefix] = AddressService.addressFieldNames;
}
},

getAddressByPostalCode: function (postalCode, successCallback, failureCallback) {
try {
//localhost:51940/WebService.asmx/
var url = "myUrlHere" + postalCode;

var jqxhr = $.ajax({
url: url,
dataType: "jsonp",
data: null,
success: function (data, textStatus, jqXHR) {
var address;

if (data && data.GetCepResult) {
var result = data.GetCepResult;
address = {
line1: result.TipoLogradouro.Text != "Outros" ? result.TipoLogradouro.Text + " " + result.Logradouro : result.Logradouro,
line3: result.Bairro,
postalCode: result.CEP,
city: result.Cidade,
state: result.Estado,
country: "Brasil"
};
}
else {
address = null;
}

successCallback(address);
},
error: function (jqXHR, textStatus, errorThrown) {
failureCallback(new Error(errorThrown));
},
crossDomain: true
});

}
catch (error) {
failureCallback(error);
}
},

setAddressFields: function (address) {
if (!address) {
var clearAddressMessage = "Não foi encontrado nenhum endereço brasileiro com o CEP informado. Deseja limpar o formulário de endereço?\n\n";
clearAddressMessage += "Para manter o que foi digitado, clique em Cancelar.\n";
clearAddressMessage += "Para limpar o formulário de endereço, clique em OK.";

if (!confirm(clearAddressMessage)) {
return;
}
}

var line1 = address ? address.line1 : null;
//var line2 = address ? address.line2 : null;
var line3 = address ? address.line3 : null;
var city = address ? address.city : null;
var state = address ? address.state : null;
var country = address ? address.country : null;

var fields = AddressService.addressFieldNames;
Xrm.Page.data.entity.attributes.get(fields.line1).setValue(line1);
//Xrm.Page.data.entity.attributes.get(fields.line2).setValue(line2);
Xrm.Page.data.entity.attributes.get(fields.line3).setValue(line3);

if (address) {
Xrm.Page.data.entity.attributes.get(fields.postalCode).setValue(address.postalCode);
}

Xrm.Page.data.entity.attributes.get(fields.city).setValue(city);
Xrm.Page.data.entity.attributes.get(fields.state).setValue(state);
Xrm.Page.data.entity.attributes.get(fields.country).setValue(country);
},

postalCodeOnChange: function (context) {
AddressService.setFieldNames(context);

var fields = AddressService.addressFieldNames;
var postalCodeField = Xrm.Page.data.entity.attributes.get(fields.postalCode);
var postalCode = postalCodeField.getValue();

if (postalCode) {
AddressService.getAddressByPostalCode(
postalCode,
function (address) {
AddressService.setAddressFields(address);
},
function (error) {
alert("Ocorreu um erro ao pesquisar o endereço com CEP: " + postalCode + ".");

AddressService.setAddressFields(null);
}
);
}
else {
AddressService.setAddressFields(null);
}
},

formOnLoad: function (context) {
var prefixes = ["address1_", "address2_", "", "billto_", "shipto_", "gdb2_endereco_"];
for (var i = 0; i < prefixes.length; i++) {
var prefix = prefixes[i];

var testField = Xrm.Page.getAttribute(prefix + "line1");
if (testField) {
AddressService.setFieldNames(prefix);
}
}

},

formOnSave: function (context) {
for (var k in AddressService._bindings) {
var fields = AddressService._bindings[k];

var addressName;

var line1 = Xrm.Page.data.entity.attributes.get(fields.line1).getValue();
if (line1) {
addressName = line1;

var line2 = Xrm.Page.data.entity.attributes.get(fields.line2).getValue();
addressName += line2 ? ", " + line2 : "";

var line3 = Xrm.Page.data.entity.attributes.get(fields.line3).getValue();
addressName += line3 ? " - " + line3 : "";

var postalCode = Xrm.Page.data.entity.attributes.get(fields.postalCode).getValue();
addressName += postalCode ? " - " + postalCode : "";

var city = Xrm.Page.data.entity.attributes.get(fields.city).getValue();
addressName += city ? " - " + city : "";

var state = Xrm.Page.data.entity.attributes.get(fields.state).getValue();
addressName += state ? " - " + state : "";

var country = Xrm.Page.data.entity.attributes.get(fields.country).getValue();
addressName += country ? " - " + country : "";
}
else {
addressName = null;
}

var nameField = Xrm.Page.data.entity.attributes.get(fields.name);
nameField.setValue(addressName);
}
}

};




  • Community Member Profile Picture
    Community Member Microsoft Employee on at
    RE: Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

    But i got the error when i tried to call web service.

    when debugging, i got an error and go to this line: error: function (jqXHR, textStatus, errorThrown) {

    var jqxhr = $.ajax({

    url: url,

    dataType: "jsonp",

    data: null,

    success: function (data, textStatus, jqXHR) {

    var address;

    if (data && data.GetCepResult) {

    var result = data.GetCepResult;

    address = {

    line1: result.TipoLogradouro.Text != "Outros" ? result.TipoLogradouro.Text + " " + result.Logradouro : result.Logradouro,

    line3: result.Bairro,

    postalCode: result.CEP,

    city: result.Cidade,

    state: result.Estado,

    country: "Brasil"

    };

    }

    else {

    address = null;

    }

    successCallback(address);

    },

    error: function (jqXHR, textStatus, errorThrown) {

    failureCallback(new Error(errorThrown));

    },

    crossDomain: true

    });

  • razdynamics Profile Picture
    razdynamics 17,304 User Group Leader on at
    RE: Dynamics crm 2015 - Call ASP.net web service from Ajax in crm form

    Hi Henrique

    To Post Data into CRM from cross Domain try  using  XMLHttpRequest instead of the XRM.Page.data?

Helpful resources

Quick Links

Community Spotlight of the Month

Kudos to Mohamed Amine Mahmoudi!

Blog subscriptions now enabled!

Follow your favorite blogs

TechTalk: How Dataverse and Microsoft Fabric powers ...

Explore the latest advancements in data export and integration within ...

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 283,860 Super User

#2
Martin Dráb Profile Picture

Martin Dráb 225,155 Super User

#3
nmaenpaa Profile Picture

nmaenpaa 101,146

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans