You need to sign in to do that
Don't have an account?
Amack Dawg
[JS Button] Syntax Error when assigning variable with SFDC functions?
I have a Salesforce javascript List-View Button that I am trying to compile but I keep encountering a Syntax Error. The Code area highlights the '=' in this Statement:
This variable precedes a switch statement. I was able to successfully compile previously, but I had to introduce Salesforce Function-specific syntax.
Does anything in this line of code look syntatically incorrect?
Here is the entire Button code block for context:
var dayOfWeekVal = {!MOD( ({!TODAY()} - {!DATE(1900,1,8)} ), 7)};
This variable precedes a switch statement. I was able to successfully compile previously, but I had to introduce Salesforce Function-specific syntax.
Does anything in this line of code look syntatically incorrect?
Here is the entire Button code block for context:
{!REQUIRESCRIPT("/soap/ajax/36.0/connection.js")} var recordIds = {!GETRECORDIDS( $ObjectType.Creative_ID__c )}; var updatedTrackers = []; //create variable to store the new Creative Start Date var broadcastCrtvStart; if (recordIds[0] == null) { alert("Please select at least one Creative ID.") } else { var dayOfWeekVal = {!MOD( ({!TODAY()} - {!DATE(1900,1,8)} ), 7)}; switch( dayOfWeekVal ) { case 0: broadcastCrtvStart = {!TODAY()} + 7; break; case 1: broadcastCrtvStart = {!TODAY()} + 6; break; case 2: broadcastCrtvStart = {!TODAY()} + 5; break; case 3: broadcastCrtvStart = {!TODAY()} + 4; break; case 4: broadcastCrtvStart = {!TODAY()} + 3; break; case 5: broadcastCrtvStart = {!TODAY()} + 2; break; case 6: broadcastCrtvStart = {!TODAY()} + 1; default: broadcastCrtvStart = {!TODAY()}; } var errors = []; for (var i = 0; i < recordIds.length; i++) { var ctracker = new sforce.SObject("Creative_ID__c"); ctracker.id = recordIds[i]; ctracker.Creative_Start_Date__c = broadcastCrtvStart; updatedTrackers.push(ctracker); } result = sforce.connection.update(updatedTrackers); if (result && result.length){ var numFailed = 0; var numSucceeded = 0; for(var i = 0; i < result.length; i++) { var res = result[i]; if (res && res.success == 'true'){ numSucceeded++; } else { var es = res.getArray("errors"); if (es.length > 0) { errors.push(es[0].message); } numFailed++; } } } if (numFailed > 0){ alert("Failed: " + numFailed + "\nSucceeded: " + numSucceeded + " \n Due to: " + errors.join("\n")); } else { alert("Number of Creative IDs turned on: " + numSucceeded); } window.location.reload(); }
<pre>var dayOfWeekVal = {!MOD( (TODAY() - DATE(1900,1,8)), 7)};</pre>
In all such cases where you have to use multiple functions, just use one single merge Syntax.
I tested this and this works.