Nueva publicación

Rechercher

Anuncio
· 12 jul, 2024

[Vidéo] Comment construire une Supply Chain agile, résiliente et intelligente ?

Salut la Communauté!

Profitez de regarder la nouvelle vidéo sur la chaîne Youtube d'InterSystems France :

📺 Comment construire une Supply Chain agile, résiliente et intelligente ?

Intervenants :
🗣 Isabelle Bouchoucha, Directeur Conseil - Expert Supply Chain, CGI Business Consulting sur le sujet " Intégration de bout en bout : le facteur clé d'une supply chain plus durable "
🗣 Hervé Hillion, Associé, SCALE sur le sujet " Modéliser, évaluer, simuler et optimiser la supply chain de bout en bout grâce au jumeau numérique "
🗣 @Sylvain Guilbaud, Expert InterSystems France  sur le sujet " Les évolutions technologiques nécessaires pour accroître la visibilité, l'agilité et la résilience de votre supply chain "

Abonnez-vous à notre chaîne youtube pour plus de vidéos et restez à l'écoute !

Comentarios (0)0
Inicie sesión o regístrese para continuar
Artículo
· 11 jul, 2024 Lectura de 4 min

管理ポータルのユーザ設定をプログラムで作成する方法

これは InterSystems FAQ サイトの記事です。

管理ポータル > [システム管理] > [セキュリティ] 以下の設定は、%SYSネームスペースにあるSecurityパッケージ以下クラスが提供するメソッドを利用することでプログラムから作成することができます。

ユーザ設定については、Security.UsersクラスCreate()メソッドを使えば作成できますが、ユーザを作成するだけでは適切な権限が付与されずに目的のデータにアクセスできない状況もあります。

