0

Goal: A user should expect to increment a custom object's (number type) field by 1 each time the custom button is clicked.

Initial block:

    {!REQUIRESCRIPT("/soap/ajax/37.0/connection.js")}

    try{
    //initializing the custom object
        var updateMediaPlacement = new sforce.SObject("Media_Placement__c");

        updateMediaPlacement.Id = "{!Media_Placement__c.Id}";

    result = sforce.connection.update(updateMediaPlacement);
    }

1 Answer 1

0

This may be an obvious exercise to some, but I overcomplicated it initially and after trawling through Google, wanted to document my solution for javascript/Salesforce beginners:

{!REQUIRESCRIPT("/soap/ajax/37.0/connection.js")}

var mpArray = [];

try{
    var updateMP = new sforce.SObject("Media_Placement__c");

    updateMP.Id = "{!Media_Placement__c.Id}";

    var incorrectCount = "{!Media_Placement__c.Incorrect_Name_Count__c}"

    alert(updateMP.Id);

    //Intializing a number data object
    var newNumber = Number(0);

    //alert(incorrectCount);

    //Ensuring 1 is initialized as a number when added to the incorrectCount SObject field
    incorrectCount = newNumber + 1;


    //alert(incorrectCount);

    //Adding the existing value in the field; if field is null SF passes in 0 digit value
    updateMP.Incorrect_Name_Count__c = {!Media_Placement__c.Incorrect_Name_Count__c} + incorrectCount;

    mpArray.push(updateMP)

    result = sforce.connection.update(mpArray);

//don't forget error handling-- for another thread
}

This by itself is likely overcomplicated, but I wanted to ensure that I wasn't concatenating strings but actually performing a mathematical operation since Javascript is infamously loosely typed.

Hope this helps!

2
  • WHat was the issue?
    – Eric
    Commented Mar 5, 2017 at 6:33
  • @Eric runtime kept returning 'unexpected number' or 'unknown' value issues. The other issue is that Javascript would convert the number field's stored value into a string, and so the '+' operator would concatenate the values instead of add them. I addressed this by initializing a new number object and adding that to the existing field value and then assigning it back to the field
    – GPP
    Commented Mar 5, 2017 at 20:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .