<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="Cache for Windows (x86-64) 2011.1.2 (Build 701U)" ts="2011-12-06 08:29:48">
<Class name="DBTQM.AF.MatrixEntryFunktionAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61556,50390.062035</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, 
	Text, 
	MitarbeiterID, 
	MitarbeiterNummer, 
	MitarbeiterName, 
	MitarbeiterKurzname,
	FunktionID,
	FunktionNummer,
	FunktionKurzBez,
	FunktionFull
FROM
	(SELECT x.ID, x.Text,
	x.MitarbeiterID as MitarbeiterID, x.MitarbeiterNummer as MitarbeiterNummer, x.MitarbeiterName As MitarbeiterName, x.MitarbeiterKurzname as MitarbeiterKurzname,
	f.ID as FunktionID, f.Nummer as FunktionNummer,f.Kurzbezeichnung as FunktionKurzBez, f.Kurzbezeichnung || ' ' || DBTQM_SD.Funktion_GetBezeichnungClass(f.ID, :MandantOid, :Lang) as FunktionFull
	FROM 
		(SELECT e.ID, e.Text, e.Funktion as Funktion,
		m.ID as MitarbeiterID, m.Nummer as MitarbeiterNummer, m.Name || ' ' || m.Vorname as MitarbeiterName, m.Kurzname as MitarbeiterKurzname
		FROM 
			DBTQM.MatrixEntryFunktion as e right join 
			DBCore.Mitarbeiter as m ON (e.Mitarbeiter = m.ID) where m.Mandant = :MandantOid
		) as x
			full outer join DBTQM_SD.Funktion f ON f.ID = x.Funktion and f.Aktmandant = :MandantOid)
			order by MitarbeiterNummer, FunktionNummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.MatrixEntryProzessAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61556,35944.007032</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, 
	Text,
	MitarbeiterID, 
	MitarbeiterNummer, 
	MitarbeiterName, 
	MitarbeiterKurzname,
	ProzessID, 
	ProzessNummer,
	ProzessKurzBez, 
	ProzessFull	
FROM
	(SELECT x.ID, x.Text,
	x.MitarbeiterID as MitarbeiterID, x.MitarbeiterNummer as MitarbeiterNummer, x.MitarbeiterName As MitarbeiterName, x.MitarbeiterKurzname as MitarbeiterKurzname,
	p.ID as ProzessID, p.Nummer as ProzessNummer,p.Kurzbezeichnung as ProzessKurzBez, p.Kurzbezeichnung || ' ' || DBTQM_SD.Prozessgruppe_GetBezeichnungClass(p.ID, :MandantOid, :Lang) as ProzessFull
	FROM 
		(SELECT e.ID, e.Text, e.Prozess as Prozess,
		m.ID as MitarbeiterID, m.Nummer as MitarbeiterNummer, m.Name || ' ' || m.Vorname as MitarbeiterName, m.Kurzname as MitarbeiterKurzname
		FROM 
			DBTQM.MatrixEntryProzess as e right join 
			DBCore.Mitarbeiter as m ON (e.Mitarbeiter = m.ID) where m.Mandant = :MandantOid 
		) as x
			full outer join DBTQM_SD.Prozessgruppe p ON p.ID = x.Prozess and p.Aktmandant = :MandantOid)
			order by  MitarbeiterNummer, ProzessNummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.QMeldungAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61681,40585.215631</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			Adresse As "Adresse.ID",
			Adresse->KurzName As "Adresse.Kurzname",
			Aufnehmer As "Aufnehmer",
			Aufnehmer->Kurzname As "Aufnehmer.Kurzname",
			Aufnehmer->Name || ' ' || Aufnehmer->Vorname as "Aufnehmer.Name",
			Datum,
			Ansprechsperson,
			RueckrufTelefonnr,
			NatelRueckruf,
			AnsprechspersMitarbeiter->ID As "AnsprechspersMitarbeiter.ID",
			DBIntrap_SD.QMeldung_GetBezeichnungClass(Grund, :MandantOid, :Lang) As GrundText,
			GrundBemerkung,
			ReaktionVon,
			WasGeschehen,
			VisumGeprueft, VisumAbklaerung, VisumMassnahmen, VisumEntscheid, VisumMassnahmen2, VisumKosten,
			DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(Verursacher, :MandantOid, :Lang) As VerursachertText,VerursacherBemerkung
			VerursacherBemerkung
	FROM DBTQM.QMeldung
	WHERE Adresse->Mandant = :MandantOid
	ORDER BY Datum]]></SqlQuery>
</Query>

<Query name="ListeSelektion">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,ErfasserOid:%String,AdresseOid:%String,Erledigte:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			Adresse As "Adresse.ID",
			Adresse->KurzName As "Adresse.Kurzname",
			Aufnehmer As "Aufnehmer",
			Aufnehmer->Kurzname As "Aufnehmer.Kurzname",
			Aufnehmer->Name || ' ' || Aufnehmer->Vorname as "Aufnehmer.Name",
			Datum,
			Ansprechsperson,
			RueckrufTelefonnr,
			NatelRueckruf,
			AnsprechspersMitarbeiter->ID As "AnsprechspersMitarbeiter.ID",
			DBIntrap_SD.QMeldung_GetBezeichnungClass(Grund, :MandantOid, :Lang) As GrundText,
			GrundBemerkung,
			ReaktionVon,
			WasGeschehen,
			VisumGeprueft, VisumAbklaerung, VisumMassnahmen, VisumEntscheid, VisumMassnahmen2, VisumKosten,
			DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(Verursacher, :MandantOid, :Lang) As VerursachertText,VerursacherBemerkung
			VerursacherBemerkung
	FROM DBTQM.QMeldung
	WHERE Adresse->Mandant = :MandantOid and 
	(Adresse = :AdresseOid or :AdresseOid = '') and
	(Aufnehmer = :ErfasserOid or :ErfasserOid = '') and
	(VisumGeprueft IS NULL or :Erledigte = 1)
	ORDER BY Datum]]></SqlQuery>
</Query>

<Query name="ListeSelektionPerDatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,ErfasserOid:%String,PerDatum:%Date,AdresseOid:%String,Erledigte:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			Adresse As "Adresse.ID",
			Adresse->KurzName As "Adresse.Kurzname",
			Aufnehmer As "Aufnehmer",
			Aufnehmer->Kurzname As "Aufnehmer.Kurzname",
			Aufnehmer->Name || ' ' || Aufnehmer->Vorname as "Aufnehmer.Name",
			Datum,
			Ansprechsperson,
			RueckrufTelefonnr,
			NatelRueckruf,
			AnsprechspersMitarbeiter->ID As "AnsprechspersMitarbeiter.ID",
			DBIntrap_SD.QMeldung_GetBezeichnungClass(Grund, :MandantOid, :Lang) As GrundText,
			GrundBemerkung,
			ReaktionVon,
			WasGeschehen,
			VisumGeprueft, VisumAbklaerung, VisumMassnahmen, VisumEntscheid, VisumMassnahmen2, VisumKosten,
			DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(Verursacher, :MandantOid, :Lang) As VerursachertText,VerursacherBemerkung
			VerursacherBemerkung
	FROM DBTQM.QMeldung
	WHERE Adresse->Mandant = :MandantOid and 
	(Adresse = :AdresseOid or :AdresseOid = '') and 
     Datum = :PerDatum and 
	(Aufnehmer = :ErfasserOid or :ErfasserOid = '') and
	(VisumGeprueft IS NULL or :Erledigte = 1)
	ORDER BY Datum]]></SqlQuery>
</Query>

<Query name="ListeSelektionAbDatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,ErfasserOid:%String,BisDatum:%Date,AdresseOid:%String,Erledigte:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			Adresse As "Adresse.ID",
			Adresse->KurzName As "Adresse.Kurzname",
			Aufnehmer As "Aufnehmer",
			Aufnehmer->Kurzname As "Aufnehmer.Kurzname",
			Aufnehmer->Name || ' ' || Aufnehmer->Vorname as "Aufnehmer.Name",
			Datum,
			Ansprechsperson,
			RueckrufTelefonnr,
			NatelRueckruf,
			AnsprechspersMitarbeiter->ID As "AnsprechspersMitarbeiter.ID",
			DBIntrap_SD.QMeldung_GetBezeichnungClass(Grund, :MandantOid, :Lang) As GrundText,
			GrundBemerkung,
			ReaktionVon,
			WasGeschehen,
			VisumGeprueft, VisumAbklaerung, VisumMassnahmen, VisumEntscheid, VisumMassnahmen2, VisumKosten,
			DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(Verursacher, :MandantOid, :Lang) As VerursachertText,VerursacherBemerkung
			VerursacherBemerkung
	FROM DBTQM.QMeldung
	WHERE Adresse->Mandant = :MandantOid and 
	(Adresse = :AdresseOid or :AdresseOid = '') and 
	 Datum >= :BisDatum  and 
	(Aufnehmer = :ErfasserOid or :ErfasserOid = '') and
	(VisumGeprueft IS NULL or :Erledigte = 1)
	ORDER BY Datum]]></SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.DarstellungsTypAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61552,56167.019807</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.DarstellungsTyp_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung, ViewTyp FROM DBTQM_SD.DarstellungsTyp WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.DarstellungsTyp_GetBezeichnungClass(%ID, :MandantOid, :Lang) As wert1, "" AS wert2 FROM DBTQM_SD.DarstellungsTyp AS Stammdate WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.DarstellungsTyp_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung, ViewTyp FROM DBTQM_SD.DarstellungsTyp WHERE AktMandant = :MandantOid AND Nummer = :Nummer ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.DokVorlageAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61612,39930.484423</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, Bezeichnung, DokumentTyp FROM DBTQM_SD.DokVorlage WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, Bezeichnung As wert1, ' ' AS wert2 FROM DBTQM_SD.DokVorlage AS Stammdate WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Nummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, Bezeichnung, DokumentTyp FROM DBTQM_SD.DokVorlage WHERE Nummer = :Nummer AND AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.FunktionAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61527,52192.105381</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Funktion_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung, Kurzbezeichnung FROM DBTQM_SD.Funktion WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Funktion_GetBezeichnungClass(%ID, :MandantOid, :Lang) As wert1, Kurzbezeichnung AS wert2 FROM DBTQM_SD.Funktion AS Stammdate WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Funktion_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung, Kurzbezeichnung FROM DBTQM_SD.Funktion WHERE AktMandant = :MandantOid AND Nummer = :Nummer ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachKurzBez">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,KurzBez:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Funktion_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung, Kurzbezeichnung FROM DBTQM_SD.Funktion WHERE AktMandant = :MandantOid AND Kurzbezeichnung = :KurzBez ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.KurzBezAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61552,33122.715186</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.KurzBez_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung FROM DBTQM_SD.KurzBez WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.KurzBez_GetBezeichnungClass(%ID, :MandantOid, :Lang) As wert1, "" AS wert2 FROM DBTQM_SD.KurzBez AS Stammdate WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.KurzBez_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung FROM DBTQM_SD.KurzBez WHERE AktMandant = :MandantOid AND Nummer = :Nummer ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.ProzessgruppeAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61500,53463.08537</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) As Bezeichnung,
 Kurzbezeichnung, NummerZiele, NummerHilfsmittel, Parent,
 DBTQM_SD.Prozessgruppe_GetInputs(ID) as Inputs, DBTQM_SD.Prozessgruppe_GetOutputs(ID) as Outputs
FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer,DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) As wert1, Kurzbezeichnung AS wert2 FROM DBTQM_SD.Prozessgruppe AS Stammdate WHERE AktMandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer,DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) as Bezeichnung, Kurzbezeichnung, Parent FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid AND Nummer = :Nummer ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeAufgabenTitel">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Titel FROM DBTQM.ProzessAufgabenBlock where Prozess = :ProzessOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListeTextTitel">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Titel FROM DBTQM.ProzessText where Prozess = :ProzessOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListeZielTitel">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Titel FROM DBTQM.ProzessZielBlock where Prozess = :ProzessOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListeHilfsmittelTitel">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Titel FROM DBTQM.ProzessHilfsmBlock where Prozess = :ProzessOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListeArchivTitel">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Titel FROM DBTQM.ProzessArchivBlock where Prozess = :ProzessOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListZiele">
<Type>%SQLQuery</Type>
<FormalSpec>ZielBlockOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[ SELECT ID, Zielinhalt, Aussage, Messung, VeranwortungSelf, Funktion->ID as FunktionId, Funktion->Kurzbezeichnung as FunktionKurzBez FROM DBTQM.ProzessZiel where ZielBlock = :ZielBlockOid]]></SqlQuery>
</Query>

<Query name="ListArchiv">
<Type>%SQLQuery</Type>
<FormalSpec>ArchivBlockOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Datum, Bezeichnung, Version, Ersteller FROM DBTQM.ProzessArchiv where ProzessArchivBlock = :ArchivBlockOid order by Version</SqlQuery>
</Query>

<Query name="ListeAufgaben">
<Type>%SQLQuery</Type>
<FormalSpec>AufgabenBlockOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Aufgabe, Nummer || ' - ' || Aufgabe as Text  FROM DBTQM.ProzessAufgabe where ProzessAufgabenBlock = :AufgabenBlockOid Order by Nummer</SqlQuery>
</Query>

<Query name="ListeTaetigkeitPerAufgabenBlock">
<Type>%SQLQuery</Type>
<FormalSpec>AufgabenBlockOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT t.ID as ID, t.Nummer as Nummer, t.Taetigkeit as Taetigkeit, t.Entscheid as Entscheid, t.Verwantwortung as Verwantwortung, t.Mitwirken as Mitwirken, t.Informieren as Informieren, 
 t.Dokument1 as Dokument1, 0 as Typ, DBTQM.ProzessHilfsmittel_GetHilfsmittelByTaet(t.ID) as HilfsmittelList, Website,
 a.Nummer || ' - ' || a.Aufgabe as AufgabeName, a.Nummer as AufgabeNummer, a.ID as AufagebID
 FROM DBTQM.ProzessAufgabe as a left join DBTQM.ProzessTaetigkeit as t on t.Aufgabe = a.ID where a.ProzessAufgabenBlock = :AufgabenBlockOid 
 Order by Nummer</SqlQuery>
</Query>

<Query name="ListeHilfsmPerAufgabenBlock">
<Type>%SQLQuery</Type>
<FormalSpec>AufgabenBlockOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[ SELECT ID, Hilfsmittel->ID as HilfsmID, Hilfsmittel->Nummer as Nummer, Hilfsmittel->Identifikation as Identifikation, 
 Hilfsmittel->Bezeichnung as Bezeichnung, Taetigkeit as TaetigkeitID, 1 as Typ FROM DBTQM.HilfsmittelTaetigkeit 
 where Taetigkeit->Aufgabe->ProzessAufgabenBlock = :AufgabenBlockOid 
 Order by Nummer]]></SqlQuery>
</Query>

<Query name="ListeHilfsmPerProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[Select ID, 
	Nummer, 
	Identifikation, 
	Bezeichnung, 
 	JahreArchivierung, 
 	ArtArchivierung, 
 	Ausgestellt,
 	Verwaltung,
 	Freigabe
