Is there a way to determine if an object supports list view?












1















Is there a way to determine if an object supports list view?



I've developed a VF page which shows a list of Objects and based on Object selection it shows list views of that selected object. For some objects like EmailTemplate, Organization etc it throwing system exception "List Controllers not supported for ...."



I'm using below code to fetch list views of Selected Object. However, this code is failing for objects like EmailTemplate, Organization etc



Hence, my question, is there a way to determine if an object supports list view?



String baseQuery = 'Select ID  FROM ' + SelectObject + ' Limit 1'; 
objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
List < SelectOption > options = objSetController.getListViewOptions();









share|improve this question



























    1















    Is there a way to determine if an object supports list view?



    I've developed a VF page which shows a list of Objects and based on Object selection it shows list views of that selected object. For some objects like EmailTemplate, Organization etc it throwing system exception "List Controllers not supported for ...."



    I'm using below code to fetch list views of Selected Object. However, this code is failing for objects like EmailTemplate, Organization etc



    Hence, my question, is there a way to determine if an object supports list view?



    String baseQuery = 'Select ID  FROM ' + SelectObject + ' Limit 1'; 
    objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
    List < SelectOption > options = objSetController.getListViewOptions();









    share|improve this question

























      1












      1








      1








      Is there a way to determine if an object supports list view?



      I've developed a VF page which shows a list of Objects and based on Object selection it shows list views of that selected object. For some objects like EmailTemplate, Organization etc it throwing system exception "List Controllers not supported for ...."



      I'm using below code to fetch list views of Selected Object. However, this code is failing for objects like EmailTemplate, Organization etc



      Hence, my question, is there a way to determine if an object supports list view?



      String baseQuery = 'Select ID  FROM ' + SelectObject + ' Limit 1'; 
      objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
      List < SelectOption > options = objSetController.getListViewOptions();









      share|improve this question














      Is there a way to determine if an object supports list view?



      I've developed a VF page which shows a list of Objects and based on Object selection it shows list views of that selected object. For some objects like EmailTemplate, Organization etc it throwing system exception "List Controllers not supported for ...."



      I'm using below code to fetch list views of Selected Object. However, this code is failing for objects like EmailTemplate, Organization etc



      Hence, my question, is there a way to determine if an object supports list view?



      String baseQuery = 'Select ID  FROM ' + SelectObject + ' Limit 1'; 
      objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
      List < SelectOption > options = objSetController.getListViewOptions();






      apex visualforce list-view describesobject standardsetcontroller






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 3 hours ago









      Chirag MehtaChirag Mehta

      558620




      558620






















          2 Answers
          2






          active

          oldest

          votes


















          2














          I researched something similar recently and stumbled upon across this standard object ListView



          The ListView record tells you if the ListView is SOQL compatible,(which you are trying to do)



          So you go by



          ListView lv = [SELECT IsSoqlCompatible FROM ListView WHERE SobjectType=:SelectObject LIMIT 1];
          if(lv.IsSoqlCompatible){
          String baseQuery = 'Select ID FROM ' + SelectObject + ' Limit 1';
          objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
          List < SelectOption > options = objSetController.getListViewOptions();
          }else{
          //ListView SOQL not supported handle here

          }





          share|improve this answer
























          • Thanks @Pranay.

            – Chirag Mehta
            1 hour ago



















          1














          I think the approach to fetch the listviews through setcontroller is kind of problematic here. Per this doc, only specific objects are supported.
          There is this ListView object which gives the list of the listviews in the system. When I queried for EmailTemplate, it did not throw any error but simply returned 0 values.



          SELECT CreatedById,CreatedDate,DeveloperName,Id,IsSoqlCompatible,LastModifiedById,LastModifiedDate,LastReferencedDate,LastViewedDate,Name,NamespacePrefix,SobjectType,SystemModstamp FROM ListView WHERE sObjectType='EmailTemplate'


          To get all the supported objects: The sObjectType field in the ListView is picklist field and you can get all the values of that picklist field using PicklistValueInfo.






          share|improve this answer
























          • Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

            – Chirag Mehta
            1 hour ago











          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%2f246941%2fis-there-a-way-to-determine-if-an-object-supports-list-view%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














          I researched something similar recently and stumbled upon across this standard object ListView



          The ListView record tells you if the ListView is SOQL compatible,(which you are trying to do)



          So you go by



          ListView lv = [SELECT IsSoqlCompatible FROM ListView WHERE SobjectType=:SelectObject LIMIT 1];
          if(lv.IsSoqlCompatible){
          String baseQuery = 'Select ID FROM ' + SelectObject + ' Limit 1';
          objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
          List < SelectOption > options = objSetController.getListViewOptions();
          }else{
          //ListView SOQL not supported handle here

          }





          share|improve this answer
























          • Thanks @Pranay.

            – Chirag Mehta
            1 hour ago
















          2














          I researched something similar recently and stumbled upon across this standard object ListView



          The ListView record tells you if the ListView is SOQL compatible,(which you are trying to do)



          So you go by



          ListView lv = [SELECT IsSoqlCompatible FROM ListView WHERE SobjectType=:SelectObject LIMIT 1];
          if(lv.IsSoqlCompatible){
          String baseQuery = 'Select ID FROM ' + SelectObject + ' Limit 1';
          objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
          List < SelectOption > options = objSetController.getListViewOptions();
          }else{
          //ListView SOQL not supported handle here

          }





          share|improve this answer
























          • Thanks @Pranay.

            – Chirag Mehta
            1 hour ago














          2












          2








          2







          I researched something similar recently and stumbled upon across this standard object ListView



          The ListView record tells you if the ListView is SOQL compatible,(which you are trying to do)



          So you go by



          ListView lv = [SELECT IsSoqlCompatible FROM ListView WHERE SobjectType=:SelectObject LIMIT 1];
          if(lv.IsSoqlCompatible){
          String baseQuery = 'Select ID FROM ' + SelectObject + ' Limit 1';
          objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
          List < SelectOption > options = objSetController.getListViewOptions();
          }else{
          //ListView SOQL not supported handle here

          }





          share|improve this answer













          I researched something similar recently and stumbled upon across this standard object ListView



          The ListView record tells you if the ListView is SOQL compatible,(which you are trying to do)



          So you go by



          ListView lv = [SELECT IsSoqlCompatible FROM ListView WHERE SobjectType=:SelectObject LIMIT 1];
          if(lv.IsSoqlCompatible){
          String baseQuery = 'Select ID FROM ' + SelectObject + ' Limit 1';
          objSetController = new ApexPages.StandardSetController(Database.getQueryLocator(baseQuery));
          List < SelectOption > options = objSetController.getListViewOptions();
          }else{
          //ListView SOQL not supported handle here

          }






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 hours ago









          Pranay JaiswalPranay Jaiswal

          14.5k32553




          14.5k32553













          • Thanks @Pranay.

            – Chirag Mehta
            1 hour ago



















          • Thanks @Pranay.

            – Chirag Mehta
            1 hour ago

















          Thanks @Pranay.

          – Chirag Mehta
          1 hour ago





          Thanks @Pranay.

          – Chirag Mehta
          1 hour ago













          1














          I think the approach to fetch the listviews through setcontroller is kind of problematic here. Per this doc, only specific objects are supported.
          There is this ListView object which gives the list of the listviews in the system. When I queried for EmailTemplate, it did not throw any error but simply returned 0 values.



          SELECT CreatedById,CreatedDate,DeveloperName,Id,IsSoqlCompatible,LastModifiedById,LastModifiedDate,LastReferencedDate,LastViewedDate,Name,NamespacePrefix,SobjectType,SystemModstamp FROM ListView WHERE sObjectType='EmailTemplate'


          To get all the supported objects: The sObjectType field in the ListView is picklist field and you can get all the values of that picklist field using PicklistValueInfo.






          share|improve this answer
























          • Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

            – Chirag Mehta
            1 hour ago
















          1














          I think the approach to fetch the listviews through setcontroller is kind of problematic here. Per this doc, only specific objects are supported.
          There is this ListView object which gives the list of the listviews in the system. When I queried for EmailTemplate, it did not throw any error but simply returned 0 values.



          SELECT CreatedById,CreatedDate,DeveloperName,Id,IsSoqlCompatible,LastModifiedById,LastModifiedDate,LastReferencedDate,LastViewedDate,Name,NamespacePrefix,SobjectType,SystemModstamp FROM ListView WHERE sObjectType='EmailTemplate'


          To get all the supported objects: The sObjectType field in the ListView is picklist field and you can get all the values of that picklist field using PicklistValueInfo.






          share|improve this answer
























          • Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

            – Chirag Mehta
            1 hour ago














          1












          1








          1







          I think the approach to fetch the listviews through setcontroller is kind of problematic here. Per this doc, only specific objects are supported.
          There is this ListView object which gives the list of the listviews in the system. When I queried for EmailTemplate, it did not throw any error but simply returned 0 values.



          SELECT CreatedById,CreatedDate,DeveloperName,Id,IsSoqlCompatible,LastModifiedById,LastModifiedDate,LastReferencedDate,LastViewedDate,Name,NamespacePrefix,SobjectType,SystemModstamp FROM ListView WHERE sObjectType='EmailTemplate'


          To get all the supported objects: The sObjectType field in the ListView is picklist field and you can get all the values of that picklist field using PicklistValueInfo.






          share|improve this answer













          I think the approach to fetch the listviews through setcontroller is kind of problematic here. Per this doc, only specific objects are supported.
          There is this ListView object which gives the list of the listviews in the system. When I queried for EmailTemplate, it did not throw any error but simply returned 0 values.



          SELECT CreatedById,CreatedDate,DeveloperName,Id,IsSoqlCompatible,LastModifiedById,LastModifiedDate,LastReferencedDate,LastViewedDate,Name,NamespacePrefix,SobjectType,SystemModstamp FROM ListView WHERE sObjectType='EmailTemplate'


          To get all the supported objects: The sObjectType field in the ListView is picklist field and you can get all the values of that picklist field using PicklistValueInfo.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 hours ago









          Shailesh PatilShailesh Patil

          1,554512




          1,554512













          • Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

            – Chirag Mehta
            1 hour ago



















          • Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

            – Chirag Mehta
            1 hour ago

















          Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

          – Chirag Mehta
          1 hour ago





          Thanks @Shailesh. I agree that this seems to be a better way of finding a list of objects that support list views. Thanks!

          – Chirag Mehta
          1 hour ago


















          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%2f246941%2fis-there-a-way-to-determine-if-an-object-supports-list-view%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

          Polycentropodidae

          Magento 2 Error message: Invalid state change requested

          Paulmy