Customers like to (re)use the methods of the support team …

Link to Officer and Sergeants Powerpoint Slidedeck I was doing some code cutting the other day for a customer.

Indirectly.

I had sent a DOS batch file to Customer A, in response for an urgent fix request.  The DOS batch file enables Customer A to use a particular web application.

The Help Desk send me an email, "Customer B have this VBscript file which doesn’t work."

Customer A shared the DOS batch file Customer B, who thought they’d have a stab at re-writing it into VBscript.

VBscript file received from Customer B:

Set objWSHShell = WScript.CreateObject("WScript.Shell")
objWSHShell.Run ("dosomething.exe /commandlineparameters", 3, True)
objWSHShell.Run ("dosomething2.exe /commandlineparameters", 3, True)

Now there’s a few problems with this file:

  • no checking to see if dosomething.exe exists.
  • no checking to see if dosomething.exe & dosomething2.exe return an error.

Here’s my ruggerised, ready for deployment version:

Option Explicit
On Error GoTo 0Dim objWSHShell, objFSO
Dim sDoSomethingParameters, sDoSomethingFilePathName, sDoSomethingCommandString
Dim boolFileExists, boolResult
Dim intDoSomethingResult
Const intWindowStyleHideAndActivate = 0
sDoSomethingFilePathName = "C:\doer\DoSomething.exe"
boolResult = False
intDoSomethingResult = 555
Set objWSHShell = WScript.CreateObject("WScript.Shell")
Call fn_CheckIfFileExists(sDoSomethingFilePathName, boolFileExists)

If Not boolFileExists Then
   ' exit with File Does Not Exist
   WScript.Quit (2318)
End If

sDoSomethingParameters = " -q -a qwerty"
sDoSomethingCommandString = sDoSomethingFilePathName + sDoSomethingParameters

intDoSomethingResult = objWSHShell.Run (sDoSomethingCommandString, intWindowStyleHideAndActivate, True)

If intDoSomethingResult <> 0 Then
   ' execution of DoSomething and parameters failed.
   WScript.Quit (1708)
End If

' if we're gotten here, it's worked, and we can exit the script!
Wscript.quit (0)

~~~~~~~

Function fn_CheckIfFileExists(fnFilePathName, boolResult)
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(fnFilePathName)
On Error GoTo 0
If objFSO.FileExists(fnFilePathName) Then
   boolResult = True
Else
   boolResult = False
End If

Set objFSO = Nothing
Set objFile = Nothing

End Function

I’m reminded of the maxim:
Customers like to (re)use the methods of the support team, but they don’t really understand them.

If you click on the picture, you’ll get to view the powerpoint file, where I saw the original maxim.

Bookmark and Share

Why I Blog – Not

Blogger exclaims that he is part of the Australian Media Diversity

(Helen Coonan was our Federal Minister for Communications, and strangely attractive, if you like that sort of look)
(cartoon borrowed from The Chaser)

Bookmark and Share

Calendar

August 2008
S M T W T F S
« Jul   Sep »
 12
3456789
10111213141516
17181920212223
24252627282930
31