You need to sign in to do that
Don't have an account?
Jim Montgomery
too many soql queries error inserting accounts
Not sure where this is erroring out.
trigger MSAData on Account (before insert,before update) {
for (account Acc:trigger.new){
Map<String,String> MSALookup = new Map<String,String>();
Set<String> AZipCode = new Set<String>();
if(trigger.IsInsert){
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_code__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_code__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_code__c = MSALookup.get(A.billingpostalcode);
}
}
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_name__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_name__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_description__c = MSALookup.get(A.billingpostalcode);
}
}
}
else
if(trigger.isUpdate){
for(Account acct:trigger.new){
account oldAcct= Trigger.oldmap.get(Acct.Id);
if (oldacct.BillingPostalCode<>Acct.BillingPostalCode){
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_name__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_name__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_description__c = MSALookup.get(A.billingpostalcode);
}
}
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_code__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_code__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_code__c = MSALookup.get(A.billingpostalcode);
}
}
}
}
}
}
}
trigger MSAData on Account (before insert,before update) {
for (account Acc:trigger.new){
Map<String,String> MSALookup = new Map<String,String>();
Set<String> AZipCode = new Set<String>();
if(trigger.IsInsert){
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_code__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_code__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_code__c = MSALookup.get(A.billingpostalcode);
}
}
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_name__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_name__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_description__c = MSALookup.get(A.billingpostalcode);
}
}
}
else
if(trigger.isUpdate){
for(Account acct:trigger.new){
account oldAcct= Trigger.oldmap.get(Acct.Id);
if (oldacct.BillingPostalCode<>Acct.BillingPostalCode){
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_name__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_name__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_description__c = MSALookup.get(A.billingpostalcode);
}
}
for(Account A:Trigger.new) {
AZipCode.add(A.billingpostalcode);
for(naics_code__c NA:
[SELECT zip_code__c, msa_code__c
FROM naics_code__c
WHERE zip_code__c IN :AZipCode]) {
MSALookup.put(NA.zip_code__c,NA.msa_code__c);
}
}
for(Account A:Trigger.new) {
if(MSALookup.containsKey(A.billingpostalcode)) {
A.d_B_msa_code__c = MSALookup.get(A.billingpostalcode);
}
}
}
}
}
}
}
Please try the below code
All Answers
You are querying data inside for loop. Remover your query from inside loop. It will help you
Thanks
Please try the below code
Thanks!!