• dgscarika
  • NEWBIE
  • 0 Points
  • Member since 2009

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 7
    Questions
  • 4
    Replies

I attempted to install action plans into my sandbox. I've successfully installed quite a few apps previously. The installation failed with the following error:

 

Your organization''s edition of salesforce.com has a limit of {0} custom tabs. To learn about options for increasing your organization''s custom tab limits, please contact your account executive.

 

Any ideas?

 

thanks 

Action Plans looked to be a really nice improvement to Salesforce. Would have been a great fit for us. Unfortunately, it requires chatter. Chatter is just not a fit for us. We run a territory-based business model & therefore we have no sharing between leads, contacts, etc. Chatter therefore adds no value. I turned it off because Salesforce is so busy to begin with that we turn down anything we are not using. I went to install Action Plans & realized it requires Chatter. Really disappointing that force.com is building things with the Chatter dependency - especially for features with very little Chatter relevance. 

Hi:

 

Apologies if this is not appropriate for developer boards. I'm not sure where else to task.

 

We've been moving towards making partner portal available for our users. We have figured out how to work around & replace various key functionality. However, I've not found a solution where the salesforce calendar can sync with a user's outlook calendar. I know that Salesforce for Outlook doesn't work with partner portal. I also checked other 3rd party products.

 

Any ideas?

 

thanks

Hi,

 

It's not clear to me in reviewing the APEX spec whether the following is possible. I thought I'd check the feasibility here before attempting to implement. I have a lookup relationship between leads & a custom object. I was hoping to fire a workflow rule when the lead is linked to this object. However, that does not seem possible. Therefore, I'm hoping that the following can be done via a trigger.

 

  • When a lead is linked to a custom object through this field, I would like to:
    • Retrieve the linked custom object record.
    • Retrieve a field from the custom object record.
    • Set a field in the lead record based on the field value from the custom object record. 

 

Can anyone confirm if this is possible - or confirming that it is not possible would be useful to know as well?

 

Any advice would be appreciated.

 

Thanks for your help

 

Dave

I created some lead record types. Unfortunately, this caused some issues which I need to correct. I am therefore attempting to remove these record types. To do this, I need to set those records with one of these record types back to the master (or default) record type. I've been trying different ways in data loader to do this but cannot figure it out. Does anyone know what value to use in the data loader file in order to set the record type back to the master?

 

thanks for any help

 

Dave

Hi All,

I’m hoping someone can assist with an error that I’m getting. My requirements are the following:

·         I have a field named TAB_Lead_Owner on my lead records. When this field is changed, it needs to be updated to a field of the same name in all open activities for this lead. This is done in a trigger named Update_Tab_Owner_Lead.

·         I also have some custom task fields. When these fields are set to certain values on a task record, they update the Lead Status value on their associated lead record. This is done in a trigger named Update_Tab_Owner_Task.

I’m running into a recursion error. I receive the following error message: First exception on row 0 with id 00T800000119bodEAA; first error: SELF_REFERENCE_FROM_TRIGGER, Object (id = 00T800000119bod) is currently in trigger Update_Tab_Owner_Task, therefore it cannot recursively update itself. I think I understand why this error is occurring. Does anyone know a way around it, to prevent bi-directional triggers on records in related lists, from causing this recursion error?  Here is the source for Update_Tab_Owner_Lead: trigger Update_Tab_Owner_Lead on Lead (after update){
        
    if(Trigger.isUpdate){
        if(Trigger.isAfter){
            //if (Trigger.old.size()==1){   
            
                Set<Id> LId = new Set<Id>();
                List<Task> updTask = new List<Task>();
                List<Event> updEvent = new List<Event>();
                
                Set<Id> TaskIds = new Set<Id>();
                Set<Id> EventIds = new Set<Id>();
                                  
                for(Lead oLead : Trigger.new){
                    if(!LId.contains(oLead.Id)){
                        LId.add(oLead.Id);
                    }                
                }
                if(LId!=null&&LId.size()>0){
                
                    //Get Existing Tasks
                    List<Task> exTask =[select Id,TAB_Lead_Owner__c from Task where WhoId in :LId and status != 'Completed'];
                    
                    //Get Existing Events
                    List<Event> exEvent =[select Id,TAB_Lead_Owner__c from Event where WhoId in :LId and EndDateTime>:datetime.now() ];
                    
                    //Loop through all leads in the batch
                    for(Lead oLead : Trigger.new){
                       
                        for(Task tmpTask:exTask){ CODE TO UPDATE TAB_LEAD_OWNER FIELD}
                                                    
                        for(Event tmpEvent:exEvent){ CODE TO UPDATE TAB_LEAD_OWNER FIELD}                         
                    }
                }
                if(updTask.size()>0){
                    update updTask;
                }
                if(updEvent.size()>0){
                    update updEvent;
                }
        }
    }    
}
 

 

Here is the source for Update_Tab_Owner_Task: 

 

