Home › Forum › Nuclos Entwicklung › Makros und Regeln › in einer Regel alle Business-Entitäten finden
- Dieses Thema hat 2 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 8 Jahre, 2 Monaten von
Thomas Hempel.
-
AutorBeiträge
-
26 November 2014 um 23:51 Uhr #8015
Michael Hönnig
TeilnehmerIst es möglich, in einer (zeitgesteuerten) Regel, alle Business-Entitäten zu finden, sowie die Meta-Daten ihrer Felder, um dann im Endeffekt alle Feldwerte von Feldern eines bestimmten Typs auszulesen?
Gibt es ein API dafür?
Falls nicht, wird das vermutlich durch reine Datenbank-Queries erreichbar sein, wenn auch weniger elegant.
Danke für Tipps!
… Michael2 Januar 2015 um 02:41 Uhr #8063Ramin Goettlich
TeilnehmerWie wärs mit einem virtuellen BO, das auf einer View basiert, die T_MD_ENTITY und / bzw. T_MD_ENTITY_FIELD ausliest? Diese kann dann mit dem QueryProvider der API ausgelesen werden.
Oder eine Datenquelle, die auf diesen beiden Tabellen basiert? Diese kann dann mit dem DatasourceProvider der API ausgelesen werden.
7 Januar 2015 um 18:23 Uhr #8083Thomas Hempel
TeilnehmerHallo Michael,
den ersten Vorschlag von nuclosian habe ich mit diesem SQL-Statement realisiert:
CREATE VIEW [nuclos].O181_V_DOKUMENTIERER
-- =============================================
-- Name: O181_V_DOKUMENTIERER
-- Author: Thomas Hempel
-- Create date: 04.01.2015
-- Description: Dokumentation von Entitäten und Feldern
-- =============================================
ASSELECT
ROW_NUMBER() OVER(ORDER BY nuclos.T_MD_ENTITY_FIELD.STRUID) AS INTID,
nuclos.T_MD_ENTITY.STRUID AS STRUID_ENTITY, nuclos.T_MD_ENTITY.BLNUSESSTATEMODEL AS [mit_Statusmodell],
nuclos.T_MD_ENTITY.BLNLOGBOOKTRACKING AS [mit_History], nuclos.T_MD_ENTITY.STRENTITY AS Entitaet, nuclos.T_MD_ENTITY.STRDBENTITY AS [DB_Tabelle],
nuclos.T_MD_ENTITY_FIELD.STRUID AS STRUID_FIELD, nuclos.T_MD_ENTITY_FIELD.STRFIELD AS Attribut,
nuclos.T_MD_ENTITY_FIELD.STRDBFIELD, nuclos.T_MD_ENTITY_FIELD.STRDATATYPE AS Datentyp,
nuclos.T_MD_ENTITY_FIELD.INTDATAPRECISION AS Nachkomma, nuclos.T_MD_ENTITY_FIELD.INTDATASCALE AS Feldlaenge,
nuclos.T_MD_ENTITY_FIELD.STRDEFAULTCOMPONENTTYPE AS Layoutkomponente, T_MD_ENTITY_2.STRENTITY AS FOREIGNENTITY,
nuclos.T_MD_ENTITY_FIELD.BLNINDEXED AS [Indiziert], nuclos.T_MD_ENTITY_FIELD.BLNNULLABLE AS [mit_NULL],
nuclos.T_MD_ENTITY_FIELD.BLNUNIQUE AS eindeutig, nuclos.T_MD_ENTITY_FIELD.STRLOOKUPENTITYFIELD AS Nachschlagefeld,
T_MD_ENTITY_1.STRENTITY AS [NachschlageEntitaet], nuclos.T_MD_ENTITY_FIELD.STRVALUE_DEFAULT AS Standardwert,
nuclos.T_AD_APPLICATION.NAME AS Nuclet, nuclos.T_MD_ENTITY_FIELD.DATCREATED ,
nuclos.T_MD_ENTITY_FIELD.STRCREATED , nuclos.T_MD_ENTITY_FIELD.DATCHANGED ,
nuclos.T_MD_ENTITY_FIELD.STRCHANGED , nuclos.T_MD_ENTITY_FIELD.INTVERSION
FROM nuclos.T_MD_ENTITY INNER JOIN
nuclos.T_MD_ENTITY_FIELD ON nuclos.T_MD_ENTITY.STRUID = nuclos.T_MD_ENTITY_FIELD.STRUID_T_MD_ENTITY INNER JOIN
nuclos.T_AD_APPLICATION ON nuclos.T_MD_ENTITY.STRUID_T_MD_NUCLET = nuclos.T_AD_APPLICATION.STRUID LEFT OUTER JOIN
nuclos.T_MD_ENTITY AS T_MD_ENTITY_1 ON nuclos.T_MD_ENTITY_FIELD.STRUID_LOOKUPENTITY = T_MD_ENTITY_1.STRUID LEFT OUTER JOIN
nuclos.T_MD_ENTITY AS T_MD_ENTITY_2 ON nuclos.T_MD_ENTITY_FIELD.STRUID_FOREIGNENTITY = T_MD_ENTITY_2.STRUIDDarauf habe ich das VBO Entitätenfelder gesetzt. In diesem könntest du nun alle Felder durchsuchen.
Gruß
Thomas -
AutorBeiträge