All pastes #1188355 Raw Edit

ServiceDesk Xfer

public javascript v1 · immutable
#1188355 ·published 2008-08-29 09:44 UTC
rendered paste body
Procedure 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();