crmc.require(['sfdc', 'KendoPopup'], function (sfdc, popup) { crmc.addCustomAction({ "itemID": "PayBatchAccountsPayable", "isAvailable": function (context) { // This function is called before the action item is displayed and returns a boolean if the item should be displayed // By default determine availability based on Feature Security for this action var isEnabled = this.featureSecurity.getSetting(context.objectDescribe.name, this.itemID) !== false; // Only allow batch adding from Accounts object for now var isVisible = context.objectDescribe.name == ("AcctSeed__Account_Payable__c"; var multipleSelected = context.selectedRows && context.selectedRows.length > 0; return isVisible && isEnabled && multipleSelected; }, "getLabel": function (context) { // This function returns the display label of the action item and is called before the item is shown return "Pay Batch"; }, "createSubmenuItems": function (context) { // If this function returns additional action item objects, they will appear as submenu items return []; }, "click": function (context) { //https://acctseed.cs7.visual.force.com/apex/AccountPayablePayBatch?retURL=%2Fa0H%3Ffcf%3D00BF0000006rihU%26rolodexIndex%3D-1%26page%3D1&wrapMassAction=1&scontrolCaching=1 // Include static resource from managed namespace pre-creates session and allows us to safely POST data without redirect issue var head = document.getElementsByTagName('HEAD').item(0); var script = document.createElement("script"); script.type = "text/javascript"; head.appendChild(script); var domains = window.location.hostname.split("."); if (domains.length == 3) { instance = domains[0]; } else { instance = domains[1]; } script.src = "https://AcctSeed." + instance + ".visual.force.com/resource/AcctSeed__ButtonJSFunctions?ts=" + new Date().getTime(); script.onerror = function() { // Couldn't load app script, assume not installed popup.popup("Could not obtain session for Accounting Seed Financial Suite is the app installed?"); }; script.onload = function() { if (context.selectedRows.length > 0) { var selectedIds = []; Object.each(context.selectedRows, function (item) { selectedIds.push({name: "ids", value: item["Id"]}); }); var parameters = { retURL: context.actionGrid.settings.pageURL, }; sfdc.postToVFPage("acctseed", "AccountPayablePayBatch", parameters, selectedIds); } else { popup.popup('Please select records', 'Select at least one record to add to a post to accounts payable.'); } }; } });});