---
status: Aktiv
tags:
  - process/project
subtitle: Einsatz nicht-Talend-eigener Komponenten

---
> [!abstract]- Project
> Goal:: 
> Progress:: `$= dv.view('project-progress', {file: 'Einsatz nicht-Talend-eigener Komponenten'})`
> Target:: `$= dv.view('project-target', {file: 'Einsatz nicht-Talend-eigener Komponenten'})`
> Bar:: `$= dv.view('project-progress-bar', {file: 'Einsatz nicht-Talend-eigener Komponenten'})`
> Tasks:: `$= const aufgaben = dv.page('Einsatz nicht-Talend-eigener Komponenten').file.inlinks.where(t => { const mt = dv.page(t.path); return mt.tags?.includes('process/task') && mt.status === 'In Arbeit'}); if (aufgaben.length > 0) { dv.header(4, aufgaben.length > 1 ? "Aufgaben" : "Aufgabe"); dv.list(aufgaben) }`

## Project Info

 Oliver und ich hatten ein sehr gutes Gespräch mit Jan. Er unterstützt uns dabei, die Komponenten über Talend anzubinden und würde beispielsweise eine Art Übergabe durchführen. Zu bedenken ist außerdem, dass diese Komponenten noch auf den alten JavaJet- und nicht auf dem neuen Talend Component Kit Framework basieren. Laut Jan müssen die Komponenten daher vermutlich vollständig umgebaut werden.  
  
Das Job-Instance-Framework mit den entsprechenden Komponenten ist gefühlt bei jedem unserer Kunden im Einsatz. Die Collection enthält folgende Komponenten:  tJobInstanceStart, tJobInstanceEnd, tJobDataRangeScanner, tJobInstanceLiveCheck  
Die tJSONDoc-Collection enthält folgende Komponenten: tJSONDocOpen, tJSONDocOutput, tJSONDocInput, tJSONDocExtractFields, tJSONDocInputStream, tJSONDocSave, tJSONDocDiff, tJSONDocMerge, tJSONDocTraverseFields

## Thoughts

Die Übernahme der Komponenten ist möglich.
## Resources


## Review questions


## Aufgaben
- [x] Aufgabe von [[Oliver Fromm]]  - Überprüfung auf Übernahme der Komponenten  [start:: 2026-01-12]  [completion:: 2026-01-12]
- [x] Ausgang der Gespräche von [[Oliver Fromm]] und Talend abwarten #process/task  [start:: 2026-01-12]  [due:: 2026-04-01]  [completion:: 2026-04-01]


## Offene Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
   	return [
   		page.file.link,
   		page.status,
   		tasks.where(t => t.fullyCompleted === true).length,
   		tasks.length
   	]
}));
```

## Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
	return [
		page.file.link,
		page.status,
		tasks.where(t => t.fullyCompleted === true).length,
		tasks.length
	]
}));
```
