Apex - SOQL para bucle

Este tipo de forEl bucle se usa cuando no queremos crear la Lista e iterar directamente sobre el conjunto devuelto de registros de la consulta SOQL. Estudiaremos más sobre la consulta SOQL en los capítulos siguientes. Por ahora, recuerde que devuelve la lista de registros y campos como se indica en la consulta.

Sintaxis

for (variable : [soql_query]) { code_block }

o

for (variable_list : [soql_query]) { code_block }

Una cosa a tener en cuenta aquí es que el variable_listo la variable siempre debe ser del mismo tipo que los registros devueltos por la consulta. En nuestro ejemplo, es del mismo tipo que APEX_Invoice_c.

Diagrama de flujo

Ejemplo

Considera lo siguiente for loop ejemplo usando SOQL for lazo.

// The same previous example using For SOQL Loop
List<apex_invoice__c> PaidInvoiceNumberList = new
List<apex_invoice__c>();   // initializing the custom object records list to store
                           // the Invoice Records
List<string> InvoiceNumberList = new List<string>();

// List to store the Invoice Number of Paid invoices
for (APEX_Invoice__c objInvoice: [SELECT Id,Name, APEX_Status__c FROM
   APEX_Invoice__c WHERE CreatedDate = today]) {
   
   // this loop will iterate and will process the each record returned by the Query
   if (objInvoice.APEX_Status__c == 'Paid') {
      
      // Condition to check the current record in context values
      System.debug('Value of Current Record on which Loop is iterating is '+objInvoice);
      
      //current record on which loop is iterating
      InvoiceNumberList.add(objInvoice.Name);
      // if Status value is paid then it will the invoice number into List of String
   }
}

System.debug('Value of InvoiceNumberList with Invoice Name:'+InvoiceNumberList);