// 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);