Skip to main content

Hi, Please let me know how can I see the metadata information of System Tables (System_cacheinfo, System_Catalogs, System_Columns etc) of Salesforce from Information Schema. I am having developer account and also administrator account of sandbox. This is very urgent so I request for quick response.

Thanks

1 respuesta
  1. 17 jul 2017, 09:53
    Hi Shalini,

    For The Above requirement, you should need to use "Schema Class

    " Check the below document which Salesforce has provided in apex developer guide.

    Please check the below code we should use predefined methods which are provided in schema class and also check the code to retrieve object through SOQL Queries.

    VisualForce Page:

    <apex:page controller="schemademo2" >

    <apex:form >

    <apex:pageBlock >

    <apex:pageBlockSection id="fields" >

    <apex:selectList value="{!selectedobject}" label="Object:::" size="1">

    <apex:selectOptions value="{!objname}"/>

    <apex:actionSupport event="onchange" action="{!searchFields}"/>

    </apex:selectList>

    <apex:pageBlockSectionItem >

    <apex:selectList value="{!selectedfield}" label="Field:::" size="1">

    <apex:selectOptions value="{!fldname}" />

    <apex:actionSupport event="onchange" action="{!searchValues}"/>

    </apex:selectList>

    </apex:pageBlockSectionItem>

    <apex:pageBlockSectionItem >

    <apex:selectList value="{!selectedvalue}" label="Values:::" size="1" id="values" >

    <apex:selectOptions value="{!valname}" />

    </apex:selectList>

    </apex:pageBlockSectionItem>

    </apex:pageBlockSection>

    </apex:pageBlock>

    </apex:form>

    </apex:page>

    ApexClass:

    public class schemademo2 {

    public string selectedobject{get;set;}

    public List<selectoption> objname{get;set;}

    public string selectedfield{get;set;}

    public List<selectoption> fldname{get;set;}

    public string selectedvalue{get;set;}

    public List<selectoption> valname{get;set;}

    public boolean pb1{get;set;}

    Map<string,schema.sobjectType> mobj = schema.getGlobalDescribe();

    public schemademo2(){

    objname = new List<selectoption>();

    Map<string,schema.sobjectType> mobj = schema.getGlobalDescribe();

    List<string> entities = new List<string>(mobj.keyset());

    entities.sort();

    objname.add(new selectoption('---Select Object---','----Select Object---'));

    for(string f:entities){

    if (f.contains('__c'))

    // if (!f.contains('__c'))

    objname.add(new selectoption(f,f));

    }

    }

    public PageReference searchFields() {

    Map<string,sobjectField> mfld = mobj.get(selectedobject).getDescribe().fields.getMap();

    fldname = new List<selectoption>();

    List<string> fldentities = new List<string>(mfld.keyset());

    pb1=true;

    fldentities.sort();

    fldname.add(new selectoption('---Select Field---','----Select Field---'));

    for(string sf:fldentities){

    fldname.add(new selectoption(sf,sf));

    }

    return null;

    }

    public PageReference searchValues() {

    string dquery = 'select '+selectedfield+' from '+selectedobject;

    List<Sobject> vals = Database.query(dquery);

    valname= new List<selectoption>();

    for(sobject val:vals){

    if(val.get(selectedfield)!=null)

    valname.add(new selectoption(string.valueof(val.get(selectedfield)),string.valueof(val.get(selectedfield))));

    }

    return null;

    }

    }

    Please mark it as best answer if the information is informative.

    Thanks

    Rahul Kumar

     
0/9000