System.QueryException unexpected token The 2019 Stack Overflow Developer Survey Results Are...

What aspect of planet Earth must be changed to prevent the industrial revolution?

First use of “packing” as in carrying a gun

How to pronounce 1ターン?

Would an alien lifeform be able to achieve space travel if lacking in vision?

Problems with Ubuntu mount /tmp

How can I protect witches in combat who wear limited clothing?

Python - Fishing Simulator

What force causes entropy to increase?

does high air pressure throw off wheel balance?

What is this lever in Argentinian toilets?

Do working physicists consider Newtonian mechanics to be "falsified"?

Single author papers against my advisor's will?

Is this wall load bearing? Blueprints and photos attached

Simulating Exploding Dice

Derivation tree not rendering

Did God make two great lights or did He make the great light two?

Am I ethically obligated to go into work on an off day if the reason is sudden?

Why can't wing-mounted spoilers be used to steepen approaches?

Did the new image of black hole confirm the general theory of relativity?

How do you keep chess fun when your opponent constantly beats you?

Can the DM override racial traits?

Wall plug outlet change

Finding the path in a graph from A to B then back to A with a minimum of shared edges

Take groceries in checked luggage



System.QueryException unexpected token



The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Moderator Election Q&A - Questionnaire
2019 Community Moderator Election ResultsDynamic soql : Unexpected token '{'Getting error “System.LimitException: Too many query rows: 50001” what i do in this case.Returning an SObject from an InvocableMethod to a Flowfault string: No such parameter param defined for the operation, please check the WSDL for the serviceSystem.QueryException: unexpected token: 'FROM'countQuery() returns System.QueryException: unexpected token: ':'Dynamic SOQL :System.QueryException: unexpected token: <System.QueryException: unexpected token: :System.QueryException: unexpected token: nullnullhow to display picklist values which is stored in custom settings values based on the condition





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1















Trying to return all fields in object




System.QueryException: unexpected token: '('




when I run the Invocable class at the parents = assignment



public with sharing class AuditReportBulkifyClass {

@InvocableMethod(label='Collect Bulkified Records')
public static List<List<hdone__AuditReport__c>> gatherRequests(Request[] requests) {

// Gather bulkified records from Flow
Map<Id, hdone__AuditReport__c> parents = new Map<Id, hdone__AuditReport__c>();

// Want to get all fields from object for use in Flows
Map<String, Schema.SobjectField> fieldMap = hdone__AuditReport__c.SobjectType.getDescribe().fields.getMap();
Set<String> fieldNames = fieldMap.keySet();
String myset_Joined = string.join(new List<String>(fieldNames), ',');
String theQuery = 'SELECT ' + myset_Joined + ' FROM hdone__AuditReport__c WHERE Id IN :parents.keySet()';

for(Request request : requests) {
parents.put(request.recordId, null);
}

parents = new Map<Id, hdone__AuditReport__c>(
(List<hdone__AuditReport__c>)Database.query(theQuery)
);

// Flows must return List<List> for Sobject Collections. This is returned as Sobject Collection to Flow
List<List<hdone__AuditReport__c>> responseColl = new List<List<hdone__AuditReport__c>>();

// Add all of the values to an initial List
List<hdone__AuditReport__c> responseList = new List<hdone__AuditReport__c>();
responseList.addAll(parents.values());

System.debug('Size of ResponseList ' + responseList.size());

// Adds actual values we will use to the List of List
responseColl.add(responseList);
System.debug('Return responseColl size ' + responseColl.size());

// Initialize a new list which will return empty to ensure return same number of interviews back to Flow
List<hdone__AuditReport__c> emptyList = new List<hdone__AuditReport__c>();

// Iterate through number of interviews - 1 and assign to empty list
for (Integer i=0; i<responseList.size()-1; i++){
responseColl.add(emptyList);
}
return responseColl;
}

public with sharing class Request {
@InvocableVariable(label='Record ID' required=true)
public Id recordId;

@InvocableVariable(label='Object API Name' required=false)
public String objectName;

@InvocableVariable(label='Parent ID' required=false)
public Id parentId;
}
}