例)testAユーザ作成

    %SYS>set st=##class(Security.Users).Create("testA",,"testA","これはテストユーザです","USER")
    
    %SYS>write st
    1

    上記メソッドで作成した結果は以下の通りです。(ロール付与無し、テーブルに対する権限の割り当てもなしの状態)

     

    以降の解説では、以下のシナリオをもとにした設定を行っていきます。

    シナリオ:アプリケーション開発者用ロールとユーザを作成する

    1) アプリケーション開発者のtestAは、USERネームスペースにログインするアプリケーション開発者です(=%DevelopmentリソースのUse許可を与えます)。

    2) このユーザはUSERネームスペース内で自由にテーブルの作成・参照・更新が行えるよう適切な特権を持つように定義します。

     

    1) のアプリケーション開発者testAの作成は、以下の通りです。

    未作成の場合は以下実行します。(現時点ではロールは何も付与していません。)

    • 第1引数:ユーザ名
    • 第2引数:ロール(複数ある場合はカンマ区切りで指定)
    • 第3引数:パスワード
    • 第4引数:ユーザのフルネーム
    • 第5引数:開始ネームスペース(ログイン後にアクセスするネームスペース)
    %SYS>set st=##class(Security.Users).Create("testA",,"testA","これはテストユーザです","USER")
    
    %SYS>write st
    1

     

    2)で触れられているテーブルの特権はユーザに直接付与することもできますが、ロールにも付与できます。

    アプリケーション開発者であるtestA 以外にも開発者が増えたとき簡単に同じ設定をユーザに追加できるよう、%DevelopmentリソースのUse許可、%DB_USERロール、テーブルに対する操作が行える特権を追加したロール:MyAppDeveloper を作成します。

    %SYSネームスペースで実行します。

    set st=##class(Security.Roles).Create("MyAppDeveloper","アプリケーション開発者用ロール","%Development:U","%DB_USER")

    Security.RolesクラスCreate()メソッドに指定する引数は以下の通りです。

    第1引数:ロール名
    第2引数:ロールの説明
    第3引数:リソースの割り当て(未指定もOK)
    第4引数:割り当てるロール(複数ある場合はカンマ区切りで指定)

    管理ポータルでは以下のように表示されます。

    管理ポータル > [システム管理] > [セキュリティ] > [ロール] > [MyAppDeveloper]ロールの「Assigned To」タブ選択

     

    このロールにUSERネームスペースの全てのSQL管理者特権を付与します。

    set p=##class(Security.SQLAdminPrivilegeSet).%New()
    set p.AlterTable=1
    set p.AlterView=1
    set p.BuildIndex=1
    set p.CancelQuery=1
    set p.CreateFunction=1
    set p.CreateMethod=1
    set p.CreateProcedure=1
    set p.CreateTable=1
    set p.CreateTrigger=1
    set p.CreateView=1
    set p.DropFunction=1
    set p.DropProcedure=1
    set p.DropQuery=1
    set p.DropTable=1
    set p.DropTrigger=1
    set p.DropView=1
    set p.Namespace="USER"
    set p.Grantee="MyAppDeveloper"
    set st=p.%Save()

     

    ロールMyAppDeveloperの[SQL Admin Privileges]

       

     

    最後に、アプリケーション開発者testAに作成したロール:MyAppDeveloperを付与します。(AddRoles()メソッドを使用します。)

    %SYS>set st=##class(Security.Users).AddRoles("testA","MyAppDeveloper")
    
    %SYS>write st
    1

     

    これで設定完了です。

    確認のため、管理ポータルをログアウトし、testAユーザでログインします(パスワードはtestAです)

    USERネームスペースにアクセスすることを確認し、管理ポータル > [システムエクスプローラ] > [SQL] で任意のSQL文を実行します。(CREATE TABLEなどが実行できることを確認します)

    Comentarios (0)1
    Inicie sesión o regístrese para continuar
    Pregunta
    · 11 jul, 2024

    Epic/MyChart integration

    We have a stand-alone web platform (readysetrecover.com) that helps people prepare for surgery focusing on the non-clinical – holistic and logistic aspects (stress reduction via meditation, sleep etc. as well as things like setting up the house, coordinating help from others etc).

    We had a meeting with a hospital, and they liked our solution but said their goal is ‘to provide patient education and communication on a single platform'. They currently use Epic and MyChart. In other words, they don’t like the idea of giving patients another site to visit, possibly with a different login, which is understandable.

    We can pass data between our site and the hospital EHR system with IRIS for Health, however, this doesn't really address the user side.

    Is there any way to integrate that would solve this issue? What do other sites do to create a more unified experience with an existing patient portal? Is there a way to have our site 'live' within MyChart or at least have a seamless sign in to our site once a patient is in MyChart (for example, they'd click a button in MyChart that would take them to our site, with a 'Return to MyChart' option at the top)? Very open to creative solutions here!

    Comentarios (0)2
    Inicie sesión o regístrese para continuar
    InterSystems Official
    · 11 jul, 2024

    MacOS Only - End-of-maintenance for Cache & Ensemble on MacOS

    As of October 15, 2024, support for Caché & Ensemble on MacOS will be Deprecated.

    Caché & Ensemble 2018.1.9 will continue to be supported, however there will be no further maintenance releases for MacOS. This means Caché & Ensemble 2018.1.9 will be the final version of these products on MacOS. 

    As a reminder, maintenance releases for Caché and Ensemble on the other supported platforms will come to an end on March 31, 2027.  More details on that can be found in last year’s announcement.

    Comentarios (0)1
    Inicie sesión o regístrese para continuar
    Artículo
    · 11 jul, 2024 Lectura de 2 min

    How to get application errors (^ERRORS) using a command

    InterSystems FAQ rubric

    Use the ErrorList query of the SYS.ApplicationError class.

    • Note 1: Runs in the %SYS namespace.
    • Note 2: This is a non-stored utility, so we use the %ResultSet class rather than %SQL.Statement.

    An example of command execution is as follows.

    USER>set $namespace="%SYS"   //equal to zn "%SYS"
    
    %SYS>set rset=##class(%ResultSet).%New()
    
    %SYS>set rset.ClassName="SYS.ApplicationError"
    
    %SYS>set rset.QueryName="ErrorList"
    
    // The first argument of the query is the namespace name, the second argument is the date (in MM/DD/YYYY format).
    %SYS>do rset.Execute("USER","08/17/2020")
    
    // To display the results on the screen, execute the %Display() method.
    %SYS>do rset.%Display()
    Error # Error message   Time    Process DisplayPID      Username        Code line
    1 <DIVIDE> 02:43:10 2536 2536 irisowner
    
    1 Rows(s) Affected
    
    %SYS>do rset.Close()

    The following shows how to get column values ​​of a SELECT while navigating through rows.

    To move to a row, use the Next() method (which returns 1 if the row exists).

    To get a column, use Get("column name"). For details on column names, please refer to the description of the ErrorList query in the class documentation.

    About column names of ErrorList queries.

    %SYS>do rset.Execute("USER","08/17/2020")
    
    %SYS>while rset.Next() { write rset.Get("Error #"),"-",rset.Get("Error message"),"-",rset.Get("Time"),"-",rset.Get("Code line"),!}
    1-<DIVIDE>-02:43:10-

    For terminal viewing, you can also use the ^%ER routine.

    Execute the following while in the namespace you want to reference (the example is executed in the USER namespace).

    The green bold underlined text indicates the input area.

    USER>do ^%ER
     
    For Date: ?L
    Thu 09/17/2020  (T)   2 Errors
    Mon 09/07/2020  (T-10) 3 Errors
    Mon 08/31/2020  (T-17) 1 Error
    Mon 08/24/2020  (T-24) 1 Error
    
    For Date: 09/17/2020  17 Sep 2020   2 Errors
    
    Error: ?L
     1. " *a"  at  9:05 am.   $I=|TRM|:|13484   ($X=0  $Y=15)
         $J=13484  $ZA=0   $ZB=$c(13)   $ZS=262144 ($S=268271680) 
     2. "^%ETN"  at  9:05 am.   $I=|TRM|:|13484   ($X=0  $Y=17)
         $J=13484  $ZA=0   $ZB=$c(13)   $ZS=262144 ($S=268263368)
         %ETN     ;%STACK-related error log
    
     Error: 1
     1. " *a"  at  9:05 am.   $I=|TRM|:|13484   ($X=0  $Y=15)
         $J=13484  $ZA=0   $ZB=$c(13)   $ZS=262144 ($S=268271680)
    Variable:
    
    Error:
     
    For Date:
    USER>

    For Date: specify the date when the error occurred in the mm/dd/yyyy format.

    For Error: specify the error number.

    When you are finished viewing, press Enter to exit. 

    2 comentarios
    Comentarios (2)1
    Inicie sesión o regístrese para continuar