<script runat="server">
Platform.Load("Core","1");
try {
var api = new Script.Util.WSProxy();
var customerKey = "568FFE38-823D-498D-AED0-4D4A1A0A5217";
var deName = "CCF_Appeal Mailing"; // DE name required for DataExtensionRowCount
// 1. Get DataExtension row count via AMPscript injection
var rowCount = parseInt(Platform.Function.TreatAsContent("%%=DataExtensionRowCount('" + deName + "')=%%"));
// 2. Get DE field definitions
var cols = ["Name", "MaxLength", "FieldType"];
var fieldResult = api.retrieve("DataExtensionField", cols, {
Property: "DataExtension.CustomerKey",
SimpleOperator: "equals",
Value: customerKey
});
var recordSize = 0;
if (fieldResult && fieldResult.Results) {
for (var i = 0; i < fieldResult.Results.length; i++) {
var field = fieldResult.Results[i];
switch (field.FieldType) {
case "Text": recordSize += field.MaxLength; break;
case "Number": recordSize += 4; break;
case "Date": recordSize += 8; break;
case "Boolean": recordSize += 1; break;
case "EmailAddress":recordSize += 50; break;
case "Phone": recordSize += 15; break;
case "Decimal": recordSize += 8; break;
case "Locale": recordSize += 5; break;
default: recordSize += 10; break; // fallback for unknown
}
}
}
// 3. Estimate storage size
var totalSizeBytes = recordSize * rowCount;
var totalSizeMB = totalSizeBytes / (1024 * 1024);
var totalSizeGB = totalSizeBytes / (1024 * 1024 * 1024);
Write("Row Count: " + rowCount + "<br>");
Write("Estimated Data Extension Size: " + totalSizeMB.toFixed(2) + " MB (" + totalSizeGB.toFixed(2) + " GB)");
} catch (ex) {
Platform.Response.Write("Error: " + ex.message);
}
</script>