EM / Datenbank (Auf der Suche nach der unbekannten Hierarchie..)

Welcome to the POB User Group Online Community! Forums PUG DACH EM / Datenbank (Auf der Suche nach der unbekannten Hierarchie..)

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #3809
    ts
    Member

    Hallo zusammen,

    ich hab mal wieder die Situation, vermutlich den Wald vor lauter Bäumen nicht zu sehen. Und zwar suche ich in der Datenbank die Tabelle, die Hierarchie der EM-Items abbildet.

    Ich hab die Pob_Em_Root und die Pob_Em_Tree_Item, aber ich finde die dazugehörige Zuordnungstabelle nicht. Pob_Em_Root enthält keine hierarchische Information und eine Verknüpfung für die zweite Tabelle finde ich ebenfalls nicht (pob_em_tree_item_pk wird in nicht sehr vielen Tabellen verwendet).

    Eigentlich würd ich gerne die im EM ausgewiesenen Tabellen mit der entsprechenden Lokalisierung (Pob_Translation: Culture_id 1031) auslesen, aber das erweist sich als kniffliger als ich dachte.

    #3810
    Stefan Reichelt
    Participant

    Hi,

    soweit ich das verstehe, wird die Hierarchie für alle EM-Objekte separat gebildet: Tabellen liegen unter Modulen, Felder liegen unter Entitäten etc.

    Um die Übersetzungen sämtlicher Tabellen zu bekommen, sollte diese Abfrage genügen:

    select pe.table_name, pt.* from Pob_Entity pe
    inner join Pob_Translation pt on pe.pob_entity_pk=pt.pk
    where pt.culture_id=1031

    Genügt das, oder fehlen dir noch Details?

    Grüße,

    Stefan

    #3811
    ts
    Member

    Danke! Das hat mich wieder einmal auf die richtige Fährte gebracht.

    Die Übersetzungen können ein wenig in die Irre führen – ich hab sie nur dem Verständnis halber in den Query aufgenommen gehabt. Letzten Endes ging es mir darum, dass ich die rollenbasierten Berechtigungen auf die Tabellen fürs interne Auditing benötigte.

    Das lief dann letzen Endes auf sowas hinaus:

    SELECT DISTINCT
    
    	 PM.id AS MODID
    	,PM.description MODDES
    	,PM.is_installed MODISINSTALLED
    	,table_name AS TBLNAME
    	,text_data AS TBLTRANSLATION
    	,RL.id AS ROLEID
    	,RL.description AS ROLEDES
    	,RACL.rights AS ROLEPERM
    	,CASE WHEN RACL.rights = 133 THEN '1' ELSE '0' END AS [DEFAULT]
    	,CASE WHEN RACL.rights = 511 THEN '1' ELSE '0' END AS [FULL]
    	,CASE WHEN RACL.rights & 1 <> 0 THEN '1' ELSE '0' END AS [READ]
    	,CASE WHEN RACL.rights & 2 <> 0 THEN '1' ELSE '0' END AS [READ_LOGICAL_DELETED]
    	,CASE WHEN RACL.rights & 4 <> 0 THEN '1' ELSE '0' END AS [CHANGE]
    	,CASE WHEN RACL.rights & 8 <> 0 THEN '1' ELSE '0' END AS [CREATE]
    	,CASE WHEN RACL.rights & 16 <> 0 THEN '1' ELSE '0' END AS [LOGICAL_DELETE]
    	,CASE WHEN RACL.rights & 32 <> 0 THEN '1' ELSE '0' END AS [DELETE]
    	,CASE WHEN RACL.rights & 64 <> 0 THEN '1' ELSE '0' END AS  [UNDELETE]
    	,CASE WHEN RACL.rights & 128 <> 0 THEN '1' ELSE '0' END AS [EXECUTE]
    	,CASE WHEN RACL.rights & 256 <> 0 THEN '1' ELSE '0' END AS [GRANT]
    FROM [dbo].[Pob_Entity] AS PE
    INNER JOIN [dbo].[Pob_Translation] AS PT 
    	ON PE.pob_entity_pk = PT.pk
    INNER JOIN [dbo].[Pob_Module] AS PM 
    	ON PE.pob_module_pk = PM.pob_module_pk
    LEFT OUTER JOIN [dbo].[Pob_Role_Acl] AS RACL 
    	ON RACL.pob_emitem_pk = PE.pob_entity_pk
    LEFT OUTER JOIN [dbo].[Pob_Role] AS RL 
    	ON RL.pob_role_pk = RACL.pob_role_pk
    WHERE pt.culture_id=1031
    ORDER BY MODID, TBLNAME, ROLEID

    Und dabei war Dein Hinweis auf die Pob_Entity natürlich enorm hilfreich. 🙂

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.