• irwanrj
  • NEWBIE
  • 10 Points
  • Member since 2010

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 3
    Replies


Dear everyone,

recently i facing new error like this : 
Error: Compile Error: Entity is not api accessible at line 1 column 8

public class AdvanceRequestClass
{
    /*public static void isActiveValidation(Advance_Request__c[] AdvRequest)
    {
        for(Advance_Request__c adv : AdvRequest)
        {
            if(adv.Is_Active__c == false)
            {
                adv.addError('You cannot update or delete this advance request, it has been used in expense request.');
            }
        }
        
    }*/
    
    List<Work__c> works ;
  Utilities util;
  public AdvanceRequestClass(List<Advance_Request__c> triggerNew, List<Advance_Request__c> triggerOld, Boolean deleteFlag){
    Set<String> InvoiceId = new Set<String>();
        Set<String> WorkIds = new Set<String>();
        List<Advance_Request__c> AdvanceRequest;
        if(deleteFlag){
          AdvanceRequest = triggerOld;
        }else{
          AdvanceRequest = triggerNew;
        }
        for (Advance_Request__c advanceReq: AdvanceRequest) 
        {           
            WorkIds.add(advanceReq.Work_Id__c);
        }
        works = new List<Work__c>([SELECT Id, Name, Total_Invoice_Amount__c,  Project_Code__c, BAST_Submit_Term_I__c, Work_Status__c, Invoice_Date_Term_I__c, Invoice_Date_Term_II__c, Invoice_Date_DP_II__c, Invoice_Date_DP_III__c FROM Work__c WHERE Id in :WorkIds]);
    util = new Utilities();
    
  }
  public void setWorkAmount(List<Advance_Request__c> AdvanceRequest){
    system.debug('works --------------'+ works);
    AggregateResult[] advReq = 
                [select Work_Id__c, SUM(Total_amount_advance__c)totalAdvance FROM Advance_Request__c    
                 where Work_Id__c IN :works AND Status__c != 'Rejected' GROUP BY Work_Id__c];
                 system.debug('advReq ---------'+advReq +'------');
        Map<Id, AggregateResult> advMap = new Map <Id, AggregateResult>();
        for(AggregateResult ar : advReq){
            advMap.put((Id)ar.get('Work_Id__c'), ar);
        }
    
        //List <Work__c> workList = [SELECT Id, Name, Total_Advance_Request__c FROM Work__c WHERE Id IN :workIdSet  ];
        
        for(Work__c wid : works ){
          if(advMap.get(wid.Id) != null){
              AggregateResult ar = advMap.get(wid.Id);
              wid.Total_Advance_Request__c = (Decimal)ar.get('totalAdvance');
            }
        }
        
        
  }
    
    
    
}
 





Could you please help me?
Thank you

Hi everyone, 

I am newbie in apex, then I am having a trouble with function aggregate result,
I have created apex class below : 
public class AdvanceRequestClass 
{
    /*public static void isActiveValidation(Advance_Request__c[] AdvRequest)
    {
        for(Advance_Request__c adv : AdvRequest)
        {
            if(adv.Is_Active__c == false)
            {
                adv.addError('You cannot update or delete this advance request, it has been used in expense request.');
            }
        }
        
    }*/
	
	List<Work__c> works ;
  Utilities util;
  public AdvanceRequestClass(List<Advance_Request__c> triggerNew, List<Advance_Request__c> triggerOld, Boolean deleteFlag){
    Set<String> InvoiceId = new Set<String>();
        Set<String> WorkIds = new Set<String>();
        List<Advance_Request__c> AdvanceRequest;
        if(deleteFlag){
          AdvanceRequest = triggerOld;
        }else{
          AdvanceRequest = triggerNew;
        }
        for (Advance_Request__c advanceReq: AdvanceRequest) 
        {           
            WorkIds.add(advanceReq.Work_Id__c);
        }
        works = new List<Work__c>([SELECT Id, Name, Total_Invoice_Amount__c,  Project_Code__c, BAST_Submit_Term_I__c, Work_Status__c, Invoice_Date_Term_I__c, Invoice_Date_Term_II__c, Invoice_Date_DP_II__c, Invoice_Date_DP_III__c FROM Work__c WHERE Id in :WorkIds]);
    util = new Utilities();
    
  }
  
	
	
	
}
 
 public void setWorkAmount(List<Advance_Request__c> AdvanceRequest){
    system.debug('works --------------'+ works);
    AggregateResult[] advReq = 
                [select Work_Id__c, SUM(Converted_Amount__c)totalAdvance FROM Advance_Request__c    
                 where Work_Id__c IN :works AND Status__c != 'Rejected' GROUP BY Work_Id__c];
                 system.debug('advReq ---------'+advReq +'------');
        Map<Id, AggregateResult> advMap = new Map <Id, AggregateResult>();
        for(AggregateResult ar : advReq){
            advMap.put((Id)ar.get('Work_Id__c'), ar);
        }
    
        //List <Work__c> workList = [SELECT Id, Name, Total_Advance_Request__c FROM Work__c WHERE Id IN :workIdSet  ];
        
        for(Work__c wid : works ){
          if(advMap.get(wid.Id) != null){
              AggregateResult ar = advMap.get(wid.Id);
              wid.Total_Advance_Request__c = (Decimal)ar.get('totalAdvance');
            }
        }
        
        
  }

