• AlanPerkins
  • NEWBIE
  • 50 Points
  • Member since 2006

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

Hi there,

 

I keep getting the "Too many SOQL queries" error when trying to deploy my apex class.

I tried a lot of constructions but can't figure out how to construct this class so that i don't get those errors...!?

 

I get the errors when i unmark the /* ---->>>*/ marked rows...

 

Is there somebody who could help me to get my class deployed?

 

 

public class Taak_tbv_Factuur { public static integer TESTVAR = 0; //Lijsten tbv opslaan gevonden Achterstallige facturen; om later te verwerken en geen bulk limits tegen te komen public static List<Achterstallige_factuur__c> Dag8Facturen = new List<Achterstallige_factuur__c>(); public static List<Account> Dag8Accounts = new List<Account>(); public static List<Integer> Dag8Taken = new List<Integer>(); public static List<Achterstallige_factuur__c> Dag22Facturen = new List<Achterstallige_factuur__c>(); public static List<Account> Dag22Accounts = new List<Account>(); public static List<Achterstallige_factuur__c> Dag42Facturen = new List<Achterstallige_factuur__c>(); public static List<Achterstallige_factuur__c> Dag50Facturen = new List<Achterstallige_factuur__c>(); //haal Id van SYSTEM op public static User sys = [SELECT Id FROM User WHERE Alias =: 'SYSTE']; //haal MKP van SYSTEM op public static User mkp = [SELECT Id FROM User WHERE Alias =: 'MKP']; @Future public static void Check_Achterstallig(){ // zoek naar de nog niet afgehandelde achterstallige facturen Achterstallige_factuur__c[] Af = [SELECT Id, Relatie__c, CreatedDate, Status__c FROM Achterstallige_factuur__c WHERE Status__c != 'Afgehandeld']; for(Achterstallige_factuur__c f: Af){ // bereken leeftijd van de achterstallige factuur entry Date OPVOERDATUM = date.valueof(string.valueof(f.CreatedDate)); Date VANDAAG = Date.today(); integer leeftijd = OPVOERDATUM.daysbetween(VANDAAG); if(leeftijd >= 50 || TESTVAR == 4){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Loopt bij Incasso" Dag50Facturen.Add(f); } else if(leeftijd >= 42 || TESTVAR == 3){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Laatste sommatie versturen..." Dag42Facturen.Add(f); } else if(leeftijd >= 22 || TESTVAR == 2){ // Als het nabellen van de AM niet heeft geholpen laten we F&A terugbellen, 22 dagen na invoeren achterstallige factuur Account a = [SELECT OwnerId, Id FROM Account WHERE Id =: f.Relatie__c limit 1]; Dag22Facturen.Add(f); Dag22Accounts.Add(a); } else if(leeftijd >= 8 || TESTVAR == 1){ // 8 dagen nadat de achterstallige factuur is ingevoerd maken we de eerste taak aan om te laten bellen door AM van de betreffende relatie Account a = [SELECT OwnerId, Id FROM Account WHERE Id =: f.Relatie__c limit 1]; integer i = [SELECT Count() FROM Task WHERE WhatId =: f.Id and CreatedById =: sys.Id limit 1]; Dag8Facturen.Add(f); Dag8Accounts.Add(a); Dag8Taken.Add(i); } } for (integer afactuur = 0; afactuur < Dag50Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag50Facturen[afactuur]; /* ---->>> */ //MaakTaakDag50(ach); } for (integer afactuur = 0; afactuur < Dag42Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag42Facturen[afactuur]; /* ---->>> */ //MaakTaakDag42(ach); } for (integer afactuur = 0; afactuur < Dag22Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag22Facturen[afactuur]; account a = Dag22Accounts[afactuur]; /* ---->>> */ //MaakTaakDag22(ach, a); } for (integer afactuur = 0; afactuur < Dag8Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag8Facturen[afactuur]; account a = Dag8Accounts[afactuur]; integer i = Dag8Taken[afactuur]; //taak mag nog niet bestaan if(i==0){ MaakTaakDag8(ach, a); } } } private static void MaakTaakDag8(Achterstallige_factuur__c ach, account a){ // 8 dagen nadat de achterstallige factuur is ingevoerd maken we de eerste taak aan om te laten bellen door AM van de betreffende relatie //Maak de taak aan Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Relatie nabellen tbv achterstallige betaling factuur (FASE 1 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = a.OwnerId, WhatId = ach.Id) ); insert newTask; } private static void MaakTaakDag22(Achterstallige_factuur__c ach, account a){ // Als het nabellen van de AM niet heeft geholpen laten we F&A terugbellen, 22 dagen na invoeren achterstallige factuur // update bestaande taak naar afgesloten en maak een nieuwe aan Task[] Tsk = [SELECT Id FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: a.OwnerId and status != 'Afgesloten']; for(Task T: Tsk){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; } // Als de taak voor MKP nog niet bestaat dan aanmaken integer i = [SELECT count() FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' limit 1]; if(i == 0){ // Maak taak aan Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Relatie nabellen tbv achterstallige betaling factuur (FASE 2 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; } } private static void MaakTaakDag42(Achterstallige_factuur__c ach){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Laatste sommatie versturen..." Task[] Tsk = [SELECT Id, Description FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' ]; for(Task T: Tsk){ if(T.Description == 'Relatie nabellen tbv achterstallige betaling factuur (FASE 2 van 4)'){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; // nieuwe taak aanmaken voor MKP tbv laatste sommatie Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Laatste sommatie versturen (FASE 3 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; // status van de achterstallige factuur bijwerken ach.Status__c = 'Laatste sommatie is verstuurd'; update ach; } } } private static void MaakTaakDag50(Achterstallige_factuur__c ach){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Loopt bij Incasso" Task[] Tsk = [SELECT Id, Description FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' ]; for(Task T: Tsk){ if(T.Description == 'Laatste sommatie versturen (FASE 3 van 4)'){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; // nieuwe taak aanmaken voor MKP tbv laatste sommatie Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Factuur aanbieden ter incasso (FASE 4 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; // status van de achterstallige factuur bijwerken ach.Status__c = 'Loopt bij incasso'; update ach; } } } }

 

 

I just generated a WSDL for a new Webservice class I created - the first for a month or two. This time the WSDL generated includes 25000 lines of definition for the entire custom object set instead of just the interface to the webservice. This is a big problem.

 

How do I get the WSDL the way it used to be with just the interface to the webservice and why am I getting all the custom object definitions, which should only be included in the Enterprise WSDL?

 

 

Hi,

 

I am having difficulty with attempting to create a new custom object. I have a valid connection etc. (In this case to a sandbox).

 

The login credentials have sysadmin rights.

 

The error I get is "Unable to determine type mapping for type CustomObject.  Type is illegal here."

 

I have no idea what the issue is. 

 

I have posted the SOAP request below (header removed).

 

 

<?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> {Header removed} </SOAP-ENV:Header> <SOAP-ENV:Body xmlns="http://tempuri.org/"> <create xmlns="http://soap.sforce.com/2006/04/metadata"> <metadata xsi:type="ns1:CustomObject"> <fullName>MYOB__c</fullName> <customSettingsType>List</customSettingsType> <deploymentStatus>Deployed</deploymentStatus> <description>This is a test Object created using the Metadata API.</description> <enableActivities>true</enableActivities> <fields> <fullName>MyField__c</fullName> <description>This is a description of a custom field.</description> <formulaTreatBlanksAs>BlankAsBlank</formulaTreatBlanksAs> <label>My Custom Field</label> <maskChar>asterisk</maskChar> <maskType>all</maskType> <picklist> <sorted>false</sorted> </picklist> <summaryOperation>count</summaryOperation> <type>Text</type> </fields> <gender>Neuter</gender> <label>Mind Your Own Business</label> <nameField> <formulaTreatBlanksAs>BlankAsBlank</formulaTreatBlanksAs> <maskChar>asterisk</maskChar> <maskType>all</maskType> <picklist> <sorted>false</sorted> </picklist> <summaryOperation>count</summaryOperation> <type>AutoNumber</type> </nameField> <pluralLabel>Mind Your Own Businesses</pluralLabel> <searchLayouts /> <sharingModel>ReadWrite</sharingModel> <startsWith>Consonant</startsWith> </metadata> </create> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

 

 

 

 