share|improve this question





























    1















    Trying to return all fields in object




    System.QueryException: unexpected token: '('




    when I run the Invocable class at the parents = assignment



    public with sharing class AuditReportBulkifyClass {

    @InvocableMethod(label='Collect Bulkified Records')
    public static List<List<hdone__AuditReport__c>> gatherRequests(Request[] requests) {

    // Gather bulkified records from Flow
    Map<Id, hdone__AuditReport__c> parents = new Map<Id, hdone__AuditReport__c>();

    // Want to get all fields from object for use in Flows
    Map<String, Schema.SobjectField> fieldMap = hdone__AuditReport__c.SobjectType.getDescribe().fields.getMap();
    Set<String> fieldNames = fieldMap.keySet();
    String myset_Joined = string.join(new List<String>(fieldNames), ',');
    String theQuery = 'SELECT ' + myset_Joined + ' FROM hdone__AuditReport__c WHERE Id IN :parents.keySet()';

    for(Request request : requests) {
    parents.put(request.recordId, null);
    }

    parents = new Map<Id, hdone__AuditReport__c>(
    (List<hdone__AuditReport__c>)Database.query(theQuery)
    );

    // Flows must return List<List> for Sobject Collections. This is returned as Sobject Collection to Flow
    List<List<hdone__AuditReport__c>> responseColl = new List<List<hdone__AuditReport__c>>();

    // Add all of the values to an initial List
    List<hdone__AuditReport__c> responseList = new List<hdone__AuditReport__c>();
    responseList.addAll(parents.values());

    System.debug('Size of ResponseList ' + responseList.size());

    // Adds actual values we will use to the List of List
    responseColl.add(responseList);
    System.debug('Return responseColl size ' + responseColl.size());

    // Initialize a new list which will return empty to ensure return same number of interviews back to Flow
    List<hdone__AuditReport__c> emptyList = new List<hdone__AuditReport__c>();

    // Iterate through number of interviews - 1 and assign to empty list
    for (Integer i=0; i<responseList.size()-1; i++){
    responseColl.add(emptyList);
    }
    return responseColl;
    }

    public with sharing class Request {
    @InvocableVariable(label='Record ID' required=true)
    public Id recordId;

    @InvocableVariable(label='Object API Name' required=false)
    public String objectName;

    @InvocableVariable(label='Parent ID' required=false)
    public Id parentId;
    }
    }









    share|improve this question

























      1












      1








      1








      Trying to return all fields in object




      System.QueryException: unexpected token: '('




      when I run the Invocable class at the parents = assignment



      public with sharing class AuditReportBulkifyClass {

      @InvocableMethod(label='Collect Bulkified Records')
      public static List<List<hdone__AuditReport__c>> gatherRequests(Request[] requests) {

      // Gather bulkified records from Flow
      Map<Id, hdone__AuditReport__c> parents = new Map<Id, hdone__AuditReport__c>();

      // Want to get all fields from object for use in Flows
      Map<String, Schema.SobjectField> fieldMap = hdone__AuditReport__c.SobjectType.getDescribe().fields.getMap();
      Set<String> fieldNames = fieldMap.keySet();
      String myset_Joined = string.join(new List<String>(fieldNames), ',');
      String theQuery = 'SELECT ' + myset_Joined + ' FROM hdone__AuditReport__c WHERE Id IN :parents.keySet()';

      for(Request request : requests) {
      parents.put(request.recordId, null);
      }

      parents = new Map<Id, hdone__AuditReport__c>(
      (List<hdone__AuditReport__c>)Database.query(theQuery)
      );

      // Flows must return List<List> for Sobject Collections. This is returned as Sobject Collection to Flow
      List<List<hdone__AuditReport__c>> responseColl = new List<List<hdone__AuditReport__c>>();

      // Add all of the values to an initial List
      List<hdone__AuditReport__c> responseList = new List<hdone__AuditReport__c>();
      responseList.addAll(parents.values());

      System.debug('Size of ResponseList ' + responseList.size());

      // Adds actual values we will use to the List of List
      responseColl.add(responseList);
      System.debug('Return responseColl size ' + responseColl.size());

      // Initialize a new list which will return empty to ensure return same number of interviews back to Flow
      List<hdone__AuditReport__c> emptyList = new List<hdone__AuditReport__c>();

      // Iterate through number of interviews - 1 and assign to empty list
      for (Integer i=0; i<responseList.size()-1; i++){
      responseColl.add(emptyList);
      }
      return responseColl;
      }

      public with sharing class Request {
      @InvocableVariable(label='Record ID' required=true)
      public Id recordId;

      @InvocableVariable(label='Object API Name' required=false)
      public String objectName;

      @InvocableVariable(label='Parent ID' required=false)
      public Id parentId;
      }
      }









      share|improve this question














      Trying to return all fields in object




      System.QueryException: unexpected token: '('




      when I run the Invocable class at the parents = assignment



      public with sharing class AuditReportBulkifyClass {

      @InvocableMethod(label='Collect Bulkified Records')
      public static List<List<hdone__AuditReport__c>> gatherRequests(Request[] requests) {

      // Gather bulkified records from Flow
      Map<Id, hdone__AuditReport__c> parents = new Map<Id, hdone__AuditReport__c>();

      // Want to get all fields from object for use in Flows
      Map<String, Schema.SobjectField> fieldMap = hdone__AuditReport__c.SobjectType.getDescribe().fields.getMap();
      Set<String> fieldNames = fieldMap.keySet();
      String myset_Joined = string.join(new List<String>(fieldNames), ',');
      String theQuery = 'SELECT ' + myset_Joined + ' FROM hdone__AuditReport__c WHERE Id IN :parents.keySet()';

      for(Request request : requests) {
      parents.put(request.recordId, null);
      }

      parents = new Map<Id, hdone__AuditReport__c>(
      (List<hdone__AuditReport__c>)Database.query(theQuery)
      );

      // Flows must return List<List> for Sobject Collections. This is returned as Sobject Collection to Flow
      List<List<hdone__AuditReport__c>> responseColl = new List<List<hdone__AuditReport__c>>();

      // Add all of the values to an initial List
      List<hdone__AuditReport__c> responseList = new List<hdone__AuditReport__c>();
      responseList.addAll(parents.values());

      System.debug('Size of ResponseList ' + responseList.size());

      // Adds actual values we will use to the List of List
      responseColl.add(responseList);
      System.debug('Return responseColl size ' + responseColl.size());

      // Initialize a new list which will return empty to ensure return same number of interviews back to Flow
      List<hdone__AuditReport__c> emptyList = new List<hdone__AuditReport__c>();

      // Iterate through number of interviews - 1 and assign to empty list
      for (Integer i=0; i<responseList.size()-1; i++){
      responseColl.add(emptyList);
      }
      return responseColl;
      }

      public with sharing class Request {
      @InvocableVariable(label='Record ID' required=true)
      public Id recordId;

      @InvocableVariable(label='Object API Name' required=false)
      public String objectName;

      @InvocableVariable(label='Parent ID' required=false)
      public Id parentId;
      }
      }






      apex dynamic-soql invocable-method






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 22 at 19:20









      user2451user2451

      7101816




      7101816






















          1 Answer
          1






          active

          oldest

          votes


















          4














          There are some variable bindings that "normal" SOQL can resolve, but Dynamic SOQL cannot.



          It's probably not a perfect rule, but if your variable binding includes a period/dot/full-stop like you have in parents.keySet(), then chances are that it won't work with Dynamic SOQL.



          See the "Dynamic SOQL Considerations" section of the documentation on dynamic SOQL for a better idea of what, precisely, is and is not allowed.



          The solution here is to store your parents.keySet() in a dedicated variable of type Set<Id> sometime prior to when you need it in your dynamic query. You could probably use String.format() somehow as well.






          share|improve this answer



















          • 1





            Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

            – sfdcfox
            Mar 23 at 0:18












          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "459"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f254978%2fsystem-queryexception-unexpected-token%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          There are some variable bindings that "normal" SOQL can resolve, but Dynamic SOQL cannot.



          It's probably not a perfect rule, but if your variable binding includes a period/dot/full-stop like you have in parents.keySet(), then chances are that it won't work with Dynamic SOQL.



          See the "Dynamic SOQL Considerations" section of the documentation on dynamic SOQL for a better idea of what, precisely, is and is not allowed.



          The solution here is to store your parents.keySet() in a dedicated variable of type Set<Id> sometime prior to when you need it in your dynamic query. You could probably use String.format() somehow as well.






          share|improve this answer



















          • 1





            Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

            – sfdcfox
            Mar 23 at 0:18
















          4














          There are some variable bindings that "normal" SOQL can resolve, but Dynamic SOQL cannot.



          It's probably not a perfect rule, but if your variable binding includes a period/dot/full-stop like you have in parents.keySet(), then chances are that it won't work with Dynamic SOQL.



          See the "Dynamic SOQL Considerations" section of the documentation on dynamic SOQL for a better idea of what, precisely, is and is not allowed.



          The solution here is to store your parents.keySet() in a dedicated variable of type Set<Id> sometime prior to when you need it in your dynamic query. You could probably use String.format() somehow as well.






          share|improve this answer



















          • 1





            Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

            – sfdcfox
            Mar 23 at 0:18














          4












          4








          4







          There are some variable bindings that "normal" SOQL can resolve, but Dynamic SOQL cannot.



          It's probably not a perfect rule, but if your variable binding includes a period/dot/full-stop like you have in parents.keySet(), then chances are that it won't work with Dynamic SOQL.



          See the "Dynamic SOQL Considerations" section of the documentation on dynamic SOQL for a better idea of what, precisely, is and is not allowed.



          The solution here is to store your parents.keySet() in a dedicated variable of type Set<Id> sometime prior to when you need it in your dynamic query. You could probably use String.format() somehow as well.






          share|improve this answer













          There are some variable bindings that "normal" SOQL can resolve, but Dynamic SOQL cannot.



          It's probably not a perfect rule, but if your variable binding includes a period/dot/full-stop like you have in parents.keySet(), then chances are that it won't work with Dynamic SOQL.



          See the "Dynamic SOQL Considerations" section of the documentation on dynamic SOQL for a better idea of what, precisely, is and is not allowed.



          The solution here is to store your parents.keySet() in a dedicated variable of type Set<Id> sometime prior to when you need it in your dynamic query. You could probably use String.format() somehow as well.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 22 at 19:32









          Derek FDerek F

          21k52353




          21k52353








          • 1





            Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

            – sfdcfox
            Mar 23 at 0:18














          • 1





            Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

            – sfdcfox
            Mar 23 at 0:18








          1




          1





          Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

          – sfdcfox
          Mar 23 at 0:18





          Specifically, dynamic queries cannot execute Apex. It can only reference variables directly.

          – sfdcfox
          Mar 23 at 0:18


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Salesforce Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f254978%2fsystem-queryexception-unexpected-token%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Nidaros erkebispedøme

          Birsay

          Was Woodrow Wilson really a Liberal?Was World War I a war of liberals against authoritarians?Founding Fathers...