Proces Metadata vs Powercenter metadata: een praktische invulling
Soms kan het handig zijn om in je metadatamodel informatie van je applicatielaag op te nemen. We denken dan bijvoorbeeld aan: met welke techniek en welke versie heb ik deze data in m’n datawarehouse geladen? Of met welke versie heb ik een data conversie uitgevoerd. Natuurlijk is elke powercenter ontwikkelaar bekend met het welbekende $PMWorkflowRunId die als variabele in een mapping gebruikt kan worden.
Door een model te ontwikkelen waarin proces metadata wordt opgeslagen is het met het $PMWorkflowRunId mogelijk om een koppeling te vinden naar de applicatie laag. Dit kan door een $PMWorkflowRunId en op basis van $PMWorkflowName te koppelen aan een workflow id.
Procesrun bevat informatie over een run: bijvoorbeeld: $PMWorkflowRunId, start tijd, eindtijd en een workflow_id uit de worfklow entiteit opgezocht aan de hand van de variabele $PMWorkflowName.
Workflow bevat bepaalde workflow gegevens en Mapping bevat uiteraard mapping gegevens.
In een mapping kan met behulp van het $PMWorkflowRunId een koppeling gemaakt worden met proces data.
De kunst is het om de entiteiten workflow en mapping te vullen. Powercenter heeft een eigen relationele opslag, ook wel de Powercenter repository genoemd. Hierin wordt veel omtrend de applicatie laag opgeslagen. Met behulp van navolgende SQL kan specifieke workflow, sessie en mapping informatie opgehaald worden.
wf.task_name AS workflow_name,
wf.comments AS workflow_comments,
se.instance_name AS session_name,
ma.mapping_name AS mapping_comments,
ma.comments,
workflow_id,
ma.subject_id,
ma.mapping_id,
ma.subject_id,
ma.last_saved AS mapping_last_saved,
wf.last_saved AS workflow_last_saved
FROM opb_subject f
JOIN (SELECT workflow_id,
instance_id,
task_id,
task_type,
instance_name,
MAX(version_number)
FROM opb_task_inst sess
WHERE sess.task_type = 68
GROUP BY workflow_id,instance_id,task_id,task_type,instance_name) se ON se.workflow_id = wf.task_id
JOIN (SELECT session_id,
mapping_id,
MAX(version_number)
FROM opb_session
GROUP BY session_id,mapping_id) s ON se.task_id = s.session_id
WHERE wf.is_visible = 1
AND wf.task_type = 71
AND ma.is_visible = 1
AND f.subj_name = ‘mijn folder’
Uiteraard is het belangrijk om in de laatste regel de juiste folder(s) op te nemen.
from REP_METADATA_EXTNS
where domain_id = 1
and METADATA_EXTN_OBJECT_TYPE = 21
Het vullen van een metadataextension is mensenwerk en vergt een juiste discipline en release beleid.
Navolgende links helpen om nog meer info te vinden over specifieke repository entiteiten en attributen:
http://radhakrishnasarma.blogspot.com/
https://sites.google.com/site/ashishrkabra/informatica/informaticapowercenterrepositorytables