When writing jobs in JAMS Scheduler it’s very common to need info about the job that’s currently running. Logging is an obvious need but it’s not the only one.
You’d think the way to do this should be prominently displayed in their otherwise very good documentation, but for whatever reason it’s not. I couldn’t find this anywhere.
Fortunately their support is beyond excellent -it’s hands down the best support I’ve ever worked with- and they gave me the answer as soon as I asked:
Import-Module JAMS
$currentJobEntry = Get-JAMSEntry <<JAMS.JAMSEntry>>
That’s it! It’s really as simple as that. That’s a sample that you can use to see what properties you get:
Import-Module JAMS
$currentJobEntry = Get-JAMSEntry <<JAMS.JAMSEntry>>
# to print all info
$currentJobEntry | select *
# or to get individual info
$jobId = $currentJobEntry.JAMSEntry
$jobName = $currentJobEntry.Name
$jobError = $currentJobEntry.Error
Write-Host "Job $jobId [$jobName]"
Write-Host "Error (if any): $jobError"
# === all properties with example values ===
#Entry : 21760
#ExtensionData : System.Runtime.Serialization.ExtensionDataObject
#JAMSEntry : 21760
#RON : 3565757
#AvgElapsedTime :
#TodaysDate : 2/17/2023 12:00:00 AM
#ScheduledTime : 2/17/2023 10:35:40 AM
#ScheduledTimeUTC : 2/17/2023 9:35:40 AM
#OriginalHoldTime : 2/17/2023 10:35:39 AM
#OriginalHoldTimeUTC : 2/17/2023 9:35:39 AM
#HoldTime : 2/17/2023 10:35:39 AM
#HoldTimeUTC : 2/17/2023 9:35:39 AM
#StartTime : 2/17/2023 10:35:40 AM
#StartTimeUTC : 2/17/2023 9:35:40 AM
#CompletionTime : 1/1/0001 12:00:00 AM
#CompletionTimeUTC : 1/1/0001 12:00:00 AM
#MethodId : 16
#MethodName : PowerShell
#ParentFolderID : 96
#ParentFolderName : \el\MyFolder\Test
#JobID : 1747
#ExecutingAgentID : 1
#ExecutingAgentName : Agent JAMS App-Server
#InitiatorType : ManualSubmit
#InitiatorID : 0
#InitiatorUid : 00000000-0000-0000-0000-000000000000
#ProcessID : 5408
#SchedulingPriority : 0
#ExecutionPriority : 0
#FinalStatusCode : 0
#FinalSeverity : Success
#RetainOption : Default
#RetainTime :
#RestartCount : 0
#CurrentState : Executing
#Tags :
#Debug : False
#Held : False
#Icon : Default
#IconPermanent : False
#IconMessage :
#LogFilename : D:\JAMS\Logs\Logs\test-jobinfo_003668BD.log
#TempFilename : D:\JAMS\Temp\test-jobinfo_003668BD.ps1
#SubmittedBy : MYDOMAIN\myuser
#Name : test-jobinfo
#JobName : test-jobinfo
#DisplayName : test-jobinfo
#FinalStatus :
#Note :
#JobStatus :
#ReconnectAgentName : MYSERVER
#Source :
#JAMSId : 939fb4c8-ce31-4e1a-8704-10258e85c003
#WFNextTimer : 1/1/0001 12:00:00 AM
#WFState : 0
#WFInstance : 00000000-0000-0000-0000-000000000000
#AuditTrail : {}
#WFTracking : {}
#Parameters : {[JAMSTraceLevel, MVPSI.JAMS.EntryParam], [PSExecutionPolicyPreference, MVPSI.JAMS.EntryParam],
# [ErrorActionPreference, MVPSI.JAMS.EntryParam]}
#Elements : {MaintenanceWindow, SendEMail, SendEMail}
#SourceElements : {}
#Properties : {ExecuteAs: JAMS, HomeDirectory: C:\JamsWorkingFolder, SingleInstanceAction: AllowMultiple,
# NotifyEMail: ...}
#ExecuteAsName : JAMS
#ExecuteAsID : 1
#LoadedFrom : Server: MYSERVER.mycompany.local/Default
#BatchQueue : Queue:
#BatchQueueName :
#BatchQueueID : 0
#Calendar : Calendar:
#CalendarName :
#CalendarID : 0
#Agent : Agent: Agent JAMS App-Server
#AgentID : 1
#AgentName : Agent JAMS App-Server
#MinimumSeverity : Warning
#Job : Job: test-jobinfo
#LogFile : System.ServiceModel.Dispatcher.StreamFormatter+MessageBodyStream
#Modified : False
#NewObject : False
#Validated : False
#InEdit : False
#HasErrors : False
#Error :