from
(SELECT Hilfsmittel->ID, Hilfsmittel->Nummer, Hilfsmittel->Identifikation, Hilfsmittel->Bezeichnung, 
 Hilfsmittel->JahreArchivierung, Hilfsmittel->ArtArchivierung, 
 CASE WHEN Hilfsmittel->AusgestelltSelf = 1 Then 0 ELSE Hilfsmittel->Ausgestellt END AS Ausgestellt,
 CASE WHEN Hilfsmittel->VerwaltungSelf = 1 Then 0 ELSE Hilfsmittel->Verwaltung END AS Verwaltung,
 CASE WHEN Hilfsmittel->FreigabeSelf  = 1 Then 0 ELSE Hilfsmittel->Freigabe END AS Freigabe
 FROM DBTQM.HilfsmittelTaetigkeit
 where Taetigkeit->Aufgabe->ProzessAufgabenBlock->Prozess = :ProzessOid and Hilfsmittel->Parent is null
UNION
SELECT Dokument1->ID, Dokument1->Nummer, Dokument1->Identifikation, Dokument1->Bezeichnung, 
 Dokument1->JahreArchivierung, Dokument1->ArtArchivierung, 
 CASE WHEN Dokument1->AusgestelltSelf = 1 Then 0 ELSE Dokument1->Ausgestellt END AS Ausgestellt,
 CASE WHEN Dokument1->VerwaltungSelf = 1 Then 0 ELSE Dokument1->Verwaltung END AS Verwaltung,
 CASE WHEN Dokument1->FreigabeSelf  = 1 Then 0 ELSE Dokument1->Freigabe END AS Freigabe
 FROM DBTQM.ProzessTaetigkeit where Aufgabe->ProzessAufgabenBlock->Prozess = :ProzessOid and  Dokument1->Parent is null
) Order by Nummer]]></SqlQuery>
</Query>

<Query name="ListeHilfsmPerParentProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessParentOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Identifikation, Bezeichnung, 
 JahreArchivierung, ArtArchivierung, 
 CASE WHEN AusgestelltSelf = 1 Then 0 ELSE Ausgestellt END AS Ausgestellt,
 CASE WHEN VerwaltungSelf = 1 Then 0 ELSE Verwaltung END AS Verwaltung,
 CASE WHEN FreigabeSelf  = 1 Then 0 ELSE Freigabe END AS Freigabe
 FROM DBTQM.ProzessHilfsmittel
 where Prozess = :ProzessParentOid and Parent is null
 Order by Nummer</SqlQuery>
</Query>

<Query name="ListeHilfsmPrgPerProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Identifikation, Bezeichnung, 
 JahreArchivierung, ArtArchivierung, 
 CASE WHEN AusgestelltSelf = 1 Then 0 ELSE Ausgestellt END AS Ausgestellt,
 CASE WHEN VerwaltungSelf = 1 Then 0 ELSE Verwaltung END AS Verwaltung,
 CASE WHEN FreigabeSelf  = 1 Then 0 ELSE Freigabe END AS Freigabe
 FROM DBTQM.ProzessHilfsmittel
 where Prozess = :ProzessOid and DateiEndung = "" and Parent is null
 Order by Nummer</SqlQuery>
</Query>

<Query name="ListeHilfsmDokuPerProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[ SELECT ID, Nummer, Identifikation, Bezeichnung, 
 JahreArchivierung, ArtArchivierung, 
 CASE WHEN AusgestelltSelf = 1 Then 0 ELSE Ausgestellt END AS Ausgestellt,
 CASE WHEN VerwaltungSelf = 1 Then 0 ELSE Verwaltung END AS Verwaltung,
 CASE WHEN FreigabeSelf  = 1 Then 0 ELSE Freigabe END AS Freigabe
 FROM DBTQM.ProzessHilfsmittel
 where Prozess = :ProzessOid and DateiEndung <> "" and Parent is null
 Order by Nummer]]></SqlQuery>
</Query>

<Query name="ListeHilfsmArchivPerProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[Select ID, 
	Nummer, 
	Identifikation, 
	Bezeichnung, 
	JahreArchivierung, 
	ArtArchivierung, 
	Ausgestellt,
	Verwaltung,
	Freigabe,
	Aenderung
 from
(SELECT Hilfsmittel->ID, Hilfsmittel->Nummer, Hilfsmittel->Identifikation, Hilfsmittel->Bezeichnung, 
 Hilfsmittel->JahreArchivierung, Hilfsmittel->ArtArchivierung, 
 CASE WHEN Hilfsmittel->AusgestelltSelf = 1 Then 0 ELSE Hilfsmittel->Ausgestellt END AS Ausgestellt,
 CASE WHEN Hilfsmittel->VerwaltungSelf = 1 Then 0 ELSE Hilfsmittel->Verwaltung END AS Verwaltung,
 CASE WHEN Hilfsmittel->FreigabeSelf  = 1 Then 0 ELSE Hilfsmittel->Freigabe END AS Freigabe,
 TO_CHAR(Hilfsmittel->Aenderung, 'DD.MM.YYYY') as Aenderung
 FROM DBTQM.HilfsmittelTaetigkeit
 where Taetigkeit->Aufgabe->ProzessAufgabenBlock->Prozess = :ProzessOid and Hilfsmittel->Parent is not null
UNION ALL
SELECT Dokument1->ID, Dokument1->Nummer, Dokument1->Identifikation, Dokument1->Bezeichnung, 
 Dokument1->JahreArchivierung, Dokument1->ArtArchivierung, 
 CASE WHEN Dokument1->AusgestelltSelf = 1 Then 0 ELSE Dokument1->Ausgestellt END AS Ausgestellt,
 CASE WHEN Dokument1->VerwaltungSelf = 1 Then 0 ELSE Dokument1->Verwaltung END AS Verwaltung,
 CASE WHEN Dokument1->FreigabeSelf  = 1 Then 0 ELSE Dokument1->Freigabe END AS Freigabe,
 TO_CHAR(Dokument1->Aenderung, 'DD.MM.YYYY') as Aenderung
 FROM DBTQM.ProzessTaetigkeit where Aufgabe->ProzessAufgabenBlock->Prozess = :ProzessOid and  Dokument1->Parent is not null
) Order by Nummer]]></SqlQuery>
</Query>

<Query name="ListeHilfsmArchParentProzess">
<Type>%SQLQuery</Type>
<FormalSpec>ProzessParentOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery> SELECT ID, Nummer, Identifikation, Bezeichnung, 
 JahreArchivierung, ArtArchivierung, 
 CASE WHEN AusgestelltSelf = 1 Then 0 ELSE Ausgestellt END AS Ausgestellt,
 CASE WHEN VerwaltungSelf = 1 Then 0 ELSE Verwaltung END AS Verwaltung,
 CASE WHEN FreigabeSelf  = 1 Then 0 ELSE Freigabe END AS Freigabe,
 Parent, TO_CHAR(Aenderung, 'DD.MM.YYYY') as Aenderung
 FROM DBTQM.ProzessHilfsmittel
 where Prozess = :ProzessParentOid and Parent is not null
 Order by Nummer</SqlQuery>
</Query>

<Query name="ListeParents">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) As Bezeichnung, Kurzbezeichnung, NummerZiele, NummerHilfsmittel, Parent FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid and Parent is null ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeChildsByParentOid">
<Type>%SQLQuery</Type>
<FormalSpec>ParentOid:%String,MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) As Bezeichnung, Kurzbezeichnung, NummerZiele, NummerHilfsmittel, Parent FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid and Parent = :ParentOid ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeAufgabenDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[Select A.ID, A.Nummer, A.Aufgabe, A.ProzessAufgabenBlock as AufgabenBlock, T.Taetigkeit, 
H.Identifikation as Hilfsmittel, T.Dokument1->Identifikation as Dokument,
T.Entscheid->Kurzbezeichnung as Entscheid, T.Verwantwortung->Kurzbezeichnung as Verwantwortung, T.Mitwirken->Kurzbezeichnung as Mitwirken, T.Informieren->Kurzbezeichnung as Informieren
From DBTQM.HilfsmittelTaetigkeit as HT 
right outer join DBTQM.ProzessHilfsmittel as H on HT.Hilfsmittel = H.ID
right outer join DBTQM.ProzessTaetigkeit as T on T.ID = HT.Taetigkeit
right outer join DBTQM.ProzessAufgabe as A on A.ID = T.Aufgabe
where A.ProzessAufgabenBlock->Prozess->AktMandant = :MandantOid
Order by A.Nummer, T.Nummer]]></SqlQuery>
</Query>

<Query name="ListeTitelDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[Select ABlock, 
	TBlock, 
	ZBlock, 
	HBlock, 
	Nummer, 
	Titel, 
	Prozess
from
	(SELECT ID as ABlock , null as TBlock, null as ZBlock, null as HBlock, Nummer, Titel, Prozess 
	FROM DBTQM.ProzessAufgabenBlock where Prozess->AktMandant = :MandantOid
	Union All
	SELECT null as ABlock, ID as TBlock, null as ZBlock, null as HBlock, Nummer, Titel, Prozess 
	FROM DBTQM.ProzessText where Prozess->AktMandant = :MandantOid
	Union All
	SELECT null as ABlock, null as TBlock, ID as ZBlock, null as HBlock, Nummer, Titel, Prozess 
	FROM DBTQM.ProzessZielBlock where Prozess->AktMandant = :MandantOid
	Union All 
	SELECT null as ABlock, null as TBlock, null as ZBlock, ID as HBlock, Nummer, Titel, Prozess 
	FROM DBTQM.ProzessHilfsmBlock where Prozess->AktMandant = :MandantOid
	) 
Order by Nummer]]></SqlQuery>
</Query>

<Query name="ListeTexteDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT RTFStream->DataStream as TextRTF, ID as TextBlock
	FROM DBTQM.ProzessText where Prozess->AktMandant = :MandantOid]]></SqlQuery>
</Query>

<Query name="ListZieleDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[ SELECT ID, Zielinhalt, Aussage, Messung, VeranwortungSelf, Funktion->ID as FunktionId, 
 Funktion->Kurzbezeichnung as FunktionKurzBez, ZielBlock 
 FROM DBTQM.ProzessZiel where ZielBlock->Prozess->AktMandant = :MandantOid]]></SqlQuery>
</Query>

<Query name="ListeHilfsmDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[Select ID, 
	Nummer, 
	Identifikation, 
	Bezeichnung, 
 	JahreArchivierung, 
 	ArtArchivierung,
 	HilfsmittelBlock,
 	Ausgestellt,
 	Verwaltung,
 	Freigabe,
 	AusgestelltText,
 	VerwaltungText,
 	FreigabeText
from
(SELECT Hilfsmittel->ID, Hilfsmittel->Nummer, Hilfsmittel->Identifikation, Hilfsmittel->Bezeichnung, 
 Hilfsmittel->JahreArchivierung, Hilfsmittel->ArtArchivierung,
 DBTQM.ProzessHilfsmittel_GetBlockId(Taetigkeit->Aufgabe->ProzessAufgabenBlock->Prozess) as HilfsmittelBlock,
 CASE WHEN Hilfsmittel->AusgestelltSelf = 1 Then 0 ELSE Hilfsmittel->Ausgestellt END AS Ausgestellt,
 CASE WHEN Hilfsmittel->VerwaltungSelf = 1 Then 0 ELSE Hilfsmittel->Verwaltung END AS Verwaltung,
 CASE WHEN Hilfsmittel->FreigabeSelf  = 1 Then 0 ELSE Hilfsmittel->Freigabe END AS Freigabe,
 Hilfsmittel->Ausgestellt->Kurzbezeichnung as AusgestelltText,
 Hilfsmittel->Verwaltung->Kurzbezeichnung as VerwaltungText,
 Hilfsmittel->Freigabe->Kurzbezeichnung as FreigabeText
 FROM DBTQM.HilfsmittelTaetigkeit
 where Taetigkeit->Aufgabe->ProzessAufgabenBlock->Prozess->AktMandant = :MandantOid and Hilfsmittel->Parent is null
UNION
SELECT Dokument1->ID, Dokument1->Nummer, Dokument1->Identifikation, Dokument1->Bezeichnung, 
 Dokument1->JahreArchivierung, Dokument1->ArtArchivierung, 
  DBTQM.ProzessHilfsmittel_GetBlockId(Aufgabe->ProzessAufgabenBlock->Prozess) as HilfsmittelBlock,
 CASE WHEN Dokument1->AusgestelltSelf = 1 Then 0 ELSE Dokument1->Ausgestellt END AS Ausgestellt,
 CASE WHEN Dokument1->VerwaltungSelf = 1 Then 0 ELSE Dokument1->Verwaltung END AS Verwaltung,
 CASE WHEN Dokument1->FreigabeSelf  = 1 Then 0 ELSE Dokument1->Freigabe END AS Freigabe,
 Dokument1->Ausgestellt->Kurzbezeichnung as AusgestelltText,
 Dokument1->Verwaltung->Kurzbezeichnung as VerwaltungText,
 Dokument1->Freigabe->Kurzbezeichnung as FreigabeText
 FROM DBTQM.ProzessTaetigkeit 
 where Aufgabe->ProzessAufgabenBlock->Prozess->AktMandant = :MandantOid and   Dokument1->Parent is null
) Order by Nummer]]></SqlQuery>
</Query>

<Query name="GetEntryByNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nummer, DBTQM_SD.Prozessgruppe_GetBezeichnungClass(%ID, :MandantOid, :Lang) as Bezeichnung FROM DBTQM_SD.Prozessgruppe
	WHERE AktMandant = :MandantOid
	AND Nummer LIKE :Nummer
	ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeVonBisNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,VonProzessNr:%String,BisProzessNr:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.Prozessgruppe_GetBezeichnungClass(ID, :MandantOid, :Lang) As Bezeichnung,
 Kurzbezeichnung, NummerZiele, NummerHilfsmittel, Parent, GueltigAb, Version,
 DBTQM_SD.Prozessgruppe_GetInputs(ID) as Inputs, DBTQM_SD.Prozessgruppe_GetOutputs(ID) as Outputs
FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid and Nummer between :VonProzessNr and :BisProzessNr ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeRealMittelByHilfsmittel">
<Type>%SQLQuery</Type>
<FormalSpec>HilfsmittelOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	Select ID, Bezeichnung, DokumentTyp, DateiEndung, Parent,
	Aenderung, Erstellung
	From DBTQM.ProzessRealmittel 
	where Hilfsmittel = :HilfsmittelOid and Parent is null</SqlQuery>
</Query>

<Query name="ListeRealMittelByHilfsmTop1">
<Type>%SQLQuery</Type>
<FormalSpec>HilfsmittelOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	Select TOP 1 ID, Bezeichnung, DokumentTyp, DateiEndung, Parent,
	Aenderung,  Erstellung
	From DBTQM.ProzessRealmittel 
	where Hilfsmittel = :HilfsmittelOid and Parent is null order by Aenderung desc</SqlQuery>
</Query>

<Query name="ListeRealMByHilfsmittelDatum">
<Type>%SQLQuery</Type>
<FormalSpec>HilfsmittelOid:%String,Datum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	Select ID, Bezeichnung, DokumentTyp, DateiEndung, Parent,
	Aenderung, Erstellung
	From DBTQM.ProzessRealmittel 
	where Hilfsmittel = :HilfsmittelOid and Parent is null and ((Aenderung is null and Erstellung >= :Datum) or Aenderung >= :Datum)]]></SqlQuery>
