How to query field names from custom object by data type?Controlling the data type of a custom fieldHow to...

Properly unlinking hard links

Is this statement about a motion being simple harmonic in nature strong?

Could a complex system of reaction wheels be used to propel a spacecraft?

An idiom for “Until you punish the offender, they will not give up offenses”

awk print conditions

Ideas behind the 8.Bd3 line in the 4.Ng5 Two Knights Defense

Can a system of three stars exist?

Can I leave a large suitcase at TPE during a 4-hour layover, and pick it up 4.5 days later when I come back to TPE on my way to Taipei downtown?

How to draw a true pie chart?

Squares inside a square

Turn off Google Chrome's Notification for "Flash Player will no longer be supported after December 2020."

How to save money by shopping at a variety of grocery stores?

How to differentiate between two people with the same name in a story?

Create a list of snaking numbers under 50,000

Padding a column of lists

Does the Freedom of Movement spell prevent petrification by the Flesh to Stone spell?

'spazieren' - walking in a silly and affected manner?

How were US credit cards verified in-store in the 1980's?

How many possible file types in the output `ls -l` command?

Does using composite keys violate 2NF

Do universities maintain secret textbooks?

How can I store milk for long periods of time?

What is this "opened" cube called?

how can reincarnation magic be limited to prevent overuse?



How to query field names from custom object by data type?


Controlling the data type of a custom fieldHow to copy field data from object to object with a button-click via Apex?How to create a custom field in test classHow to query Id of a field/Custom field from standard object using Tooling API in .netQuerying a field on an unknown object typeExactTarget Query Activity Data View - Correct NamesQuery custom fields from object with a polymorphic fieldHow to map the state code with state names?Custom Object how to get actual query data?Generic function - Custom meta data type






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















I have custom object ExchangeRate__c. How to get all fields, which have data type "currency" and put their field names in a string?










