Nova postagem

Pesquisar

Pergunta
· Ago. 28, 2024

COMPARE ROUTINES

IS IT POSSIBLE TO COMAPRE TWO ROUTINES ACCROSS INHOUSE NETWORK AND IF SO THEN WHAT IS THE PROPER SYNTAX TO USE?

SAMPLE:

K ^RICH D ##class(%Library.Routine).RoutineCompare("\\IP\C$\.......\$NAMESPACE","RTN","\\LOCALHOST\..........\$NAMESPACE","RTN","^RICH")

2 Comments
Discussão (2)1
Entre ou crie uma conta para continuar
Pergunta
· Ago. 28, 2024

OPEN A TERMINAL WINDOW VIA HREF TAG IN HTML

? 4 U:

IS THERE A WAY TO OPEN THE TERMINAL WINDOW WITH INTERNAL IP AND NAMESPACE FROM HREF TAG IN AND HTML 

i KNOW I CAN CALL ON THE MANAGEMENT PORT VIA A HREF TAG:

<td><a href=""http://"_IP_":57773/csp/sys/exp/%25CSP.UI.Portal.GlobalList.zen?$NAMESPACE="_USER_"&$NAMESPACE="_USER_" id=""rr"" onclick='selectedRow()' target='_blank'>Portal</a></td>"

BUT WHATEVER I TRIED, JAVASCRIPT OR ANYTHING ELSE I CAN'T OPEN A TERMINAL WINDOW

<td><a href="??????????????????"">Terminal</a></td>

2 Comments
Discussão (2)2
Entre ou crie uma conta para continuar
Pergunta
· Ago. 28, 2024

JOB $SYSTEM.obj

IS THERE A WAY TO JOB A $SYSTEM.OBJ FUNCTION AND FIND IF THE JOB IS RUNNING OR FINISHED TO ASYNCHRONOUSLY CONTINUE OR HALT THE PROCESS?

5 Comments
Discussão (5)2
Entre ou crie uma conta para continuar
Pergunta
· Ago. 28, 2024

<Session disconnected> error

why do I sometime get a <Session disconnected> error when running a $system.OBJ.Export command from a *.scr script file?

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Ago. 28, 2024 2min de leitura

Décompresse les rôles de manière récursive

Récemment, je me suis retrouvé dans une situation où un utilisateur avait des rôles qui lui accordaient des rôles supplémentaires, etc.

Comme je ne comprenais pas d'où venait une autorisation particulière, j'ai écrit ce code qui obtient un ensemble initial de rôles et les décompresse de manière récursive, en tenant compte des éventuelles répétitions.

/// Décompresse de manière récursive le jeu de rôles.
/// Tient compte des dépendances circulaires et des répétitions.
Class Utils.Roles
{

/// roles : chaîne de rôles séparés par des virgules
/// showResources : affiche les ressources en plus des rôles
/// do ##class(Utils.Roles).Display
ClassMethod Display(roles As %String, showResources As %Boolean = {$$$NO})
{
    new $namespace
    set $namespace = "%SYS"
    set roles = $lfs(roles)
    set i=0
    while i<$ll(roles) {
        do $i(i)
        set role = $lg(roles, i)
        continue:$d(processed(role))=1
        write "Current role: ", role,!
        
        write "Grants roles: "
        set sc = ##class(Security.Roles).Get(role, .p)
        for j=1:1:$l($g(p("GrantedRoles")),",") {
            set grantedrole = $p(p("GrantedRoles"),",", j)
            continue:grantedrole=""
            continue:$lf(roles, grantedrole)
            
            write grantedrole, ", "
            set roles = roles _ $lb(grantedrole)
        }
        
        write:showResources !, "Grants resources: ", p("Resources")
        write !
    }
}

}
 
Spoiler

Code.

Discussão (0)1
Entre ou crie uma conta para continuar