Trigger: Find out the name of the object the trigger is firing for?












2















Is it possible for the trigger to see the name of the object it's firing for? Say can I make the OpportunityTrigger be aware that the object name it's firing for is Opportunity without hardcoding the object name in the code?



EDIT



I want to use Custom Metadata to make Object_To_Track_mdt. Once a trigger fires I want to use the object name the trigger is firing for to see if the object needs to be tracked or not. Here's a very rough code sample I have in mind:



Object_To_Track__mdt trackedObject = [
SELECT Id,
(SELECT Id FROM Fields_To_Track__r)
FROM Object_To_Track__mdt
WHERE DeveloperName='Lead'
];
if (trackedObject != null && trackedObject.Fields_To_Track__r.size() > 0) {
// Verify if the modified fields for Lead need to be tracked or not.
}









share|improve this question





























    2















    Is it possible for the trigger to see the name of the object it's firing for? Say can I make the OpportunityTrigger be aware that the object name it's firing for is Opportunity without hardcoding the object name in the code?



    EDIT



    I want to use Custom Metadata to make Object_To_Track_mdt. Once a trigger fires I want to use the object name the trigger is firing for to see if the object needs to be tracked or not. Here's a very rough code sample I have in mind:



    Object_To_Track__mdt trackedObject = [
    SELECT Id,
    (SELECT Id FROM Fields_To_Track__r)
    FROM Object_To_Track__mdt
    WHERE DeveloperName='Lead'
    ];
    if (trackedObject != null && trackedObject.Fields_To_Track__r.size() > 0) {
    // Verify if the modified fields for Lead need to be tracked or not.
    }









    share|improve this question



























      2












      2








      2








      Is it possible for the trigger to see the name of the object it's firing for? Say can I make the OpportunityTrigger be aware that the object name it's firing for is Opportunity without hardcoding the object name in the code?



      EDIT



      I want to use Custom Metadata to make Object_To_Track_mdt. Once a trigger fires I want to use the object name the trigger is firing for to see if the object needs to be tracked or not. Here's a very rough code sample I have in mind:



      Object_To_Track__mdt trackedObject = [
      SELECT Id,
      (SELECT Id FROM Fields_To_Track__r)
      FROM Object_To_Track__mdt
      WHERE DeveloperName='Lead'
      ];
      if (trackedObject != null && trackedObject.Fields_To_Track__r.size() > 0) {
      // Verify if the modified fields for Lead need to be tracked or not.
      }









      share|improve this question
















      Is it possible for the trigger to see the name of the object it's firing for? Say can I make the OpportunityTrigger be aware that the object name it's firing for is Opportunity without hardcoding the object name in the code?



      EDIT



      I want to use Custom Metadata to make Object_To_Track_mdt. Once a trigger fires I want to use the object name the trigger is firing for to see if the object needs to be tracked or not. Here's a very rough code sample I have in mind:



      Object_To_Track__mdt trackedObject = [
      SELECT Id,
      (SELECT Id FROM Fields_To_Track__r)
      FROM Object_To_Track__mdt
      WHERE DeveloperName='Lead'
      ];
      if (trackedObject != null && trackedObject.Fields_To_Track__r.size() > 0) {
      // Verify if the modified fields for Lead need to be tracked or not.
      }






      apex trigger custom-metadata sobjecttype






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 4 hours ago









      Adrian Larson

      108k19115243




      108k19115243










      asked 4 hours ago









      ArthleteArthlete

      914715




      914715






















          1 Answer
          1






          active

          oldest

          votes


















          5














          If you don't care about the delete contexts, you can just do:



          SObjectType triggerType = trigger.new.getSObjectType();


          It doesn't add much complexity, however, to use a ternary to check for the null case:



          SObjectType triggerType = trigger.isDelete ? 
          trigger.old.getSObjectType() :
          trigger.new.getSObjectType();





          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%2f249908%2ftrigger-find-out-the-name-of-the-object-the-trigger-is-firing-for%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









            5














            If you don't care about the delete contexts, you can just do:



            SObjectType triggerType = trigger.new.getSObjectType();


            It doesn't add much complexity, however, to use a ternary to check for the null case:



            SObjectType triggerType = trigger.isDelete ? 
            trigger.old.getSObjectType() :
            trigger.new.getSObjectType();





            share|improve this answer




























              5














              If you don't care about the delete contexts, you can just do:



              SObjectType triggerType = trigger.new.getSObjectType();


              It doesn't add much complexity, however, to use a ternary to check for the null case:



              SObjectType triggerType = trigger.isDelete ? 
              trigger.old.getSObjectType() :
              trigger.new.getSObjectType();





              share|improve this answer


























                5












                5








                5







                If you don't care about the delete contexts, you can just do:



                SObjectType triggerType = trigger.new.getSObjectType();


                It doesn't add much complexity, however, to use a ternary to check for the null case:



                SObjectType triggerType = trigger.isDelete ? 
                trigger.old.getSObjectType() :
                trigger.new.getSObjectType();





                share|improve this answer













                If you don't care about the delete contexts, you can just do:



                SObjectType triggerType = trigger.new.getSObjectType();


                It doesn't add much complexity, however, to use a ternary to check for the null case:



                SObjectType triggerType = trigger.isDelete ? 
                trigger.old.getSObjectType() :
                trigger.new.getSObjectType();






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 4 hours ago









                Adrian LarsonAdrian Larson

                108k19115243




                108k19115243






























                    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%2f249908%2ftrigger-find-out-the-name-of-the-object-the-trigger-is-firing-for%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

                    How to label and detect the document text images

                    Vallis Paradisi

                    Tabula Rosettana