web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archived)

Updating Fields Using Java

(0) ShareShare
ReportReport
Posted on by

Hi Folks,

I am trying to update two fields based on when a field was approved or rejected.

The Approval Field is an Option Set, choice values are "1" and "2" the other two fields are a User Look Up field and a standard Date/Time Field.

I am not getting any script errors, but the code doesnt seem to be updating the 2 fields. Wondering if anyone could tell me where I am going wrong? Thanks!!!

function OnOppLoad() {
    Xrm.Page.getControl("header_process_ro_gateway1approvedtoproceed").setVisible(false);
    Gateway2ReadOnly()
}


function Gateway2Tier1() {


    var approval = Xrm.Page.getAttribute("ro_tier1approval").getValue()
    var robertsondivisionshortcode = Xrm.Page.data.entity.attributes.get("ro_robertsondivisionshortcode").getValue()
    var estimatedvalue = Xrm.Page.getAttribute("estimatedvalue").getValue()

    if (approval === "1" || "2") {
        var SetUserName = new Array();
        SetUserName[0] = new Object();
        SetUserName[0].id = Xrm.Page.context.getUserId();
        SetUserName[0].entityType = 'systemuser';
        SetUserName[0].name = Xrm.Page.context.getUserName();

        Xrm.Page.getAttribute("ro_decisionbyteir1gateway2").setValue(SetUserName)

        var approvaldate = new Date();


        if (robertsondivisionshortcode != "IsCon") {
            Xrm.Page.getAttribute("ro_gateway1approvedtoproceed").setValue(1);
        }

        if (robertsondivisionshortcode == "IsCon" && estimatedvalue < 3499999) {
            Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);
        }



        Xrm.Page.data.entity.attributes.get("ro_tdecisiondateteir1gateway2").setValue(approvaldate);

    }

    Gateway2ReadOnly()

}




function Gateway2Tier2() {
    var approval = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()

    if (approval === "1" || "2") {
        //set the approved by field
        var SetUserName = new Array();
        SetUserName[0] = new Object();
        SetUserName[0].id = Xrm.Page.context.getUserId();
        SetUserName[0].entityType = 'systemuser';
        SetUserName[0].name = Xrm.Page.context.getUserName();
        Xrm.Page.getAttribute("ro_decisionbyteir2gateway2").setValue(SetUserName)
        var approvaldate = new Date();
        Xrm.Page.data.entity.attributes.get("ro_decisiondateteir2gateway2").setValue(approvaldate);


    }
}

function Gateway2Tier3() {
    var approval = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()

    if (approval === "1" || "2") {
        //set the approved by field
        var SetUserName = new Array();
        SetUserName[0] = new Object();
        SetUserName[0].id = Xrm.Page.context.getUserId();
        SetUserName[0].entityType = 'systemuser';
        SetUserName[0].name = Xrm.Page.context.getUserName();
        Xrm.Page.getAttribute("ro_decisionbyteir3gateway2").setValue(SetUserName)
        var approvaldate = new Date();
        Xrm.Page.data.entity.attributes.get("ro_decisiondateteir3gateway2").setValue(approvaldate);
    }
}

function Gateway2Tier4() {
    var approval = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()

    if (approval === "1" || "2") {
        //set the approved by field
        var SetUserName = new Array();
        SetUserName[0] = new Object();
        SetUserName[0].id = Xrm.Page.context.getUserId();
        SetUserName[0].entityType = 'systemuser';
        SetUserName[0].name = Xrm.Page.context.getUserName();
        Xrm.Page.getAttribute("ro_decisionbyteir4gateway2").setValue(SetUserName)
        var approvaldate = new Date();
        Xrm.Page.data.entity.attributes.get("ro_decisiondateteir4gateway2").setValue(approvaldate);
    }
}







