Post From Account Payable Line
The use of JavaScript in Conga solutions is considered an advanced method, requiring JavaScript knowledge, and is not supported by Conga or the Conga support team. You are welcome to use this feature at your own risk.
Follow these steps to create the custom action:
- Click .
- Select the object for which you want to create the custom action.
- Select the tab.
- Click Custom Action screen appears. . The
- Delete the sample code from the Javascript field.
- Copy and paste the following code into the Javascript field.
- Copy the itemID value and paste it as the Action Name.
- Click .
crmc.require(['sfdc', 'KendoPopup'], function (sfdc, popup) { crmc.addCustomAction({ "itemID": "PayBatch_From_Account_Payable_Line", "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_Line__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) { var id = item["AcctSeed__Account_Payable__c"]; if(id === undefined || id === null){ //Do nothing if empty. } else if(!checkIds(id, selectedIds)){ selectedIds.push({name: "ids", value: id}); } }); if(selectedIds.length > 0) { var parameters = { retURL: context.actionGrid.settings.pageURL, }; sfdc.postToVFPage("acctseed", "AccountPayablePayBatch", parameters, selectedIds); } else { popup.popup('No IDs to POST', 'Make sure that Accounts Payable is loaded on the grid and that the fields are not empty'); } } else { popup.popup('Please select records', 'Select at least one record to add to a post to accounts payable.'); } }; //Does the ID already exist within the array? function checkIds(id, arr){ for (var i = 0; i < arr.length; i++) { if(arr[i].value === id){ return true; } }; return false; } } }); });