function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Swaroopa Akula 1Swaroopa Akula 1 

Can we use 3 page blocks in Vf page? I am getting error in partner community for this vf page

<apex:page controller="PortalDealListController">
    <apex:pageBlock title="List of Deals">
        
        <apex:pageBlockTable value="{!convertedList}" var="o">
      
            <apex:column value="{!o.Partner_lead_Unique_number__c}"/>
            <apex:column value="{!o.Name}"/>
            <apex:column value="{!o.Need__c}"/>
            <apex:column value="{!o.Net_MRR__c}"/>
            <apex:column value="{!o.CloseDate}"/>
            <apex:column value="{!o.Account.Name}"/>
            <apex:column value="{!o.Deal_Reg_Expiration_Date__c}"/>
            
        </apex:pageBlockTable>
        </apex:pageBlock>
         <apex:pageBlock title="List of Accepted Deals">
         <apex:pageBlockTable value="{!acceptedList}" var="o">
          <apex:column value="{!o.Partner_lead_Unique_number__c}"/>
            <apex:column value="{!o.Name}"/>
            <apex:column value="{!o.Need__c}"/>
            <apex:column value="{!o.Net_MRR__c}"/>
            <apex:column value="{!o.CloseDate}"/>
            <apex:column value="{!o.Account.Name}"/>
            <apex:column value="{!o.Opportunity_Accepted_Date__c}"/>
            <apex:column value="{!o.Deal_Reg_Expiration_Date__c}"/>
                 </apex:pageBlockTable>
                 </apex:pageBlock>
            <apex:pageBlock title="List of Rejected Deals">   
                 <apex:pageBlockTable value="{!rejectedList}" var="o">
            <apex:column value="{!o.Partner_lead_Unique_number__c}"/>
            <apex:column value="{!o.Name}"/>
            <apex:column value="{!o.Need__c}"/>
            <apex:column value="{!o.Net_MRR__c}"/>
            <apex:column value="{!o.CloseDate}"/>
            <apex:column value="{!o.Account.Name}"/>
            <apex:column value="{!o.Opportunity_Accepted_Date__c}"/>
            <apex:column value="{!o.Deal_Reg_Expiration_Date__c}"/>
            <apex:column value="{!o.Opportunity_Rejected_Date__c}"/>
            <apex:column value="{!o.Rejection_Reason__c}"/>
            <apex:column value="{!o.Rejection_Notes__c}"/>
        </apex:pageBlockTable>   
                
        
    </apex:pa
Best Answer chosen by Swaroopa Akula 1
Raj VakatiRaj Vakati
This is the error 

System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Opportunity.Account


In YOUr 
PortalDealListController  Class where evey you have SOQL queies . add all the fields in QUERY whihc need to be displayed in UI 

Like below 
 
public List<Opportunity> getAcceptedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate, Account.Name, Opportunity_Accepted_Date__c, Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Accept'];

        return oppList;
    }

    public List<Opportunity> getConvertedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Account.Name , Net_MRR__c, CloseDate ,Opportunity_Accepted_Date__c,Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c =''];

        return oppList;
    }

    public List<Opportunity> getRejectedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c,Account.Name, Net_MRR__c, CloseDate, Opportunity_Rejected_Date__c, Rejection_Reason__c, Rejection_Notes__c,Opportunity_Accepted_Date__c,Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Reject'];

        return oppList;
    }
}

 

All Answers

Swaroopa Akula 1Swaroopa Akula 1
And Apex class is :
public class PortalDealListController {


    public List<Opportunity> getAcceptedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate, Account.Name, Opportunity_Accepted_Date__c, Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Accept'];

        return oppList;
    }

    public List<Opportunity> getConvertedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate 
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c =''];

        return oppList;
    }

    public List<Opportunity> getRejectedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate, Opportunity_Rejected_Date__c, Rejection_Reason__c, Rejection_Notes__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Reject'];

        return oppList;
    }
}

I am getting error saying :
Error: Error occurred while loading a Visualforce page. Please email us if you need to get in touch.


If i use the one page block in the vf page it is loading the page but when i use the 3 page blocks i am getting error. I am using this vf page in partner community.please help me.
Raj VakatiRaj Vakati
You can have the  3 page blocks in Vf page and that is not the issue /...

Can you check the debug logs why its failing .. looks like its failing in apex class 
Swaroopa Akula 1Swaroopa Akula 1
i used debug logs:   
can you pls check what will be issue here.