then I get error : Error: Compile Error: unexpected token: public at line 40 column 1


could you please help me?

Thanks in advance.
Hi everyone, 

I am newbie in apex, then I am having a trouble with function aggregate result,
I have created apex class below : 
public class AdvanceRequestClass 
{
    /*public static void isActiveValidation(Advance_Request__c[] AdvRequest)
    {
        for(Advance_Request__c adv : AdvRequest)
        {
            if(adv.Is_Active__c == false)
            {
                adv.addError('You cannot update or delete this advance request, it has been used in expense request.');
            }
        }
        
    }*/
	
	List<Work__c> works ;
  Utilities util;
  public AdvanceRequestClass(List<Advance_Request__c> triggerNew, List<Advance_Request__c> triggerOld, Boolean deleteFlag){
    Set<String> InvoiceId = new Set<String>();
        Set<String> WorkIds = new Set<String>();
        List<Advance_Request__c> AdvanceRequest;
        if(deleteFlag){
          AdvanceRequest = triggerOld;
        }else{
          AdvanceRequest = triggerNew;
        }
        for (Advance_Request__c advanceReq: AdvanceRequest) 
        {           
            WorkIds.add(advanceReq.Work_Id__c);
        }
        works = new List<Work__c>([SELECT Id, Name, Total_Invoice_Amount__c,  Project_Code__c, BAST_Submit_Term_I__c, Work_Status__c, Invoice_Date_Term_I__c, Invoice_Date_Term_II__c, Invoice_Date_DP_II__c, Invoice_Date_DP_III__c FROM Work__c WHERE Id in :WorkIds]);
    util = new Utilities();
    
  }
  
	
	
	
}
 
 public void setWorkAmount(List<Advance_Request__c> AdvanceRequest){
    system.debug('works --------------'+ works);
    AggregateResult[] advReq = 
                [select Work_Id__c, SUM(Converted_Amount__c)totalAdvance FROM Advance_Request__c    
                 where Work_Id__c IN :works AND Status__c != 'Rejected' GROUP BY Work_Id__c];
                 system.debug('advReq ---------'+advReq +'------');
        Map<Id, AggregateResult> advMap = new Map <Id, AggregateResult>();
        for(AggregateResult ar : advReq){
            advMap.put((Id)ar.get('Work_Id__c'), ar);
        }
    
        //List <Work__c> workList = [SELECT Id, Name, Total_Advance_Request__c FROM Work__c WHERE Id IN :workIdSet  ];
        
        for(Work__c wid : works ){
          if(advMap.get(wid.Id) != null){
              AggregateResult ar = advMap.get(wid.Id);
              wid.Total_Advance_Request__c = (Decimal)ar.get('totalAdvance');
            }
        }
        
        
  }

then I get error : Error: Compile Error: unexpected token: public at line 40 column 1


could you please help me?

Thanks in advance.

I want to allow users to create records of a custom object from Site's public home page. I have created the page and can view the form correctly. I have used the standard controller for MyObject on the page. The form has two lookup fields which are two other custom objects (MyLookup1 and MyLookup2). When I click on the lookup icon, the authentication required page shows up instead of showing list of looked up object.

 

On site public access settings, I have given Read/Create access for MyObject and Read/View All permission for the objects MyLookup1and MyLookup2. All of these are custom objects created by me. How can I make sure that lookup popup will not ask for authentication?