trigger Update_Tab_Owner_Task on Task (before update){
    List<Id> whoIds = new List<Id>();
    for(Task oTask : Trigger.new){
        whoIds.add(oTask.WhoId);   
    }

list<Task> lTask = new list<Task>();
    List<lead> leadUpdate = new List<lead>();
    Map<Id,Lead> leadMap = new Map<Id,Lead>();

    for(Lead tmpLead:[select Id,TAB_Lead_Owner__c,Status,Notes__c from lead where Id in:whoIds]){
        leadMap.put(tmpLead.Id,tmpLead);
    }

    for(Task oTask : Trigger.new){
        //Update the Lead if the Prospect Contact=true
        if(leadMap.containsKey(oTask.WhoId)){
            Lead tmpLead = leadMap.Get(oTask.WhoId);
               if(test){
                CODE TO UPDATE TMPLEAD FIELDS

                    leadUpdate.add(tmpLead);
            }           }
    
        if(leadUpdate.size()==100)
        {
             update leadUpdate ;
             leadUpdate.clear();
       }
    }

    if(leadUpdate.size()>0)
    {
         update leadUpdate ;
   }
}
 

Thanks for any help on this! Dave

Hi,

 

We are using SFDC to drive prospects to group events. We are using lead records for our prospects. When a prospect agrees to attend a group event, we add them to the invitees of the group event.

 

My challenge is that I need to develop a fairly comprehensive event roster report in SFDC. This roster report should:

 

1. Find all of the leads that have been invited to the group event.

2. Display various fields from those leads, especially custom fields.

 

This seems like a very basic function to me but it does not seem to be supported.

 

There is an Event with Invitees report type that properly finds the leads invited to the event. However, this only supports a vary narrow set of lead fields. Therefore, I cannot pull my custom lead fields onto this report.

 

I have also tried Activities with Leads reports. This can support my custom lead fields. However, SFDC implements group events very oddly where only the last lead record invited to the event actually has the association with that event record as an Open Activity. The previous events are not seemingly directly associated with that event record. Therefore, the Activities with Leads reports returns only the last lead invited.

 

Has anyone been able to find a solution to this issue? If it's just not possible through the report types supported directly in the tool, is it possible for a developer to create a report that returns this data?

 

I'd appreciate any tips on how to make this work.

 

Thanks

 

Dave

Action Plans looked to be a really nice improvement to Salesforce. Would have been a great fit for us. Unfortunately, it requires chatter. Chatter is just not a fit for us. We run a territory-based business model & therefore we have no sharing between leads, contacts, etc. Chatter therefore adds no value. I turned it off because Salesforce is so busy to begin with that we turn down anything we are not using. I went to install Action Plans & realized it requires Chatter. Really disappointing that force.com is building things with the Chatter dependency - especially for features with very little Chatter relevance. 

Hi All,

I’m hoping someone can assist with an error that I’m getting. My requirements are the following:

·         I have a field named TAB_Lead_Owner on my lead records. When this field is changed, it needs to be updated to a field of the same name in all open activities for this lead. This is done in a trigger named Update_Tab_Owner_Lead.

·         I also have some custom task fields. When these fields are set to certain values on a task record, they update the Lead Status value on their associated lead record. This is done in a trigger named Update_Tab_Owner_Task.

I’m running into a recursion error. I receive the following error message: First exception on row 0 with id 00T800000119bodEAA; first error: SELF_REFERENCE_FROM_TRIGGER, Object (id = 00T800000119bod) is currently in trigger Update_Tab_Owner_Task, therefore it cannot recursively update itself. I think I understand why this error is occurring. Does anyone know a way around it, to prevent bi-directional triggers on records in related lists, from causing this recursion error?  Here is the source for Update_Tab_Owner_Lead: trigger Update_Tab_Owner_Lead on Lead (after update){
        
    if(Trigger.isUpdate){
        if(Trigger.isAfter){
            //if (Trigger.old.size()==1){   
            
                Set<Id> LId = new Set<Id>();
                List<Task> updTask = new List<Task>();
                List<Event> updEvent = new List<Event>();
                
                Set<Id> TaskIds = new Set<Id>();
                Set<Id> EventIds = new Set<Id>();
                                  
                for(Lead oLead : Trigger.new){
                    if(!LId.contains(oLead.Id)){
                        LId.add(oLead.Id);
                    }                
                }
                if(LId!=null&&LId.size()>0){
                
                    //Get Existing Tasks
                    List<Task> exTask =[select Id,TAB_Lead_Owner__c from Task where WhoId in :LId and status != 'Completed'];
                    
                    //Get Existing Events
                    List<Event> exEvent =[select Id,TAB_Lead_Owner__c from Event where WhoId in :LId and EndDateTime>:datetime.now() ];
                    
                    //Loop through all leads in the batch
                    for(Lead oLead : Trigger.new){
                       
                        for(Task tmpTask:exTask){ CODE TO UPDATE TAB_LEAD_OWNER FIELD}
                                                    
                        for(Event tmpEvent:exEvent){ CODE TO UPDATE TAB_LEAD_OWNER FIELD}                         
                    }
                }
                if(updTask.size()>0){
                    update updTask;
                }
                if(updEvent.size()>0){
                    update updEvent;
                }
        }
    }    
}
 

 

Here is the source for Update_Tab_Owner_Task: 

 