 Any help is appreciated.

Hi

My controller has a boolean property getUserIsManager() and I want to render an element conditionally. Is this possible?

Here is my attempt:

Code:
    <apex:pageBlock rendered="{!IF ({!UserIsManager}=true,"true","false")}"></apex:pageBlock>

 
Any assistance gratefully received.
    I have a list defined as List<Map<ID, MyObject__c>> and I am populating multiple maps of these objects into the list as separate entries in the list.
That all appears to work OK.

I am trying to access the records inside the maps inside the list and am running into problems:

It doesn't matter which way I seem to write the inner for loop, I get one error or another on the inner loop -

for(Integer i = counter; i == 0; i--) {
    for(MyObject__c person:peopleList[i]) {
       //do stuff with person
    }
}

or

for(Integer i = counter; i == 0; i--) {
    Map<ID, MyObject__c> p = (Map<ID, PNP_Person__c>)peopleList[i];
    for(MyObject__c person:p) {
       //do stuff with person
    }
}


How do I reference the internal map in the list here?

The error message given here is "Initial term of field expression must be a concrete SObject: LIST:MAP:Id,SOBJECT:MyObject__c "


Thanks in advance for any assistance!

I just generated a WSDL for a new Webservice class I created - the first for a month or two. This time the WSDL generated includes 25000 lines of definition for the entire custom object set instead of just the interface to the webservice. This is a big problem.

 

How do I get the WSDL the way it used to be with just the interface to the webservice and why am I getting all the custom object definitions, which should only be included in the Enterprise WSDL?

 

 

Hi there,

 

I keep getting the "Too many SOQL queries" error when trying to deploy my apex class.

I tried a lot of constructions but can't figure out how to construct this class so that i don't get those errors...!?

 

I get the errors when i unmark the /* ---->>>*/ marked rows...

 

Is there somebody who could help me to get my class deployed?

 

 

public class Taak_tbv_Factuur { public static integer TESTVAR = 0; //Lijsten tbv opslaan gevonden Achterstallige facturen; om later te verwerken en geen bulk limits tegen te komen public static List<Achterstallige_factuur__c> Dag8Facturen = new List<Achterstallige_factuur__c>(); public static List<Account> Dag8Accounts = new List<Account>(); public static List<Integer> Dag8Taken = new List<Integer>(); public static List<Achterstallige_factuur__c> Dag22Facturen = new List<Achterstallige_factuur__c>(); public static List<Account> Dag22Accounts = new List<Account>(); public static List<Achterstallige_factuur__c> Dag42Facturen = new List<Achterstallige_factuur__c>(); public static List<Achterstallige_factuur__c> Dag50Facturen = new List<Achterstallige_factuur__c>(); //haal Id van SYSTEM op public static User sys = [SELECT Id FROM User WHERE Alias =: 'SYSTE']; //haal MKP van SYSTEM op public static User mkp = [SELECT Id FROM User WHERE Alias =: 'MKP']; @Future public static void Check_Achterstallig(){ // zoek naar de nog niet afgehandelde achterstallige facturen Achterstallige_factuur__c[] Af = [SELECT Id, Relatie__c, CreatedDate, Status__c FROM Achterstallige_factuur__c WHERE Status__c != 'Afgehandeld']; for(Achterstallige_factuur__c f: Af){ // bereken leeftijd van de achterstallige factuur entry Date OPVOERDATUM = date.valueof(string.valueof(f.CreatedDate)); Date VANDAAG = Date.today(); integer leeftijd = OPVOERDATUM.daysbetween(VANDAAG); if(leeftijd >= 50 || TESTVAR == 4){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Loopt bij Incasso" Dag50Facturen.Add(f); } else if(leeftijd >= 42 || TESTVAR == 3){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Laatste sommatie versturen..." Dag42Facturen.Add(f); } else if(leeftijd >= 22 || TESTVAR == 2){ // Als het nabellen van de AM niet heeft geholpen laten we F&A terugbellen, 22 dagen na invoeren achterstallige factuur Account a = [SELECT OwnerId, Id FROM Account WHERE Id =: f.Relatie__c limit 1]; Dag22Facturen.Add(f); Dag22Accounts.Add(a); } else if(leeftijd >= 8 || TESTVAR == 1){ // 8 dagen nadat de achterstallige factuur is ingevoerd maken we de eerste taak aan om te laten bellen door AM van de betreffende relatie Account a = [SELECT OwnerId, Id FROM Account WHERE Id =: f.Relatie__c limit 1]; integer i = [SELECT Count() FROM Task WHERE WhatId =: f.Id and CreatedById =: sys.Id limit 1]; Dag8Facturen.Add(f); Dag8Accounts.Add(a); Dag8Taken.Add(i); } } for (integer afactuur = 0; afactuur < Dag50Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag50Facturen[afactuur]; /* ---->>> */ //MaakTaakDag50(ach); } for (integer afactuur = 0; afactuur < Dag42Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag42Facturen[afactuur]; /* ---->>> */ //MaakTaakDag42(ach); } for (integer afactuur = 0; afactuur < Dag22Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag22Facturen[afactuur]; account a = Dag22Accounts[afactuur]; /* ---->>> */ //MaakTaakDag22(ach, a); } for (integer afactuur = 0; afactuur < Dag8Facturen.size(); afactuur++){ Achterstallige_factuur__c ach=Dag8Facturen[afactuur]; account a = Dag8Accounts[afactuur]; integer i = Dag8Taken[afactuur]; //taak mag nog niet bestaan if(i==0){ MaakTaakDag8(ach, a); } } } private static void MaakTaakDag8(Achterstallige_factuur__c ach, account a){ // 8 dagen nadat de achterstallige factuur is ingevoerd maken we de eerste taak aan om te laten bellen door AM van de betreffende relatie //Maak de taak aan Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Relatie nabellen tbv achterstallige betaling factuur (FASE 1 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = a.OwnerId, WhatId = ach.Id) ); insert newTask; } private static void MaakTaakDag22(Achterstallige_factuur__c ach, account a){ // Als het nabellen van de AM niet heeft geholpen laten we F&A terugbellen, 22 dagen na invoeren achterstallige factuur // update bestaande taak naar afgesloten en maak een nieuwe aan Task[] Tsk = [SELECT Id FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: a.OwnerId and status != 'Afgesloten']; for(Task T: Tsk){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; } // Als de taak voor MKP nog niet bestaat dan aanmaken integer i = [SELECT count() FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' limit 1]; if(i == 0){ // Maak taak aan Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Relatie nabellen tbv achterstallige betaling factuur (FASE 2 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; } } private static void MaakTaakDag42(Achterstallige_factuur__c ach){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Laatste sommatie versturen..." Task[] Tsk = [SELECT Id, Description FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' ]; for(Task T: Tsk){ if(T.Description == 'Relatie nabellen tbv achterstallige betaling factuur (FASE 2 van 4)'){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; // nieuwe taak aanmaken voor MKP tbv laatste sommatie Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Laatste sommatie versturen (FASE 3 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; // status van de achterstallige factuur bijwerken ach.Status__c = 'Laatste sommatie is verstuurd'; update ach; } } } private static void MaakTaakDag50(Achterstallige_factuur__c ach){ // bestaande taak mkp op afgesloten zetten en nieuwe taak voor mkp aanmaken en zet achterstallige factuur op "Loopt bij Incasso" Task[] Tsk = [SELECT Id, Description FROM Task WHERE WhatId =: ach.Id and CreatedById =: sys.Id and OwnerId =: mkp.Id and status != 'Afgesloten' ]; for(Task T: Tsk){ if(T.Description == 'Laatste sommatie versturen (FASE 3 van 4)'){ T.status = 'Afgesloten'; T.IsReminderSet = false; Update T; // nieuwe taak aanmaken voor MKP tbv laatste sommatie Task[] newTask = new Task[0]; newTask.add(new Task(Description = 'Factuur aanbieden ter incasso (FASE 4 van 4)', Priority = 'Normal', Status = 'Nog te Starten', Subject = 'Achterstallige factuur', IsReminderSet = true, ReminderDateTime = System.now(), OwnerId = mkp.Id, WhatId = ach.Id) ); insert newTask; // status van de achterstallige factuur bijwerken ach.Status__c = 'Loopt bij incasso'; update ach; } } } }

 

 

Hi

 

I have managed to create a custom tab containing URL through Metadata API. However, I have a few problems with it.

 

1. I am unable to add it to any App: The custom tab is visible to everyone. I have added the tab to a few Apps but I was unable to see the tab from any of those Apps.

 

2. I noticed the motif field is just a string. The example of "'Custom70: Handsaw," works fine (but you have to remove the single quote and comma) However I wonder how I would be able to get the list of available string to select from and more importantly if there is a way to create custom motif through the metadata API as well.

 

thanks

Hi,

 

I am having difficulty with attempting to create a new custom object. I have a valid connection etc. (In this case to a sandbox).

 

The login credentials have sysadmin rights.

 

The error I get is "Unable to determine type mapping for type CustomObject.  Type is illegal here."

 

I have no idea what the issue is. 

 

I have posted the SOAP request below (header removed).

 

 

<?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> {Header removed} </SOAP-ENV:Header> <SOAP-ENV:Body xmlns="http://tempuri.org/"> <create xmlns="http://soap.sforce.com/2006/04/metadata"> <metadata xsi:type="ns1:CustomObject"> <fullName>MYOB__c</fullName> <customSettingsType>List</customSettingsType> <deploymentStatus>Deployed</deploymentStatus> <description>This is a test Object created using the Metadata API.</description> <enableActivities>true</enableActivities> <fields> <fullName>MyField__c</fullName> <description>This is a description of a custom field.</description> <formulaTreatBlanksAs>BlankAsBlank</formulaTreatBlanksAs> <label>My Custom Field</label> <maskChar>asterisk</maskChar> <maskType>all</maskType> <picklist> <sorted>false</sorted> </picklist> <summaryOperation>count</summaryOperation> <type>Text</type> </fields> <gender>Neuter</gender> <label>Mind Your Own Business</label> <nameField> <formulaTreatBlanksAs>BlankAsBlank</formulaTreatBlanksAs> <maskChar>asterisk</maskChar> <maskType>all</maskType> <picklist> <sorted>false</sorted> </picklist> <summaryOperation>count</summaryOperation> <type>AutoNumber</type> </nameField> <pluralLabel>Mind Your Own Businesses</pluralLabel> <searchLayouts /> <sharingModel>ReadWrite</sharingModel> <startsWith>Consonant</startsWith> </metadata> </create> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

 

 

 

 

 Any help is appreciated.

Hi

My controller has a boolean property getUserIsManager() and I want to render an element conditionally. Is this possible?

Here is my attempt:

Code:
    <apex:pageBlock rendered="{!IF ({!UserIsManager}=true,"true","false")}"></apex:pageBlock>

 
Any assistance gratefully received.
When I see an Account detail screen, I'd like to be able to only show Contacts based on some kind of criteria.

Can this be done? Is there an override, or controller extension that could do it? Or, could it be done via security rights?

Thanks,