Copy data from other Opportunity to new Opportunity
// Add a button on opportunity form. Add this file as web resource and call the function copyFromOpportunity on button action
var serverUrl = null;
serverUrl = Xrm.Page.context.getServerUrl();
//The XRM OData end-point
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
function copyFromOpportunity() {
retrieveRecord("Opportunity Lookup View", "SavedQuerySet", retrieveViewCompleted, null);
}
function retrieveOpportunity(id) {
retrieveRecord(id, "opportunitySet", retrieveOpportunityCompleted, null);
}
function retrieveViewCompleted(data, textStatus, XmlHttpRequest) {
var view = data[0];
var viewId = view.SavedQueryId;
if (viewId == null) {
alert('null: setting value');
}
var queryStringParams = Xrm.Page.context.getQueryStringParameters();
var etc = 0;
for (var item in queryStringParams) {
if (item == 'etc') {
etc = queryStringParams[item];
break;
}
}
var customer = new Array();
customer = Xrm.Page.getAttribute('customerid').getValue();
var customerId = customer[0].id;
var viewUrl = serverUrl + '/_controls/lookup/lookupinfo.aspx?AllowFilterOff=1&DefaultType=' + etc + '&DefaultViewId=' + viewId + '&DisableQuickFind=0&DisableViewPicker=1&LookupStyle=single&ShowNewButton=0&ShowPropButton=1&browse=0&objecttypes=' + etc;
// alert(viewUrl);
var retVal = window.showModalDialog(viewUrl, "", "width=900px,height=600px,resizable=1");
if (retVal != null) {
var kpLookup = retVal.items;
retrieveKeyPlayer(kpLookup[0].id);
}
}
function retrieveOpportunityCompleted(data, textStatus, XmlHttpRequest) {
var opportunity = data;
var opportunityName = opportunity.name;
var customerLookup = new Array();
if (opportunity.customerId.Id != null) {
customerLookup[0] = new Object();
customerLookup[0].id = opportunity.customerId.Id;
customerLookup[0].name = opportunity.customerId.Name;
customerLookup[0].entityType = 'account';
}
Xrm.Page.getAttribute('name').setValue(name);
Xrm.Page.getAttribute('customerId').setValue(customerLookup);
// Setrequired fields values
}
function errorFromCallback(XmlHttpRequest, textStatus, error) {
alert('error: ' + error);
}
function retrieveRecord(id, odataSetName, successCallback, errorCallback) {
if (!id) {
alert("record id is required.");
return;
}
if (!odataSetName) {
alert("odataSetName is required.");
return;
}
if (odataSetName == 'opportunitySet') {
$.ajax(
{
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "(guid'" + id + "')",
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (successCallback) {
successCallback(data.d, textStatus, XmlHttpRequest);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
else
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}
else if (odataSetName == 'SavedQuerySet') {
//alert("SavedQuerySet");
$.ajax(
{
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?$filter=Name eq '" + id + "'",
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (successCallback) {
//alert(serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?$filter=Name eq '" + id + "'");
successCallback(data.d.results, textStatus, XmlHttpRequest);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
else
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}
}
// Add a button on opportunity form. Add this file as web resource and call the function copyFromOpportunity on button action
var serverUrl = null;
serverUrl = Xrm.Page.context.getServerUrl();
//The XRM OData end-point
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
function copyFromOpportunity() {
retrieveRecord("Opportunity Lookup View", "SavedQuerySet", retrieveViewCompleted, null);
}
function retrieveOpportunity(id) {
retrieveRecord(id, "opportunitySet", retrieveOpportunityCompleted, null);
}
function retrieveViewCompleted(data, textStatus, XmlHttpRequest) {
var view = data[0];
var viewId = view.SavedQueryId;
if (viewId == null) {
alert('null: setting value');
}
var queryStringParams = Xrm.Page.context.getQueryStringParameters();
var etc = 0;
for (var item in queryStringParams) {
if (item == 'etc') {
etc = queryStringParams[item];
break;
}
}
var customer = new Array();
customer = Xrm.Page.getAttribute('customerid').getValue();
var customerId = customer[0].id;
var viewUrl = serverUrl + '/_controls/lookup/lookupinfo.aspx?AllowFilterOff=1&DefaultType=' + etc + '&DefaultViewId=' + viewId + '&DisableQuickFind=0&DisableViewPicker=1&LookupStyle=single&ShowNewButton=0&ShowPropButton=1&browse=0&objecttypes=' + etc;
// alert(viewUrl);
var retVal = window.showModalDialog(viewUrl, "", "width=900px,height=600px,resizable=1");
if (retVal != null) {
var kpLookup = retVal.items;
retrieveKeyPlayer(kpLookup[0].id);
}
}
function retrieveOpportunityCompleted(data, textStatus, XmlHttpRequest) {
var opportunity = data;
var opportunityName = opportunity.name;
var customerLookup = new Array();
if (opportunity.customerId.Id != null) {
customerLookup[0] = new Object();
customerLookup[0].id = opportunity.customerId.Id;
customerLookup[0].name = opportunity.customerId.Name;
customerLookup[0].entityType = 'account';
}
Xrm.Page.getAttribute('name').setValue(name);
Xrm.Page.getAttribute('customerId').setValue(customerLookup);
// Setrequired fields values
}
function errorFromCallback(XmlHttpRequest, textStatus, error) {
alert('error: ' + error);
}
function retrieveRecord(id, odataSetName, successCallback, errorCallback) {
if (!id) {
alert("record id is required.");
return;
}
if (!odataSetName) {
alert("odataSetName is required.");
return;
}
if (odataSetName == 'opportunitySet') {
$.ajax(
{
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "(guid'" + id + "')",
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (successCallback) {
successCallback(data.d, textStatus, XmlHttpRequest);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
else
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}
else if (odataSetName == 'SavedQuerySet') {
//alert("SavedQuerySet");
$.ajax(
{
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?$filter=Name eq '" + id + "'",
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: function (data, textStatus, XmlHttpRequest) {
if (successCallback) {
//alert(serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?$filter=Name eq '" + id + "'");
successCallback(data.d.results, textStatus, XmlHttpRequest);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
if (errorCallback)
errorCallback(XmlHttpRequest, textStatus, errorThrown);
else
errorHandler(XmlHttpRequest, textStatus, errorThrown);
}
});
}
}
No comments:
Post a Comment