rendered paste bodyProcedure transfer from an Excel file to Service Desk plus using JScript ans IE's ActiveX.It is a script i have done at work to do things faster. I mainly keep it for reference purposesbecause of course i do not have service desk plus at home :)Files overview --------------------------------------------proc-xfer.wsf Script descriptor clipboard.js Copy-to-clipboard routineserviceDesk.js Wrapper for ServiceDesk GUIproc-xfer.js Main()ie_test.js Tests for the wrapperdump.js Dump excel filepad.js Formatting routinecheckfiles.js Check files consistencyalreadydone.js Dump already-done files__________________________________________________________________________________________file: proc-xfer.wsf<?xml version="1.0"?><job> <script language="JScript" src="topics.js"></script> <script language="JScript" src="ie\\clipboard.js"></script> <script language="JScript" src="ie\\serviceDesk.js"></script> <script language="JScript" src="proc-xfer.js"></script></job>file: topics.jsvar topics = Array();topics["Citrix"] = "2407";topics["AntiVirus"] = "2408";topics["Internet"] = "7";topics["Office Tools"] = "602";topics["Fax-Copier"] = "2";topics["GroupWise"] = "306";topics["Laptop"] = "1805";topics["PRINTER"] = "3";topics["Licenses"] = "602";topics["Acrobat"] = "602";topics["Network"] = "6";topics["GPII"] = "602";topics["Security Systems"] = "2409";topics["NT Workstation"] = "1802";topics["Dell System"] = "1802";topics["Pass2"] = "903";topics["Web"] = "7";topics["PC Class"] = "1807";topics["FTP Server"] = "6";topics["Phones"] = "2406";topics["Email System"] = "305";topics["Swift"] = "1811";topics["intranet"] = "6";__________________________________________________________________________________________file: clipboard.jsvar ieclipboard = new ActiveXObject("internetexplorer.application");ieclipboard.Visible = true;function htmlentities(s) { var string = new String(s); string = string.replace(/\//g, "%2F"); string = string.replace(/\?/g, "%3F"); string = string.replace(/=/g, "%3D"); string = string.replace(/&/g, "%26"); string = string.replace(/@/g, "%40"); string = string.replace(/\\/g, "%5C%5C"); return string;} function setClipboardContents(string){ ieclipboard.Navigate("javascript:clipboardData.setData('Text','"+htmlentities(string)+"')"); WScript.Sleep(200);}//setClipboardContents("clipboard");__________________________________________________________________________________________file: serviceDesk.jsfunction raiseWindow(ie) { ie.visible = false; ie.visible = true;}function openServiceDesk() { var ie = new ActiveXObject("internetexplorer.application"); ie.Visible = true; ie.Navigate("http://1.1.1.148:8080/HomePage.do"); while(ie.Busy) WScript.Sleep(200); ie.document.all.username.value = "rdupuis"; ie.document.all.password.value = "welcome"; ie.document.login.submit(); while(ie.Busy) WScript.Sleep(200); return ie;}function goNewSolution(ie) { ie.Navigate("http://1.1.1.148:8080/AddSolution.do?tID=305"); while(ie.Busy) WScript.Sleep(200); WScript.Sleep(200);}function setSolutionTitle(ie, title) { ie.document.addSolutionForm.title.value = title;}function setSolutionTopicID(ie, id) { ie.document.addSolutionForm.topicID.value = topic;}function setSolutionKeywords(ie, keywords) { ie.document.addSolutionForm.keywords.value = keywords;}function addAttachment(ie, filename) { ie.Navigate("javascript:invokeFileAttachment('Solutions')"); while(ie.Busy) WScript.Sleep(200); WScript.Sleep(500); setClipboardContents(filename); raiseWindow(ie); ie.document.getElementById('AttachBtn').focus(); var sh = new ActiveXObject("WScript.Shell"); sh.SendKeys("^v"); WScript.Sleep(500); ie.document.UploadAttachment.submit(); while(1) { WScript.Sleep(500); try{ ie.document.getElementById('AttachBtn').focus(); } catch(e){ break; } } WScript.Sleep(500);}function submitSolution(ie) { ie.document.addSolutionForm.addKBButton.click(); while(ie.Busy) WScript.Sleep(200); WScript.Sleep(500);}__________________________________________________________________________________________file: proc-xfer.jsfunction pad(size, strobj){ var str = new String(strobj); var npad = size - str.length; for(var i=0; i<npad; i++) str+=" "; return str;}WScript.Echo("Tekken6-o-matic version 1.0");var fso = new ActiveXObject("Scripting.FileSystemObject");var ie = openServiceDesk();var app = new ActiveXObject("Excel.Application");app.workbooks.open("C:\\Documents and Settings\\HD2Temp\\Desktop\\Procedures-test.xls");var sheet = app.Application.Workbooks(1).WorkSheets("T_Documents");function getDoc(docID){ var doc = new Object(); doc.docID = docID; doc.fileName = sheet.Cells(docID+1, 2); doc.topicID = sheet.Cells(docID+1, 3); doc.path = sheet.Cells(docID+1, 6); doc.keywords = sheet.Cells(docID+1, 8); doc.status = sheet.Cells(docID+1, 10); return doc;}var nerrors = 0;if(ie == null && ieclipboard == null && fso == null){ WScript.Echo("Error on ActiveX Objects");}elsefor(var i=179; i<200; i++){ var doc=getDoc(i); if(doc.status == "OK") { WScript.Echo(pad(5, doc.docID)+" Already Done"); continue; } var filename = new String(doc.fileName); var filepath = new String(doc.path); var _filename = filepath.substr(filepath.lastIndexOf("\\")+1); if(!(filename == _filename)){ WScript.Echo(pad(5, doc.docID)+": Different file names : "+filename+" ¦ "+_filename); nerrors++; }else{ if(!fso.FileExists(filepath)){ WScript.Echo(pad(5, doc.docID)+": File does not exists : "); nerrors++; }else{ goNewSolution(ie); setSolutionTitle(ie, doc.fileName); var topic; if(topics[doc.topicID] == undefined) { //WScript.Echo("Topic not found"); topic = 2411; }else{ topic = topics[doc.topicID]; } setSolutionTopicID(ie, topic); var keywords; if(topic == 2411) keywords = doc.topicID + " " + doc.keywords; else keywords = doc.keywords; setSolutionKeywords(ie, keywords); addAttachment(ie, doc.path); //WScript.Echo("Press a key to continue"); //WScript.StdIn.ReadLine(); submitSolution(ie); WScript.Echo(pad(5, doc.docID) + " OK"); }}}WScript.Echo(nerrors + "errors.");__________________________________________________________________________________________file: ie_test.jsvar topics = Array();topics["Groupwise"] = 306;topics["Webmail"] = 307;var ie = new ActiveXObject("internetexplorer.application");var ieclipboard = new ActiveXObject("internetexplorer.application");ie.Visible = true;ie.Navigate("http://1.1.1.148:8080/HomePage.do");while(ie.Busy) WScript.Sleep(200);ie.document.all.username.value = "rdupuis";ie.document.all.password.value = "welcome";ie.document.login.submit();while(ie.Busy) WScript.Sleep(200);ie.Navigate("http://1.1.1.148:8080/AddSolution.do");while(ie.Busy) WScript.Sleep(200);WScript.Sleep(500);ie.document.addSolutionForm.title.value = "Tekken6-o-matic";ie.document.addSolutionForm.topicID.value = topics["Groupwise"];ie.document.addSolutionForm.keywords.value = "This is the keywords";ie.Navigate("javascript:invokeFileAttachment('Solutions')");WScript.Sleep(500);ieclipboard.Navigate("javascript:eval(\"clipboardData.setData('Text','pouet')\")");ie.document.getElementById('AttachBtn').focus();ie.visible = false;ie.visible = true;var sh = new ActiveXObject("WScript.Shell");sh.SendKeys("^v");WScript.Sleep(500);ie.document.UploadAttachment.submit();ie.document.addSolutionForm.addKBButton.click();WScript.sleep(10000);ie.Quit();__________________________________________________________________________________________file: dump.js/* Procedures xfer state dumper */var app = new ActiveXObject("Excel.Application");app.workbooks.open("C:\\Documents and Settings\\HD2Temp\\Desktop\\Procedures-test.xls");var sheet = app.Application.Workbooks(1).WorkSheets("T_Documents");function getDoc(docID){ var doc = new Object(); doc.docID = docID; doc.fileName = sheet.Cells(docID+1, 2); doc.topicID = sheet.Cells(docID+1, 3); doc.path = sheet.Cells(docID+1, 6); doc.keywords = sheet.Cells(docID+1, 8); doc.status = sheet.Cells(docID+1, 10); return doc;}WScript.Echo("docID, filename, state");for(var i=2; i<400; i++){ var doc = getDoc(i); WScript.Echo(doc.docID+" "+doc.fileName+" "+doc.status);}app.Workbooks(1).Close();__________________________________________________________________________________________file: pad.jsfunction pad(size, strobj){ var str = new String(strobj); var npad = size - str.length; for(var i=0; i<npad; i++) str+=" "; return str;}WScript.Echo(pad(8, "test"));__________________________________________________________________________________________file: checkfiles.js/* Procedures xfer state dumper */var app = new ActiveXObject("Excel.Application");app.workbooks.open("C:\\Documents and Settings\\HD2Temp\\Desktop\\Procedures-test.xls");var sheet = app.Application.Workbooks(1).WorkSheets("T_Documents");function pad(size, strobj){ var str = new String(strobj); var npad = size - str.length; for(var i=0; i<npad; i++) str+=" "; return str;}function getDoc(docID){ var doc = new Object(); doc.docID = docID; doc.fileName = sheet.Cells(docID+1, 2); doc.topicID = sheet.Cells(docID+1, 3); doc.path = sheet.Cells(docID+1, 6); doc.keywords = sheet.Cells(docID+1, 8); doc.status = sheet.Cells(docID+1, 10); return doc;}var fso = new ActiveXObject("Scripting.FileSystemObject");WScript.Echo("File checker");WScript.Echo();var nerrors = 0;for(var i=300; i<399; i++){ var doc = getDoc(i); var filename = new String(doc.fileName); var filepath = new String(doc.path); var _filename = filepath.substr(filepath.lastIndexOf("\\")+1); if(!(filename == _filename)){ WScript.Echo(pad(5, doc.docID)+": Different file names : "+filename+" ¦ "+_filename); nerrors++; }else{ if(!fso.FileExists(filepath)){ WScript.Echo(pad(5, doc.docID)+": File does not exists : "); WScript.Echo(" "+filepath); WScript.Echo(); nerrors++; }else{ //WScript.Echo(pad(5, doc.docID)+": OK"); } } }WScript.Echo();WScript.Echo(nerrors+" errors found.");app.Workbooks(1).Close();__________________________________________________________________________________________file: alreadydone.js/* Procedures xfer state dumper */var app = new ActiveXObject("Excel.Application");app.workbooks.open("C:\\Documents and Settings\\HD2Temp\\Desktop\\Procedures-test.xls");var sheet = app.Application.Workbooks(1).WorkSheets("T_Documents");function pad(size, strobj){ var str = new String(strobj); var npad = size - str.length; for(var i=0; i<npad; i++) str+=" "; return str;}function getDoc(docID){ var doc = new Object(); doc.docID = docID; doc.fileName = sheet.Cells(docID+1, 2); doc.topicID = sheet.Cells(docID+1, 3); doc.path = sheet.Cells(docID+1, 6); doc.keywords = sheet.Cells(docID+1, 8); doc.status = sheet.Cells(docID+1, 10); return doc;}WScript.Echo("Already done migrations");WScript.Echo();WScript.Echo(pad(6, "docID")+pad(48, "filename")+pad(17, "topicID")+pad(7, "status"));for(var i=2; i<400; i++){ var doc = getDoc(i); if(doc.status == "OK") WScript.Echo(pad(4, doc.docID)+pad(50, doc.fileName)+pad(17, doc.topicID)+pad(7, doc.status));}app.Workbooks(1).Close();