Trigger on Custom Object Share












1















I have a requirement whereby once a custom object record is created I must share this with AllInternalUsers. I have written a trigger on after insert to the custom object that this share record will get created and it works perfectly.



The second part of my requirement is that if a new manual sharing record gets created e.g share to Group A then the original manual share record to AllInternalUsers should be deleted. I have tried to write a trigger on after update of the custom object however the action did not take place once I created the second manual sharing record and it would also appear that I cannot create a trigger on the CustomObject__share object.



Is something like this possible to perform an action on the related record when a new manual share record gets created?



Thanks in Advance










share|improve this question



























    1















    I have a requirement whereby once a custom object record is created I must share this with AllInternalUsers. I have written a trigger on after insert to the custom object that this share record will get created and it works perfectly.



    The second part of my requirement is that if a new manual sharing record gets created e.g share to Group A then the original manual share record to AllInternalUsers should be deleted. I have tried to write a trigger on after update of the custom object however the action did not take place once I created the second manual sharing record and it would also appear that I cannot create a trigger on the CustomObject__share object.



    Is something like this possible to perform an action on the related record when a new manual share record gets created?



    Thanks in Advance










    share|improve this question

























      1












      1








      1








      I have a requirement whereby once a custom object record is created I must share this with AllInternalUsers. I have written a trigger on after insert to the custom object that this share record will get created and it works perfectly.



      The second part of my requirement is that if a new manual sharing record gets created e.g share to Group A then the original manual share record to AllInternalUsers should be deleted. I have tried to write a trigger on after update of the custom object however the action did not take place once I created the second manual sharing record and it would also appear that I cannot create a trigger on the CustomObject__share object.



      Is something like this possible to perform an action on the related record when a new manual share record gets created?



      Thanks in Advance










      share|improve this question














      I have a requirement whereby once a custom object record is created I must share this with AllInternalUsers. I have written a trigger on after insert to the custom object that this share record will get created and it works perfectly.



      The second part of my requirement is that if a new manual sharing record gets created e.g share to Group A then the original manual share record to AllInternalUsers should be deleted. I have tried to write a trigger on after update of the custom object however the action did not take place once I created the second manual sharing record and it would also appear that I cannot create a trigger on the CustomObject__share object.



      Is something like this possible to perform an action on the related record when a new manual share record gets created?



      Thanks in Advance







      apex trigger apex-sharing manual-sharing






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 1 hour ago









      user3456401user3456401

      174




      174






















          2 Answers
          2






          active

          oldest

          votes


















          2














          Unfortunately, this is not possible, as share records do not cause triggers to fire. You will need to come up with an alternative solution, such as using criteria-based sharing rules or some other mechanism.






          share|improve this answer































            2














            Yes you are right, one cannot have Trigger on Share Object.



            You are limited to a few options here:



            1) Using Scheduler: Run A scheduler everyy hour or 30 mins, which in turn trigger a batch to see if a share to Group A is created, if yes then delte the irrelevant share record.



            2) Use a Custom Lightning Component for Share : Here you will create a Lightning Component and Embeded it in quick action. And remove the standard share button from layout. Your users will use quick action to open the lightning component which will use apex to handle your deleting logic while creating Apex share record.






            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%2f253174%2ftrigger-on-custom-object-share%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              2














              Unfortunately, this is not possible, as share records do not cause triggers to fire. You will need to come up with an alternative solution, such as using criteria-based sharing rules or some other mechanism.






              share|improve this answer




























                2














                Unfortunately, this is not possible, as share records do not cause triggers to fire. You will need to come up with an alternative solution, such as using criteria-based sharing rules or some other mechanism.






                share|improve this answer


























                  2












                  2








                  2







                  Unfortunately, this is not possible, as share records do not cause triggers to fire. You will need to come up with an alternative solution, such as using criteria-based sharing rules or some other mechanism.






                  share|improve this answer













                  Unfortunately, this is not possible, as share records do not cause triggers to fire. You will need to come up with an alternative solution, such as using criteria-based sharing rules or some other mechanism.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 1 hour ago









                  sfdcfoxsfdcfox

                  258k12202445




                  258k12202445

























                      2














                      Yes you are right, one cannot have Trigger on Share Object.



                      You are limited to a few options here:



                      1) Using Scheduler: Run A scheduler everyy hour or 30 mins, which in turn trigger a batch to see if a share to Group A is created, if yes then delte the irrelevant share record.



                      2) Use a Custom Lightning Component for Share : Here you will create a Lightning Component and Embeded it in quick action. And remove the standard share button from layout. Your users will use quick action to open the lightning component which will use apex to handle your deleting logic while creating Apex share record.






                      share|improve this answer




























                        2














                        Yes you are right, one cannot have Trigger on Share Object.



                        You are limited to a few options here:



                        1) Using Scheduler: Run A scheduler everyy hour or 30 mins, which in turn trigger a batch to see if a share to Group A is created, if yes then delte the irrelevant share record.



                        2) Use a Custom Lightning Component for Share : Here you will create a Lightning Component and Embeded it in quick action. And remove the standard share button from layout. Your users will use quick action to open the lightning component which will use apex to handle your deleting logic while creating Apex share record.






                        share|improve this answer


























                          2












                          2








                          2







                          Yes you are right, one cannot have Trigger on Share Object.



                          You are limited to a few options here:



                          1) Using Scheduler: Run A scheduler everyy hour or 30 mins, which in turn trigger a batch to see if a share to Group A is created, if yes then delte the irrelevant share record.



                          2) Use a Custom Lightning Component for Share : Here you will create a Lightning Component and Embeded it in quick action. And remove the standard share button from layout. Your users will use quick action to open the lightning component which will use apex to handle your deleting logic while creating Apex share record.






                          share|improve this answer













                          Yes you are right, one cannot have Trigger on Share Object.



                          You are limited to a few options here:



                          1) Using Scheduler: Run A scheduler everyy hour or 30 mins, which in turn trigger a batch to see if a share to Group A is created, if yes then delte the irrelevant share record.



                          2) Use a Custom Lightning Component for Share : Here you will create a Lightning Component and Embeded it in quick action. And remove the standard share button from layout. Your users will use quick action to open the lightning component which will use apex to handle your deleting logic while creating Apex share record.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 1 hour ago









                          Pranay JaiswalPranay Jaiswal

                          17.3k42855




                          17.3k42855






























                              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%2f253174%2ftrigger-on-custom-object-share%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

                              What are all the squawk codes?

                              What are differences between VBoxVGA, VMSVGA and VBoxSVGA in VirtualBox?

                              Hudsonelva