Este tópico indica exemplos de consultas SQL aplicáveis à criação de relatórios no IBM® Enterprise Records. Estes exemplos baseiam-se nos modelos do IBM Enterprise Records Crystal Report fornecidos.
Esta consulta devolve eventos auditados que ocorrem nas instâncias de categoria de registo localizadas sob o nó do plano de ficheiros especificado e no período de tempo especificado:
SELECT rc.PathName, ra.DateLastModified, ra.LastModifier, ra.AuditActionType
FROM RMAudit ra
INNER JOIN RecordCategory rc ON ra.SourceObjectId = rc.Id
WHERE ra.DateLastModified >= 20090101T000000Z AND ra.DateLastModified <= 20090131T000000Z
AND rc.This INSUBFOLDER '/Records Management/File Plan'
A consulta seguinte devolve acções auditadas por um utilizador especifico em registos localizados numa localização de plano de ficheiros específica durante um período específico:
SELECT ra.DateLastModified, ra.LastModifier, ra.AuditActionType, ri.DocumentTitle, rmf.PathName
FROM ((RMAudit ra INNER JOIN RecordInfo ri ON ra.SourceObjectId = ri.Id)
INNER JOIN ReferentialContainmentRelationship RCR on ri.This = rcr.Head)
INNER JOIN RMFolder rmf ON rcr.Tail = rmf.This
WHERE ra.DateLastModified >= 2009-01-01 AND ra.DateLastModified <= 2009-01-12
AND ra.LastModifier = 'rangelj'
AND ri.This INFOLDER '/Records Management/File Plan/Cat1'
A consulta seguinte devolve as pastas de registos localizadas no nó do plano de ficheiros especificado e criado pelo utilizador especificado no período especificado:
SELECT rf.PathName, rf.DateCreated, l.LocationName As HomeLocation
FROM RecordFolder rf
LEFT OUTER JOIN Location l ON rf.HomeLocation = l.This
WHERE rf.DateCreated >= 2009-01-01 AND rf.DateCreated <= 2009-01-31
AND rf.Creator = 'rangelj'
AND rf.This INSUBFOLDER '/Records Management/File Plan'
Repare na utilização de LEFT OUTER JOIN para incluir o nome de qualquer ocorrência de HomeLocation que possa estar atribuída a uma determinada ocorrência de pasta de registo.
SELECT v.DateClosed, v.ReOpenedDate, v.VolumeName
FROM Volume v
WHERE v.DateClosed IS NOT NULL AND v.ReOpenedDate IS NOT NULL
AND v.Parent = OBJECT('{24D91623-6C0A-4DB7-9C87-5C172F4A09D2}')
Neste exemplo é utilizada a comparação de propriedade mais eficiente Volume.Parent na cláusula WHERE, em vez do operador INFOLDER alternativo.
Esta consulta devolve informações sobre dados de agenda de eliminação com registos que utilizam um RecordType associado.
SELECT ds.DisposalScheduleName, a1.ActionType, rc.PathName, rcr.ContainmentName, rt.RecordTypeName
FROM (((( RecordInfo ri INNER JOIN RecordType rt ON ri.AssociatedRecordType = rt.This )
INNER JOIN DisposalSchedule ds ON rt.DisposalSchedule = ds.This )
LEFT OUTER JOIN Action1 a1 ON ri.CurrentPhaseAction = a1.This )
INNER JOIN ReferentialContainmentRelationship rcr ON ri.This = rcr.Head )
INNER JOIN RMFolder rc ON rcr.Tail = rc.This
WHERE ri.IsDeleted = FALSE
Quando uma consulta inclui mais de uma junção, é necessário utilizar parênteses para indicar a separação.
É indicada em seguida uma variação que devolve contentores associados a uma agenda de eliminação especificada.
SELECT rc.PathName, rc.Aggregation, rc.DateCreated, ds.DisposalScheduleName, A1.ActionType
FROM (RMFolder rc INNER JOIN DisposalSchedule ds ON rc.DisposalSchedule = ds.This)
LEFT OUTER JOIN Action1 a1 ON rc.CurrentPhaseAction = a1.This
WHERE rc.IsDeleted = FALSE AND ds.DisposalScheduleName = 'Sch_PreDefDate'
Esta consulta inclui no relatório registos vitais com eliminação prevista num período especificado:
SELECT ri.VitalRecordNextReviewDate, rc.PathName, rcr.ContainmentName, ri.DateCreated, ri.Creator,
ri.VitalRecordReviewDate
FROM (RecordInfo ri INNER JOIN ReferentialContainmentRelationship rcr ON ri.This = rcr.Head)
INNER JOIN RMFolder rc ON rcr.tail = rc.This
WHERE ri.IsDeleted = FALSE AND ri.IsVitalRecord = TRUE
AND ri.VitalRecordNextReviewDate >= 2008-01-01
AND ri.VitalRecordNextReviewDate <= 2009-12-31
Esta consulta localiza registos associados a uma retenção específica durante um período de tempo específico. Estes registos também estão incluídos numa parte específica do plano de ficheiros.
SELECT ri.DocumentTitle, ri.DateCreated, rh.HoldName, rhl.DateCreated As HoldEstablishedOn
FROM (RecordHold rh INNER JOIN RecordHoldLink rhl ON rh.This = rhl.Tail)
INNER JOIN RecordInfo ri ON rhl.Head = ri.This
WHERE ri.IsDeleted = FALSE AND rh.HoldName = 'Smith vs. Jones'
AND rhl.DateCreated >= 2008-10-01 AND rhl.DateCreated <= 2008-12-31
AND ri.This INSUBFOLDER ('/Records Management/File Plan/ABC')