Skip to content

Instantly share code, notes, and snippets.

@gsherman
Created December 6, 2010 18:21
Show Gist options
  • Save gsherman/730685 to your computer and use it in GitHub Desktop.
Save gsherman/730685 to your computer and use it in GitHub Desktop.
Check for any license keys that are about to expire
/////////////////////////////////////////////////////////////////////////////////////////////
// Check for any license keys that are about to expire
// If found, send an email
// once a reminder is sent - update the license key table so its not sent again in the future
/////////////////////////////////////////////////////////////////////////////////////////////
function rw(foo){WScript.Echo(foo);}
//How far in the future to look for expiring Keys
var numDays = 30;
//array of month names
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var FCApp = WScript.CreateObject('FCFLCompat.FCApplication');
FCApp.Initialize();
var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + numDays);
futureDate = formatDate(futureDate,"M/d/yyyy");
rw('Finding all keys expiring before: ' + futureDate);
var FCSession=FCApp.CreateSession();
FCSession.LoginFromFCApp();
var genKeys = FCSession.CreateGeneric('fc_license_key');
genKeys.AppendFilter('reminder_sent','=',0);
genKeys.AppendFilter('expiration_date','<=',futureDate);
var genSite = FCSession.CreateGeneric('');
genSite.TraverseFromParent(genKeys,'fc_license_key2site');
genKeys.Bulk.Query();
rw('Number of keys found: ' + genKeys.Count());
while (!genKeys.EOF){
//send an email reminder
var msg = "The following license key will be expiring soon:"
msg+='\nSite Name: ' + genSite('name');;
msg+='\nSite ID: ' + genSite('site_id');;
msg+='\nProduct: ' + genKeys('product');;
msg+='\nExpires: ' + genKeys('expiration_date');;
msg+='\nComments: ' + genKeys('comments');;
var subject="Reminder: License key for site '" + genSite('name') + "' will be expiring soon";
var to="someone@company.com";
var cc="someone_else@company.com";
var sender = WScript.CreateObject('FCEmailSender.Sender');
sender.FromAddress = "License Key Reminder<sender@company.com>";
sender.To = to;
sender.Cc = cc;
sender.SetSmtpServer("my_email_server", "25", null, null);
sender.Subject = subject;
sender.Body=msg;
sender.Send();
sender=null;
genKeys('reminder_sent')=1;
genKeys('reminder_sent_date')=-999;
genKeys.MoveNext();
}
genKeys.UpdateAll();
FCSession.Logout();
FCSession=null;
FCApp=null;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment