// Define batch size and initialize Data Extensions var batchSize = 2; // Number of records per batch var deMaster = DataExtension.Init('CF387AD3-FF42-4A95-9220-183F06E92892'); // Master DE with email records var rows = deMaster.Rows.Retrieve({Property: "ProcessedFlag", SimpleOperator: "equals", Value: "0"}); // Retrieve unprocessed records var rowCount = rows.length; var deProcessed = DataExtension.Init('62041530-C47E-48F1-9FB5-A4D38B448C75'); // Processed records DE var processedFlag = 1; // Flag to mark records as processed // Initialize batch number var batchNumber = 1; // Loop through the records in batches for (var i = 0; i < rowCount; i++) { var email = rows[i]["EmailAddress"]; // Insert the record into ProcessedEmailList with the batch number deProcessed.Rows.Add({ "SubscriberKey":email, "EmailAddress": email }); // Update Master DE to mark the record as processed deMaster.Rows.Update({ProcessedFlag: 1}, {EmailAddress: email}); // Check if batch size is reached (or if it's the last record) if ((i + 1) % batchSize === 0 || (i + 1) === rowCount) { // Log batch processing info for the current batch (for debugging purposes) Write("Batch " + batchNumber + " processed.
"); // Increment batch number for the next set of records batchNumber++; } } // Optional: Log total number of records processed Write("Total records processed: " + rowCount);