• KarinEis
  • NEWBIE
  • 0 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies
I need to replace this code with a Lightning Action or some other alternative so I can add a button to the Opportunity Page in LEX.  I have been unsuccessful with finding a template to use as a guide and I'm not a Developer.  Any guidance would be greatly appreciated.

{!REQUIRESCRIPT('//code.jquery.com/jquery-1.6.2.min.js')}
{!REQUIRESCRIPT("/soap/ajax/22.0/connection.js")}
var myquery = "SELECT Id, Opportunity.Order_Num__c FROM Opportunity WHERE Id = '{!Opportunity.Id}'";
var result = sforce.connection.query(myquery);
var records = result.getArray("records");
var recordToUpdate;
if (records[0]) {
recordToUpdate = records[0];
}
if (recordToUpdate.Order_Num__c) {
alert("Order already exists");
}
else if (!recordToUpdate) {
alert("Record not found (shouldn't happen)");
}
else {
var dataToSend = {
summary: "{!Opportunity.Name}",
purchaseOrder: "{!Opportunity.Purchase_Order_or_Job__c}",
reporter: "{!Opportunity.OwnerFullName}"
};

jQuery.ajax(
{
dataType: "jsonp",
crossDomain: true,
data: dataToSend,
url: 'https://Something.CompanyABC.com:1234/order/createOrder'
})
.done(function (data) {
if (data.error) {
alert("Error: " + data.error);
}
else if (data) {
setSaleforceValues(data);
}
else {
alert("No response data returned!");
}
})
.fail(function (error) {
alert("Error occurred!");
alert(error);
})
.always(function () {
"use strict";
//alert( "complete" );
});
}

function setSaleforceValues(data) {
var newRecords = [];
if (recordToUpdate) {
var errorMessage = "";
var haveRecordChange = false;
if (data.orderUrl) {
recordToUpdate.Order_Num__c = data.orderUrl;
haveRecordChange = true;
}
else {
errorMessage += "No orderUrl returned!";
}

if (data.orderKey) {
recordToUpdate.Order_Key__c = data.orderKey;
haveRecordChange = true;
}
else {
errorMessage += "\nNo orderKey returned!";
}

if (data.ordersAppUrl) {
recordToUpdate.Model_Reports__c = data.ordersAppUrl;
haveRecordChange = true;
}
else {
errorMessage += "\nNo ordersAppUrl returned!";
}

if (errorMessage.length) {
alert(errorMessage);
}

if (haveRecordChange) {
newRecords.push(recordToUpdate);
}
}

if (newRecords.length) {
result = sforce.connection.update(newRecords);
window.location.reload();
}
else {
alert("No updates to Salesforce made");
}
}
I need to replace this code with a Lightning Action or some other alternative so I can add a button to the Opportunity Page in LEX.  I have been unsuccessful with finding a template to use as a guide and I'm not a Developer.  Any guidance would be greatly appreciated.

{!REQUIRESCRIPT('//code.jquery.com/jquery-1.6.2.min.js')}
{!REQUIRESCRIPT("/soap/ajax/22.0/connection.js")}
var myquery = "SELECT Id, Opportunity.Order_Num__c FROM Opportunity WHERE Id = '{!Opportunity.Id}'";
var result = sforce.connection.query(myquery);
var records = result.getArray("records");
var recordToUpdate;
if (records[0]) {
recordToUpdate = records[0];
}
if (recordToUpdate.Order_Num__c) {
alert("Order already exists");
}
else if (!recordToUpdate) {
alert("Record not found (shouldn't happen)");
}
else {
var dataToSend = {
summary: "{!Opportunity.Name}",
purchaseOrder: "{!Opportunity.Purchase_Order_or_Job__c}",
reporter: "{!Opportunity.OwnerFullName}"
};

jQuery.ajax(
{
dataType: "jsonp",
crossDomain: true,
data: dataToSend,
url: 'https://Something.CompanyABC.com:1234/order/createOrder'
})
.done(function (data) {
if (data.error) {
alert("Error: " + data.error);
}
else if (data) {
setSaleforceValues(data);
}
else {
alert("No response data returned!");
}
})
.fail(function (error) {
alert("Error occurred!");
alert(error);
})
.always(function () {
"use strict";
//alert( "complete" );
});
}

function setSaleforceValues(data) {
var newRecords = [];
if (recordToUpdate) {
var errorMessage = "";
var haveRecordChange = false;
if (data.orderUrl) {
recordToUpdate.Order_Num__c = data.orderUrl;
haveRecordChange = true;
}
else {
errorMessage += "No orderUrl returned!";
}

if (data.orderKey) {
recordToUpdate.Order_Key__c = data.orderKey;
haveRecordChange = true;
}
else {
errorMessage += "\nNo orderKey returned!";
}

if (data.ordersAppUrl) {
recordToUpdate.Model_Reports__c = data.ordersAppUrl;
haveRecordChange = true;
}
else {
errorMessage += "\nNo ordersAppUrl returned!";
}

if (errorMessage.length) {
alert(errorMessage);
}

if (haveRecordChange) {
newRecords.push(recordToUpdate);
}
}

if (newRecords.length) {
result = sforce.connection.update(newRecords);
window.location.reload();
}
else {
alert("No updates to Salesforce made");
}
}