</Query>

<Query name="ListeRealMByHilfsmittelArchiv">
<Type>%SQLQuery</Type>
<FormalSpec>HilfsmittelOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	Select ID, Bezeichnung, DokumentTyp, DateiEndung, Parent,
	 TO_CHAR(Aenderung, 'DD.MM.YYYY') as Aenderung, TO_CHAR(Erstellung, 'DD.MM.YYYY') as Erstellung 
	From DBTQM.ProzessRealmittel 
	where Hilfsmittel = :HilfsmittelOid and Parent is not null</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.AF.SD.ProzessgruppeAFD</DataLocation>
<DefaultData>ProzessgruppeAFDefaultData</DefaultData>
<IdLocation>^DBTQM.AF.SD.ProzessgruppeAFD</IdLocation>
<IndexLocation>^DBTQM.AF.SD.ProzessgruppeAFI</IndexLocation>
<StreamLocation>^DBTQM.AF.SD.ProzessgruppeAFS</StreamLocation>
<Data name="ProzessgruppeAFDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>


<Class name="DBTQM.AF.SD.QMeldungMassnahmeAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61674,45649.291453</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nummer, DBTQM_SD.QMeldungMassnahme_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung
	FROM DBTQM_SD.QMeldungMassnahme
	WHERE Mandant = :MandantOid 
	ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nummer, DBTQM_SD.QMeldungMassnahme_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung
	FROM DBTQM_SD.QMeldungMassnahme
	WHERE Mandant = :MandantOid AND Nummer = :Nummer 
	ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.QMeldungMassnahme_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Wert1, '' Wert2 FROM DBTQM_SD.QMeldungMassnahme AS Stammdate WHERE Mandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.QMeldungVerursacherAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>61674,44560.754914</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nummer, DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung
	FROM DBTQM_SD.QMeldungVerursacher
	WHERE Mandant = :MandantOid 
	ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeNachNummer">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nummer, DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung
	FROM DBTQM_SD.QMeldungVerursacher
	WHERE Mandant = :MandantOid AND Nummer = :Nummer 
	ORDER BY Nummer</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nummer, DBTQM_SD.QMeldungVerursacher_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Wert1, '' Wert2 FROM DBTQM_SD.QMeldungVerursacher AS Stammdate WHERE Mandant = :MandantOid ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.VertragsartAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>62305,33095.957185</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nr, DBTQM_SD.Vertragsart_GetTextClass(%ID, :Lang) As Text, 
Vertragstyp
FROM DBTQM_SD.Vertragsart</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nr AS Nummer, DBTQM_SD.Vertragsart_GetTextClass(%ID, :Lang) As wert1, 
Vertragstyp as wert2 
FROM DBTQM_SD.Vertragsart</SqlQuery>
</Query>

<Query name="ListeNachCode">
<Type>%SQLQuery</Type>
<FormalSpec>Lang:%String,Nr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, Nr, DBTQM_SD.Vertragsart_GetTextClass(%ID, :Lang) As Text,
Vertragstyp 
FROM DBTQM_SD.Vertragsart
WHERE Nr = :Nr
ORDER BY Nr</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.AF.SD.VertragsdatenAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33760</TimeChanged>
<TimeCreated>62308,31230.516881</TimeCreated>

<Query name="ListeBaum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Vertragstyp:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID, Nr, Bezeichnung
FROM DBTQM_SD.Vertragsdaten
WHERE AktMandant = :MandantOid
AND Vertragsart -> Vertragstyp = :Vertragstyp
ORDER BY Nr]]></SqlQuery>
</Query>

<Query name="GetEntryByNr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Nr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, Nr, Bezeichnung
	FROM DBTQM_SD.Vertragsdaten
	WHERE AktMandant = :MandantOid
	AND Nr %StartsWith :Nr AND Nr >= 1000]]></SqlQuery>
</Query>

<Query name="GetEntryByBezeichnung">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Bezeichnung:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT TOP 1 ID, Nr, Bezeichnung
	FROM DBTQM_SD.Vertragsdaten
	WHERE AktMandant = :MandantOid
	AND Bezeichnung LIKE :Bezeichnung
	AND Nr >= 1000
	ORDER BY Bezeichnung]]></SqlQuery>
</Query>

<Query name="ListeNachBezeichnung">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Bezeichnung:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nr, Bezeichnung, Vertragsgegenstand ,
	DBTQM_SD.Vertragsart_GetTextClass(Vertragsart, :Lang) AS Vertragsart
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid AND { fn LCASE(Bezeichnung)} LIKE { fn LCASE(:Bezeichnung)} 
	ORDER BY Nr</SqlQuery>
</Query>

<Query name="ListeNachVertragsgegenstaenden">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Vertragsgegenstand:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nr, Bezeichnung, Vertragsgegenstand ,
	DBTQM_SD.Vertragsart_GetTextClass(Vertragsart, :Lang) AS Vertragsart
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid AND { fn LCASE(Vertragsgegenstand)} LIKE { fn LCASE(:Vertragsgegenstand)} 
	ORDER BY Nr</SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,vonNummer:%Integer,bisNummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, Nr, Bezeichnung, Vertragsgegenstand, AdressNr AS Adresse, Abschlussdatum, Laufzeit, LaufzeitVerlaengerungAnz,
	LaufzeitAnz, VertragAblaufsdatum, Verlaengerungsart, LaufzeitVerlaengerung, VertragsNr, Kuendigungsfrist, Kuendigungsmoeglichkeit,
	WarnungVorAblauf, Versicherungssumme, LetzterKuendigungszeitpunkt, JaehrlicheKosten, Status, Bemerkung,
	SachbearbeiterBenutzername AS Benutzername,	Statusaenderung, Vertragsart->Vertragstyp, 
	DBTQM_SD.Vertragsart_GetTextClass(Vertragsart, :Lang) AS Vertragsart
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid 
	AND Nr BETWEEN :vonNummer AND :bisNummer 
	ORDER BY Nr]]></SqlQuery>
</Query>

<Query name="ListeDruckNachAblaufsdatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,vonNummer:%Integer,bisNummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, Nr, Bezeichnung, Vertragsgegenstand, AdressNr AS Adresse, Abschlussdatum, Laufzeit, LaufzeitVerlaengerungAnz,
	LaufzeitAnz, VertragAblaufsdatum, Verlaengerungsart, LaufzeitVerlaengerung, VertragsNr, Kuendigungsfrist, Kuendigungsmoeglichkeit,
	WarnungVorAblauf, Versicherungssumme, LetzterKuendigungszeitpunkt, JaehrlicheKosten, Status, Bemerkung,
	SachbearbeiterBenutzername AS Benutzername,	Statusaenderung, Vertragsart->Vertragstyp, 
	DBTQM_SD.Vertragsart_GetTextClass(Vertragsart, :Lang) AS Vertragsart
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid 
	AND Nr BETWEEN :vonNummer AND :bisNummer 
	ORDER BY VertragAblaufsdatum]]></SqlQuery>
</Query>

<Query name="ListeDruckUebersicht">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,vonNummer:%Integer,bisNummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nr, Bezeichnung, VertragAblaufsdatum, LetzterKuendigungszeitpunkt
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid 
	AND Nr BETWEEN :vonNummer AND :bisNummer 
	ORDER BY Nr</SqlQuery>
</Query>

<Query name="ListeDruckUebersichtNachAblauf">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,vonNummer:%Integer,bisNummer:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nr, Bezeichnung, VertragAblaufsdatum, LetzterKuendigungszeitpunkt
	FROM DBTQM_SD.Vertragsdaten 
	WHERE AktMandant = :MandantOid 
	AND Nr BETWEEN :vonNummer AND :bisNummer 
	ORDER BY VertragAblaufsdatum</SqlQuery>
</Query>
</Class>


<Class name="DBTQM.DokumentStream">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57235.267618</TimeChanged>
<TimeCreated>61563,47028.970932</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="DataStream">
<Type>%GlobalBinaryStream</Type>
</Property>

<Property name="Hilfsmittel">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>File</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Realmittel">
<Type>DBTQM.ProzessRealmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>File</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="ArchivFile">
<Type>DBTQM.ProzessArchiv</Type>
<Cardinality>many</Cardinality>
<Inverse>File</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Vorlage">
<Type>DBTQM.SD.DokVorlage</Type>
<Cardinality>many</Cardinality>
<Inverse>File</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.DokumentStreamD</DataLocation>
<DefaultData>DokumentStreamDefaultData</DefaultData>
<IdLocation>^DBTQM.DokumentStreamD</IdLocation>
<IndexLocation>^DBTQM.DokumentStreamI</IndexLocation>
<StreamLocation>^DBTQM.DokumentStreamS</StreamLocation>
<Data name="DokumentStreamDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>DataStream</Value>
</Value>
</Data>
<Property name="DataStream"/>
</Storage>
</Class>


<Class name="DBTQM.HilfsmittelTaetigkeit">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57235.363519</TimeChanged>
<TimeCreated>61557,33881.727148</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Taetigkeit">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>one</Cardinality>
<Inverse>Hilfsmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="TaetigkeitIndex">
<Properties>Taetigkeit</Properties>
</Index>

<Property name="Hilfsmittel">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>one</Cardinality>
<Inverse>Taetigkeit</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="HilfsmittelIndex">
<Properties>Hilfsmittel</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.HilfsmittelTaetigkeitD</DataLocation>
<DefaultData>HilfsmittelTaetigkeitDefaultData</DefaultData>
<IdLocation>^DBTQM.HilfsmittelTaetigkeitD</IdLocation>
<IndexLocation>^DBTQM.HilfsmittelTaetigkeitI</IndexLocation>
<StreamLocation>^DBTQM.HilfsmittelTaetigkeitS</StreamLocation>
<Data name="HilfsmittelTaetigkeitDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Taetigkeit</Value>
</Value>
<Value name="3">
<Value>Hilfsmittel</Value>
</Value>
</Data>
<Property name="Hilfsmittel"/>
<Property name="Taetigkeit"/>
</Storage>
</Class>


<Class name="DBTQM.MatrixEntryFunktion">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57235.471201</TimeChanged>
<TimeCreated>61556,35765.622367</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Mitarbeiter">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>MatrixEntryFunktion</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="MitarbeiterIndex">
<Properties>Mitarbeiter</Properties>
</Index>

<Property name="Funktion">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>MatrixEntry</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FunktionIndex">
<Properties>Funktion</Properties>
</Index>

<Property name="Text">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="SetValue">
<ClassMethod>1</ClassMethod>
<FormalSpec>MitarbeiterOid:%String,FunktionOid:%String,text:%String</FormalSpec>
<Implementation><![CDATA[
	Set Cnt = 0
	Set sID = ""
	Set Ret=""
		&sql(SELECT count(*) As Cnt INTO :Cnt
		     FROM DBTQM.MatrixEntryFunktion
		     WHERE Mitarbeiter->ID=:MitarbeiterOid AND Funktion->ID=:FunktionOid)
		If (Cnt>0) {
			if (text = "") {
				&sql(DELETE
				 FROM DBTQM.MatrixEntryFunktion
				 WHERE Mitarbeiter->ID=:MitarbeiterOid AND Funktion->ID=:FunktionOid)
			} else {
				&sql(SELECT %ID INTO :sID 
				 FROM DBTQM.MatrixEntryFunktion
				 WHERE Mitarbeiter->ID=:MitarbeiterOid AND Funktion->ID=:FunktionOid)
				Set entry=##Class(DBTQM.MatrixEntryFunktion).%OpenId(sID)
				Set entry.Text = text
				Set Ret=entry.%Save()
			}
		} elseif (text '= "") {
			Set n=##Class(DBTQM.MatrixEntryFunktion).%New()
			Set n.Funktion = ##Class(DBTQM.SD.Funktion).%OpenId(FunktionOid)
			Set n.Mitarbeiter = ##Class(DBCore.Mitarbeiter).%OpenId(MitarbeiterOid)
			Set n.Text = text
			Set Ret=n.%Save()
		}
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.MatrixEntryFunktionD</DataLocation>
<DefaultData>MatrixEntryFunktionDefaultData</DefaultData>
<IdLocation>^DBTQM.MatrixEntryFunktionD</IdLocation>
<IndexLocation>^DBTQM.MatrixEntryFunktionI</IndexLocation>
<StreamLocation>^DBTQM.MatrixEntryFunktionS</StreamLocation>
<Data name="MatrixEntryFunktionDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Mitarbeiter</Value>
</Value>
<Value name="3">
<Value>Funktion</Value>
</Value>
<Value name="4">
<Value>Text</Value>
</Value>
</Data>
<Property name="Funktion"/>
<Property name="Mitarbeiter"/>
<Property name="Text"/>
</Storage>
</Class>


<Class name="DBTQM.MatrixEntryProzess">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57235.58782</TimeChanged>
<TimeCreated>61556,35794.510234</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Mitarbeiter">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>MatrixEntryProzess</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="MitarbeiterIndex">
<Properties>Mitarbeiter</Properties>
</Index>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>MatrixEntry</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Property name="Text">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="SetValue">
<ClassMethod>1</ClassMethod>
<FormalSpec>MitarbeiterOid:%String,ProzessOid:%String,txt:%String</FormalSpec>
<Implementation><![CDATA[
	Set Cnt = 0
	Set sID = ""
	Set Ret=""
		&sql(SELECT count(*) As Cnt INTO :Cnt
		     FROM DBTQM.MatrixEntryProzess
		     WHERE Mitarbeiter->ID=:MitarbeiterOid AND Prozess->ID=:ProzessOid)
		If (Cnt>0) {
			if (txt = ""){
				&sql(Delete 
				 FROM DBTQM.MatrixEntryProzess
				 WHERE Mitarbeiter->ID=:MitarbeiterOid AND Prozess->ID=:ProzessOid)
			} else {
				&sql(SELECT %ID INTO :sID 
				 FROM DBTQM.MatrixEntryProzess
				 WHERE Mitarbeiter->ID=:MitarbeiterOid AND Prozess->ID=:ProzessOid)
				Set entry=##Class(DBTQM.MatrixEntryProzess).%OpenId(sID)
				Set entry.Text = txt
				Set Ret=entry.%Save()
			}
		} elseif (txt '= "") {
			Set n=##Class(DBTQM.MatrixEntryProzess).%New()
			Set n.Prozess = ##Class(DBTQM.SD.Prozessgruppe).%OpenId(ProzessOid)
			Set n.Mitarbeiter = ##Class(DBCore.Mitarbeiter).%OpenId(MitarbeiterOid)
			Set n.Text = txt
			Set Ret=n.%Save()
		}
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.MatrixEntryProzessD</DataLocation>
<DefaultData>MatrixEntryProzessDefaultData</DefaultData>
<IdLocation>^DBTQM.MatrixEntryProzessD</IdLocation>
<IndexLocation>^DBTQM.MatrixEntryProzessI</IndexLocation>
<StreamLocation>^DBTQM.MatrixEntryProzessS</StreamLocation>
<Data name="MatrixEntryProzessDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Mitarbeiter</Value>
</Value>
<Value name="3">
<Value>Prozess</Value>
</Value>
<Value name="4">
<Value>Text</Value>
</Value>
</Data>
<Property name="Mitarbeiter"/>
<Property name="Prozess"/>
<Property name="Text"/>
</Storage>
</Class>


<Class name="DBTQM.Mitarbeiter">
<Super>%Persistent,%Populate,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.240629</TimeChanged>
<TimeCreated>61499,53868.794935</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%Library.Integer</Type>
<Required>1</Required>
<Parameter name="MAXVAL" value="99999999"/>
<Parameter name="MINVAL" value="1"/>
<Parameter name="POPSPEC" value="Integer(1,99999999)"/>
</Property>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.MitarbeiterD</DataLocation>
<DefaultData>MitarbeiterDefaultData</DefaultData>
<IdLocation>^DBTQM.MitarbeiterD</IdLocation>
<IndexLocation>^DBTQM.MitarbeiterI</IndexLocation>
<StreamLocation>^DBTQM.MitarbeiterS</StreamLocation>
<Data name="MitarbeiterDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>AktMandant</Value>
</Value>
</Data>
</Storage>
</Class>


<Project name="DBTQM">
  <Items>
    <ProjectItem name="DBTQM.AF.MatrixEntryFunktionAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.MatrixEntryProzessAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.QMeldungAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.DarstellungsTypAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.DokVorlageAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.FunktionAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.KurzBezAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.ProzessgruppeAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.QMeldungMassnahmeAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.QMeldungVerursacherAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.VertragsartAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.AF.SD.VertragsdatenAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.DokumentStream" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.HilfsmittelTaetigkeit" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.MatrixEntryFunktion" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.MatrixEntryProzess" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.Mitarbeiter" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessArchiv" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessArchivBlock" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessAufgabe" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessAufgabenBlock" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessHilfsmBlock" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessHilfsmittel" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessRealmittel" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessTaetigkeit" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessText" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessZiel" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.ProzessZielBlock" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.QMeldung" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.RTFStream" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.DarstellungsTyp" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.DokVorlage" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.Funktion" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.KurzBez" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.Prozessgruppe" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.QMeldungMassnahme" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.QMeldungVerursacher" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.Vertragsart" type="CLS"></ProjectItem>
    <ProjectItem name="DBTQM.SD.Vertragsdaten" type="CLS"></ProjectItem>
  </Items>
</Project>


<Class name="DBTQM.ProzessArchiv">
<Super>%Persistent</Super>
<TimeChanged>62416,57235.682255</TimeChanged>
<TimeCreated>61608,41697.593633</TimeCreated>

<Property name="Datum">
<Type>%Date</Type>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DateiEndung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Version">
<Type>%Integer</Type>
</Property>

<Property name="Ersteller">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ProzessArchivBlock">
<Type>DBTQM.ProzessArchivBlock</Type>
<Cardinality>one</Cardinality>
<Inverse>ArchivEntry</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="File">
<Type>DBTQM.DokumentStream</Type>
<Cardinality>one</Cardinality>
<Inverse>ArchivFile</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FileIndex">
<Properties>File</Properties>
<Unique>1</Unique>
</Index>

<Method name="OutputStream">
<ReturnType>%Library.GlobalBinaryStream</ReturnType>
<Implementation><![CDATA[
	Set tmpStream=##class(%Library.GlobalBinaryStream).%New()
	Set f = ..File
	Set Ret=""
	If (f'="") {
		Set Size=f.DataStream.Size
		Set Ret=tmpStream.CopyFromAndSave(f.DataStream)
	}
	Quit tmpStream
]]></Implementation>
</Method>

<Method name="InputStream">
<FormalSpec>Stream:%Library.GlobalBinaryStream</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set res=0
	Set f = ..File
	Set sID = ""
	
		Set Cnt=0
		if (f'="") {
			&sql(SELECT count(*) As Cnt INTO :Cnt
		     	FROM DBTQM.DokumentStream 
		     	WHERE ID = :f)
		}
		If (Cnt=0) {
			Set myId=..%Id()
			Set v=##Class(DBTQM.ProzessArchiv).%OpenId(myId)
			Set n=##Class(DBTQM.DokumentStream).%New()
			Set Ret=n.%Save()
			Set v.File=n
			Set Ret=v.%Save()
			if (Ret=1) {
				do n.DataStream.CopyFromAndSave(Stream)
				Set Ret=n.%Save()
			}
			Set n=""
			Set v=""
			Set res=(Ret=1)
			Quit res
		}
		&sql(SELECT ID InTo :sID 
		     FROM DBTQM.DokumentStream
		     WHERE ID = :f)
		     
		Set s=##Class(DBTQM.DokumentStream).%OpenId(sID)
		Set Ret=s.DataStream.CopyFromAndSave(Stream)
		Set RetS = s.%Save()
		Set s=""
		Set res=((Ret=1) && (RetS=1))
	
	Quit res
]]></Implementation>
</Method>

<Method name="GetBlockId">
<ClassMethod>1</ClassMethod>
<FormalSpec>ProzessId:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set id = ""
	if (ProzessId '= "") {
		&sql(SELECT ID INTO :id
		     FROM DBTQM.ProzessArchivBlock
		     WHERE Prozess  = :ProzessId )
	}
	quit id
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	set rep = ##class(DBTQM.ProzessArchiv).%OpenId(myId)
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :rep.File)
	set rep = ""	
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessArchiv", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code><![CDATA[	set myId = {ID*O}
	set fOld = {File*O}
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :fOld)
	set rep = ""
	
	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessArchiv", myId)]]></Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessArchivD</DataLocation>
<DefaultData>ProzessArchivDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessArchivD</IdLocation>
<IndexLocation>^DBTQM.ProzessArchivI</IndexLocation>
<StreamLocation>^DBTQM.ProzessArchivS</StreamLocation>
<Data name="ProzessArchivDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Datum</Value>
</Value>
<Value name="3">
<Value>Bezeichnung</Value>
</Value>
<Value name="4">
<Value>DateiEndung</Value>
</Value>
<Value name="5">
<Value>Version</Value>
</Value>
<Value name="6">
<Value>Ersteller</Value>
</Value>
<Value name="7">
<Value>ArchivBlock</Value>
</Value>
<Value name="8">
<Value>File</Value>
</Value>
<Value name="9">
<Value>ProzessArchivBlock</Value>
</Value>
</Data>
<Property name="Bezeichnung"/>
<Property name="DateiEndung"/>
<Property name="Datum"/>
<Property name="Ersteller"/>
<Property name="File"/>
<Property name="ProzessArchivBlock"/>
<Property name="Version"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessArchivBlock">
<Super>%Persistent</Super>
<TimeChanged>62416,57235.788906</TimeChanged>
<TimeCreated>61608,41398.274032</TimeCreated>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Titel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>ArchivBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Property name="ArchivEntry">
<Type>DBTQM.ProzessArchiv</Type>
<Cardinality>many</Cardinality>
<Inverse>ProzessArchivBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessArchivBlock", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessArchivBlock", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessArchivBlockD</DataLocation>
<DefaultData>ProzessArchivBlockDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessArchivBlockD</IdLocation>
<IndexLocation>^DBTQM.ProzessArchivBlockI</IndexLocation>
<StreamLocation>^DBTQM.ProzessArchivBlockS</StreamLocation>
<Data name="ProzessArchivBlockDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Titel</Value>
</Value>
<Value name="4">
<Value>Prozess</Value>
</Value>
</Data>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="Titel"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessAufgabe">
<Super>%Persistent</Super>
<TimeChanged>62416,57235.866077</TimeChanged>
<TimeCreated>61557,32773.572372</TimeCreated>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Aufgabe">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ProzessAufgabenBlock">
<Type>DBTQM.ProzessAufgabenBlock</Type>
<Cardinality>one</Cardinality>
<Inverse>Aufgabe</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessAufgabenIndex">
<Properties>ProzessAufgabenBlock</Properties>
</Index>

<Property name="Taetigkeit">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Aufgabe</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessAufgabe", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessAufgabe", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessAufgabeD</DataLocation>
<DefaultData>ProzessAufgabeDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessAufgabeD</IdLocation>
<IndexLocation>^DBTQM.ProzessAufgabeI</IndexLocation>
<StreamLocation>^DBTQM.ProzessAufgabeS</StreamLocation>
<Data name="ProzessAufgabeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Aufgabe</Value>
</Value>
<Value name="4">
<Value>ProzessAufgaben</Value>
</Value>
<Value name="5">
<Value>ProzessAufgabenBlock</Value>
</Value>
</Data>
<Property name="Aufgabe"/>
<Property name="Nummer"/>
<Property name="ProzessAufgabenBlock"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessAufgabenBlock">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57235.944347</TimeChanged>
<TimeCreated>61559,38500.523493</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Titel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>AufgabenBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Property name="Aufgabe">
<Type>DBTQM.ProzessAufgabe</Type>
<Cardinality>many</Cardinality>
<Inverse>ProzessAufgabenBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessAufgabenBlock", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessAufgabenBlock", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessAufgabenBlockD</DataLocation>
<DefaultData>ProzessAufgabenBlockDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessAufgabenBlockD</IdLocation>
<IndexLocation>^DBTQM.ProzessAufgabenBlockI</IndexLocation>
<StreamLocation>^DBTQM.ProzessAufgabenBlockS</StreamLocation>
<Data name="ProzessAufgabenBlockDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Titel</Value>
</Value>
<Value name="4">
<Value>Prozess</Value>
</Value>
</Data>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="Titel"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessHilfsmBlock">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57236.029823</TimeChanged>
<TimeCreated>61562,49793.56028</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Titel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>HilfsmittelBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessHilfsmBlockD</DataLocation>
<DefaultData>ProzessHilfsmBlockDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessHilfsmBlockD</IdLocation>
<IndexLocation>^DBTQM.ProzessHilfsmBlockI</IndexLocation>
<StreamLocation>^DBTQM.ProzessHilfsmBlockS</StreamLocation>
<Data name="ProzessHilfsmBlockDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Titel</Value>
</Value>
<Value name="4">
<Value>Prozess</Value>
</Value>
</Data>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="Titel"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessHilfsmittel">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57236.212378</TimeChanged>
<TimeCreated>61557,32970.577498</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Identifikation">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="JahreArchivierung">
<Type>%Integer</Type>
</Property>

<Property name="ArtArchivierung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="AusgestelltSelf">
<Type>%Boolean</Type>
</Property>

<Property name="FreigabeSelf">
<Type>%Boolean</Type>
</Property>

<Property name="VerwaltungSelf">
<Type>%Boolean</Type>
</Property>

<Property name="Ausgestellt">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>HilfsmittelAusgestellt</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AusgestelltIndex">
<Properties>Ausgestellt</Properties>
</Index>

<Property name="Verwaltung">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>HilfsmittelVerwaltung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VerwaltungIndex">
<Properties>Verwaltung</Properties>
</Index>

<Property name="Freigabe">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>HilfsmittelFreigabe</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FreigabeIndex">
<Properties>Freigabe</Properties>
</Index>

<Property name="Taetigkeit">
<Type>DBTQM.HilfsmittelTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Hilfsmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="DokumentTyp">
<Type>%Library.Integer</Type>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="DateiEndung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="File">
<Type>DBTQM.DokumentStream</Type>
<Cardinality>one</Cardinality>
<Inverse>Hilfsmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FileIndex">
<Properties>File</Properties>
<Unique>1</Unique>
</Index>

<Method name="OutputStream">
<ReturnType>%Library.GlobalBinaryStream</ReturnType>
<Implementation><![CDATA[
	Set tmpStream=##class(%Library.GlobalBinaryStream).%New()
	Set f = ..File
	Set Ret=""
	If (f'="") {
		Set Size=f.DataStream.Size
		Set Ret=tmpStream.CopyFromAndSave(f.DataStream)
	}
	Quit tmpStream
]]></Implementation>
</Method>

<Method name="InputStream">
<FormalSpec>Stream:%Library.GlobalBinaryStream</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set res=0
	Set f = ..File
	Set sID = ""
	
		Set Cnt=0
		if (f'="") {
			&sql(SELECT count(*) As Cnt INTO :Cnt
		     	FROM DBTQM.DokumentStream 
		     	WHERE ID = :f)
		}
		If (Cnt=0) {
			Set myId=..%Id()
			Set v=##Class(DBTQM.ProzessHilfsmittel).%OpenId(myId)
			Set n=##Class(DBTQM.DokumentStream).%New()
			Set Ret=n.%Save()
			Set v.File=n
			Set Ret=v.%Save()
			if (Ret=1) {
				do n.DataStream.CopyFromAndSave(Stream)
				Set Ret=n.%Save()
			}
			Set n=""
			Set v=""
			Set res=(Ret=1)
			Quit res
		}
		&sql(SELECT ID InTo :sID 
		     FROM DBTQM.DokumentStream
		     WHERE ID = :f)
		     
		Set s=##Class(DBTQM.DokumentStream).%OpenId(sID)
		Set Ret=s.DataStream.CopyFromAndSave(Stream)
		Set RetS = s.%Save()
		Set s=""
		Set res=((Ret=1) && (RetS=1))
	
	Quit res
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	set rep = ##class(DBTQM.ProzessHilfsmittel).%OpenId(myId)
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :rep.File)
	set rep = ""	
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessHilfsmittel", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code><![CDATA[	set myId = {ID*O}
	set fOld = {File*O}
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :fOld)
	set rep = ""
	
	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessHilfsmittel", myId)]]></Code>
<Event>DELETE</Event>
</Trigger>

<Property name="Doku1Taetigkeit">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Dokument1</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="GetHilfsmittelByTaet">
<ClassMethod>1</ClassMethod>
<FormalSpec>TaetOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set retval = ""
	if (TaetOid '= "") {
		Set strSQL = "SELECT Hilfsmittel->Identifikation as Identifikation FROM DBTQM.HilfsmittelTaetigkeit WHERE Taetigkeit ="_TaetOid_" and Hilfsmittel->DateiEndung = ''"
		Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
		set ln = $CHAR("10")_$CHAR("13")
	
		Do rs.Prepare(strSQL)
		Set sc=rs.Execute()
	
		IF $$$ISOK(sc) {
			
			while (rs.Next(.sc)) {	
				if (retval = "") {
					set retval = rs.Data("Identifikation")
				} else {
					set retval = retval_","_ln_rs.Data("Identifikation")
				}
			}
		}
	}
	quit retval
]]></Implementation>
</Method>

<Property name="Aenderung">
<Type>%Date</Type>
</Property>

<Property name="Parent">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>one</Cardinality>
<Inverse>ArchivFile</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ParentIndex">
<Properties>Parent</Properties>
</Index>

<Property name="ArchivFile">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Parent</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="GetArchivEntryByDate">
<ClassMethod>1</ClassMethod>
<FormalSpec>Datum:%Date,Parent:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
		&sql(SELECT ID INTO :id
		     FROM DBTQM.ProzessHilfsmittel
		     WHERE Parent is not null and Aenderung = :Datum and Parent = :Parent)
	quit id
]]></Implementation>
</Method>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>Hilfsmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Method name="GetBlockId">
<ClassMethod>1</ClassMethod>
<FormalSpec>ProzessId:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set id = ""
	if (ProzessId '= "") {
		&sql(SELECT ID INTO :id
		     FROM DBTQM.ProzessHilfsmBlock
		     WHERE Prozess  = :ProzessId )
	}
	quit id
]]></Implementation>
</Method>

<Property name="Realmittel">
<Type>DBTQM.ProzessRealmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Hilfsmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessHilfsmittelD</DataLocation>
<DefaultData>ProzessHilfsmittelDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessHilfsmittelD</IdLocation>
<IndexLocation>^DBTQM.ProzessHilfsmittelI</IndexLocation>
<StreamLocation>^DBTQM.ProzessHilfsmittelS</StreamLocation>
<Data name="ProzessHilfsmittelDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Identifikation</Value>
</Value>
<Value name="4">
<Value>Bezeichnung</Value>
</Value>
<Value name="5">
<Value>JahreArchivierung</Value>
</Value>
<Value name="6">
<Value>ArtArchivierung</Value>
</Value>
<Value name="7">
<Value>AusgestelltSelf</Value>
</Value>
<Value name="8">
<Value>FreigabeSelf</Value>
</Value>
<Value name="9">
<Value>VerwaltungSelf</Value>
</Value>
<Value name="10">
<Value>Ausgestellt</Value>
</Value>
<Value name="11">
<Value>Verwaltung</Value>
</Value>
<Value name="12">
<Value>Freigabe</Value>
</Value>
<Value name="13">
<Value>Prozess</Value>
</Value>
<Value name="14">
<Value>HilfsmittelBlock</Value>
</Value>
<Value name="15">
<Value>DokumentTyp</Value>
</Value>
<Value name="16">
<Value>DateiEndung</Value>
</Value>
<Value name="17">
<Value>File</Value>
</Value>
<Value name="18">
<Value>Aenderung</Value>
</Value>
<Value name="19">
<Value>Parent</Value>
</Value>
</Data>
<Property name="Aenderung"/>
<Property name="ArtArchivierung"/>
<Property name="Ausgestellt"/>
<Property name="AusgestelltSelf"/>
<Property name="Bezeichnung"/>
<Property name="DateiEndung"/>
<Property name="DokumentTyp"/>
<Property name="File"/>
<Property name="Freigabe"/>
<Property name="FreigabeSelf"/>
<Property name="HilfsmittelBlock"/>
<Property name="Identifikation"/>
<Property name="JahreArchivierung"/>
<Property name="Nummer"/>
<Property name="Parent"/>
<Property name="Prozess"/>
<Property name="Verwaltung"/>
<Property name="VerwaltungSelf"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessRealmittel">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57236.418357</TimeChanged>
<TimeCreated>61564,56209.721026</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="DokumentTyp">
<Type>%Library.Integer</Type>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="DateiEndung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="File">
<Type>DBTQM.DokumentStream</Type>
<Cardinality>one</Cardinality>
<Inverse>Realmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FileIndex">
<Properties>File</Properties>
<Unique>1</Unique>
</Index>

<Method name="OutputStream">
<ReturnType>%Library.GlobalBinaryStream</ReturnType>
<Implementation><![CDATA[
	Set tmpStream=##class(%Library.GlobalBinaryStream).%New()
	Set f = ..File
	Set Ret=""
	If (f'="") {
		Set Size=f.DataStream.Size
		Set Ret=tmpStream.CopyFromAndSave(f.DataStream)
	}
	Quit tmpStream
]]></Implementation>
</Method>

<Method name="InputStream">
<FormalSpec>Stream:%Library.GlobalBinaryStream</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set res=0
	Set f = ..File
	Set sID = ""
	
		Set Cnt=0
		if (f'="") {
			&sql(SELECT count(*) As Cnt INTO :Cnt
		     	FROM DBTQM.DokumentStream 
		     	WHERE ID = :f)
		}
		If (Cnt=0) {
			Set myId=..%Id()
			Set v=##Class(DBTQM.ProzessRealmittel).%OpenId(myId)
			Set n=##Class(DBTQM.DokumentStream).%New()
			Set Ret=n.%Save()
			Set v.File=n
			Set Ret=v.%Save()
			if (Ret=1) {
				do n.DataStream.CopyFromAndSave(Stream)
				Set Ret=n.%Save()
			}
			Set n=""
			Set v=""
			Set res=(Ret=1)
			Quit res
		}
		&sql(SELECT ID InTo :sID 
		     FROM DBTQM.DokumentStream
		     WHERE ID = :f)
		     
		Set s=##Class(DBTQM.DokumentStream).%OpenId(sID)
		Set Ret=s.DataStream.CopyFromAndSave(Stream)
		Set RetS = s.%Save()
		Set s=""
		Set res=((Ret=1) && (RetS=1))
	
	Quit res
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	set rep = ##class(DBTQM.ProzessRealmittel).%OpenId(myId)
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :rep.File)
	set rep = ""	
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessRealmittel", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code><![CDATA[	set myId = {ID*O}
	set fOld = {File*O}
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :fOld)
	set rep = ""
	
	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessRealmittel", myId)]]></Code>
<Event>DELETE</Event>
</Trigger>

<Property name="Erstellung">
<Type>%Date</Type>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="50"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Aenderung">
<Type>%Date</Type>
</Property>

<Property name="Parent">
<Type>DBTQM.ProzessRealmittel</Type>
<Cardinality>one</Cardinality>
<Inverse>ArchivFile</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ParentIndex">
<Properties>Parent</Properties>
</Index>

<Property name="ArchivFile">
<Type>DBTQM.ProzessRealmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Parent</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="GetArchivEntryByDate">
<ClassMethod>1</ClassMethod>
<FormalSpec>Datum:%Date,Parent:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
		&sql(SELECT ID INTO :id
		     FROM DBTQM.ProzessRealmittel
		     WHERE Parent is not null and Aenderung = :Datum and Parent = :Parent)
	quit id
]]></Implementation>
</Method>

<Property name="Hilfsmittel">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>one</Cardinality>
<Inverse>Realmittel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="HilfsmittelIndex">
<Properties>Hilfsmittel</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessRealmittelD</DataLocation>
<DefaultData>ProzessRealmittelDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessRealmittelD</IdLocation>
<IndexLocation>^DBTQM.ProzessRealmittelI</IndexLocation>
<StreamLocation>^DBTQM.ProzessRealmittelS</StreamLocation>
<Data name="ProzessRealmittelDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>DokumentTyp</Value>
</Value>
<Value name="3">
<Value>DateiEndung</Value>
</Value>
<Value name="4">
<Value>File</Value>
</Value>
<Value name="5">
<Value>TaetHilfsmittel</Value>
</Value>
<Value name="6">
<Value>Erstellung</Value>
</Value>
<Value name="7">
<Value>Bezeichnung</Value>
</Value>
<Value name="8">
<Value>Aenderung</Value>
</Value>
<Value name="9">
<Value>Parent</Value>
</Value>
<Value name="10">
<Value>Taetigkeit</Value>
</Value>
<Value name="11">
<Value>Hilfsmittel</Value>
</Value>
</Data>
<Property name="Aenderung"/>
<Property name="Bezeichnung"/>
<Property name="DateiEndung"/>
<Property name="DokumentTyp"/>
<Property name="Erstellung"/>
<Property name="File"/>
<Property name="Hilfsmittel"/>
<Property name="Parent"/>
<Property name="TaetHilfsmittel"/>
<Property name="Taetigkeit"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessTaetigkeit">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57236.696444</TimeChanged>
<TimeCreated>61557,32867.191792</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Taetigkeit">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Hilfsmittel">
<Type>DBTQM.HilfsmittelTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Taetigkeit</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Entscheid">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>TaetEntscheid</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="EntscheidIndex">
<Properties>Entscheid</Properties>
</Index>

<Property name="Verwantwortung">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>TaetVerantwortung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VerwantwortungIndex">
<Properties>Verwantwortung</Properties>
</Index>

<Property name="Mitwirken">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>TaetMitwirken</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="MitwirkenIndex">
<Properties>Mitwirken</Properties>
</Index>

<Property name="Informieren">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>TaetInformieren</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="InformierenIndex">
<Properties>Informieren</Properties>
</Index>

<Property name="Aufgabe">
<Type>DBTQM.ProzessAufgabe</Type>
<Cardinality>one</Cardinality>
<Inverse>Taetigkeit</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AufgabeIndex">
<Properties>Aufgabe</Properties>
</Index>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessTaetigkeit", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.ProzessTaetigkeit", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Method name="HasHilfsmittel">
<FormalSpec>HilfsmittelOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set myId=..%Id()
	set count = 0
	&sql(SELECT count(*) As Cnt INTO :count
		     	FROM DBTQM.HilfsmittelTaetigkeit 
		     	WHERE Hilfsmittel = :HilfsmittelOid AND Taetigkeit = :myId)
	if (count > 0) {
		Quit 1
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Method name="GetHilfsmittelTaetigkeitOid">
<FormalSpec>HilfsmittelOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set myId=..%Id()
	set id = ""
	&sql(SELECT ID INTO :id
		     	FROM DBTQM.HilfsmittelTaetigkeit 
		     	WHERE Hilfsmittel = :HilfsmittelOid AND Taetigkeit = :myId)
	Quit id
]]></Implementation>
</Method>

<Property name="Dokument1">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>one</Cardinality>
<Inverse>Doku1Taetigkeit</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="Dokument1Index">
<Properties>Dokument1</Properties>
</Index>

<Property name="Website">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessTaetigkeitD</DataLocation>
<DefaultData>ProzessTaetigkeitDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessTaetigkeitD</IdLocation>
<IndexLocation>^DBTQM.ProzessTaetigkeitI</IndexLocation>
<StreamLocation>^DBTQM.ProzessTaetigkeitS</StreamLocation>
<Data name="ProzessTaetigkeitDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Taetigkeit</Value>
</Value>
<Value name="4">
<Value>Entscheid</Value>
</Value>
<Value name="5">
<Value>Verwantwortung</Value>
</Value>
<Value name="6">
<Value>Mitwirken</Value>
</Value>
<Value name="7">
<Value>Informieren</Value>
</Value>
<Value name="8">
<Value>Aufgabe</Value>
</Value>
<Value name="9">
<Value>Dokument1</Value>
</Value>
<Value name="10">
<Value>Dokument2</Value>
</Value>
<Value name="11">
<Value>Website</Value>
</Value>
</Data>
<Property name="Aufgabe"/>
<Property name="Dokument1"/>
<Property name="Dokument2"/>
<Property name="Entscheid"/>
<Property name="Informieren"/>
<Property name="Mitwirken"/>
<Property name="Nummer"/>
<Property name="Taetigkeit"/>
<Property name="Verwantwortung"/>
<Property name="Website"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessText">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57236.954037</TimeChanged>
<TimeCreated>61557,32110.266292</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Titel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="RTFStream">
<Type>DBTQM.RTFStream</Type>
<Cardinality>one</Cardinality>
<Inverse>ProzessText</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="RTFStreamIndex">
<Properties>RTFStream</Properties>
<Unique>1</Unique>
</Index>

<Method name="OutputRTFStream">
<ReturnType>%Library.GlobalBinaryStream</ReturnType>
<Implementation><![CDATA[
	Set tmpStream=##class(%Library.GlobalBinaryStream).%New()
	Set f = ..RTFStream
	Set Ret=""
	If (f'="") {
		Set Size=f.DataStream.Size
		Set Ret=tmpStream.CopyFromAndSave(f.DataStream)
	}
	Quit tmpStream
]]></Implementation>
</Method>

<Method name="InputRTFStream">
<FormalSpec>Stream:%Library.GlobalBinaryStream</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set res=0
	Set f = ..RTFStream
	Set sID = ""
	
		Set Cnt=0
		if (f'="") {
			&sql(SELECT count(*) As Cnt INTO :Cnt
		     	FROM DBTQM.RTFStream 
		     	WHERE ID = :f)
		}
		If (Cnt=0) {
			Set myId=..%Id()
			Set v=##Class(DBTQM.ProzessText).%OpenId(myId)
			Set n=##Class(DBTQM.RTFStream).%New()
			Set Ret=n.%Save()
			Set v.RTFStream=n
			Set Ret=v.%Save()
			if (Ret=1) {
				do n.DataStream.CopyFromAndSave(Stream)
				Set Ret=n.%Save()
			}
			Set n=""
			Set v=""
			Set res=(Ret=1)
			Quit res
		}
		&sql(SELECT ID InTo :sID 
		     FROM DBTQM.RTFStream
		     WHERE ID = :f)
		     
		Set s=##Class(DBTQM.RTFStream).%OpenId(sID)
		Set Ret=s.DataStream.CopyFromAndSave(Stream)
		Set RetS = s.%Save()
		Set s=""
		Set res=((Ret=1) && (RetS=1))
	
	Quit res
]]></Implementation>
</Method>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>Text</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessTextD</DataLocation>
<DefaultData>ProzessTextDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessTextD</IdLocation>
<IndexLocation>^DBTQM.ProzessTextI</IndexLocation>
<StreamLocation>^DBTQM.ProzessTextS</StreamLocation>
<Data name="ProzessTextDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Titel</Value>
</Value>
<Value name="4">
<Value>RTFStream</Value>
</Value>
<Value name="5">
<Value>Prozess</Value>
</Value>
</Data>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="RTFStream"/>
<Property name="Titel"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessZiel">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57237.153078</TimeChanged>
<TimeCreated>61557,31259.605689</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Zielinhalt">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Aussage">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Messung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="VeranwortungSelf">
<Type>%Boolean</Type>
</Property>

<Property name="Funktion">
<Type>DBTQM.SD.Funktion</Type>
<Cardinality>one</Cardinality>
<Inverse>ProzessZiel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FunktionIndex">
<Properties>Funktion</Properties>
</Index>

<Property name="ZielBlock">
<Type>DBTQM.ProzessZielBlock</Type>
<Cardinality>one</Cardinality>
<Inverse>Ziel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ZielBlockIndex">
<Properties>ZielBlock</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessZielD</DataLocation>
<DefaultData>ProzessZielDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessZielD</IdLocation>
<IndexLocation>^DBTQM.ProzessZielI</IndexLocation>
<StreamLocation>^DBTQM.ProzessZielS</StreamLocation>
<Data name="ProzessZielDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Zielinhalt</Value>
</Value>
<Value name="3">
<Value>Aussage</Value>
</Value>
<Value name="4">
<Value>Messung</Value>
</Value>
<Value name="5">
<Value>VeranwortungSelf</Value>
</Value>
<Value name="6">
<Value>Prozess</Value>
</Value>
<Value name="7">
<Value>Funktion</Value>
</Value>
<Value name="8">
<Value>ZielBlock</Value>
</Value>
<Value name="9">
<Value>Nummer</Value>
</Value>
</Data>
<Property name="Aussage"/>
<Property name="Funktion"/>
<Property name="Messung"/>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="VeranwortungSelf"/>
<Property name="ZielBlock"/>
<Property name="Zielinhalt"/>
</Storage>
</Class>


<Class name="DBTQM.ProzessZielBlock">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57237.331776</TimeChanged>
<TimeCreated>61562,49701.540357</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Titel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>ZielBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ProzessIndex">
<Properties>Prozess</Properties>
</Index>

<Property name="Ziel">
<Type>DBTQM.ProzessZiel</Type>
<Cardinality>many</Cardinality>
<Inverse>ZielBlock</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set Oid = $lg(oid,1)
	
	&sql(DELETE FROM DBTQM.ProzessZiel WHERE ZielBlock = :Oid)
			
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code><![CDATA[	set myId = {ID*O}
	&sql(DELETE FROM DBTQM.ProzessZiel WHERE ZielBlock = :myId)]]></Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.ProzessZielBlockD</DataLocation>
<DefaultData>ProzessZielBlockDefaultData</DefaultData>
<IdLocation>^DBTQM.ProzessZielBlockD</IdLocation>
<IndexLocation>^DBTQM.ProzessZielBlockI</IndexLocation>
<StreamLocation>^DBTQM.ProzessZielBlockS</StreamLocation>
<Data name="ProzessZielBlockDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Titel</Value>
</Value>
<Value name="4">
<Value>Prozess</Value>
</Value>
</Data>
<Property name="Nummer"/>
<Property name="Prozess"/>
<Property name="Titel"/>
</Storage>
</Class>


<Class name="DBTQM.QMeldung">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57237.71023</TimeChanged>
<TimeCreated>61674,52669.098705</TimeCreated>
<Inheritance>right</Inheritance>

<UDLText name="T">
<Content><![CDATA[
// Controls how to handle attributes that are unexpected.

]]></Content>
</UDLText>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Datum">
<Type>%Date</Type>
</Property>

<Property name="NatelRueckruf">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Ansprechsperson">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="RueckrufTelefonnr">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Aufnehmer">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldAufnehmer</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AufnehmerIndex">
<Properties>Aufnehmer</Properties>
</Index>

<Property name="Grund">
<Type>DBIntrap.SD.QMeldung</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldMeldung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="GrundIndex">
<Properties>Grund</Properties>
</Index>

<Property name="GrundBemerkung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ReaktionVon">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="WasGeschehen">
<Type>%String</Type>
<Parameter name="MAXLEN" value="2000"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Verursacher">
<Type>DBTQM.SD.QMeldungVerursacher</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VerursacherIndex">
<Properties>Verursacher</Properties>
</Index>

<Property name="VerursacherBemerkung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="MassnahmenVorschlag">
<Type>DBTQM.SD.QMeldungMassnahme</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="MassnahmenVorschlagIndex">
<Properties>MassnahmenVorschlag</Properties>
</Index>

<Property name="MassnahmenBemerkung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="AbklaerungenBemerkungen">
<Type>%String</Type>
<Parameter name="MAXLEN" value="2000"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Kosten">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Massnahmeneinleiten">
<Type>%String</Type>
<Parameter name="MAXLEN" value="2000"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="MassnahmenDatum">
<Type>%Date</Type>
</Property>

<Property name="Entscheid">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EntscheidDatum">
<Type>%Date</Type>
</Property>

<Property name="Geprueft">
<Type>%String</Type>
<Parameter name="MAXLEN" value="80"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="GeprueftDatum">
<Type>%Date</Type>
</Property>

<Property name="VisumAbklaerung">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumAbklaerung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumAbklaerungIndex">
<Properties>VisumAbklaerung</Properties>
</Index>

<Property name="VisumMassnahmen">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumMassnahmen</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumMassnahmenIndex">
<Properties>VisumMassnahmen</Properties>
</Index>

<Property name="VisumEntscheid">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumEntscheid</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumEntscheidIndex">
<Properties>VisumEntscheid</Properties>
</Index>

<Property name="VisumGeprueft">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumGeprueft</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumGeprueftIndex">
<Properties>VisumGeprueft</Properties>
</Index>

<Property name="Adresse">
<Type>DBAdressen.Adresse</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldung</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AdresseIndex">
<Properties>Adresse</Properties>
</Index>

<Property name="AnsprechspersMitarbeiter">
<Type>DBAdressen.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldAnsprechsperson</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AnsprechspersMitarbeiterIndex">
<Properties>AnsprechspersMitarbeiter</Properties>
</Index>

<Property name="VisumMassnahmen2">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumMassnahmen2</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumMassnahmen2Index">
<Properties>VisumMassnahmen2</Properties>
</Index>

<Property name="VisumKosten">
<Type>DBCore.Mitarbeiter</Type>
<Cardinality>one</Cardinality>
<Inverse>QMeldVisumKosten</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VisumKostenIndex">
<Properties>VisumKosten</Properties>
</Index>

<Property name="DatumKosten">
<Type>%Date</Type>
</Property>

<Property name="DatumMassnahmen">
<Type>%Date</Type>
</Property>

<Property name="DatumEntscheid">
<Type>%Date</Type>
</Property>

<Property name="DatumGeprueft">
<Type>%Date</Type>
</Property>

<Property name="DatumAbklaerung">
<Type>%Date</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.QMeldungD</DataLocation>
<DefaultData>QMeldungDefaultData</DefaultData>
<IdLocation>^DBTQM.QMeldungD</IdLocation>
<IndexLocation>^DBTQM.QMeldungI</IndexLocation>
<StreamLocation>^DBTQM.QMeldungS</StreamLocation>
<Data name="QMeldungDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Datum</Value>
</Value>
<Value name="3">
<Value>Aufnehmer</Value>
</Value>
<Value name="4">
<Value>Grund</Value>
</Value>
<Value name="5">
<Value>GrundBemerkung</Value>
</Value>
<Value name="6">
<Value>ReaktionVon</Value>
</Value>
<Value name="7">
<Value>WasGeschehen</Value>
</Value>
<Value name="8">
<Value>Verursacher</Value>
</Value>
<Value name="9">
<Value>VerursacherBemerkung</Value>
</Value>
<Value name="10">
<Value>MassnahmenVorschlag</Value>
</Value>
<Value name="11">
<Value>MassnahmenBemerkung</Value>
</Value>
<Value name="12">
<Value>AbklaerungenBemerkungen</Value>
</Value>
<Value name="13">
<Value>Kosten</Value>
</Value>
<Value name="14">
<Value>Massnahmeneinleiten</Value>
</Value>
<Value name="15">
<Value>MassnahmenDatum</Value>
</Value>
<Value name="16">
<Value>Entscheid</Value>
</Value>
<Value name="17">
<Value>EntscheidDatum</Value>
</Value>
<Value name="18">
<Value>Geprueft</Value>
</Value>
<Value name="19">
<Value>GeprueftDatum</Value>
</Value>
<Value name="20">
<Value>VisumAbklaerung</Value>
</Value>
<Value name="21">
<Value>VisumMassnahmen</Value>
</Value>
<Value name="22">
<Value>VisumEntscheid</Value>
</Value>
<Value name="23">
<Value>VisumGeprueft</Value>
</Value>
<Value name="24">
<Value>NatelRueckruf</Value>
</Value>
<Value name="25">
<Value>Ansprechsperson</Value>
</Value>
<Value name="26">
<Value>RueckrufTelefonnr</Value>
</Value>
<Value name="27">
<Value>Adresse</Value>
</Value>
<Value name="28">
<Value>AnsprechspersMitarbeiter</Value>
</Value>
<Value name="29">
<Value>VisumMassnahmen2</Value>
</Value>
<Value name="30">
<Value>VisumKosten</Value>
</Value>
<Value name="31">
<Value>DatumKosten</Value>
</Value>
<Value name="32">
<Value>DatumMassnahmen</Value>
</Value>
<Value name="33">
<Value>DatumEntscheid</Value>
</Value>
<Value name="34">
<Value>DatumGeprueft</Value>
</Value>
<Value name="35">
<Value>DatumAbklaerung</Value>
</Value>
</Data>
<Property name="AbklaerungenBemerkungen"/>
<Property name="Adresse"/>
<Property name="AnsprechspersMitarbeiter"/>
<Property name="Ansprechsperson"/>
<Property name="Aufnehmer"/>
<Property name="Datum"/>
<Property name="DatumAbklaerung"/>
<Property name="DatumEntscheid"/>
<Property name="DatumGeprueft"/>
<Property name="DatumKosten"/>
<Property name="DatumMassnahmen"/>
<Property name="Entscheid"/>
<Property name="EntscheidDatum"/>
<Property name="Geprueft"/>
<Property name="GeprueftDatum"/>
<Property name="Grund"/>
<Property name="GrundBemerkung"/>
<Property name="Kosten"/>
<Property name="MassnahmenBemerkung"/>
<Property name="MassnahmenDatum"/>
<Property name="MassnahmenVorschlag"/>
<Property name="Massnahmeneinleiten"/>
<Property name="NatelRueckruf"/>
<Property name="ReaktionVon"/>
<Property name="RueckrufTelefonnr"/>
<Property name="Verursacher"/>
<Property name="VerursacherBemerkung"/>
<Property name="VisumAbklaerung"/>
<Property name="VisumEntscheid"/>
<Property name="VisumGeprueft"/>
<Property name="VisumKosten"/>
<Property name="VisumMassnahmen"/>
<Property name="VisumMassnahmen2"/>
<Property name="WasGeschehen"/>
</Storage>
</Class>


<Class name="DBTQM.RTFStream">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57237.878239</TimeChanged>
<TimeCreated>61557,32027.844508</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="DataStream">
<Type>%GlobalBinaryStream</Type>
</Property>

<Property name="ProzessText">
<Type>DBTQM.ProzessText</Type>
<Cardinality>many</Cardinality>
<Inverse>RTFStream</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.RTFStreamD</DataLocation>
<DefaultData>RTFStreamDefaultData</DefaultData>
<IdLocation>^DBTQM.RTFStreamD</IdLocation>
<IndexLocation>^DBTQM.RTFStreamI</IndexLocation>
<StreamLocation>^DBTQM.RTFStreamS</StreamLocation>
<Data name="RTFStreamDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>DataStream</Value>
</Value>
</Data>
<Property name="DataStream"/>
</Storage>
</Class>


<Class name="DBTQM.SD.DarstellungsTyp">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.34486</TimeChanged>
<TimeCreated>61552,53692.193962</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ViewTyp">
<Type>%Library.Integer</Type>
</Property>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.DarstellungsTyp).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetNextFreeNumber">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set nr = 0
	&sql(Select max(Nummer) into :nr From DBTQM_SD.DarstellungsTyp)
	Quit +nr +1
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.DarstellungsTypD</DataLocation>
<DefaultData>DarstellungsTypDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.DarstellungsTypD</IdLocation>
<IndexLocation>^DBTQM.SD.DarstellungsTypI</IndexLocation>
<StreamLocation>^DBTQM.SD.DarstellungsTypS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="DarstellungsTypDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>ViewTyp</Value>
</Value>
<Value name="4">
<Value>AktMandant</Value>
</Value>
</Data>
<Property name="AktMandant"/>
<Property name="Nummer"/>
<Property name="ViewTyp"/>
</Storage>
</Class>


<Class name="DBTQM.SD.DokVorlage">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.494338</TimeChanged>
<TimeCreated>61612,39607.076782</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%Library.Integer</Type>
<Required>1</Required>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Index name="NummerIndex">
<Properties>AktMandant,Nummer</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DokumentTyp">
<Type>%Library.Integer</Type>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="DateiEndung">
<Type>%String</Type>
<Required>1</Required>
<Parameter name="MAXLEN" value="10"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="File">
<Type>DBTQM.DokumentStream</Type>
<Cardinality>one</Cardinality>
<Inverse>Vorlage</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="FileIndex">
<Properties>File</Properties>
<Unique>1</Unique>
</Index>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Method name="GetNextFreeNumber">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set nr = 0
	&sql(Select max(Nummer) into :nr From DBTQM_SD.DokVorlage)
	Quit +nr +1
]]></Implementation>
</Method>

<Method name="OutputStream">
<ReturnType>%Library.GlobalBinaryStream</ReturnType>
<Implementation><![CDATA[
	Set tmpStream=##class(%Library.GlobalBinaryStream).%New()
	Set f = ..File
	Set Ret=""
	If (f'="") {
		Set Size=f.DataStream.Size
		Set Ret=tmpStream.CopyFromAndSave(f.DataStream)
	}
	Quit tmpStream
]]></Implementation>
</Method>

<Method name="InputStream">
<FormalSpec>Stream:%Library.GlobalBinaryStream</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set res=0
	Set f = ..File
	Set sID = ""
	
		Set Cnt=0
		if (f'="") {
			&sql(SELECT count(*) As Cnt INTO :Cnt
		     	FROM DBTQM.DokumentStream 
		     	WHERE ID = :f)
		}
		If (Cnt=0) {
			Set myId=..%Id()
			Set v=##Class(DBTQM.SD.DokVorlage).%OpenId(myId)
			Set n=##Class(DBTQM.DokumentStream).%New()
			Set Ret=n.%Save()
			Set v.File=n
			Set Ret=v.%Save()
			if (Ret=1) {
				do n.DataStream.CopyFromAndSave(Stream)
				Set Ret=n.%Save()
			}
			Set n=""
			Set res=(Ret=1)
			Quit res
		}
		&sql(SELECT ID InTo :sID 
		     FROM DBTQM.DokumentStream
		     WHERE ID = :f)
		     
		Set s=##Class(DBTQM.DokumentStream).%OpenId(sID)
		Set Ret=s.DataStream.CopyFromAndSave(Stream)
		Set RetS = s.%Save()
		Set res=((Ret=1) && (RetS=1))
	
	Quit res
]]></Implementation>
</Method>

<Method name="GetVorlageOidByCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>VorlageNr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	QUIT:(VorlageNr<0)
	Set oid = ""
	&sql(SELECT ID INTO :oid
		 FROM DBTQM_SD.DokVorlage
		 WHERE Nummer = :VorlageNr)
	Quit oid
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set reportOid = $lg(oid,1)
	set rep = ##class(DBTQM.SD.DokVorlage).%OpenId(reportOid)
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :rep.File)
	set rep = ""	
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgOnDelete">
<Code><![CDATA[	set myId = {ID*O}
	set fOld = {File*O}
	&sql(DELETE FROM DBTQM.DokumentStream WHERE ID = :fOld)
	set rep = ""]]></Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.DokVorlageD</DataLocation>
<DefaultData>DokVorlageDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.DokVorlageD</IdLocation>
<IndexLocation>^DBTQM.SD.DokVorlageI</IndexLocation>
<StreamLocation>^DBTQM.SD.DokVorlageS</StreamLocation>
<Data name="DokVorlageDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Bezeichnung</Value>
</Value>
<Value name="4">
<Value>DokumentTyp</Value>
</Value>
<Value name="5">
<Value>DateiEndung</Value>
</Value>
<Value name="6">
<Value>File</Value>
</Value>
<Value name="7">
<Value>AktMandant</Value>
</Value>
</Data>
<Property name="AktMandant"/>
<Property name="Bezeichnung"/>
<Property name="DateiEndung"/>
<Property name="DokumentTyp"/>
<Property name="File"/>
<Property name="Nummer"/>
</Storage>
</Class>


<Class name="DBTQM.SD.Funktion">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.60756</TimeChanged>
<TimeCreated>61500,31353.43054</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Kurzbezeichnung">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.Funktion).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetNextFreeNumber">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set nr = 0
	&sql(Select max(Nummer) into :nr From DBTQM_SD.Funktion)
	Quit +nr +1
]]></Implementation>
</Method>