function Gateway2ApprovaltoProcced() {

    //ro_gatewaygroupapproval
    //ro_constructionmdapproval

    var Tier2 = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()
    var Tier3 = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()
    var Tier4 = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()

    var approval = Xrm.Page.getAttribute("ro_tier1approval").getValue()
    var estimatedvalue = Xrm.Page.getAttribute("estimatedvalue").getValue()

    if (approval == 1 && Tier2 == 1 && estimatedvalue < 4999999) {
        Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);
        return;
    }

    if (approval == 1 && Tier3 == 1 && Tier2 == 1 && estimatedvalue < 7499999) {
        Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);
        return;
    }

    if (approval == 1 && Tier3 == 1 && Tier2 == 1 && estimatedvalue > 7499999 && Tier4 == 1) {
        Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);
        return;
    }
    Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(0);

}


function Gateway2ReadOnly() {

    var approval = Xrm.Page.getAttribute("ro_tier1approval").getValue()
    if (approval === "1" || "2") {

        Xrm.Page.ui.controls.get("ro_decisionbyteir1gateway2").setDisabled(true)
        Xrm.Page.ui.controls.get("ro_tdecisiondateteir1gateway2").setDisabled(true)
    }
    else {
        Xrm.Page.ui.controls.get("ro_decisionbyteir1gateway2").setDisabled(false)
        Xrm.Page.ui.controls.get("ro_tdecisiondateteir1gateway2").setDisabled(false)
    }


    var Tier2 = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()
    if (approval === "1" || "2") {

        Xrm.Page.ui.controls.get("ro_decisionbyteir2gateway2").setDisabled(true)
        Xrm.Page.ui.controls.get("ro_decisiondateteir2gateway2").setDisabled(true)
    }
    else {
        Xrm.Page.ui.controls.get("ro_decisionbyteir2gateway2").setDisabled(false)
        Xrm.Page.ui.controls.get("ro_decisiondateteir2gateway2").setDisabled(false)
    }


    var Tier3 = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()
   if (approval === "1" || "2") {

       Xrm.Page.ui.controls.get("ro_decisionbyteir3gateway2").setDisabled(true)
       Xrm.Page.ui.controls.get("ro_decisiondateteir3gateway2").setDisabled(true)
    }
    else {
       Xrm.Page.ui.controls.get("ro_decisionbyteir3gateway2").setDisabled(false)
       Xrm.Page.ui.controls.get("ro_decisiondateteir3gateway2").setDisabled(false)
    }



   var Tier4 = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()
    if (approval === "1" || "2") {

        Xrm.Page.ui.controls.get("ro_decisionbyteir4gateway2").setDisabled(true)
        Xrm.Page.ui.controls.get("ro_decisiondateteir4gateway2").setDisabled(true)
    }
    else {
        Xrm.Page.ui.controls.get("ro_decisionbyteir4gateway2").setDisabled(false)
        Xrm.Page.ui.controls.get("ro_decisiondateteir4gateway2").setDisabled(false)
    }




}


*This post is locked for comments

