検索

記事
· 2021年10月14日 2m read

文字コードを変換するときに利用できる変換テーブル名を取得する

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

文字コードの変換に利用できる変換テーブル名は、以下のシステム関数で取得できます。 

 

 Write $$GetIONames^%SYS.NLS()

 

現在のロケールにおいて各デバイス(ファイル、ターミナル等)のデフォルトの変換テーブル名を取得するには、%SYS.NLS.Table クラスを使用します。

確認方法は以下の通りです。

(1) システムデフォルト設定を取得するため、%SYS.NLS.Table のインスタンスを生成します。(引数に、"System" を指定します。) 

 

 set obj=##class(%SYS.NLS.Table).%New("System")

 

(2) GetIOTable() メソッドを使用して、確認したいデバイスの現在の変換テーブル名を取得します。

メソッドの引数には、デバイス名に対応した番号を指定します。(詳細はクラスリファレンスをご参照ください。)

【ご参考】クラスリファレンスは、ドキュメントトップ > クラスリファレンス または、スタジオ→表示→クラスドキュメント から参照できます。

 

// ファイル入出力に使用する変換テーブル名を取得
 write obj.GetIOTable(3)

 

【ご参考】

以下のドキュメントもご参照ください。


%SYS.NLS.Tableについて【IRIS】
%SYS.NLS.Tableについて

使用例については、以下のドキュメントの「システムおよびプロセス・テーブル・データの表示」をご参照ください。


%SYS.NLSの使用例について【IRIS】
%SYS.NLSの使用例について

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2021年10月14日

Making a JWT/OAuth2.0

Hello all,

First time post and newer to Cache/ObjectScript in general, please keep it in mind! 

Some background: I need to build part of a production whose goal is to send patients emails based on appointment status as a daemon-based approach. I have to use Microsoft Graph to accomplish this, which you need an access token to use. To get the access token, I have to go through the OAuth2.0 client credentials grant flow, which involves the creation of a signed JWT assertion using the RS256 algorithm.  

I was looking at the %OAuth2.JWT class to accomplish this, via its ObjectToJWT() method. My question is in order to use this class does my production have to be set up as an OAuth2.0 client? I've seen some relevant docs into setting that up but am not sure if I necessarily have to configure the production as an OAuth2.0 client just because it's getting an access token. Any other ways to create a JWT would also be appreciated.

Thank you!

1件の新着コメント
ディスカッション (10)3
続けるにはログインするか新規登録を行ってください
記事
· 2021年10月12日 2m read

%Net.FtpSession クラスを使用してファイルサイズを取得する方法

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

ファイルサイズを取得する専用メソッドはありませんが、%Net.FtpSession クラスの sendCommand() メソッドを通してFTPのSIZEコマンドを呼び出し、サイズを取得できます。

簡単な利用例をご紹介します。

まず、以下の様なクラスを定義します。

Class MyNet.FtpSession Extends %Net.FtpSession
{ Method getSize(fname As %String, ByRef size As %Integer)
{
set type=..Type  // 現Typeを保存しておく
do ..Binary()
set st=..sendCommand("SIZE "_fname) //SIZE <file name>
set size=..ReturnMessage
if type="Ascii" {
do ..Ascii()
}
quit
} }

上記で作成したクラスを使用したサンプルコードです。 

 set ftp=##class(MyNet.FtpSession).%New()
 write ftp.Connect(ftpsrv,user,pass)  // FTPサイトへ接続ができると1が返ります。
 do ftp.getSize(fname,.fsize)         // 第2パラメータに指定したファイルのサイズが返ります
 write "ファイルサイズ : ",fsize,!
 write ftp.Logout()                   // 成功したら1が返ります

 

※ sendCommand() メソッドは [Internal] 属性が付与されているため将来変更される可能性があります。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2021年9月20日

Video: Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS

Hey Developers,

Get an introduction to Apache Kafka, a popular event-streaming platform, and see a demonstration of the upcoming Kafka integration with InterSystems IRIS Interoperability:

⏯ Kafka! Integrating the World's Favorite Stream Processor with InterSystems IRIS


🗣 Presenter: Helen Bang, Systems Developer, InterSystems

Subscribe to InterSystems Developers YouTube. Enjoy and stay tuned!

1 Comment
ディスカッション (1)0
続けるにはログインするか新規登録を行ってください
記事
· 2021年9月17日 2m read

スタジオ、ターミナル、管理ポータルのライセンス消費ユーザをまとめる方法

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

※ IRIS Data Platformのサーバーライセンス(プロセッサーコア単位の課金)では以下の内容は適用されませんので、ご注意お願いします。

2012.1以降のバージョンより、ライセンス管理が厳格化されたために、管理ポータルでもライセンスを消費するようになりました。


デフォルトでは、管理ポータルは独立したID(CSPセッション)単位でライセンスを消費するために同一ユーザが複数ライセンスを消費するようになります。

スタジオ、ターミナル、管理ポータル全ての消費ライセンスをに同一ユーザにまとめる方法は以下になります。

(1) スタジオ、ターミナル、管理ポータルに共通ユーザでログイン

管理ポータル: [システム管理] > [セキュリティ] > [サービス]

以下3つを「パスワード」認証のみに変更

%Service_Bindings
%Service_Telnet
%Service_Console

 

サービスのパスワード認証設定

管理ポータル: [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション]


以下7つを「パスワード」認証のみに変更

/csp/sys
/csp/sys/bi
/csp/sys/exp
/csp/sys/mgr
/csp/sys/op
/csp/sys/sec
/api/atelier

 

管理ポータルのパスワード認証設定

(2) %ZSTARTルーチンのSYSTEMラベルを作成し以下を実行

SYSTEM
  set dummy=$SYSTEM.License.UserNameLicensing(1)
  quit

 

%ZSTARTルーチンの作成

VSCodeでの作成例

 

ターミナルから

 

set dummy=$SYSTEM.License.UserNameLicensing(1)

を実行すると、ライセンスは <ユーザ名@IP> でまとまります。

(1)のあとに、上記コマンドを実行することで、次のログインより消費ライセンスを同一ユーザにまとめることが可能になります。


ただし、こちらの設定はインスタンスを停止するまで有効ですが、再起動するとクリアされてしまいます。


再起動ごとにコマンドを実行する手間を省くためには、(2)の SYSTEM^%ZSTART にて実行する方法を使用します。


※この設定は管理ポータルで行うことはできません。 詳細については、以下ドキュメントをご参照ください。


ライセンスの消費を<ユーザ名@IP>に変更する方法について【IRIS】

ライセンスの消費を<ユーザ名@IP>に変更する方法について

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください