查找

公告
· 十月 20, 2021

Deltanji and Serenji User Group – Wednesday, November 3rd

Hi developers,

We're hosting a User Group session for our Deltanji source control and Serenji debugger users on Wednesday, November 3rd at 11-12pm EDT / 3-4pm GMT.

We'll be showcasing some advanced features of Deltanji and Serenji in VS Code with time for a discussion - so feel free to bring along any problems you need help solving or share your feedback on our tools. We'd love to hear your thoughts. 

You can find out more on Eventbrite

Everyone is welcome. If you're interested in our tools this is a great chance to hear what others have to say, as well as asking your own questions.

We hope to see you on November 3rd! 

讨论 (0)2
登录或注册以继续
文章
· 十月 14, 2021 阅读大约需 2 分钟

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

これは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
登录或注册以继续
问题
· 十月 14, 2021

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!

9 Comments
讨论 (9)2
登录或注册以继续
文章
· 十月 12, 2021 阅读大约需 2 分钟

%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
登录或注册以继续
文章
· 十月 7, 2021 阅读大约需 3 分钟

ジャーナルファイルの内容を管理ポータル以外で参照する方法

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

ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。

① ^JRNDUMP ユーティリティを使用する方法
② プログラムで参照する方法

============================================================ 

① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。


※以下、すべてのコマンドは %SYS ネームスペースで実行してください。

 

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",1)

 

グローバル参照 ^ABC に完全に一致するレコードのみを選択する場合は、以下のようになります。 

 

DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC",0)

 

グローバル ^ABC に対するローカルの Set 処理のレコードのみを選択する場合は、以下のようになります。 

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","",6)

 

グローバル ^ABC に対するローカルおよびリモートの Set 処理のレコードのみを選択する場合は、以下のようになります。 

 

 DO SELECT^JRNDUMP("C:\MyCache\mgr\journal\YYYYMMDD.001","","","^ABC","","s")

 

詳細は下記ドキュメントページをご覧ください。


^JRNDUMP を使用したジャーナル・レコードの表示


============================================================ 
② プログラムで参照する方法 %SYS.Journal.Record クラスを使用して、任意のジャーナルファイルのレコード内容を取得することができます。

 

  set jrn="C:\intersystems\cache\mgr\journal\20160101.003"
  set log="C:\temp\journal.log"
  set file=##class(%File).%New(log)
  do file.Open("WSN")
  set rs=##class(%ResultSet).%New("%SYS.Journal.Record:List")
  do rs.Execute(jrn)
  while rs.Next() {
  set time=rs.Get("TimeStamp") // 時間:yyyy-mm-dd hh:mm:ss
  set type=rs.Get("TypeName"// タイプ:SET、KILL、xxTrans など
  set gref=rs.Get("GlobalReference") // グローバル参照
  set gval=rs.Get("NewValue"// 更新後の値
  /* if gref["ABC" { */
  set line=time_" ["_type_"] "_gref
  if type="SET" { set line=line_"="_gval }
  do file.WriteLine(line)
  /* } */
  }
  do file.Close() 

 

※このサンプルコードは、表示対象のデータが一般的なテキストデータのみで構成されていることを前提に記述されています。

※データにコントロールコード等非表示のデータが含まれる場合にはファイルに正確に出力されない場合があります。

 

詳細は下記クラスリファレンスをご覧ください。


クラスリファレンス(%SYS.Journal.Record:List)

4 Comments
讨论 (4)2
登录或注册以继续