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
Kathryn BullockKathryn Bullock 

Unexpected Token 'for'

for (Opportunity objOpp : opportunities){
            if(objOpp.Owner.ProfileId == 'System Administrator') {
trigger OpportunityTrigger on Opportunity (before insert) {
    if(Trigger.isBefore && Trigger.isInsert){
DedupeCasesHandler.deDupeCases
    }
}

I have zero idea of what I am doing and I am recieving the eror message "Unexpected token 'for'"
Best Answer chosen by Kathryn Bullock
Waqar Hussain SFWaqar Hussain SF
trigger NoTwoOpps on Opportunity (before insert){
	
	Profile p=[SELECT ID, Name FROM Profile WHERE Id=:userinfo.getProfileId() LIMIT 1];
	boolean IsDedup = false;		
    for (Opportunity o: Trigger.new){
        if(o.AccountId!=null)
        {   
            if(p.Name<>'System Administrator')
            {
				IsDedup = true;
                
            }
        }
    }
	
	if(IsDedup){
		Opportunity u=[Select ID, Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity WHERE CreatedDate=Last_90_DAYS];
		DedupeCasesHandler.deDupeCases(u);
	}
}
 
public class DedupeCasesHandler {
    public static void deDupeCases (List<Opportunity> Opps){
Set<String> setUnique            = New Set<String>();
Set<String> setUniqueDataBase    = New Set<String>();
Set<String> Field1               = New Set<String>();
Set<String> Field2               = New Set<String>();
        
        
        For (Opportunity objOpp : Opps){
If(objOpp.Oppty_Type__c !=Null && objOpp.Opport_Acct_SF_ID__c !=Null){
    Field1.add(objOpp.Oppty_Type__c);
	Field2.add(objOpp.Opport_Acct_SF_ID__c);
    
    String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c;
     if(strKey != null && strKey != '')
setUnique.add(strKey);
    system.debug('setUnique' +setUnique);
    }
}
if(!setUnique.isEmpty()){
	system.debug('Im here');
    For (Opportunity objOpp : [SELECT Id,Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity]){
String strKeyDataBase = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
        setUniqueDataBase.add(strKeyDataBase);
system.debug('setUniqueDataBase'+setUniqueDataBase);
        }
    }
        For(Opportunity objOpp : Opps){
 IF(objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c != Null && objOpp.Oppty_Type__c !=Null){
     String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
     if(!setUniqueDataBase.isEmpty() && setUniqueDataBase.contains(strKey)){
objOpp.addError('An Opportunity of this kind already exists for this Account, Contact a System Administrator with questions');
         }
     }
          }
}
}

 

All Answers

jane1234jane1234
try avoiding space after for
Kathryn BullockKathryn Bullock
I am still recieving the error message
jane1234jane1234
try commentiing 2 to 6 
Hemant_SoniHemant_Soni
Hi,
You Are doing completly wrong thing in your code try learn something. 
You started For Loop and inside for loop you are writing trigger. Please see trigger writing syntex so you will get exectly what you are doing.
Thanks
Hemant
jane1234jane1234
if you are writting trigger syntax id like below
trigger triigername on object(before insert)
{ // your logic
}
Gustavo BertolinoGustavo Bertolino
The for curly-braces is open and conflicting with one of the if curly-braces. Indent your code and check if all the curly-braces match correctly.
Waqar Hussain SFWaqar Hussain SF
trigger OpportunityTrigger on Opportunity (before insert) {
    if(Trigger.isBefore && Trigger.isInsert){
		//populate opportunities list here 
		for(Opportunity objOpp : opportunities){
            if(objOpp.Owner.ProfileId == 'System Administrator') {
				//DedupeCasesHandler.deDupeCases
			}
		}
	}
}

try above code snippit.
Kathryn BullockKathryn Bullock
I tried that code and I am still recieving error messages.  It is telling me that Opportunities does not exist and deDupeCases does not exist, but those weren't problems on the first time I tried the code.  

All of the curly brackets are matching and I have indented and there are stil errors.
Waqar Hussain SFWaqar Hussain SF
Yes, You will have to popupate opportunities list and on DedupeCasesHandler class you must have a static deDupeCases method.
Kathryn BullockKathryn Bullock
So I have the trigger set to the following:
trigger NoTwoOpps on Opportunity (before insert){
    for (Opportunity o: Trigger.new){
        if(o.AccountId!=null)
        {
            Opportunity u=[Select ID, Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity WHERE CreatedDate=Last_90_DAYS];
            Profile p=[SELECT ID, Name FROM Profile WHERE Id=:userinfo.getProfileId() LIMIT 1];
            if(p.Name<>'System Administrator')
            {
                (DedupeCasesHandler.deDupeCases);
            }
        }
    }
}

And this associated class:
public class DedupeCasesHandler {
    public static void deDupeCases (List<Opportunity> Opps){
Set<String> setUnique            = New Set<String>();
Set<String> setUniqueDataBase    = New Set<String>();
Set<String> Field1               = New Set<String>();
Set<String> Field2               = New Set<String>();
        
        
        For (Opportunity objOpp : Opps){
If(objOpp.Oppty_Type__c !=Null && objOpp.Opport_Acct_SF_ID__c !=Null){
    Field1.add(objOpp.Oppty_Type__c);
	Field2.add(objOpp.Opport_Acct_SF_ID__c);
    
    String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c;
     if(strKey != null && strKey != '')
setUnique.add(strKey);
    system.debug('setUnique' +setUnique);
    }
}
if(!setUnique.isEmpty()){
	system.debug('Im here');
    For (Opportunity objOpp : [SELECT Id,Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity]){
String strKeyDataBase = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
        setUniqueDataBase.add(strKeyDataBase);
system.debug('setUniqueDataBase'+setUniqueDataBase);
        }
    }
        For(Opportunity objOpp : Opps){
 IF(objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c != Null && objOpp.Oppty_Type__c !=Null){
     String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
     if(!setUniqueDataBase.isEmpty() && setUniqueDataBase.contains(strKey)){
objOpp.addError('An Opportunity of this kind already exists for this Account, Contact a System Administrator with questions');
         }
     }
          }
}
}

Why is this telling me that the variable does not exist?  And what exactly do I have to do to fix this problem?
jane1234jane1234
In Line no 9 on trigger

  (DedupeCasesHandler.deDupeCases); -- This is incoorect

  DedupeCasesHandler.deDupeCases(Listopportunity);
And also donot write soql query in loop



 
jane1234jane1234
you can rewrite your code as 

trigger NoTwoOpps on Opportunity (before insert){
List<opportunity> opps = new List<opportunity>();
Profile p=[SELECT ID, Name FROM Profile WHERE Id=:userinfo.getProfileId() LIMIT 1]; 

for (Opportunity o: Trigger.new){
if(o.AccountId!=null && o.createdDate>=system.now().adddays(-90)) {

if(p.Name<>'System Administrator')
{
opps.add(o);
DedupeCasesHandler.deDupeCases(o);
}
}
}
}
Waqar Hussain SFWaqar Hussain SF
trigger NoTwoOpps on Opportunity (before insert){
	
	Profile p=[SELECT ID, Name FROM Profile WHERE Id=:userinfo.getProfileId() LIMIT 1];
	boolean IsDedup = false;		
    for (Opportunity o: Trigger.new){
        if(o.AccountId!=null)
        {   
            if(p.Name<>'System Administrator')
            {
				IsDedup = true;
                
            }
        }
    }
	
	if(IsDedup){
		Opportunity u=[Select ID, Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity WHERE CreatedDate=Last_90_DAYS];
		DedupeCasesHandler.deDupeCases(u);
	}
}
 
public class DedupeCasesHandler {
    public static void deDupeCases (List<Opportunity> Opps){
Set<String> setUnique            = New Set<String>();
Set<String> setUniqueDataBase    = New Set<String>();
Set<String> Field1               = New Set<String>();
Set<String> Field2               = New Set<String>();
        
        
        For (Opportunity objOpp : Opps){
If(objOpp.Oppty_Type__c !=Null && objOpp.Opport_Acct_SF_ID__c !=Null){
    Field1.add(objOpp.Oppty_Type__c);
	Field2.add(objOpp.Opport_Acct_SF_ID__c);
    
    String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c+ '_' +objOpp.Oppty_Type__c;
     if(strKey != null && strKey != '')
setUnique.add(strKey);
    system.debug('setUnique' +setUnique);
    }
}
if(!setUnique.isEmpty()){
	system.debug('Im here');
    For (Opportunity objOpp : [SELECT Id,Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity]){
String strKeyDataBase = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
        setUniqueDataBase.add(strKeyDataBase);
system.debug('setUniqueDataBase'+setUniqueDataBase);
        }
    }
        For(Opportunity objOpp : Opps){
 IF(objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c !=Null && objOpp.Oppty_Type__c != Null && objOpp.Oppty_Type__c !=Null){
     String strKey = objOpp.Oppty_Type__c+ '_' +objOpp.Opport_Acct_SF_ID__c;
     if(!setUniqueDataBase.isEmpty() && setUniqueDataBase.contains(strKey)){
objOpp.addError('An Opportunity of this kind already exists for this Account, Contact a System Administrator with questions');
         }
     }
          }
}
}

 
This was selected as the best answer
jane1234jane1234
In line 16 and - 18  in trigger you are using  object type
Please rewrite it as 

List< Opportunity> u=[Select ID, Oppty_Type__c,Opport_Acct_SF_ID__c FROM Opportunity WHERECreatedDate=Last_90_DAYS];