Represents an instance of a single, complete approval process. ProcessInstance record is created every time for particular object record which is submitted for approval. Its is also read-only object. We can describe, query and retrieve the approval processes Instance.
~ Query ~
SELECT CompletedDate,CreatedById,CreatedDate,ElapsedTimeInDays, ElapsedTimeInHours,ElapsedTimeInMinutes,Id,IsDeleted,LastActorId, LastModifiedById,LastModifiedDate,ProcessDefinitionId,Status, SubmittedById,SystemModstamp,TargetObjectId FROM ProcessInstance
All ProcessInstance fields are automatically populated once the record is submitted for approval, with two exceptions fields: CompletedDate and LastActorId that are populated only after the approval process instance is complete. The ProcessDefinitionId field is the reference or foreign key ID of the ProcessDefinition Object.