I have the same question (0)
  • Suggested answer
    a33ik Profile Picture
    84,331 Most Valuable Professional on at
    RE: Updating Fields Using Java

    Hello,

    You should fix all lines where you use

    approval === "1" || "2"

    it should be

    approval === "1" || approval === "2"

  • Blair24 Profile Picture
    on at
    RE: Updating Fields Using Java

    Hi Andrii,

    The code is still failing to "fire"?

    function OnCrmPageLoad() {

       Xrm.Page.getControl("header_process_ro_hiddengateway2approvedtoproceed").setVisible(false);

       Tier1();

       Tier2();

       Tier3();

       Tier4();

       ApprovalGateway2ReadOnly()

       }

    //Tier 1 Copy Approval User & Time

    function Tier1() {

       var approvalstatus = Xrm.Page.getAttribute("ro_tier1approval").getValue()

       if (approvalstatus === "1" || approvalstatus === "2") {

           var setUservalue = new Array();

           setUservalue[0] = new Object();

           setUservalue[0].id = Xrm.Page.context.getUserId();

           setUservalue[0].entityType = 'systemuser';

           setUservalue[0].name = Xrm.Page.context.getUserName();

           Xrm.Page.getAttribute("ro_decisionbyteir1gateway2").setValue(setUservalue)

           var currentdate = new Date();

           Xrm.Page.data.entity.attributes.get("ro_tdecisiondateteir1gateway2").setValue(currentdate);

       }

    }

    //Tier 2 Copy Approval User & Time

    function Tier2() {

       var approvalstatus = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()

       if (approvalstatus === "1" || approvalstatus === "2") {

           var setUservalue = new Array();

           setUservalue[0] = new Object();

           setUservalue[0].id = Xrm.Page.context.getUserId();

           setUservalue[0].entityType = 'systemuser';

           setUservalue[0].name = Xrm.Page.context.getUserName();

           Xrm.Page.getAttribute("ro_decisionbyteir2gateway2").setValue(setUservalue)

           var currentdate = new Date();

           Xrm.Page.data.entity.attributes.get("ro_decisiondateteir2gateway2").setValue(currentdate);

       }

    }

    //Tier 3 Copy Approval User & Time

    function Tier3() {

       var approvalstatus = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()

       if (approvalstatus === "1" || approvalstatus === "2") {

           var setUservalue = new Array();

           setUservalue[0] = new Object();

           setUservalue[0].id = Xrm.Page.context.getUserId();

           setUservalue[0].entityType = 'systemuser';

           setUservalue[0].name = Xrm.Page.context.getUserName();

           Xrm.Page.getAttribute("ro_decisionbyteir3gateway2").setValue(setUservalue)

           var currentdate = new Date();

           Xrm.Page.data.entity.attributes.get("ro_decisiondateteir3gateway2").setValue(currentdate);

       }

    }

    //Tier 4 Copy Approval User & Time

    function Tier4() {

       var approvalstatus = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()

       if (approvalstatus === "1" || approvalstatus === "2") {

           var setUservalue = new Array();

           setUservalue[0] = new Object();

           setUservalue[0].id = Xrm.Page.context.getUserId();

           setUservalue[0].entityType = 'systemuser';

           setUservalue[0].name = Xrm.Page.context.getUserName();

           Xrm.Page.getAttribute("ro_decisionbyteir4gateway2").setValue(setUservalue)

           var currentdate = new Date();

           Xrm.Page.data.entity.attributes.get("ro_decisiondateteir4gateway2").setValue(currentdate);

       }

    }

    //Gateway 2 Set Approval

    function approvedtoproceed() {

       var Tier2 = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()

       var Tier3 = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()

       var Tier4 = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()

       var approvalstatus = Xrm.Page.getAttribute("ro_tier1approval").getValue()

       var estimatedvalue = Xrm.Page.getAttribute("estimatedvalue").getValue()

       if (approvalstatus == 1 && Tier2 == 1 && estimatedvalue < 4999999) {

           Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);

           return;

       }

       if (approvalstatus == 1 && Tier3 == 1 && Tier2 == 1 && estimatedvalue < 7499999) {

           Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);

           return;

       }

       if (approvalstatus == 1 && Tier3 == 1 && Tier2 == 1 && estimatedvalue > 7499999 && Tier4 == 1) {

           Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(1);

           return;

       }

       Xrm.Page.getAttribute("ro_hiddengateway2approvedtoproceed").setValue(0);

    }

    //Set Ready only once approved or rejected

    function ApprovalGateway2ReadOnly() {

       var Tier1 = Xrm.Page.getAttribute("ro_tier1approval").getValue()

       if (Tier1 === "1" || Tier1 === "2") {

           Xrm.Page.ui.controls.get("ro_decisionbyteir1gateway2").setDisabled(true)

           Xrm.Page.ui.controls.get("ro_tdecisiondateteir1gateway2").setDisabled(true)

       }

       else {

           Xrm.Page.ui.controls.get("ro_decisionbyteir1gateway2").setDisabled(false)

           Xrm.Page.ui.controls.get("ro_tdecisiondateteir1gateway2").setDisabled(false)

       }

       var Tier2 = Xrm.Page.getAttribute("ro_tier2gateway2apporvalby").getValue()

       if (Tier2 === "1" || Tier2 === "2") {

           Xrm.Page.ui.controls.get("ro_decisionbyteir2gateway2").setDisabled(true)

           Xrm.Page.ui.controls.get("ro_decisiondateteir2gateway2").setDisabled(true)

       }

       else {

           Xrm.Page.ui.controls.get("ro_decisionbyteir2gateway2").setDisabled(false)

           Xrm.Page.ui.controls.get("ro_decisiondateteir2gateway2").setDisabled(false)

       }

       var Tier3 = Xrm.Page.getAttribute("ro_tier3approvalgateway2").getValue()

       if (Tier3 === "1" || Tier3 === "2") {

           Xrm.Page.ui.controls.get("ro_decisionbyteir3gateway2").setDisabled(true)

           Xrm.Page.ui.controls.get("ro_decisiondateteir3gateway2").setDisabled(true)

       }

       else {

           Xrm.Page.ui.controls.get("ro_decisionbyteir3gateway2").setDisabled(false)

           Xrm.Page.ui.controls.get("ro_decisiondateteir3gateway2").setDisabled(false)

       }

       var Tier4 = Xrm.Page.getAttribute("ro_tier4approvalgateway2").getValue()

       if (Tier4 === "1" || Tier4 === "2") {

           Xrm.Page.ui.controls.get("ro_decisionbyteir4gateway2").setDisabled(true)

           Xrm.Page.ui.controls.get("ro_decisiondateteir4gateway2").setDisabled(true)

       }

       else {

           Xrm.Page.ui.controls.get("ro_decisionbyteir4gateway2").setDisabled(false)

           Xrm.Page.ui.controls.get("ro_decisiondateteir4gateway2").setDisabled(false)

       }

    }

  • Suggested answer
    a33ik Profile Picture
    84,331 Most Valuable Professional on at
    RE: Updating Fields Using Java

    What type of fields are ro_tier4approvalgateway? If fields are of optionset type then getValue will return int and your === comparison will always return false because === means equal values and types.

    Just FYI: 2 == "2" returns true

    2 === "2" returns false

    So you have 2 ways to fix your issue:

    1. Replace === with ==

    2. Use int values in comparisons like  if (Tier4 === 1 || Tier4 === 2) {

    And general suggestion - you should learn how to troubleshoot your code using tools. In your particular case - browser tools. Check this article - blogs.msdn.microsoft.com/.../debugging-custom-javascript-code-in-crm-using-browser-developer-tools

  • Suggested answer
    Dynamics_Alok Profile Picture
    1,746 on at
    RE: Updating Fields Using Java

    Yes ,Agree with Andrii .

    Optionset value is of long data type ,it is not string.

    so compare with 1,2 not with "1","2".

  • Blair24 Profile Picture
    on at
    RE: Updating Fields Using Java

    Much appericated for the help guys!

    Still brushing up on my Java!!!

    That seems to have worked, only issue is, the date field is being replaced everytime the page is refreshed, not then the field was changed to values 1 or 2?

  • Suggested answer
    a33ik Profile Picture
    84,331 Most Valuable Professional on at
    RE: Updating Fields Using Java

    I believe that's because your Tier1, Tier2, Tier3 and Tier4 methods are called during load of form:

    function OnCrmPageLoad() {

      Xrm.Page.getControl("header_process_ro_hiddengateway2approvedtoproceed").setVisible(false);

      Tier1();

      Tier2();

      Tier3();

      Tier4();

      ApprovalGateway2ReadOnly()

      }

    To make it work properly you will have to redesign your code.

  • Community Member Profile Picture
    on at
    RE: Updating Fields Using Java

    Hi Andrii,

    do you have an article about auto-fill a field depends on selected lookup?or can you help me?

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Abhilash Warrier – Community Spotlight

We are honored to recognize Abhilash Warrier as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics CRM (Archived)

#1
Community Member Profile Picture

Community Member 2

#1
HR-09070029-0 Profile Picture

HR-09070029-0 2

#1
UllrSki Profile Picture

UllrSki 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans