Quantcast
Channel: Microsoft Dynamics CRM Forum - Recent Threads
Viewing all articles
Browse latest Browse all 79901

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

$
0
0

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);
}
}

};





Viewing all articles
Browse latest Browse all 79901

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>