trigger Update_Tab_Owner_Task on Task (before update){
    List<Id> whoIds = new List<Id>();
    for(Task oTask : Trigger.new){
        whoIds.add(oTask.WhoId);   
    }

list<Task> lTask = new list<Task>();
    List<lead> leadUpdate = new List<lead>();
    Map<Id,Lead> leadMap = new Map<Id,Lead>();

    for(Lead tmpLead:[select Id,TAB_Lead_Owner__c,Status,Notes__c from lead where Id in:whoIds]){
        leadMap.put(tmpLead.Id,tmpLead);
    }

    for(Task oTask : Trigger.new){
        //Update the Lead if the Prospect Contact=true
        if(leadMap.containsKey(oTask.WhoId)){
            Lead tmpLead = leadMap.Get(oTask.WhoId);
               if(test){
                CODE TO UPDATE TMPLEAD FIELDS

                    leadUpdate.add(tmpLead);
            }           }
    
        if(leadUpdate.size()==100)
        {
             update leadUpdate ;
             leadUpdate.clear();
       }
    }

    if(leadUpdate.size()>0)
    {
         update leadUpdate ;
   }
}
 

Thanks for any help on this! Dave

hi ,

 

For the below Trigger and testmethod, i am geting 47% test coverage.

 

Here is my Trigger:

 

trigger Update_Invitation_Letter_Send_Date on Campaign (before insert,before update) {
   
    List<Id> CId = new List<Id>();
    List<lead> updLead = new List<lead>();
    Set<Id> LeadIds = new Set<Id>();
   
    for(Campaign oCampaign : Trigger.new){
        CId.add(oCampaign.Id);  
    }
   
    List<Lead> exLead =[Select Id,Seat_Letter_Sent__c,Type__c from Lead Where Id in (Select LeadId from CampaignMember Where CampaignId in:CId)];
    for(Campaign oCampaign : Trigger.new){
      if(exLead.Size() > 0){
         for(Lead tmpLead:exLead){
            if(!LeadIds.contains(tmpLead.Id)){
           
            if(oCampaign.Invitation_Letter_Sent_Date__c!=null)
            {
                tmpLead.Seat_Letter_Sent__c=oCampaign.Invitation_Letter_Sent_Date__c;
            }
           
            //if(oCampaign.Type!=null)
            //{
                //tmpLead.Type__c=oCampaign.Type;
            //}
           
            updLead.add(tmpLead);
            LeadIds.add(tmpLead.Id);
           
            if(updLead.size()==100)
            {
               update updLead;
               updLead.clear();
            }
           
           }
         }
      }
    }
    if(updLead.size()>0){
        update updLead ;
    }
 }

 

 

Here is my Test Method:

 

 public class Campaign_Invitation_Letter {

    public static testMethod void CamapaignInvitationLetterHelper()
    { 
       Campaign OCampaign = new Campaign(Name = 'Anovatek Testing', Description= 'Anovatek Testing is Started',Invitation_Letter_Sent_Date__c=System.today());
       insert OCampaign ;   
       
       Lead OLead = new Lead(Status = '2-Invitation Letter Sent', LastName = 'Test', Company = 'Test',TAB_Lead_Owner__c = 'Test12',Seat_Letter_Sent__c=System.today());
       insert OLead;
       
       Lead OLead1 = new Lead(Status = '2-Invitation Letter Sent', LastName = 'Test4', Company = 'Test',TAB_Lead_Owner__c = 'Test14',Seat_Letter_Sent__c=System.today());
       insert OLead1;
      
       Lead OLead2 = new Lead(Status = '2-Invitation Letter Sent', LastName = 'Test4', Company = 'Test',TAB_Lead_Owner__c = 'Test14',Seat_Letter_Sent__c=System.today());
       insert OLead2;

                    
       CampaignMember cCampaignMember = new CampaignMember(CampaignId=OCampaign.Id, LeadId=OLead.Id,Status='Sent');
       Insert cCampaignMember ;
      
       CampaignMember cCampaignMember1 = new CampaignMember(CampaignId=OCampaign.Id, LeadId=OLead1.Id,Status='Sent');
       Insert cCampaignMember1 ;
      
       CampaignMember cCampaignMember2 = new CampaignMember(CampaignId=OCampaign.Id, LeadId=OLead2.Id,Status='Sent');
       Insert cCampaignMember2 ;

      
       List<CampaignMember> exCampaignMember=[Select LeadId from CampaignMember Where CampaignId = :OCampaign.Id];
       
       Lead lLead1 = [Select TAB_Lead_Owner__c,Id,Seat_Letter_Sent__c From Lead where Id = :OLead.Id];
       lLead1.Seat_Letter_Sent__c =System.today();
       update lLead1;
      
        Lead lLead2 = [Select TAB_Lead_Owner__c,Id,Seat_Letter_Sent__c From Lead where Id = :OLead1.Id];
        lLead2.Seat_Letter_Sent__c =System.today();
        update lLead2;

      
     }
}

 

 

can anyone help me on this, to improve the Test Coverage percentage to 75%. where i need to move this to production server.

 

i appreciate your help.

 

 

 

Thanks.