<Property name="MatrixEntry">
<Type>DBTQM.MatrixEntryFunktion</Type>
<Cardinality>many</Cardinality>
<Inverse>Funktion</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="ProzessZiel">
<Type>DBTQM.ProzessZiel</Type>
<Cardinality>many</Cardinality>
<Inverse>Funktion</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="HilfsmittelAusgestellt">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Ausgestellt</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="HilfsmittelVerwaltung">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Verwaltung</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="HilfsmittelFreigabe">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Freigabe</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="TaetEntscheid">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Entscheid</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="TaetVerantwortung">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Verwantwortung</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="TaetMitwirken">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Mitwirken</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="TaetInformieren">
<Type>DBTQM.ProzessTaetigkeit</Type>
<Cardinality>many</Cardinality>
<Inverse>Informieren</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).ResetManyRelations("DBTQM.SD.Funktion", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).ResetManyRelations("DBTQM.SD.Funktion", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.FunktionD</DataLocation>
<DefaultData>FunktionDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.FunktionD</IdLocation>
<IndexLocation>^DBTQM.SD.FunktionI</IndexLocation>
<StreamLocation>^DBTQM.SD.FunktionS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="FunktionDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Kurzbezeichnung</Value>
</Value>
<Value name="4">
<Value>AktMandant</Value>
</Value>
</Data>
<Property name="AktMandant"/>
<Property name="Kurzbezeichnung"/>
<Property name="Nummer"/>
</Storage>
</Class>


<Class name="DBTQM.SD.KurzBez">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.757655</TimeChanged>
<TimeCreated>61552,32839.013098</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="2"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.KurzBez).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.KurzBezD</DataLocation>
<DefaultData>KurzBezDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.KurzBezD</IdLocation>
<IndexLocation>^DBTQM.SD.KurzBezI</IndexLocation>
<StreamLocation>^DBTQM.SD.KurzBezS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="KurzBezDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>AktMandant</Value>
</Value>
</Data>
<Property name="AktMandant"/>
<Property name="Nummer"/>
</Storage>
</Class>


<Class name="DBTQM.SD.Prozessgruppe">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57295.908981</TimeChanged>
<TimeCreated>61500,32636.288125</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Index name="NummerIndex">
<Data>%%ID,Nummer</Data>
<Properties>AktMandant,Nummer</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.Prozessgruppe).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetNextFreeNumber">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set nr = 0
	&sql(Select max(Nummer) into :nr From DBTQM_SD.Prozessgruppe)
	Quit +nr +1
]]></Implementation>
</Method>

<Property name="Kurzbezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="MatrixEntry">
<Type>DBTQM.MatrixEntryProzess</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Inputs">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Outputs">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ZielBlock">
<Type>DBTQM.ProzessZielBlock</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Text">
<Type>DBTQM.ProzessText</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="AufgabenBlock">
<Type>DBTQM.ProzessAufgabenBlock</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="NummerZiele">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="NummerHilfsmittel">
<Type>%String</Type>
<Parameter name="MAXLEN" value="5"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="HilfsmittelBlock">
<Type>DBTQM.ProzessHilfsmBlock</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Method name="%OnDelete">
<Description><![CDATA[
This callback method is invoked by the <METHOD>%Delete</METHOD> method to 
provide notification that the object specified by <VAR>oid</VAR> is being deleted.

<P>If this method returns an error then the object will not be deleted.
[Previously private]]]></Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	d ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.SD.Prozessgruppe", myId)
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="trgDelete">
<Code>	set myId = {ID*O}
	Quit ##class(DBUtils.ClassHelper).DeleteManyRelations("DBTQM.SD.Prozessgruppe", myId)</Code>
<Event>DELETE</Event>
</Trigger>

<Property name="Parent">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>one</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="ParentIndex">
<Properties>Parent</Properties>
</Index>

<Property name="Prozess">
<Type>DBTQM.SD.Prozessgruppe</Type>
<Cardinality>many</Cardinality>
<Inverse>Parent</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Hilfsmittel">
<Type>DBTQM.ProzessHilfsmittel</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="ArchivBlock">
<Type>DBTQM.ProzessArchivBlock</Type>
<Cardinality>many</Cardinality>
<Inverse>Prozess</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="GueltigAb">
<Type>%Date</Type>
</Property>

<Property name="Version">
<Type>%Integer</Type>
</Property>

<Method name="GetFirstId">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT TOP 1 ID INTO :oid FROM DBTQM_SD.Prozessgruppe WHERE AktMandant = :MandantOid and LENGTH(Nummer) > 1 ORDER BY Nummer	)
	quit oid
]]></Implementation>
</Method>

<Method name="GetFirstDetailId">
<ClassMethod>1</ClassMethod>
<FormalSpec>ProzessOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oidSelect = ""
	&sql(SELECT TOP 1 ID INTO :oidSelect from (Select ID, Nummer FROM DBTQM.ProzessText where Prozess = :ProzessOid
		UNION ALL
		SELECT ID, Nummer FROM DBTQM.ProzessAufgabenBlock where Prozess = :ProzessOid
		UNION ALL
		SELECT ID, Nummer FROM DBTQM.ProzessZielBlock where Prozess = :ProzessOid
		UNION ALL
		SELECT ID, Nummer FROM DBTQM.ProzessHilfsmBlock where Prozess = :ProzessOid)
		Order by Nummer)
	quit oidSelect
]]></Implementation>
</Method>

<Method name="GetParentIdByNummer">
<ClassMethod>1</ClassMethod>
<FormalSpec>Nummer:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oidSelect = ""
	&sql(SELECT TOP 1 ID INTO :oidSelect from DBTQM_SD.Prozessgruppe where Nummer LIKE :Nummer Order by Nummer)
	quit oidSelect
]]></Implementation>
</Method>

<Method name="GetInputs">
<ClassMethod>1</ClassMethod>
<FormalSpec>ProzessId:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (ProzessId '= "") {
		Set rs=##Class(DBTQM.SD.Prozessgruppe).%OpenId(ProzessId)
		SET len=rs.Inputs.Count()
		FOR index=0:1:len {
	  		set entry = rs.Inputs.GetAt(index)
	  		if (entry '= ""){
		  		if (text '= "") {
  					set text = text_$CHAR(13)_entry
		  		} else {
			  		set text = entry
		  		}
  			}
  		}
	}
	quit text
]]></Implementation>
</Method>

<Method name="GetOutputs">
<ClassMethod>1</ClassMethod>
<FormalSpec>ProzessId:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (ProzessId '= "") {
		Set rs=##Class(DBTQM.SD.Prozessgruppe).%OpenId(ProzessId)
		SET len=rs.Outputs.Count()
		FOR index=0:1:len {
	  		set entry = rs.Outputs.GetAt(index)
	  		if (entry '= "") {
		  		if (text '= "") {
  					set text = text_$CHAR(13)_entry
		  		} else {
			  		set text = entry
		  		}
  			}
  		}
	}
	quit text
]]></Implementation>
</Method>

<Method name="LastProzessgruppe">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set MandOid = " "_MandOid
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
	set oid = ""
	if (appnr '= "") {
		set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, appnr,""),-1)
	}
	Quit oid
]]></Implementation>
</Method>

<Method name="MoveLastOnProzessgruppeNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandOid = " "_MandOid
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
	if (appnr '= "") {
		set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, appnr,""),-1,list)
	}
	Quit list
]]></Implementation>
</Method>

<Method name="FirstProzessgruppe">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set MandOid = " "_MandOid
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
	set oid = ""
	if (appnr '= "") {
		set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, appnr,""))
	}
	Quit oid
]]></Implementation>
</Method>

<Method name="MoveFirstOnProzessgruppeNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandOid = " "_MandOid
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
	if (appnr '= "") {
		set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, appnr,""),1,list)
	} else {
		set list = ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="NextProzessgruppe">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,ProzessgruppeNr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set MandOid = " "_MandOid
	set AppNummer = " "_ProzessgruppeNr
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
	set oid = ""
	if appnr '= "" {
		set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,AppNummer))
		if (tmp '= "") {
			set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,tmp,""))
			if oid = "" {
				set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
				if (appnr '= "") {
					set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,AppNummer),-1)
					if (tmp '= "") {
						set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,tmp,""),-1)
					}
				} else {
					set oid = ##class(DBTQM.SD.Prozessgruppe).LastProzessgruppe(MandOid)
				}
			}
		} else {
			set oid = ##class(DBTQM.SD.Prozessgruppe).LastProzessgruppe(MandOid)
		}
	} else {
		set oid = ##class(DBTQM.SD.Prozessgruppe).LastProzessgruppe(MandOid)
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="MoveNextOnProzessgruppeNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,ProzessgruppeNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandOid = " "_MandOid
	set ProzNummer = " "_ProzessgruppeNr
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
	set oid = ""
	if appnr '= "" {
		set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid, ProzNummer))
		if (tmp '= "") {
			set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,tmp,""),1,list)
			if oid = "" {
				set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
				if (appnr '= "") {
					set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,ProzNummer),-1)
					if (tmp '= "") {
						set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,tmp,""),-1,list)
					}
						
				} else {
					set list = ##class(DBTQM.SD.Prozessgruppe).MoveLastOnProzessgruppeNr(MandOid)
					
				}
			}
		} else {
			set list = ##class(DBTQM.SD.Prozessgruppe).MoveLastOnProzessgruppeNr(MandOid)
			
		}
	} else {
		set list = ##class(DBTQM.SD.Prozessgruppe).MoveLastOnProzessgruppeNr(MandOid)
		
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="PrevProzessgruppe">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,ProzessgruppeNr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set MandOid = " "_MandOid
	set ProzNummer = " "_ProzessgruppeNr
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
	set oid = ""
	if appnr '= "" {
		set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,ProzNummer),-1)
		if (tmp '= "") {
			set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,tmp,""),-1)
			if oid = "" {
				set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
				if (appnr '= "") {
					set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,ProzNummer))
					if (tmp '= "") {
						set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,tmp,""))
					}
				} else {
					set oid = ##class(DBTQM.SD.Prozessgruppe).FirstProzessgruppe(MandOid)
				}
			} 
				
		} else {
			set oid = ##class(DBTQM.SD.Prozessgruppe).FirstProzessgruppe(MandOid)
		}
	} else {
		set oid = ##class(DBTQM.SD.Prozessgruppe).FirstProzessgruppe(MandOid)
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="MovePrevOnProzessgruppeNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,ProzessgruppeNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandOid = " "_MandOid
	set ProzNummer = " "_ProzessgruppeNr
	set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""),-1)
	set oid = ""
	if appnr '= "" {
		set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,ProzNummer),-1)
		if (tmp '= "") {
			set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex", MandOid,tmp,""),-1,list)
			if oid = "" {
				set appnr = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid, ""))
				if (appnr '= "") {
					set tmp = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,ProzNummer))
					if (tmp '= "") {
						set oid = $Order(^DBTQM.SD.ProzessgruppeI("NummerIndex",MandOid,tmp,""),1,list)
					}
				} else {
					set list = ##class(DBTQM.SD.Prozessgruppe).MoveFirstOnProzessgruppeNr(MandOid)
				}
			}
		} else {
			set list = ##class(DBTQM.SD.Prozessgruppe).MoveFirstOnProzessgruppeNr(MandOid)
		}
		
	} else {
		set list = ##class(DBTQM.SD.Prozessgruppe).MoveFirstOnKontoNr(MandOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="GetProzessByBez">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String,Bezeichnung:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	set bez = Bezeichnung_"%"
	set nId = ""
	&sql(SELECT TOP 1 ID INTO :nId 
	 	 FROM DBTQM_SD.Prozessgruppe
	 	 WHERE AktMandant = :MandantOid
	 	 AND DBTQM_SD.Prozessgruppe_GetBezeichnungClass(%ID, :MandantOid, :Lang) LIKE :bez)
	if (nId '= "") {
		Quit nId 
		 
	} else {
		Quit ""
	}
]]></Implementation>
</Method>

<Method name="CopyProzess">
<ClassMethod>1</ClassMethod>
<FormalSpec>srcOid:%String,neueNr:%String,neueBez:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	// Ursprungsprozess öffnen
	set srcProzess = ##class(DBTQM.SD.Prozessgruppe).%OpenId(srcOid)
	set mandNr = srcProzess.AktMandant
	// Prüfen ob ziel bereits vorhanden
	set tmpId = ##class(DBTQM.SD.Prozessgruppe).GetIdByProzessNr(mandNr, neueNr)
	// Falls vorhanden löschen
	if (tmpId '= "") {
		do ##class(DBTQM.SD.Prozessgruppe).%DeleteId(tmpId)
	}
	// Prozess kopieren
	Set newProzess = srcProzess.%ConstructClone(0)
	set newProzess.Nummer = neueNr
	d newProzess.SetBezeichnung(mandNr, "de", neueBez)
	set res = newProzess.%Save()
	w res,!
	set id = newProzess.%Id()
	// bereinigung
	k srcProzess
	k newProzess
	k man
	Quit id
]]></Implementation>
</Method>

<Method name="GetIdByProzessNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,ProzNr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT ID INTO :id FROM DBTQM_SD.Prozessgruppe
		 WHERE AktMandant = :MandantOid AND Nummer = :ProzNr)
	Quit id
]]></Implementation>
</Method>

<Method name="GetFirstProzessByGroup">
<ClassMethod>1</ClassMethod>
<FormalSpec>GruppOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT ID INTO :id FROM DBTQM_SD.Prozessgruppe
		 WHERE Parent->ID = :GruppOid ORDER BY Nummer Asc)
	Quit id
]]></Implementation>
</Method>

<Method name="GetLastProzessByGroup">
<ClassMethod>1</ClassMethod>
<FormalSpec>GruppOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT ID INTO :id FROM DBTQM_SD.Prozessgruppe
		 WHERE Parent->ID = :GruppOid ORDER BY Nummer Desc)
	Quit id
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.ProzessgruppeD</DataLocation>
<DefaultData>ProzessgruppeDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.ProzessgruppeD</IdLocation>
<IndexLocation>^DBTQM.SD.ProzessgruppeI</IndexLocation>
<StreamLocation>^DBTQM.SD.ProzessgruppeS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="Inputs">
<Attribute>Inputs</Attribute>
<Structure>subnode</Structure>
<Subscript>"Inputs"</Subscript>
</Data>
<Data name="Outputs">
<Attribute>Outputs</Attribute>
<Structure>subnode</Structure>
<Subscript>"Outputs"</Subscript>
</Data>
<Data name="ProzessgruppeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>AktMandant</Value>
</Value>
<Value name="4">
<Value>Kurzbezeichnung</Value>
</Value>
<Value name="5">
<Value>NummerZiele</Value>
</Value>
<Value name="6">
<Value>NummerHilfsmittel</Value>
</Value>
<Value name="7">
<Value>Parent</Value>
</Value>
<Value name="8">
<Value>GueltigAb</Value>
</Value>
<Value name="9">
<Value>Version</Value>
</Value>
</Data>
<Property name="AktMandant"/>
<Property name="GueltigAb"/>
<Property name="Kurzbezeichnung"/>
<Property name="Nummer"/>
<Property name="NummerHilfsmittel"/>
<Property name="NummerZiele"/>
<Property name="Parent"/>
<Property name="Version"/>
</Storage>
</Class>


