Validation Rule with both AND/OR logic












2















I need to require the Length of SOW field to be entered if the opp is not in Long Range Forecast or Discovery stage. If I just have one of the stages in the formula, it fires just as expected. Once I add in the OR with the other stage, it does not fire as expected and is requiring the field to be entered for all stages.



OR( 
NOT(ISPICKVAL(StageName, "Long Range Forecast")) ,
NOT(ISPICKVAL(StageName, "Discovery")),
AND(
ISBLANK( Length_of_SOW_Months__c ))
)









share|improve this question





























    2















    I need to require the Length of SOW field to be entered if the opp is not in Long Range Forecast or Discovery stage. If I just have one of the stages in the formula, it fires just as expected. Once I add in the OR with the other stage, it does not fire as expected and is requiring the field to be entered for all stages.



    OR( 
    NOT(ISPICKVAL(StageName, "Long Range Forecast")) ,
    NOT(ISPICKVAL(StageName, "Discovery")),
    AND(
    ISBLANK( Length_of_SOW_Months__c ))
    )









    share|improve this question



























      2












      2








      2








      I need to require the Length of SOW field to be entered if the opp is not in Long Range Forecast or Discovery stage. If I just have one of the stages in the formula, it fires just as expected. Once I add in the OR with the other stage, it does not fire as expected and is requiring the field to be entered for all stages.



      OR( 
      NOT(ISPICKVAL(StageName, "Long Range Forecast")) ,
      NOT(ISPICKVAL(StageName, "Discovery")),
      AND(
      ISBLANK( Length_of_SOW_Months__c ))
      )









      share|improve this question
















      I need to require the Length of SOW field to be entered if the opp is not in Long Range Forecast or Discovery stage. If I just have one of the stages in the formula, it fires just as expected. Once I add in the OR with the other stage, it does not fire as expected and is requiring the field to be entered for all stages.



      OR( 
      NOT(ISPICKVAL(StageName, "Long Range Forecast")) ,
      NOT(ISPICKVAL(StageName, "Discovery")),
      AND(
      ISBLANK( Length_of_SOW_Months__c ))
      )






      validation






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 8 at 19:50









      David Reed

      33.4k72052




      33.4k72052










      asked Jan 8 at 19:49









      Laura BabbLaura Babb

      428




      428






















          1 Answer
          1






          active

          oldest

          votes


















          4














          Your logical condition is wrong. You will have to use AND condition with negation of the both the stage values like below.



          AND( /* This ensures all the condition are met*/
          ISBLANK( Length_of_SOW_Months__c ),
          TEXT(StageName)<>"Discovery",
          TEXT(StageName)<>"Long Range Forecast"
          )


          Edit: Based on Adrians Comments



          Its also ideal to reduce the the reference count to picklist as were checking for stage name multiple times, so we can leverage CASE function here.



          AND(ISBLANK( Length_of_SOW_Months__c ),
          CASE(StageName,
          "Discovery", 1,
          "Long Range Forecast", 1,
          0)=0
          )





          share|improve this answer

























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "459"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f245882%2fvalidation-rule-with-both-and-or-logic%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            Your logical condition is wrong. You will have to use AND condition with negation of the both the stage values like below.



            AND( /* This ensures all the condition are met*/
            ISBLANK( Length_of_SOW_Months__c ),
            TEXT(StageName)<>"Discovery",
            TEXT(StageName)<>"Long Range Forecast"
            )


            Edit: Based on Adrians Comments



            Its also ideal to reduce the the reference count to picklist as were checking for stage name multiple times, so we can leverage CASE function here.



            AND(ISBLANK( Length_of_SOW_Months__c ),
            CASE(StageName,
            "Discovery", 1,
            "Long Range Forecast", 1,
            0)=0
            )





            share|improve this answer






























              4














              Your logical condition is wrong. You will have to use AND condition with negation of the both the stage values like below.



              AND( /* This ensures all the condition are met*/
              ISBLANK( Length_of_SOW_Months__c ),
              TEXT(StageName)<>"Discovery",
              TEXT(StageName)<>"Long Range Forecast"
              )


              Edit: Based on Adrians Comments



              Its also ideal to reduce the the reference count to picklist as were checking for stage name multiple times, so we can leverage CASE function here.



              AND(ISBLANK( Length_of_SOW_Months__c ),
              CASE(StageName,
              "Discovery", 1,
              "Long Range Forecast", 1,
              0)=0
              )





              share|improve this answer




























                4












                4








                4







                Your logical condition is wrong. You will have to use AND condition with negation of the both the stage values like below.



                AND( /* This ensures all the condition are met*/
                ISBLANK( Length_of_SOW_Months__c ),
                TEXT(StageName)<>"Discovery",
                TEXT(StageName)<>"Long Range Forecast"
                )


                Edit: Based on Adrians Comments



                Its also ideal to reduce the the reference count to picklist as were checking for stage name multiple times, so we can leverage CASE function here.



                AND(ISBLANK( Length_of_SOW_Months__c ),
                CASE(StageName,
                "Discovery", 1,
                "Long Range Forecast", 1,
                0)=0
                )





                share|improve this answer















                Your logical condition is wrong. You will have to use AND condition with negation of the both the stage values like below.



                AND( /* This ensures all the condition are met*/
                ISBLANK( Length_of_SOW_Months__c ),
                TEXT(StageName)<>"Discovery",
                TEXT(StageName)<>"Long Range Forecast"
                )


                Edit: Based on Adrians Comments



                Its also ideal to reduce the the reference count to picklist as were checking for stage name multiple times, so we can leverage CASE function here.



                AND(ISBLANK( Length_of_SOW_Months__c ),
                CASE(StageName,
                "Discovery", 1,
                "Long Range Forecast", 1,
                0)=0
                )






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Jan 8 at 20:16

























                answered Jan 8 at 19:54









                codeyinthecloudcodeyinthecloud

                3,4971426




                3,4971426






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Salesforce Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f245882%2fvalidation-rule-with-both-and-or-logic%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

                    Does disintegrating a polymorphed enemy still kill it after the 2018 errata?

                    A Topological Invariant for $pi_3(U(n))$