記事 Mihoko Iijima · 7月 11, 2024 4m read

これは 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許可を与えます)。

    0
    0 121
    記事 Mihoko Iijima · 7月 9, 2024 2m read

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

    メッセージログ(messages.log)/コンソールログ(cconsole.log) に以下のようなメッセージが表示される場合があります。

    03/22/18-14:27:34:624 (1851) 2 [SYSTEM MONITOR] WriteDaemon Alert: Write Daemon still on pass 320186

     

    このメッセージ出力は、ライトデーモンのデータベースファイルへの書き込み処理の遅延を示しています。
    その原因としては、ディスクI/O負荷が高く、そのI/O要求量に対してディスク処理性能が不足していることが考えられます。

    ディスクI/O負荷の原因としては以下が考えられます。

    • アプリケーションによるデータへの更新や参照処理が集中した
    • アンチウイルスソフトのスキャンやデータベースバックアップソフト等によるディスクへのI/O負荷

    もしアンチウイルスソフトがインストールされている場合は、「アンチウイルスソフト(セキュリティソフト)のスキャンから除外してほしいリスト」に記述している情報を参考に、InterSystems製品の対象ファイルをスキャンの対象外に設定変更してください。

    0
    0 130
    記事 Mihoko Iijima · 7月 7, 2024 4m read

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

    監査ログはシステムDB内テーブル(%SYS.Audit)に記録されていますので、そのテーブルに対するクエリを実行して抽出したり、%SYS.Auditテーブルに用意されていストアドプロシージャを利用して情報を取得しファイル出力するようにプログラムを用意することもできます。

    以下にご紹介する内容は「監査ログをプログラムで出力(ユーザやイベント指定など)する方法」に関連した内容で、監査ログのファイル出力を管理ポータルの機能を利用した例とプログラムを利用した例でご紹介します。

     

    1. 管理ポータルの印刷機能を使う

    管理ポータル > [システムエクスプローラ] > [SQL]を開き、%SYSネームスペースに接続します。

    システムのチェックを入れ、スキーマに%SYSを指定した後、プロシージャの階層を展開するとプロシージャリストが参照できます。

    %SYS.Audit_ で始まるプロシージャが監査ログに対して実行できるプロシージャです。

    SQL文例)InterSystems製品内ユーザのSuperUserに対する監査ログをストアドプロシージャ:%SYS,Audit_ListByUser を利用して出力しています。

    call %SYS.Audit_ListByUser(,,,,,'SuperUser')

    引数については、クラスリファレンス:%SYS.

    0
    0 160
    記事 Mihoko Iijima · 7月 4, 2024 9m read

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

    PythonスクリプトファイルやPythonで記述されたIRIS内メソッドを呼び出す際、エラーが発生した場合の対応方法をご紹介します。

    説明使用するコードや資料PDFは公開しています👉 test1.pyFS.Utilsクラスコードのコピー元ビデオで解説している資料PDF

    Embedded Python 自習用ビデオをご用意しています(項目別にYouTubeプレイリストをご用意しています)。

    各プレイリストについて詳しくはこちらをご参照ください👉【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開!

    0
    0 450
    記事 Mihoko Iijima · 7月 4, 2024 2m read

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

    InterSystems製品のサーバサイドでファイル入出力を行うと、文字列はシステムで設定されたファイル入出力用文字コードに自動変換され、文字単位でREADします。

    ファイルから入力する文字をバイト単位で操作するためには、自動変換を行わない無変換の状態でファイル入力を行い指定バイトずつ読みながら読んだ分だけUnicodeに手動で変換していく必要があります。

    変換には$ZCONVERT()関数を使用します。($ZCONVERT()には省略形があり$ZCVT()でも同様の操作が行えます。)

    なお、READした指定バイトを変換する際、文字の全バイトが含まれない場合もあるため、途中までの読み取りになった文字列を第4引数に指定する変数に設定できるようになっています。
    次回読み取り時に途中だった文字を自動的に先頭に追加し、$ZCONVERT()の処理を実行します。

    《メモ》ファイル入出力の文字コードについては、以下管理ポータルの画面で確認できます。
    管理ポータル > 構成 > 国際言語設定 > 構成したデフォルト値
     入力/出力テーブルの表の「ファイル」

    以下の文章がファイルにUTF8で保存されているとします。

    2024/4/19:強風でしたが良い天気でした

     

    無変換でファイル入力を行うには、%Stream.

    0
    0 155
    記事 Mihoko Iijima · 5月 20, 2024 2m read

    InterSystems製品のバックアップ方法の中の4つの目方法は「コールドバックアップ」です。

    InterSystems製品を停止できるときに利用できるバックアップ方法です。別サーバに環境を移植するときや、コミュニティエディションから製品版キットのインストール環境にデータベースを移植する場合などにもお使いいただけます。

     

    バックアップ手順

    1. InterSystems製品を停止する

    2. バックアップしたいデータベースを退避する

    3. InterSystems製品を開始する

     

    既存環境から新環境へ移植する場合などの手順

    1. 既存環境のInterSystems製品を停止する。

    既存環境の設定など含めて全てを新環境に移植する場合は、以下記事の退避内容をご確認いただき、ご準備ください。

    2. 新環境にInterSystems製品をインストールする。

    1. の手順でコピーしていた情報をもとに、新環境の構成を設定します。

    3. 新環境のInterSystems製品を停止する。

    4. 既存環境のデータベースファイル(.DAT)を新環境の対象となるデータベースディレクトリに配置する(置換する)

    対象:ユーザ用DB

    5.

    0
    0 160
    記事 Mihoko Iijima · 5月 20, 2024 5m read

    InterSystems製品のバックアップ方法の中の3つの目方法は、「並行外部バックアップ」についてです。

    この方法は外部バックアップと異なり、スナップショットなどのストレージ機能がない環境に向いている方法でオンラインバックアップよりも高速にバックアップできます。(古いバージョンのInterSystems製品でも利用できるバックアップ方法です。)

    ただし、バックアップやリストア手順が複雑になります。

    並行外部バックアップの利用を検討される際は、事前にリストア手順についてもテスト環境などでご確認いただくことを推奨します。

     

    並行外部バックアップ概要

    データベースファイル(.DAT)を通常のコピーコマンドなどで退避します。

    データベースファイルのサイズによってはコピー時間が長くなります。外部バックアップの方法を利用するとライトデーモン凍結時間のタイムアウトを迎えてしまうため、バックアップを正しく完了できません。

    そのため並行外部バックアップでは、ライトデーモンの凍結を行わずデータベースのダーティコピーを行う方法を採用しています。

    ダーティコピーのバックアップファイルだけでは不完全であるため、最後にオンラインバックアップの差分バックアップを行うことで完全なバックアップを取得します。

    最後の手順に差分バックアップを行うため、オンラインバックアップと同様にデータベースリストを事前に作成する必要があります。

    0
    0 230
    記事 Mihoko Iijima · 5月 16, 2024 27m read

    この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「オンラインバックアップ」の仕組みと、バックアップ・リストア手順について解説します。

    オンラインバックアップは、InterSystems製品が用意するバックアップ機能を利用する方法で、バックアップ対象に設定した全データベースの使用済ブロックをバックアップする方法です。

    InterSystems製品のデータベースには、サーバ側で記述したコード、テーブル定義/クラス定義、データ(レコード、永続オブジェクト、グローバル)が格納されていますので、これらすべてが1つのファイルにバックアップされます。

    データ量が増えればバックアップファイルサイズも大きくなります。 また、データ量の増加に伴いバックアップ時間も長くなります。

    バックアップ時間に制限のない環境や、ユーザからのアクセスがない環境(例:ディザスタリカバリの目的で配置しているミラーリングの非同期メンバ)のバックアップ方法としては最適ですが、バックアップ時間に制限がある場合は不向きです。

    バックアップ時間をできるだけ短くしたい場合は、推奨方法である「外部バックアップ」や、手順が少し複雑になりますが「並行外部バックアップ」を取り入れるなどご検討ください。

    0
    0 431
    記事 Mihoko Iijima · 5月 16, 2024 26m read

    開発者の皆さん、こんにちは。

    この記事は、「インターシステムズ製品をバックアップする前に確認したいこと」に続く記事で、InterSystems製品のバックアップの手法の中の「外部バックアップ」の仕組みと、バックアップ・リストア手順について解説します。

    まず、「外部バックアップ」とは、InterSystems製品の専用ルーチン使用せず、InterSystems製品以外のバックアップソリューションを使用してデータベースをバックアップする方法で、現時点の推奨されるバックアップ方法です。

    詳細な説明、手順については、ドキュメント「外部バックアップ」をご参照ください。

    外部バックアップでは、主に、論理ディスク・ボリュームの有効な "スナップショット" を迅速に作成するテクノロジと共に使用します。

    例えば、

    • Windowsサーバの場合は、VSS(ボリューム・シャドウ・コピー・サービス)と組み合わせて利用する
    • AWSのEBS Snapshotと組み合わせて利用する

    スナップショット・テクノロジが使用できないシステムであっても、後述する「特別な考慮」で対応できればご利用いただけます。

    それでは早速、外部バックアップの前後で必要となるIRIS側の手続きと、バックアップとリストアについて確認していきましょう!

    0
    0 430
    記事 Mihoko Iijima · 5月 16, 2024 9m read

    開発者の皆さん、こんにちは。

    この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。

    また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。

    シリーズ記事の中で行っているバックアップ練習、リストア練習の内容については、インターシステムズの講師付きトレーニングコースの中でも取り入れている内容で、一人1環境の演習環境内で実際にお試しいただいています。

    参加者の皆さんと一緒に演習を進めて行きますと、データベースリストアの後に行うジャーナルリストアについては、ユーティリティから出力される確認項目が多いため、皆さん慎重に確認されながらリストアの指示を入力されています。そのため、リストア開始前の手続きや準備に意外と時間がかかっています。

    0
    0 175
    記事 Mihoko Iijima · 3月 11, 2024 2m read

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

    現時点(2024年3月)では、コミュニティに掲載されているPythonライブラリ「iris-dollar-list」を利用することでIRISの$LIST()形式のデータをPythonのリストとして利用することができます。

    ※標準ツールではありませんがご利用いただけます。詳細はコミュニティの記事「もう1つの $ListBuild() の実装:Pythonライブラリ「iris-dollar-list」」をご参照ください。

    WindowsにインストールしたIRISで使用する場合は、以下の方法で「iris-dollar-list」をインストールしてください。

    ※Windows以外にインストールしたIRISでは、pipコマンドを利用した通常の方法でインストールできます。

    コマンドプロンプトを開き、以下実行します。(IRISをデフォルトインストールしたときのディレクトリで掲載しています)

    > cd C:\InterSystems\IRIS\bin
    > irispip install --target C:\InterSystems\IRIS\mgr\python iris-dollar-list

    実行例は以下の通りです。

    1
    1 201
    記事 Mihoko Iijima · 3月 6, 2024 2m read

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

    Ens.Directorクラスのクラスメソッドを使用して取得できます。

    プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。

    Set status=##class(Ens.Director).GetHostSettings("FAQSample.Interop.Production||FAQSample.Interop.FileOperation",.tSettings)

     以下、出力結果です。

    USER>zwite tSettings
    tSettings("AlertGroups")=""
    tSettings("AlertOnError")=0
    tSettings("AlertRetryGracePeriod")=0
    tSettings("ArchiveIO")=0
    tSettings("BusinessPartner")=""
    tSettings("FailureTimeout")=15
    tSettings("InactivityTimeout")=0
    tSettings("OutputFileName")="test.
    0
    0 121
    記事 Mihoko Iijima · 3月 4, 2024 9m read

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

    永続クラス定義(またはテーブル定義)に対してオブジェクト操作でデータの参照・更新を行うとき、オブジェクトオープンで使用する%OpenId()、オブジェクトの削除に使用する%DeleteId()の第2引数を使用して並行処理の制御方法を選択できます。

    ご参考:オブジェクト同時処理のオプション

    既定値は1です。(永続クラスのDEFAULTCONCURRENCYクラスパラメータでデフォルト値を指定できます。特に変更していない場合は 1を使用します)

    並行処理の基本事項は以下の通りです。

    • アトミックな書き込みを保証したい場合は並行処理の値は0より大きい値を指定する必要があります。
    • 並行処理の値が0より大きい場合、オブジェクトの保存や削除処理中は、ロックの取得と解放を実施します。

    並行処理の値別の動作の違いは以下の通りです。(ドキュメントの「並行処理の値」に表がありますので併せてご覧ください)

    • 値1の場合は、新規にオブジェクト生成したときにはロックを取得しません。既存オブジェクトを開く際に複数グローバルノードがある場合のみ共有ロックを取得し、開くのが終わったら開放します。(複数グローバルノードを持たないオブジェクトを開く場合はロックしません。)オブジェクトの保存時はロックを取得して保存処理が完了するとロックを解放します。
    0
    0 214
    記事 Mihoko Iijima · 2月 29, 2024 5m read

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

    新しいインデックスを定義した後、インデックスの再構築が完了する前にクエリを実行するとデータが存在しているにもかかわらず「検索結果0件」や検索結果数が徐々に増えるような状況が発生します。

    インデックスを永続クラス定義(またはテーブル定義)に追加しコンパイルすることで今まで使用していたクエリ実行経路が削除され、再度同じクエリを実行するタイミングで新しいインデックス定義を含めた実行経路が作成されるためです。(この時にインデックス再構築が完了していないとインデックスデータが存在しない、または不完全であるため0件や徐々に検索結果数が増えるような状況を起こします。)

    これを起こさなために、新しいインデックスの再構築が終了するまでクエリオプティマイザにインデックスを使用させないように指定する方法が用意されています。

    ※ 2024/8/2: 2024.1以降から利用できる方法を追加しました。

     

    2024.1以降

    CREATE INDEXのDEFERオプションを使用します(オプションを付けないCREATE INDEX文では、作成時にインデックスの再構築も同時に行われます)。

    1
    0 362
    記事 Mihoko Iijima · 2月 27, 2024 5m read

    1. iris-dollar-list

    PyPI - Status PyPI GitHub Coverage

    DollarListは、Pythonのための$LIST()インタープリタです。

    このインタプリタが作成された理由は以下の通りです。

    • Pythonで $LIST()を使いたいため。
    • Embedded Python で$LIST()がサポートされていないため。
    • NatveAPIでは、$LIST()の中に$LIST()のデータを埋め込むことをサポートしていないため。

    この機能は、開発途中です。現時点では、$LIST()の中に、$LIST()、int 、string のデータを含めることができます。

    作成中タイプ:fload、decimal、double

    このモジュールはPypiで利用できます:

    pip3 install iris-dollar-list
    

    Embedde PythonとNativeAPIに対応しています。

    1
    0 198
    記事 Mihoko Iijima · 2月 27, 2024 7m read

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

    InterSystems製品のInteroperability(相互運用性機能)を利用する際、REST経由で情報入力を行う場合の作成方法についてサンプルプロダクションを利用しながらご紹介します。

    サンプルはこちら👉https://github.com/Intersystems-jp/FAQ-Interop-REST

    0
    0 234
    記事 Mihoko Iijima · 1月 25, 2024 6m read

    この記事は、「プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要」の続きの記事で、コンテナ版IRISを利用する場合のWebサーバ設定例をご紹介します。(先に「概要」の記事をお読みいただくことをお勧めします。)

    バージョン2023.2以降のコンテナ版IRISを利用する場合、以下いずれかの方法で管理ポータルを含めたWebアクセスを行うための設定が必要です。


    • 任意の場所にWebサーバを用意する
    • Webゲートウェイ用コンテナを利用する

    この記事では、【Webゲートウェイ用コンテナを利用する】方法についてご紹介します。

    【任意の場所にWebサーバを用意する】場合に必要となる情報については、下記ドキュメントをご参照ください。


     


    Webゲートウェイコンテナを利用したWebアクセス例

    • 事前準備:このサンプルを使用して動作させるために必要な準備を説明します。
    • 開始するコンテナ:開始する2つのコンテナがどのように接続しているか説明します。
    0
    0 401
    記事 Mihoko Iijima · 1月 25, 2024 12m read

    この記事は、「プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要」の続きの記事で、ApacheをWebサーバとする場合の設定概要をご紹介します。(先に「概要」の記事をお読みいただくことをお勧めします。)

    同一サーバ上にApacheとInterSystems製品をインストールする場合、事前にApacheをインストールしておくとApacheに必要なWebゲートウェイのインストールとIRISへの接続設定をインストーラーが自動で行います。

    以降の説明では、以下のインストール方法について解説します。

    ※ 図解では、InterSystems IRISを使用していますが、InterSystems製品で操作は共通です。

    0
    0 429
    記事 Mihoko Iijima · 1月 25, 2024 5m read

    この記事は、「プライベートWebサーバ(PWS)を使用しないバージョンの新規インストール/アップグレード:概要」の続きの記事で、IISをWebサーバとする場合の設定概要をご紹介します。(先に「概要」の記事をお読みいただくことをお勧めします。)

    同一サーバ上にIISとInterSystems製品をインストールする場合、事前にIISを有効化しておくとIISに必要なWebゲートウェイのインストールと設定をIRISのインストーラーが自動で行います。

    以降の説明では、以下のインストール方法について解説します。

    ※ 図解では、InterSystems IRISを使用していますが、InterSystems製品で操作は共通です。

    0
    0 541
    記事 Mihoko Iijima · 1月 25, 2024 4m read

    開発者の皆さん、こんにちは。

    こちらの記事👉「Apache Webサーバ(プライベートWebサーバ: PWS)インストレーションの廃止」でご案内していましたが、コミュニティエディションを除くInterSystems製品のバージョン2023.2以降では、プライベートWebサーバ(*)を使用した管理ポータル/Webアクセスを非推奨に変更しました。

    (*)プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです)

    新規インストール/アップグレードインストールによるプライベートWebサーバの利用可否やインストール時の選択項目の違いについての概要は以下表をご参照ください。

    3
    0 632
    記事 Mihoko Iijima · 1月 18, 2024 5m read

    開発者の皆さん、こんにちは!

    VSCodeのObjectScriptエクステンションを利用してInterSystems製品に接続するときに「プライベートWebサーバ (*1)」ではなく、「Webサーバ(IISやApache)」を利用される場合、接続時に使用するREST用パスが通るようにWebサーバに仮想パスを追加する必要があります。

    (*1) プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです)

    対象バージョン:2023.1以下のInterSystems製品

    追加が必要なパス: /api

    以下、IISApacheそれぞれの設定方法をご紹介します。

     

    IISの場合

    IISを有効化した後で、InterSystems製品のインストーラーのメニューから「ウェブサーバ」(下図左)または「カスタム」から「Webサーバゲートウェイ→IIS用CSP」(下図右)で設定を行った場合、

    IISにWebゲートウェイがインストールされ、デフォルトで以下のアプリケーションを追加します。

    0
    0 820
    記事 Mihoko Iijima · 10月 10, 2023 15m read

    開発者の皆さん、こんにちは。

    この記事では、複雑なJSON形式の文書を「JSONテンプレートエンジン」を利用して生成させる方法をご紹介します。

    「JSONテンプレートエンジン」については、6月のウェビナーで使用例をご紹介しましたが、JSON生成対象として医療情報交換標準規格であるFHIRリソースのJSON(例:Patientリソース)を例に解説しています。

    このエンジンは、JSON形式の文書であればどのような種類のデータでもご利用いただけますので、一般的なJSON形式の文書を利用して使い方をご紹介します。

    例に使用するJSONはこちら👉 https://api.openbd.jp/v1/get?isbn=978-4-7808-0204-7&pretty

    このサンプルから以下の部分を抜き出して、ObjectScriptでJSON形式の文書を組み立てていく方法をご紹介します。

    7
    0 1523
    記事 Mihoko Iijima · 10月 3, 2023 4m read

    開発者の皆さん、こんにちは!

    この記事では、Muhammad Waseem さんが(US開発者コミュニティに)投稿された「SQLのスキルを次のレベルに引き上げることのできる5つの便利なSQL関数」の記事についてご紹介します。

    ✅ SQLに関わらず、IRIS/Caché全般で日頃利用されている便利な機能、使い方、関数などなどありましたら、ぜひコミュニティで共有いただければと思います。

    ✅ 現在「技術文書ライティングコンテスト」開催中です! 🎁 参加賞/特賞 🏆ありますので、ぜひチャレンジしてみてください!

     

    以下、Muhammad さんの記事です。


    この記事では、5つの便利なSQL関数の説明を実行例と共にご紹介します👇

    • COALESCE
    • RANK
    • DENSE_RANK
    • ROW_NUMBER
    • Function to Get Running Totals

    まずは、COALESCE関数から始めてみましょう

    0
    0 677
    記事 Mihoko Iijima · 9月 26, 2023 4m read

    この記事では、2023年3月1日~31日の期間に開催された「技術文書ライティングコンテスト:InterSystems IRISチュートリアル」に応募された24作品の中から、Open Exchangeに公開されている sqlalchemy-iris を利用してPythonとSQLでIRISのデータを操作する方法を投稿された Heloisa Paivaさんの記事をご紹介します。

    Open Exchangeは、世界各地にいる開発者コミュニティメンバーが開発したインターシステムズ製品で利用できるサンプルアプリが登録されているページで、自由にダウンロードしてご利用いただけます。

    Heloisaさんの記事のように公開されている Open Exchange の利用例があると、「ちょっと使ってみたいな・・」と思われているメンバーの方への情報共有ができてとても有用な記事になると思います!丁度日本で初開催の「技術文書ライティングコンテスト」開催中ですので、ぜひ使用例や感想など、投稿してみてください!💪

    0
    0 861
    記事 Mihoko Iijima · 9月 20, 2023 2m read

    開発者の皆さん、こんにちは!

    ObjectScriptのコード実行中にエラーが発生した場合 "<UNDEFINED>HelloWorld+2^Simple.Demo.1 *name" のようなエラーメッセージが表示されます。

    エラーメッセージの読み方については、ObjectScriptクックブックの「ObjectScriptでエラーが発生したら」のエラーメッセージの読み方 をご参照ください。

    エラー行の特定を行う際、VSCodeのコマンドパレットを利用すると簡単に対象行にジャンプできますので、以下、方法をご紹介します。

    1)VSCodeのView→Command Palette... を開きます。

    2) 「ObjectScript:Open Error Location...」を選択します(初回は表示項目に登場しないため > の後ろに ObjectScript と入力すると表示されます)。

    3) テキストボックスが表示されるので、エラーメッセージの出力情報の中から ラベル名+行数^生成ルーチン名 をコピーして貼り付け、Enterをクリックします。

    ※スタジオにも同様の機能がありますが、VSCodeの場合対象となるコード(生成コードの元コード)をVSCode上で表示していなくても対象となる生成ルーチンを開きエラー行をポイントしてくれます。

    0
    0 1255
    記事 Mihoko Iijima · 9月 18, 2023 4m read

    開発者の皆さん、こんにちは!

    スタジオを利用されている方にはお馴染みのソースコードの「XMLファイルへのエクスポート/インポート機能」がVSCodeのObjectScriptエクステンションに追加されました! (ObjectScript 2.10.0以降に含まれています。こちらのリクエストが元となりました👉https://github.com/intersystems-community/vscode-objectscript/issues/1158   エクステンションの追加番号は#1171です)

    今まで、過去エクスポートしたXMLファイルをVSCodeから参照するためには、管理ポータル(またはスタジオ)を利用してインポートする必要がありましたが、VSCodeの画面だけでできるようになりました!

    💡注意1: InterSystems IRIS /InterSystems IRIS for Health 2023.2以降のバージョンに接続した状態でご利用いただける機能です。

    💡注意2:この機能は管理ポータルやスタジオのインポート/エクスポートのVSCode版のような機能となるため、インポートしたソースコードはサーバ側にインポートされ、エクスポートはサーバ側コードを選択してXMLファイルにエクスポートする動作となります。XMLファイルインポート後、VSCodeのワークスペースでローカルファイル(*.cls や *.mac)として編集 したい場合は、 ObjectScriptエクステンションマークをクリックし、対象のコードを選択→エクスポート の手順でローカルにエクスポートする必要があります。

    0
    1 653
    記事 Mihoko Iijima · 9月 13, 2023 3m read

    この記事では、2023年3月1日~31日の期間に開催された「技術文書ライティングコンテスト:InterSystems IRISチュートリアル」に応募された24作品の中から、Heloisa Paivaさんが投稿されたシンプルですぐに試せる記事をご紹介します。

     


    はじめに

    このチュートリアルは、テストやチュートリアル用のサンプル作成など、あらゆる目的でサンプルデータベースを作成するための、私が見つけた最も簡単な方法についての簡単なチュートリアルです。

     

    ネームスペースの作成

    1. ターミナルを開きます。
    2. 次のコマンドを実行します。 "Do $SYSTEM.SQL.Shell()"   (※または :sql の入力でもSQLシェルに切り替えできます)
    3. "CREATE DATABASE " コマンドを実行します。実行時、作成したいネームスペース名をコマンドの引数に指定します。(TESTネームスペースを作成する例:CREATE DATABASE TEST)

    これで、管理ポータルから新しいネームスペースを作成するより簡単で素早い方法でネームスペースを作成できます。

    ネームスペースに移動するには、現在開いているSQLシェルを終了させるため、"quit" を入力し、zn "ネームスペース名" と入力します。これでターミナルで行うすべての動作がこのネームスペースのスコープに入ります。

    0
    0 202
    記事 Mihoko Iijima · 7月 14, 2023 4m read

    開発者の皆さん、こんにちは!

    InterSystems IRIS 、InterSystems IRIS for Healthのコミュニティエディションは、WindowsやLinuxにインストールするキットの他にコンテナ版も公開されています。

    コンテナ版はダウンロードページからではなく、InterSystemsコンテナレジストリ よりpullいただけます。

    この記事では、InterSystemsコンテナレジストリ の使い方と、コンテナ開始までの流れをご紹介します。

    0
    1 344
    記事 Mihoko Iijima · 6月 29, 2023 3m read

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

    LOAD DATAは、バージョン2022.1から追加されたSQLコマンドで、CSVファイルやJDBCソースからデータをテーブルにロードするコマンドです。
    データが存在するテーブルにLOAD DATAを実行した場合、データは追記されます。

    ※ バージョン2022.1をご利用いただく場合は、バージョン2022.1.3 をご利用ください。(2022.1.0~2022.1.2は、使用するJARファイルの不備により動作しません。)

    LOAD DATAを利用する際、Javaの外部サーバ(Javaゲートウェイ)を使用するため、IRISをインストールした環境にJavaのインストールが必要です。
    サポート対象のJavaバージョンについては、ドキュメントの「サポート対象Javaテクノロジ」をご参照ください。

    LOAD DATAを利用するためには、Javaインストール済、かつ外部言語サーバで %Java_Server 設定済の環境である必要があります。

    ※ 環境変数JAVA_HOMEの設定がある場合は以下 %Java_Serverの設定は不要です。

    %Java_Server 設定詳細は以下の通りです。

    • Javaホームディレクトリ:インストールしたJavaのホームディレクトリを指定します。

     


    利用手順は以下の通りです。

    0
    0 1207
    記事 Mihoko Iijima · 6月 13, 2023 1m read

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

    注意:本番環境では実行しないでください。テスト環境でご利用ください。

    開発時にプロダクションに残っているキューを一括でクリアしたり、プロダクションに関連した一次的な情報をすべて消去したい場合、以下メソッドを利用して実行中のプロダクション情報をリセットできます。

    set $namespace="プロダクションのあるネームスペース名指定"
    do ##class(Ens.Director).CleanProduction()

    ドキュメント:ネームスペースでのプロダクションのリセット

     

    プロダクション全体ではなく、一部コンポーネントの実行中データをリセットする場合は、アダプタの ClearAllAppData() を使用します。
    引数にはプロダクションに登録している構成名を指定してください。

    例)SQLインバウンドアダプタが保持している永続値をリセットする

    do ##class(EnsLib.SQL.InboundAdapter).ClearAllAppData("構成名称")

    ドキュメント:受信アダプタで以前に処理された行のリセット

     

    例)FTPインバウンドアダプタが処理したファイルの情報をリセットする

    do ##class(EnsLib.FTP.InboundAdapter).ClearAllAppData("構成名称")
    0
    0 150