How is your experience with the OutSystems Community?
235
Views
5
Comments
Solved
How to find usages of system entity or action

Hi,
there is any way to do "F12" of a system entity or system action? The goal is to find it in all modules of factory.
May be I can find all usages of system entity, like Group, by queries in DB. But there is any more direct?

Thanks.

2018-10-29 08-31-03
João Marques
 
MVP
Solution

Hi Vera,


There is no way to do this, other than getting this information from the DB.

You need to reference the Espace_Reference (references of a published version of a module), Espace_Version (published versions of a module) and Espace (the modules) entities from System.

In the Espace_Reference, you have all information about the producer (System), which you can filter by name. 


And joining the Consumer_Version_Id to Espace_Version and then to the Espace entities, you will get the name of the consumer module:



Kind Regards,
João

2018-07-11 14-04-57
Filipe Jacinto

this is not solved.

here's a new ideal with more detail: https://www.outsystems.com/ideas/13097/allow-searching-for-consumers-of-system-entity-actions-ex-servicecenter-user-c/

UserImage.jpg
Vera Marcelino

ok, thank you.

2023-06-15 18-30-12
FRANK JOHNNY GANGUILHET

Thanks for the post and the solution!

UserImage.jpg
Iuri Rodrigues

Altought i know the solution has already been posted i think this can help people with similar problems in case you need to get the entire reference hierarchy (it wont work if theres any circular reference in your application and you remove the "Level" limit):

/*Module dependencies*/
WITH DependencyTable AS (
 SELECT distinct E1.[Id] as ConsumerId, E1.[Name] as ConsumerName, E2.[Id] as ProducerId , E2.[Name] as ProducerName
    FROM {Espace} E1
    INNER JOIN {Espace_Version} EV1 ON E1.[Version_Id] = EV1.[Id]
    INNER JOIN {Espace_Reference} ON {Espace_Reference}.[Consumer_Version_Id] = EV1.[Id]
    INNER JOIN {Espace_Version} EV2 ON {Espace_Reference}.[Published_Prod_Version_Id] = EV2.[Id]
    INNER JOIN {Espace} E2 ON E2.[Id] = EV2.[eSpace_Id]
      WHERE 1 = 1
)

, RecursiveDependency AS (
    SELECT ConsumerId
           ,ConsumerName
          ,ProducerId
          ,ProducerName
        ,1 AS [Level]
    FROM DependencyTable
    WHERE ConsumerName = -- Insert eSpace Name --

    UNION ALL

    SELECT d.ConsumerId
           ,d.ConsumerName
          ,d.ProducerId
          ,d.ProducerName
        ,[Level] + 1 AS [Level]
    FROM
       RecursiveDependency r
       INNER JOIN DependencyTable d ON d.ConsumerId = r.ProducerId
  WHERE [Level] < 5 -- Ajust how deep you want to search
 
)

SELECT *
FROM RecursiveDependency
In the end you can ajust your last select to get the module you want

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.