Re: [Arsperl-users] Newbie - ARS - Creating Ticket
Brought to you by:
jeffmurphy
|
From: jeff m. <jcm...@je...> - 2009-02-28 21:00:03
|
On Feb 28, 2009, at 2:14 PM, Gary sperano wrote:
> Hello All,
> I am extremely new to posting to this group as well as to the
> ASR module for perl. I have been tasked with converting a a vbs
> script, that currently creates remedy tickets, to perl. With that
> being said, I do have a question in regards to the field ID, I think.
> The vbs script contains the following lines. I think, please
> correct me if I am wrong, in between the parentheses is the field
> id. Using the ARS module, how do I create the ticket using the field
> id? Also, I need to make sure that a ticket number is returned to me
> and that the process was successful, how do I do this?
>
#!/usr/bin/perl
use ARS;
$c = ars_Login('server', 'user', 'pass);
die $ars_errstr unless $c;
$x = ars_CreateEntry($c,
"Form Name", # adjust form name
100000038, "stormgt",
100000003, "stormgt",
...); # repeat fieldid, fieldvalue list...
die "Failed to create entry: $ars_errstr" unless $x;
ars_Logoff($c);
> fieldValues.Item(100000038)= "stormgt" 'PersonID
> fieldValues.Item(100000003) = "stormgt" 'FirstName
> fieldValues.Item(100000001) = "stormgt" 'Last Name
> fieldValues.Item(100000007) = arrFields(2) 'Comments Work Log
> fieldValues.Item(536870916) = arrFields(3) 'Group Assigned
> fieldValues.Item(100000031) = "Originating Call" 'Incident
> Relationship
> fieldValues.Item(100000017) = arrFields(4) 'Incident Type
> fieldValues.Item(100000039) = arrFields(5) 'Item Affected
> fieldValues.Item(536870932) = "SHCWeb_wsf" 'Originating Desk
> fieldValues.Item(100000013) = arrFields(6) 'Priority
> fieldValues.Item(8) = arrFields(7) 'Problem Summary
> fieldValues.Item(100000014) = arrFields(8) 'Problem Type
> fieldValues.Item(100000000) = arrFields(10) 'Symptoms
> fieldValues.Item(536870913) = arrFields(11) 'Problem Detail
> fieldValues.Item(536870912) = arrFields(12) 'Specific Issue
>
> Below are the contents of the entire script that needs to be
> converted
>
> Thanks for any and all assistance you can offer
>
> <code>
> 'This script will parse TSO Backuplogs, and create GIRS tickets
> where needed
>
> Dim objFSO, objSource, objOutput, strLine
> Dim arrFields, headerline
> Dim OutputFile,ProxyName,Secword,Newword, FolderPath
> Dim objFolder, colFiles, objFile , ErrorLog, objErrorOutput
>
> ProxyName="prxpnbu"
> Secword="4Password"
> Const formName = "Incident"
> Dim server, fieldValues, entryId, result
> Set server = CreateObject("BMC.ARSystem.Server")
> Set fieldValues = CreateObject("BMC.ARSystem.FieldValueList")
> Newword=Chr(Asc(Left(Secword,1)+2)) & Mid(Secword,2)
> server.Login "server.my.company.com", ProxyName, Newword
> FolderPath="F:\Ticketing"
> Set objFSO = CreateObject("Scripting.FileSystemObject")
> Set objFolder= objFSO.GetFolder(FolderPath)
> Set colFiles= objFolder.Files
> For Each objFile In colFiles
> 'If the source file has the correct name, then process it,
> otherwise move to next file.
> If instr(1,objFile.Name,"DPA_Ticket_Creator") Then
> 'If the file has content, process it
> If objFile.Size > 100 then
> 'Wscript.Echo objFile.name
> SourceFile = FolderPath & "\" & objFile.Name
> Set objSource= objFSO.OpenTextFile(SourceFile,1)
> 'If the log file doesn't exist, then create it.
> OutputFile="F:\Ticketing\Logs\Processed" & objFile.Name
> If objFSO.FileExists(OutputFile) Then
> Set objOutput= objFSO.OpenTextFile(OutputFile,1 )
> 'If there is no header in the logfile, add it.
> If objoutput.AtEndOfStream = True Then
> objOutput.Close
> Set objOutput= objFSO.OpenTextFile(OutputFile,8)
> 'Copy original header
> strLine= objSource.ReadLine
> objOutput.WriteLine ("IncidentID," & strLine & ",
> Ticket_Create_Time")
> Else
> 'Logfile already exists with content
> Set objOutput= objFSO.OpenTextFile(OutputFile,8)
> 'Skip headerline of source
> objSource.SkipLine
> End If
> Else
> Set objOutput=objFSO.CreateTextFile(OutputFile)
> objOutput.Close
> Set objOutput= objFSO.OpenTextFile(OutputFile,8 )
> 'Copy original header
> strLine= objSource.ReadLine
> objOutput.WriteLine ("IncidentID," & strLine & "," &
> "Ticket Create Time")
> End If
> Do Until objSource.AtEndOfStream
> On Error Resume Next
> strLine= objSource.ReadLine
> arrFields= Split(strLine, ",")
> 'Test Group Assigned To field to confirm that there is
> not a ticket value there.
> 'If so, change to TSO-C/S Backup
> If UCASE(Mid(arrFields(3),1,1)) = "C" And
> isnumeric(mid(arrFields(3),3,2))= True Then arrFields(3)= "TSO-C/S
> Backup"
> 'Enter values
> fieldValues.Item(100000038)= "stormgt" 'PersonID
> fieldValues.Item(100000003) = "stormgt" 'FirstName
> fieldValues.Item(100000001) = "stormgt" 'Last Name
> fieldValues.Item(100000007) = arrFields(2)
> 'Comments Work Log
> fieldValues.Item(536870916) = arrFields(3) 'Group
> Assigned
> fieldValues.Item(100000031) = "Originating Call"
> 'Incident Relationship
> fieldValues.Item(100000017) = arrFields(4)
> 'Incident Type
> fieldValues.Item(100000039) = arrFields(5) 'Item
> Affected
> fieldValues.Item(536870932) = "SHCWeb_wsf"
> 'Originating Desk
> fieldValues.Item(100000013) = arrFields(6) 'Priority
> fieldValues.Item(8) = arrFields(7) 'Problem
> Summary
> fieldValues.Item(100000014) = arrFields(8) 'Problem
> Type
> fieldValues.Item(100000000) = arrFields(10) 'Symptoms
> fieldValues.Item(536870913) = arrFields(11)
> 'Problem Detail
> fieldValues.Item(536870912) = arrFields(12)
> 'Specific Issue
> Err.Clear
> 'Create ticket, and return ticket number
> entryId = server.CreateEntry(formName, fieldValues)
> If Err.Number<> 0 Then
> 'wscript.echo err.number
> 'If the line errored, create the ticket to Backup
> team with default values
> fieldValues.Item(100000017) = arrFields(4)
> 'Incident Type
> fieldValues.Item(100000039) = "ADSM Backup Client"
> 'Item Affected
> fieldValues.Item(100000013) = "Medium" 'Priority
> fieldValues.Item(100000014) = "Software"
> 'Problem Type
> fieldValues.Item(536870913) = arrFields(11)
> 'Problem Detail
> fieldValues.Item(536870912) = "nosla" 'Specific
> Issue
> fieldValues.Item(536870916)= "TSO-C/S Backup"
> entryId = server.CreateEntry(formName, fieldValues)
> 'If it errors again, write line to error log
> ErrorLog="F:\Ticketing\Logs\Error" & objFile.Name
> If objFSO.FileExists(ErrorLog) Then
> Set objErrorOutput= objFSO.OpenTextFile(ErrorLog,8 )
> objErrorOutput.WriteLine ("Error creating " &
> entryID & "," & strLine)
> objErrorOutput.Close
> Else 'The Errorlog doesn't exist, create it
> Set objErrorOutput=objFSO.CreateTextFile(ErrorLog)
> objErrorOutput.Close
> Set objErrorOutput= objFSO.OpenTextFile(ErrorLog,8 )
> objErrorOutput.WriteLine ("Error creating " &
> entryID & "," & strLine)
> objErrorOutput.Close
> End If
> End If
> 'Write ticket information to log: IncidentID, Server,
> Timestamp
> strLine = entryId & "," & strline& "," & Date & " " & Time
> objOutput.WriteLine(strLine)
> Loop
> 'The source file is processed. Copy it to ...\logs
> \Original...
> objSource.Close
> objFSO.MoveFile FolderPath & "\" & objFile.Name, FolderPath
> & "\Logs\Original" & objFile.Name
> Else 'The source file has no content, move/rename to ...Logs
> \Empty & Name
> objFSO.MoveFile FolderPath & "\" & objFile.Name, FolderPath
> & "\Logs\Empty" & objFile.Name
> End If
> End If 'Valid File end
> Next
> ' Cleanup
> Call server.Logout
> Set objErrorOutput=Nothing
> Set objSource= Nothing
> Set objOutput= Nothing
> Set entryId = Nothing
> Set result = Nothing
> Set fieldValues = Nothing
> Set server = Nothing
>
> </code>
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San
> Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source
> code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
>
> --
> Arsperl-users mailing list
> Ars...@ar...
> https://lists.sourceforge.net/lists/listinfo/arsperl-users
|