21:25:00.0 (40726283)|VF_APEX_CALL_END|PortalDealListController invoke(getconvertedList)|PortalDealListController
21:25:00.0 (40752012)|VF_APEX_CALL_END|PortalDealListController get(convertedList)|PortalDealListController
21:25:00.43 (43217223)|EXCEPTION_THROWN|[EXTERNAL]|System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Opportunity.Account
21:25:00.43 (43882364)|EXCEPTION_THROWN|[EXTERNAL]|System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Opportunity.Account
21:25:00.45 (45781624)|CUMULATIVE_LIMIT_USAGE
21:25:00.45 (45781624)|LIMIT_USAGE_FOR_NS|(default)|
  Number of SOQL queries: 2 out of 100
  Number of query rows: 2 out of 50000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 150
  Number of DML rows: 0 out of 10000
  Maximum CPU time: 0 out of 10000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 100
  Number of Email Invocations: 0 out of 10
  Number of future calls: 0 out of 50
  Number of queueable jobs added to the queue: 0 out of 50
  Number of Mobile Apex push calls: 0 out of 10
21:25:00.45 (45781624)|TOTAL_EMAIL_RECIPIENTS_QUEUED|0
21:25:00.45 (45781624)|STATIC_VARIABLE_LIST|
  int:BYTES:0
  int:BYTES:0
  char[]:DigitOnes:0
  char[]:DigitTens:0
  Boolean:FALSE:0
  int:MAX_EXPONENT:0
  double:MAX_VALUE:0
  int:MAX_VALUE:0
  int:MIN_EXPONENT:0
  double:MIN_NORMAL:0
  double:MIN_VALUE:0
  int:MIN_VALUE:0
  double:NEGATIVE_INFINITY:0
  double:NaN:0
  double:POSITIVE_INFINITY:0
  int:SIZE:0
  int:SIZE:0
  Boolean:TRUE:0
  String:_sfdcAdditionalCodeLocations:0
  String:_sfdcAdditionalCodeLocations:0
  String:_sfdcAdditionalCodeLocations:0
  String:_sfdcSuppressedCodeLocations:0
  char[]:digits:0
  long:serialVersionUID:0
  long:serialVersionUID:0
  long:serialVersionUID:0
  int[]:sizeTable:0
21:25:00.45 (45781624)|CUMULATIVE_LIMIT_USAGE_END
21:25:00.0 (45928919)|CODE_UNIT_FINISHED|VF: /apex/AryaDealAccepted
21:25:00.0 (46806764)|EXECUTION_FINISHED
21:25:00.48 (48630704)|CUMULATIVE_PROFILING_BEGIN
21:25:00.48 (48630704)|CUMULATIVE_PROFILING|SOQL operations|
Class.AryaPortalDealListController.getConvertedList: line 29, column 1: [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate
                                     FROM Opportunity
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='']: executed 1 time in 28 ms
21:25:00.48 (48630704)|CUMULATIVE_PROFILING|No profiling information for SOSL operations
21:25:00.48 (48630704)|CUMULATIVE_PROFILING|No profiling information for DML operations
21:25:00.48 (48630704)|CUMULATIVE_PROFILING|method invocations|
External entry point: public List<Opportunity> getConvertedList(): executed 1 time in 34 ms
Class.AryaPortalDealListController.getConvertedList: line 25, column 1: global static String getUserId(): executed 2 times in 6 ms
Class.AryaPortalDealListController.getConvertedList: line 28, column 1: global public static void debug(ANY): executed 1 time in 0 ms
21:25:00.48 (48630704)|CUMULATIVE_PROFILING_END
Raj VakatiRaj Vakati
This is the error 

System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Opportunity.Account


In YOUr 
PortalDealListController  Class where evey you have SOQL queies . add all the fields in QUERY whihc need to be displayed in UI 

Like below 
 
public List<Opportunity> getAcceptedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Net_MRR__c, CloseDate, Account.Name, Opportunity_Accepted_Date__c, Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Accept'];

        return oppList;
    }

    public List<Opportunity> getConvertedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c, Account.Name , Net_MRR__c, CloseDate ,Opportunity_Accepted_Date__c,Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c =''];

        return oppList;
    }

    public List<Opportunity> getRejectedList(){
        User u =[SELECT Email, Username FROM User WHERE Id =: UserInfo.getUserId()];
        String usrEmailId= u.Email;

        System.debug('*** DealAcceptedController Logged in Users Email ID..' + usrEmailId +'**** username' + u.Username);
        List<Opportunity> oppList = [SELECT Partner_lead_Unique_number__c, Name, Need__c,Account.Name, Net_MRR__c, CloseDate, Opportunity_Rejected_Date__c, Rejection_Reason__c, Rejection_Notes__c,Opportunity_Accepted_Date__c,Deal_Reg_Expiration_Date__c
                                     FROM Opportunity 
                                     WHERE Portal_User_Email_ID__c=: usrEmailId AND Accept_Opportunity__c ='Reject'];

        return oppList;
    }
}

 
This was selected as the best answer
Swaroopa Akula 1Swaroopa Akula 1
Thanks Raj for your help. It worked.