<Class name="DBTQM.SD.QMeldungMassnahme">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57296.107897</TimeChanged>
<TimeCreated>61674,45705.253097</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Mandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Index name="NummerMandantIndex">
<Properties>Mandant,Nummer</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.QMeldungMassnahme).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Property name="QMeldung">
<Type>DBTQM.QMeldung</Type>
<Cardinality>many</Cardinality>
<Inverse>MassnahmenVorschlag</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.QMeldungMassnahmeD</DataLocation>
<DefaultData>QMeldungMassnahmeDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.QMeldungMassnahmeD</IdLocation>
<IndexLocation>^DBTQM.SD.QMeldungMassnahmeI</IndexLocation>
<StreamLocation>^DBTQM.SD.QMeldungMassnahmeS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="QMeldungMassnahmeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Mandant</Value>
</Value>
</Data>
<Property name="Mandant"/>
<Property name="Nummer"/>
</Storage>
</Class>


<Class name="DBTQM.SD.QMeldungVerursacher">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57296.225559</TimeChanged>
<TimeCreated>61674,42109.077309</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nummer">
<Type>%Integer</Type>
</Property>

<Property name="Mandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Index name="NummerMandantIndex">
<Properties>Mandant,Nummer</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBTQM.SD.QMeldungVerursacher).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Property name="QMeldung">
<Type>DBTQM.QMeldung</Type>
<Cardinality>many</Cardinality>
<Inverse>Verursacher</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.QMeldungVerursacherD</DataLocation>
<DefaultData>QMeldungVerursacherDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.QMeldungVerursacherD</IdLocation>
<IndexLocation>^DBTQM.SD.QMeldungVerursacherI</IndexLocation>
<StreamLocation>^DBTQM.SD.QMeldungVerursacherS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="QMeldungVerursacherDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Mandant</Value>
</Value>
</Data>
<Property name="Mandant"/>
<Property name="Nummer"/>
</Storage>
</Class>


<Class name="DBTQM.SD.Vertragsart">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57237.982693</TimeChanged>
<TimeCreated>62305,31021.711118</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nr">
<Type>%Library.Integer</Type>
<Required>1</Required>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="Text">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Vertragstyp">
<Type>%Integer</Type>
</Property>

<Index name="NrIndex">
<Properties>Nr</Properties>
<Unique>1</Unique>
</Index>

<Method name="GetText">
<FormalSpec>Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Text, Lang, "")
]]></Implementation>
</Method>

<Method name="GetTextClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID'="") {
		Set rs=##Class(DBTQM.SD.Vertragsart).%OpenId(myID)
		set text = rs.GetText(Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetNrByOidClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set kg = ""
	&SQL(SELECT Nr into :kg FROM DBTQM_SD.Vertragsart WHERE ID = :myID)
	Quit kg
]]></Implementation>
</Method>

<Method name="SetText">
<FormalSpec>Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Text, Value, Lang, "")
]]></Implementation>
</Method>

<Method name="GetOidByNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>nr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set myID = ""
	&SQL(SELECT %ID into :myID FROM DBTQM_SD.Vertragsart WHERE Nr = :nr)
	Quit myID
]]></Implementation>
</Method>

<Property name="Vertragsdaten">
<Type>DBTQM.SD.Vertragsdaten</Type>
<Cardinality>many</Cardinality>
<Inverse>Vertragsart</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.VertragsartD</DataLocation>
<DefaultData>VertragsartDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.VertragsartD</IdLocation>
<IndexLocation>^DBTQM.SD.VertragsartI</IndexLocation>
<StreamLocation>^DBTQM.SD.VertragsartS</StreamLocation>
<Data name="Text">
<Attribute>Text</Attribute>
<Structure>subnode</Structure>
<Subscript>"Text"</Subscript>
</Data>
<Data name="VertragsartDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nr</Value>
</Value>
<Value name="3">
<Value>Vertragstyp</Value>
</Value>
</Data>
<Property name="Nr"/>
<Property name="Vertragstyp"/>
</Storage>
</Class>


<Class name="DBTQM.SD.Vertragsdaten">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57238.162708</TimeChanged>
<TimeCreated>62305,59592.84916</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nr">
<Type>%Library.Integer</Type>
<Required>1</Required>
</Property>

<Property name="Vertragsgegenstand">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
</Property>

<Property name="VertragsNr">
<Type>%String</Type>
<Parameter name="MAXLEN" value="30"/>
</Property>

<Property name="Versicherungssumme">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Abschlussdatum">
<Type>%Date</Type>
</Property>

<Property name="Laufzeit">
<Type>%Boolean</Type>
</Property>

<Property name="Verlaengerungsart">
<Type>%Boolean</Type>
</Property>

<Property name="LaufzeitVerlaengerung">
<Type>%Boolean</Type>
</Property>

<Property name="Kuendigungsfrist">
<Type>%Integer</Type>
</Property>

<Property name="Kuendigungsmoeglichkeit">
<Type>%Integer</Type>
</Property>

<Property name="LetzterKuendigungszeitpunkt">
<Type>%Date</Type>
</Property>

<Property name="JaehrlicheKosten">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Status">
<Type>%Integer</Type>
</Property>

<Property name="Statusaenderung">
<Type>%Date</Type>
</Property>

<Property name="Bemerkung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="999"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Vertragsart">
<Type>DBTQM.SD.Vertragsart</Type>
<Cardinality>one</Cardinality>
<Inverse>Vertragsdaten</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="VertragsartIndex">
<Properties>Vertragsart</Properties>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="WarnungVorAblauf">
<Type>%Integer</Type>
</Property>

<Property name="LaufzeitAnz">
<Type>%Integer</Type>
</Property>

<Property name="LaufzeitVerlaengerungAnz">
<Type>%Integer</Type>
</Property>

<Property name="AdressNr">
<Type>DBAdressen.Adresse</Type>
<Cardinality>one</Cardinality>
<Inverse>Vertragsdaten</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="AdressNrIndex">
<Properties>AdressNr</Properties>
</Index>

<Property name="AktMandant">
<Type>%String</Type>
</Property>

<ForeignKey name="FKAktMandant">
<Properties>AktMandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="AktMandantIdx">
<Properties>AktMandant</Properties>
</Index>

<Index name="NrIndex">
<Data>%%ID,Nr,Bezeichnung</Data>
<Properties>AktMandant,Nr</Properties>
<Unique>1</Unique>
</Index>

<Index name="BezeichungIndex">
<Data>%%ID,Nr,Bezeichnung</Data>
<Properties>AktMandant,Bezeichnung</Properties>
</Index>

<Property name="VertragAblaufsdatum">
<Type>%Date</Type>
</Property>

<Property name="SachbearbeiterNr">
<Type>%Library.Integer</Type>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="SachbearbeiterBenutzername">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="SachbearbeiterVorname">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="SachbearbeiterName">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="GetOidByNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>nr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set myID = ""
	&SQL(SELECT %ID into :myID FROM DBTQM_SD.Vertragsdaten WHERE Nr = :nr)
	Quit myID
]]></Implementation>
</Method>

<Method name="GetIdByNrOnMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Nr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	set id = ""
	&sql(SELECT ID INTO :id FROM DBTQM_SD.Vertragsdaten
		 WHERE AktMandant = :MandantOid AND Nr = :Nr)
		 
	if (SQLCODE'=0) {
		set id=""
	}
	
	Quit id
]]></Implementation>
</Method>

<Method name="CopyVertrag">
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%String,dstNr:%Integer,mandOid:%String,sprache:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set srcVertrag = ##class(DBTQM.SD.Vertragsdaten).%OpenId(oid)
	Set newObj = srcVertrag.%ConstructClone(-1)
	Set newObj.Nr = dstNr
	if ((mandOid '= "") && (mandOid '= $c(0))) {
		set newObj.AktMandant = mandOid
	}
	Do newObj.%Save()
	set srcVertrag = ""
	set id = newObj.%Id()
	set newObj = ""
	Quit id
]]></Implementation>
</Method>

<Method name="MoveFirstOnCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	if ((MandantOid = "") || (MandantOid = $c(0))) {
		set MandantOid = " "
	} else {
		set MandantOid = " "_MandantOid
	}
	set art = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,""),1)
	if (art '= ""){
		set id = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,art,""),1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	if ((MandantOid = "") || (MandantOid = $c(0))) {
		set MandantOid = " "
	} else {
		set MandantOid = " "_MandantOid
	}
	set art = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,""),-1)
	if (art '= ""){
		set id = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,art,""),-1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Nr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	if ((MandantOid = "") || (MandantOid = $c(0))) {
		set MandantOid = " "
	} else {
		set MandantOid = " "_MandantOid
	}
    set nextNr = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,Nr))
	if (nextNr '= "") {
		set res = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,nextNr,""),1,list)
	} else {
		set list = ##class(DBTQM.SD.Vertragsdaten).MoveLastOnCode(MandantOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Nr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	if ((MandantOid = "") || (MandantOid = $c(0))) {
		set MandantOid = " "
	} else {
		set MandantOid = " "_MandantOid
	}
    set nextNr = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,Nr),-1)
	if (nextNr '= "") {
		set res = $Order(^DBTQM.SD.VertragsdatenI("NrIndex",MandantOid,nextNr,""),-1,list)
	} else {
		set list = ##class(DBTQM.SD.Vertragsdaten).MoveFirstOnCode(MandantOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MoveFirstOnBezeichnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()

	set lang = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,""),1)
	if (lang '= ""){
		set vertragsdaten = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,""),1)
		if (vertragsdaten '= "") {
			set id = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,vertragsdaten,""),1,list)
		} else {
			Quit ""
		}
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnBezeichnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()

	set lang = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,""),1)
	if (lang '= ""){
		set vertragsdaten = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,""),-1)
		if (vertragsdaten '= "") {
			set id = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,vertragsdaten,""),-1,list)
		} else {
			Quit ""
		}
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnBezeichnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String,Bezeichnung:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
    set nextNr = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,Bezeichnung))
	if (nextNr '= "") {
		set res = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,nextNr,""),1,list)
	} else {
		set list = ##class(DBTQM.SD.Vertragsdaten).MoveLastOnBezeichnung(MandantOid,Lang)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnBezeichnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String,Bezeichnung:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
    set nextNr = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,Bezeichnung),-1)
	if (nextNr '= "") {
		set res = $Order(^DBTQM.SD.VertragsdatenI("BezeichnungIndex",MandantOid,Lang,nextNr,""),-1,list)
	} else {
		set list = ##class(DBTQM.SD.Vertragsdaten).MoveFirstOnBezeichnung(MandantOid,Lang)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="GetVertragIdByBezeichnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Lang:%String,Bezeichnung:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	set bez = Bezeichnung_"%"
	&sql(SELECT TOP 1 ID INTO :id 
		 FROM DBTQM_SD.Vertragsdaten
		 WHERE AktMandant = :MandantOid
		 AND Bezeichnung LIKE :bez)
	
	if (id '= "") {
		Quit id
		
		// keine Daten gefunden
	} else {
		Quit ""
	}
]]></Implementation>
</Method>

<Method name="GetMaxIdByMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	set id = ""
	&sql(SELECT MAX(ID) AS ID INTO :id
	FROM DBTQM_SD.Vertragsdaten
	WHERE AktMandant = :MandantOid)
		 
	if (SQLCODE'=0) {
		set id=""
	}
	
	Quit id
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBTQM.SD.VertragsdatenD</DataLocation>
<DefaultData>VertragsdatenDefaultData</DefaultData>
<IdLocation>^DBTQM.SD.VertragsdatenD</IdLocation>
<IndexLocation>^DBTQM.SD.VertragsdatenI</IndexLocation>
<StreamLocation>^DBTQM.SD.VertragsdatenS</StreamLocation>
<Data name="VertragsdatenDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nr</Value>
</Value>
<Value name="3">
<Value>AdressNr</Value>
</Value>
<Value name="4">
<Value>Vertragsgegenstand</Value>
</Value>
<Value name="5">
<Value>VertragsNr</Value>
</Value>
<Value name="6">
<Value>Versicherungssumme</Value>
</Value>
<Value name="7">
<Value>Abschlussdatum</Value>
</Value>
<Value name="8">
<Value>Laufzeit</Value>
</Value>
<Value name="9">
<Value>Verlaengerungsart</Value>
</Value>
<Value name="10">
<Value>LaufzeitVerlaengerung</Value>
</Value>
<Value name="11">
<Value>Kuendigungsfrist</Value>
</Value>
<Value name="12">
<Value>Kuendigungsmoeglichkeit</Value>
</Value>
<Value name="13">
<Value>LetzterKuendigungszeitpunkt</Value>
</Value>
<Value name="14">
<Value>JaehrlicheKosten</Value>
</Value>
<Value name="15">
<Value>Status</Value>
</Value>
<Value name="16">
<Value>Statusaenderung</Value>
</Value>
<Value name="17">
<Value>Bemerkung</Value>
</Value>
<Value name="18">
<Value>Benutzer</Value>
</Value>
<Value name="19">
<Value>Vertragsart</Value>
</Value>
<Value name="20">
<Value>Bezeichnung</Value>
</Value>
<Value name="21">
<Value>WarnungVorAblauf</Value>
</Value>
<Value name="22">
<Value>LaufzeitAnz</Value>
</Value>
<Value name="23">
<Value>LaufzeitVerlaengerungAnz</Value>
</Value>
<Value name="24">
<Value>AktMandant</Value>
</Value>
<Value name="25">
<Value>VertragAblaufsdatum</Value>
</Value>
<Value name="26">
<Value>SachbearbeiterNr</Value>
</Value>
<Value name="27">
<Value>SachbearbeiterBenutzername</Value>
</Value>
<Value name="28">
<Value>SachbearbeiterVorname</Value>
</Value>
<Value name="29">
<Value>SachbearbeiterName</Value>
</Value>
</Data>
<Property name="Abschlussdatum"/>
<Property name="AdressNr"/>
<Property name="AktMandant"/>
<Property name="Bemerkung"/>
<Property name="Benutzer"/>
<Property name="Bezeichnung"/>
<Property name="JaehrlicheKosten"/>
<Property name="Kuendigungsfrist"/>
<Property name="Kuendigungsmoeglichkeit"/>
<Property name="Laufzeit"/>
<Property name="LaufzeitAnz"/>
<Property name="LaufzeitVerlaengerung"/>
<Property name="LaufzeitVerlaengerungAnz"/>
<Property name="LetzterKuendigungszeitpunkt"/>
<Property name="Nr"/>
<Property name="SachbearbeiterBenutzername"/>
<Property name="SachbearbeiterName"/>
<Property name="SachbearbeiterNr"/>
<Property name="SachbearbeiterVorname"/>
<Property name="Status"/>
<Property name="Statusaenderung"/>
<Property name="Verlaengerungsart"/>
<Property name="Versicherungssumme"/>
<Property name="VertragAblaufsdatum"/>
<Property name="VertragsNr"/>
<Property name="Vertragsart"/>
<Property name="Vertragsgegenstand"/>
<Property name="WarnungVorAblauf"/>
</Storage>
</Class>
</Export>