share|improve this question































    1















    I have custom object ExchangeRate__c. How to get all fields, which have data type "currency" and put their field names in a string?










    share|improve this question



























      1












      1








      1








      I have custom object ExchangeRate__c. How to get all fields, which have data type "currency" and put their field names in a string?










      share|improve this question














      I have custom object ExchangeRate__c. How to get all fields, which have data type "currency" and put their field names in a string?







      apex query






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 9 hours ago









      EviGertsikEviGertsik

      124 bronze badges




      124 bronze badges

























          2 Answers
          2






          active

          oldest

          votes


















          3















          You can use below method and pass the object name ExchangeRate__c as parameter:



          public static String getCurrencyFields(String obj) {
          List<String> fields = new List<String>();
          SObjectType objType = Schema.getGlobalDescribe().get(obj);
          Map<String,Schema.SObjectField> mfieldsMap = objType.getDescribe().fields.getMap();

          for(Schema.SObjectField fld : mfieldsMap.values()) {
          if(fld.getDescribe().getType()==Schema.DisplayType.CURRENCY){
          fields.add(fld.getDescribe().getName());
          }
          }
          return String.join(fields,',');
          }





          share|improve this answer


























          • Thank you! But I made a little mistake - I need field labels, not field names.

            – EviGertsik
            9 hours ago











          • You can get label instead of name - fields.add(fld.getDescribe().getLabel());

            – salesforce-sas
            8 hours ago











          • Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

            – cropredy
            7 mins ago





















          1















          You wouldn't use a query for this, but rather the DescribeSObjectResult and DescribeFieldResult classes.



          Schema.SObjectType.<Sobject API Name>.fields gives you a Map<String, Schema.SObjectField> containing the field tokens for all of the fields on the object



          You can then iterate over those Schema.SObjectField instances, and get the DescribeFieldResult from them using the getDescribe() method.



          The DescribeFieldResult class gives you access to the metadata of the field, including what type of field it is (the getType() method).






          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%2f275590%2fhow-to-query-field-names-from-custom-object-by-data-type%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









            3















            You can use below method and pass the object name ExchangeRate__c as parameter:



            public static String getCurrencyFields(String obj) {
            List<String> fields = new List<String>();
            SObjectType objType = Schema.getGlobalDescribe().get(obj);
            Map<String,Schema.SObjectField> mfieldsMap = objType.getDescribe().fields.getMap();

            for(Schema.SObjectField fld : mfieldsMap.values()) {
            if(fld.getDescribe().getType()==Schema.DisplayType.CURRENCY){
            fields.add(fld.getDescribe().getName());
            }
            }
            return String.join(fields,',');
            }





            share|improve this answer


























            • Thank you! But I made a little mistake - I need field labels, not field names.

              – EviGertsik
              9 hours ago











            • You can get label instead of name - fields.add(fld.getDescribe().getLabel());

              – salesforce-sas
              8 hours ago











            • Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

              – cropredy
              7 mins ago


















            3















            You can use below method and pass the object name ExchangeRate__c as parameter:



            public static String getCurrencyFields(String obj) {
            List<String> fields = new List<String>();
            SObjectType objType = Schema.getGlobalDescribe().get(obj);
            Map<String,Schema.SObjectField> mfieldsMap = objType.getDescribe().fields.getMap();

            for(Schema.SObjectField fld : mfieldsMap.values()) {
            if(fld.getDescribe().getType()==Schema.DisplayType.CURRENCY){
            fields.add(fld.getDescribe().getName());
            }
            }
            return String.join(fields,',');
            }





            share|improve this answer


























            • Thank you! But I made a little mistake - I need field labels, not field names.

              – EviGertsik
              9 hours ago











            • You can get label instead of name - fields.add(fld.getDescribe().getLabel());

              – salesforce-sas
              8 hours ago











            • Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

              – cropredy
              7 mins ago
















            3














            3










            3









            You can use below method and pass the object name ExchangeRate__c as parameter:



            public static String getCurrencyFields(String obj) {
            List<String> fields = new List<String>();
            SObjectType objType = Schema.getGlobalDescribe().get(obj);
            Map<String,Schema.SObjectField> mfieldsMap = objType.getDescribe().fields.getMap();

            for(Schema.SObjectField fld : mfieldsMap.values()) {
            if(fld.getDescribe().getType()==Schema.DisplayType.CURRENCY){
            fields.add(fld.getDescribe().getName());
            }
            }
            return String.join(fields,',');
            }





            share|improve this answer













            You can use below method and pass the object name ExchangeRate__c as parameter:



            public static String getCurrencyFields(String obj) {
            List<String> fields = new List<String>();
            SObjectType objType = Schema.getGlobalDescribe().get(obj);
            Map<String,Schema.SObjectField> mfieldsMap = objType.getDescribe().fields.getMap();

            for(Schema.SObjectField fld : mfieldsMap.values()) {
            if(fld.getDescribe().getType()==Schema.DisplayType.CURRENCY){
            fields.add(fld.getDescribe().getName());
            }
            }
            return String.join(fields,',');
            }






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 9 hours ago









            salesforce-sassalesforce-sas

            8,1061 gold badge2 silver badges24 bronze badges




            8,1061 gold badge2 silver badges24 bronze badges
















            • Thank you! But I made a little mistake - I need field labels, not field names.

              – EviGertsik
              9 hours ago











            • You can get label instead of name - fields.add(fld.getDescribe().getLabel());

              – salesforce-sas
              8 hours ago











            • Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

              – cropredy
              7 mins ago





















            • Thank you! But I made a little mistake - I need field labels, not field names.

              – EviGertsik
              9 hours ago











            • You can get label instead of name - fields.add(fld.getDescribe().getLabel());

              – salesforce-sas
              8 hours ago











            • Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

              – cropredy
              7 mins ago



















            Thank you! But I made a little mistake - I need field labels, not field names.

            – EviGertsik
            9 hours ago





            Thank you! But I made a little mistake - I need field labels, not field names.

            – EviGertsik
            9 hours ago













            You can get label instead of name - fields.add(fld.getDescribe().getLabel());

            – salesforce-sas
            8 hours ago





            You can get label instead of name - fields.add(fld.getDescribe().getLabel());

            – salesforce-sas
            8 hours ago













            Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

            – cropredy
            7 mins ago







            Improvement suggestion - pass in SObjectType rather than String as that is more typesafe and avoid the lookup into GlobalDescribe. You can also get the sobjectType from string more efficiently using: Type t = Type.forName(name); SobjectType sobjType = ((SObject)t.newInstance()).getSObjectType();

            – cropredy
            7 mins ago















            1















            You wouldn't use a query for this, but rather the DescribeSObjectResult and DescribeFieldResult classes.



            Schema.SObjectType.<Sobject API Name>.fields gives you a Map<String, Schema.SObjectField> containing the field tokens for all of the fields on the object



            You can then iterate over those Schema.SObjectField instances, and get the DescribeFieldResult from them using the getDescribe() method.



            The DescribeFieldResult class gives you access to the metadata of the field, including what type of field it is (the getType() method).






            share|improve this answer






























              1















              You wouldn't use a query for this, but rather the DescribeSObjectResult and DescribeFieldResult classes.



              Schema.SObjectType.<Sobject API Name>.fields gives you a Map<String, Schema.SObjectField> containing the field tokens for all of the fields on the object



              You can then iterate over those Schema.SObjectField instances, and get the DescribeFieldResult from them using the getDescribe() method.



              The DescribeFieldResult class gives you access to the metadata of the field, including what type of field it is (the getType() method).






              share|improve this answer




























                1














                1










                1









                You wouldn't use a query for this, but rather the DescribeSObjectResult and DescribeFieldResult classes.



                Schema.SObjectType.<Sobject API Name>.fields gives you a Map<String, Schema.SObjectField> containing the field tokens for all of the fields on the object



                You can then iterate over those Schema.SObjectField instances, and get the DescribeFieldResult from them using the getDescribe() method.



                The DescribeFieldResult class gives you access to the metadata of the field, including what type of field it is (the getType() method).






                share|improve this answer













                You wouldn't use a query for this, but rather the DescribeSObjectResult and DescribeFieldResult classes.



                Schema.SObjectType.<Sobject API Name>.fields gives you a Map<String, Schema.SObjectField> containing the field tokens for all of the fields on the object



                You can then iterate over those Schema.SObjectField instances, and get the DescribeFieldResult from them using the getDescribe() method.



                The DescribeFieldResult class gives you access to the metadata of the field, including what type of field it is (the getType() method).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 9 hours ago









                Derek FDerek F

                22.9k6 gold badges26 silver badges55 bronze badges




                22.9k6 gold badges26 silver badges55 bronze badges

































                    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%2f275590%2fhow-to-query-field-names-from-custom-object-by-data-type%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

                    Taj Mahal Inhaltsverzeichnis Aufbau | Geschichte | 350-Jahr-Feier | Heutige Bedeutung | Siehe auch |...

                    Baia Sprie Cuprins Etimologie | Istorie | Demografie | Politică și administrație | Arii naturale...

                    Nicolae Petrescu-Găină Cuprins Biografie | Opera | In memoriam | Varia | Controverse, incertitudini...