
新しい InterSystems IRIS® Cloud SQL と InterSystems IRIS® Cloud IntegratedML® クラウド製品のユーザーであり、デプロイメントのメトリクスにアクセスして独自の可観測性プラットフォームに送信しようと考えている方のために、メトリクスを Google Cloud Platform Monitoring(旧称 StackDriver)に送信して手っ取り早く行う方法をご紹介します。
InterSystems IRISは総合データプラットフォームです
InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。
完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。

新しい InterSystems IRIS® Cloud SQL と InterSystems IRIS® Cloud IntegratedML® クラウド製品のユーザーであり、デプロイメントのメトリクスにアクセスして独自の可観測性プラットフォームに送信しようと考えている方のために、メトリクスを Google Cloud Platform Monitoring(旧称 StackDriver)に送信して手っ取り早く行う方法をご紹介します。
この記事では、IRIS環境におけるPythonプログラミングの基礎について紹介します。
本題に入る前に、重要なトピックである「Pythonの仕組み」について説明します。これは、IRIS環境でPythonを使用して作業する際に起こりうる問題や制限を理解するのに役立ちます。
すべての記事と例は、以下のgitリポジトリで確認できます: iris-python-article
Pythonはインタープリター型言語であり、コードはランタイム時に1行ずつ実行されます。スクリプトをインポートする場合でも同様です。
これはどういうことでしょうか? 以下のコードを見てみましょう。
# introduction.py
def my_function():
print("Hello, World!")
my_function()
このスクリプトを実行すると、Pythonインタープリターはコードを1行ずつ読み取ります。 まず最初に関数 my_function を定義してから、その関数を呼び出すと、コンソールに「Hello, World!」と出力されます。
スクリプトを直接実行している例:
python3 /irisdev/app/src/python/article/introduction.py
出力は以下のようになります。
Hello, World!
この記事では、マジックメソッドとしても知られるPythonダンダーメソッドについて簡単に解説します。
ダンダーメソッドは、始めと終わりに2つのアンダースコア(__)が付いているPythonの特殊メソッドです。 このメソッドを使用することで、加算や減算、文字列表現など、組み込みの操作に対するオブジェクトの動作を定義することができます。
よくあるダンダーメソッドには、次が含まれます。
コミュニティの皆さんこんにちは。
ベクトル検索関連の処理が完全にノーマークだった私が、一先ず「やってみよう!」との事で、2つの動画のサンプルを実行してみました。
Pythonは初心者なので、アレな箇所があっても目をつぶっていただけると幸いです。
また、間違っている箇所があったら、ご指摘いただけると幸いです。
■参考にした動画
■参考にしたコミュニティ記事
本記事では、動画で紹介された内容を実際にIRIS環境上で実行できるよう、具体的な環境構築とコーディングを記載致します。
コミュニティの皆さんが簡単に試せるようになれば幸いです。
またGithubにサンプルソースを配置しているので、必要な方は参考にして下さい。
※環境作成方法に問題のない方は、読み飛ばしていただいて構いません。
| 項目 | バージョン情報・他 |
|---|---|
| OS | WIndowsServer2019 |
| IRIS | IRIS Community 2025.2.0.227.0 |
| Python | 3.12.10 |
| 開発環境 | VS Code 1.105.1 |
インターシステムズは、InterSystems IRIS® data platform、InterSystems IRIS® for HealthTM、HealthShare® Health Connect のメンテナンスバージョン 2025.1.2 および 2024.1.5 をリリースしました。今回のリリースでは、最近お知らせした以下の警告や勧告の修正が含まれています。
製品の品質改善のために、開発者コミュニティを通じてぜひご意見をお聞かせください。
詳細な変更リストとアップグレードチェックリストはこちらのドキュメントをご参照ください(すべて英語, 2025.1):
これは InterSystems FAQ サイトの記事です。
ルーチンやメソッドを実行した際に以下のような<FRAMESTACK>エラーが発生する場合、DOコマンドの発行の入れ子数が多すぎて、それ以上スタック情報を保持できなくなったことを示しています。
<FRAMESTACK> error is reported when the routine has too many nested calls to DO command. You can check the current stack with $STACK value.可能性として高いのはプログラミング上のミスで再起的なメソッド/ルーチン呼び出しがループしている場合などです。
以下のようなプログラミングを行い、$STACK変数の値を確認することで、スタックのレベルがどのように変化しているのかを確認できます。
これは InterSystems FAQ サイトの記事です。
%String型のプロパティをOrder Byの条件にしてクエリーを発行した際のデータは以下のような順番で並べられます。
SELECT * FROM Shop.Order orderby StatusFlagnull
-1
-2
-99
0これは%String型(文字列型)のプロパティの照合順として正しい振る舞いです。
文字列プロパティに対し、+ をつけることで、数値照合と同じ照合順を得ることができます。
SELECT * FROM Shop.Order orderby +StatusFlagnull
-99
-1
-2
0これは InterSystems FAQ サイトの記事です。
SQLアクセス( ADO含む)を行う場合は、SQLトランザクションを使用して、トランザクションを制御します。
一方オブジェクトアクセス(ObjectScript)ではtstart / tcommit / trollbackコマンド
(Native SDK for .NETでは IRIS の TStart(), TCommit(), TRollback() メソッド)
によってトランザクションを制御します。
この2種類のトランザクションモードを混在させて使用することはサポートされていません。
詳細は、以下のドキュメントをご参照ください。
また関連するメソッドの以下ドキュメントの注意事項にも
「このメソッドは Native SDK トランザクション・モデルを使用し、ADO.NET/SQL トランザクション・メソッドとは互換性がありません。
この 2 つのトランザクション・モデルを混在させないでください。」
と記載をしております。
.pyファイルの中でIRISのEmbedded Pythonを動作させる際にirispythonコマンドで実行する方法はドキュメント上で紹介されていましたので、以前より使用していました。
しかし、普通のpythonコマンドを使用するとうまく実行できなかったのですが、最近その謎(原因)が解けたので紹介します。
これは、Mac特有の問題である可能性が高くWindowsやLinuxでは何の問題もなく実行できるのかもしれません。
エラーは以下のようなエラーです。
File "/opt/iris/lib/python/iris.py", line 34, in <module>
from pythonint import *
ImportError: IrisSecureStart failed: IRIS_ATTACH (-21)
このエラーの原因は、シェルの実行ユーザーとirisのオーナーが異なることが原因とのことです。
Macで普通にIRISをインストールするとそのオーナーはrootです。
従ってpython3コマンドを実行する時にsudoコマンドでrootになる必要があるということです。
そして以下のような環境変数の設定も必要です。
開発者の皆さん、こんにちは!今年も開発者コミュニティミートアップを東京にて開催します!📣
AI アプリの開発に興味があるけれど、何から始めれば良いか分からない方へ。
RAG、生成 AI などの用語は聞いたことがあるけど、そこまで詳しくない。
興味はあり、自分たちのシステムにも導入してみたい、でも、なかなか時間が取れなくて、学ぶチャンスがない。
そう悩んでいる方いませんか?
そんなあなたに!12月3日(水)AIアプリの開発をテーマとしたミートアップを開催します!
ミートアップでは、最初に、数々の AI 駆動開発をご経験されている方から、「AI駆動開発の最新情報」についてお話いただきます。
次に、AI アプリ作成のワークショップを通じて、具体的な開発の流れを短時間でご体験いただきます。
最後に、コミュニティメンバーとのネットワーキングの時間を楽しんでいただきます。この時間には、クイズ大会も行う予定です(軽食もご用意いたします)。
AI を「使う」から「創る」側へ。未来を拓く一歩を踏み出しませんか?
ぜひ、AI アプリ作成を体験できるミートアップにご参加ください。
開発者の皆さん、こんにちは!
この記事では、Developer Hub にまたまた新チュートリアル:InterSystems IRIS for Health:デジタルヘルスの相互運用性 が追加されましたので、体験内容についてご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
チュートリアルでは、InterSystems IRIS for Health を使用しているのですが、IRIS for Health の持つ機能により以下のような相互運用性シナリオを作成できます。
チュートリアルの中では、あるシステムから入力される HL7 メッセージを他のシステムに送信する流れをご体験いただけます。
また、データ変換が必要な場合の対応方法や HL7 メッセージの一部をテーブルに保存する流れなどもご体験いただけます。
例)HL7 メッセージの一部をテーブルに格納
アカウント作成やログインも不要で
ボタンをクリックするだけで始められます👍
ぜひ、お試しください!
いつもお世話になっております。
11月の開発者向けウェビナー以下の内容で開催いたします。
タイトル:「組み込みPythonの仕組みと、その効果的な使い方について」
日時:11月20日(木)13時30分~14時
参加費無料・事前登録制
【概要】
【概要】
組み込みPythonが正式にリリースされてから3年が経過しました。それ以降、多くのエンジニアにより、様々なアイデアが実現されるとともに、その使い方についても良し悪し、向き不向き、といった議論が行われています。今回のウェビナは、組み込みPythonの仕組みを少し深堀りするとともに、この仕組みにより実現する、その「双方向性」を理解した上で、Pythonのエコシステムを最大限に生かしながら開発することのメリットをお伝えする、という内容です。
【こんな方にお勧め】
組み込みPythonに興味をお持ちの方
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。
インターシステムズジャパン
私が先週リリースしたInterSystems Testing Managerの新しいバージョンでは、@Timothy Leavittの優れた
テストカバレッジツールが追加され、私は2025年度Developer Toolsコンテストに出品しました。
こちらは、IPMプロジェクトのユニットテストが、IPMリポジトリでソート順を上書きできると思われる機能をまだカバーしていないことを示すティザー的なスクリーンショットです。

%UnitTestフレームワークのユーザーは、InterSystems Testing Manager拡張機能の最新リリース(v2.0.0)を@Timothy Leavittの素晴らしいテストカバレッジツールと組み合わせることで、VS Code内でテストカバレッジ情報を取得できるようになりました。
上部にテストカバレッジのペインが表示されています。左側のテストエクスプローラーと併せて確認しやすいように、右側のセカンダリサイドバーに移動させました。
直近のテスト実行(テストカバレッジツール自体のユニットテストすべて)の結果、TestCoverage.Procedures内のBitValueメソッドはカバーされていましたが、BitCountメソッド(および他の6つのメソッド)はカバーされていないことに注目してください。 TestCoverageパッケージの全体で43.08%の実行可能行のみが、ユニットテストによってカバーされていました。
InterSystems Testing Managerに対するこの大幅なアップグレードを、現在開催中のDeveloper Toolsコンテスト に出品します。 もし良いと思っていただけたら、来週の投票でぜひ応援してください!
開発者の皆さん、こんにちは!
この記事では、Developer Hub にあるチュートリアルに新しいチュートリアル:InterSystems IRIS ベクトル検索を使用した RAG が追加されましたので内容をご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)
このチュートリアルでは、生成 AI アプリケーションの精度向上に向けて、ベクトル検索と検索拡張生成(Retrieval Augmented Generation)の活用を体験できます。
具体的には、InterSystems IRIS のベクトル検索機能を活用し、生成 AI チャットボット向けのナレッジベースをサンプルコードを利用して作成します。
また、Streamlit を使用して作成したチャットボットを動かしながら、ナレッジベースの情報を追加することで生成 AI からの回答が変化していくことを確認していきます。
アカウント作成やログインも不要で
ボタンをクリックするだけで始められます👍
チュートリアルへのリンクは「開発者コミュニティのリソース」からも辿れます!
ぜひ、お試しください!
少し遅れましたが、モバイルアプリケーションから接続する例を示して Workflow Engine に関する連載記事をようやく締めくくることにします。
前回の記事では、これから説明する例として、患者と担当医師の両方にとって高血圧症などの慢性病状の詳細な管理を可能にするアプリケーションを示しました。 この例では、患者は携帯電話からウェブアプリケーション(基本的に、デバイスに応答するように設計されたウェブページ)にアクセスし、ポータブル血圧計が IRIS インスタンスに送信する測定に基づく通知を受信します。
したがって、IRIS インスタンスへのアクセスは 2 つです。
この記事では、患者が測定値を生成するタスクを管理できる、最初のアクセスを確認します。
この接続では、IRIS 内でウェブアプリケーションを構成するのが最も単純です。これを行うには、管理ポータルのシステム管理 -> セキュリティ -> アプリケーション -> ウェブアプリケーションからアクセスします。
次に、表示されるリストでアプリケーションの新規作成をクリックすると、以下のような画面が開きます。
この画面で、以下のフィールドを構成しましょう。
皆さん、こんにちは!
2025年2月から開始しました「InterSystems ソリューションセミナー」アーカイブビデオのまとめページを作成しました。
ソリューションセミナーでは、企業の様々な課題に対する解決方法と、それを InterSystems 製品を活用してどのように解決するかについて各回テーマを設けご紹介してまいります。
ぜひご視聴ください!
開発者の皆さん、こんにちは!本日(10月1日)よりコンテストへご応募いただけます💨
✅コンテスト詳細👉「第3回 InterSystems Japan 技術文書ライティングコンテスト 開催!」
✅応募方法👉「記事の投稿方法:第 1 回技術文書ライティングコンテスト」
✅応募記事一覧👉「技術文書ライティングコンテスト一覧」
IRIS Communityの再インストールを行ったところ
tomcat上で動作するJavaのWEBアプリケーションから
JDBC経由でのDB接続ができなくなりました。
他のSQLクライアントツールからは問題なく接続できていますので
接続情報やDBの起動状態には問題ないと考えています。
解決策をご指導頂ければ幸いです。
■環境
IRISバージョン:IRIS_Community-2025.2.0.227.0-win_x64
JDKバージョン:11.0.28
JDBCドライバ:intersystems-jdbc-3.2.0.jar
■事前作業
ライセンス有効期限が切れてサービス起動できなくなったため、以下投稿と同様、再インストールを行っています。
https://jp.community.intersystems.com/post/iris%E3%82%A4%E3%83%B3%E3%82…
ちなみに前回利用したバージョン(IRIS_Community-2024.2.0.247.0-win_x64)では
以下エラー(messages.log)となりサービス起動できなかったため
開発者の皆さんこんにちは!
技術文書ライティングコンテストの開始(10月1日)まであと少しとなりました!💨
このお知らせでは、今年の賞品を発表いたします!
↓
↓
👀
↓
↓
🎁賞品情報🎁
審査員投票とコミュニティメンバーからの「いいね」の数の合計で順位を決定します。
1位~3位を受賞された方は、各順位に記載された賞品の中からお好きな1点をお選びいただけます。(1位の方は1~3位の賞品を、2位の方は2~3位の賞品をお選びいただけます)
🥇 1位
🥈 2位
🥉 3位
🎁参加賞:投稿いただいた方全員に「モバイルバッテリー」をプレゼント!
1回目、2回目とは異なる賞品を!ということで賞品決めチームでいろいろ探してみました👀
高得点を狙う場合は、早めの投稿がおすすめです!(コミュニティメンバーからの「いいね」ポイントをより多くゲットできます!)
REST レスポンスから IRIS データーベースに情報を保存する新しいプロジェクトがあります。 少なくとも 20 以上の個別の REST エンドポイントの情報を同期する必要があるため、それらのエンドポイントの結果を保存するために、ほぼ同じ数の ObjectScript クラスを作成しなければなりません。
ChatGPT を使って、それらのクラスを作成することはできますか? 答えは「できます」です。生成 AI を使って便利なものを作るのは初めてなので、素晴らしい機会だと思います。 スープを飲むキリンの写真を生成するのには飽きてきました…。
以下のようにして実現しました。
以下のリクエストを「Message ChatGPT」プロンプトに入力しました。
私: 次の JSON のデータを格納する ObjectScript クラスを生成してください。
JSON を入力する前に Return キーを押すと、ChatGPT から次のように指示されました。
これは InterSystems FAQ サイトの記事です。
$System.Encryption.Base64Encodeに指定するデータは、UTF8にエンコードして渡す必要があります。
日本語が含まれるローカル変数をこのメソッドの引数として指定すると<ILLEGAL VALUE>エラーが返ります。
以下のようにUTF8に変換後引数として渡す必要があります。
set wLineData=$ZCONVERT(wLineData, "O", "UTF8")
詳しくは以下をご参照ください。
これは InterSystems FAQ サイトの記事です。
何の設定も行なっていない場合、GROUP BYやDISTINCTで指定したフィールドは大文字小文字を区別せずに全て大文字として処理されます。
これはGROUP BYやDISTINCTのグループ化がフィールドに対して定義された照合タイプに基づいて行われ、その文字列照合の既定値がSQLUPPERになっているためです。
以下のドキュメントに説明がある通り、DISTINCT は、フィールドに対して定義された照合タイプに基づいて、文字列値をグループ化します。
これを変更する方法は、以下の3種類になっています。
(A) %SQLSTRING または %EXACT照合関数を使用する
(B) フィールドの文字列照合を SQLSTRINGに変更する
また、フィールドにインデックスが設定されている場合には、インデックスの文字列照合も SQLSTRINGに変更する
(C) 管理ポータルで設定を変更する
※(B)について補足
・文字列照合をEXACTに設定しても動作しますが、一般的にはSQLSTRINGの使用が推奨されています。
・フィールドの文字列照合とインデックスの文字列照合は、同じ設定にすることが推奨されています。
※(C)の設定手順
開発者の皆さん、こんにちは!
10月1日(水)から今年の「技術文書ライティングコンテスト」が始まります!💨みなさま、応募の準備は進んでいますか??👀
この記事では、昨年開催したコンテストにご応募いただいた素晴らしい作品を審査員コメントを添えてご紹介します。
(審査員コメントは昨年 11 月に開催したミートアップ内で行ったコンテスト表彰式で紹介した内容です)
✅ @Akio Hashimoto さんが投稿された「Embedded Python を利用する時の注意点」
審査員コメント:
Embedded Pythonをこれから操作される人が同様の問題に遭遇したときの解決策が提示されているありがたい記事だと感じました。
昨年もコンテストに投稿いただき、今年同様に、これから体験される方向けの道標となるような素晴らしい記事を投稿いただいています。
✅ @Yusuke Kojima さんが投稿された「FHIR Object Modelを使ったInteroperability開発」
審査員コメント:
開発者の皆さん、こんにちは!
今年で 3 回目となりますが、✍技術文書ライティングコンテスト✍ 開催します!
📣9/26更新:賞品、参加賞決定しました!
📣 9/29更新:コンテスト投稿一覧ページ準備完了です!
📣 11/6更新:応募期間を1週間延長し、応募締切は11月24日(月)に変更しました!
テーマはいつもと同じで InterSystems IRIS/InterSystems IRIS for Health に関連した内容であればどのような内容でもご応募いただけます。
🎁 参加賞:投稿いただいた方全員に「モバイルバッテリー」をプレゼント!
🏆 特別賞:選ばれた3作品に、今年も特別賞あります!詳細はこちら
コンテストへの応募はとても簡単です。2025年10月1日(水)~11月17日24日(月)までの期間に開発者コミュニティに「IRISに関連した記事」を投稿してください。
もちろん!今年も🍆ボーナスポイント🍆あります!こちらをご参照ください!
これは InterSystems FAQ サイトの記事です。
ビジネスサービスやビジネスオペレーションで EnsLib.CloudStorage.InboundAdapter アダプタを使用したり、%Net.Cloud.Storage.Client を使用することで、Amazon s3(クラウドストレージAPI)のファイルにアクセスすることが可能です。
いずれの場合も、事前に Javaランタイムをシステムにインストールし、インストールしたJavaランタイムの JAVA_HOME 情報を、管理ポータルにて設定する必要があります(手順は後述します)。
今回は、%Net.Cloud.Storage.Client クラスを使用したサンプルをご紹介します。
手順は以下のようになります。
【手順】
以下のS3パケットにアクセスする手順になります。
(1) 事前に、コマンドプロンプトにて aws コマンドを使用して動作確認をしておきます(S3に存在しているファイル一覧がプロンプトに返ればOKです)。
> aws s3 ls s3://kake-s3
2025-04-30 16:20:52 32 abc.txt
2025-04-30 16:14:00 21529 messages.logもしくは
いつもお世話になっております。
10月の開発者向けウェビナーの日時、内容が決まりました。
タイトル:「ベクトル検索でカスタマーサービスを向上 - 生成AIチャットボットの構築」
日時:10月16日(木)13時30分~14時
参加費無料・事前登録制
【概要】
IRISのベクトル検索機能を使用した生成AIチャットボットをInterSystems米国本社の教育サービスチームが開発しました。
全体アーキテクチャおよびこの構築を通じて学んだベストプラクティスをご紹介します。
本ウェビナーは2025年6月に米国フロリダ州で開催されたReady 2025のセッション
”Enhancing Customer Engagement with Vector Search - Building a AI Chatbot"の内容を日本語でお届けします
【こんな方にお勧め】
IRISのベクトル検索機能に関心のある方
IRISに蓄えられたデータの活用方法を検討されている方
生成AIチャットボットに興味のある方
ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。
インターシステムズジャパン
1. 現象
>w $zv
IRIS for Windows (x86-64) 2024.3 (Build 217U) Thu Nov 14 2024 17:59:58 EST
大きなXMLファイル(約165MB)をライブラリー%XMLでパースすると、<FILEFULL>エラーが発生する。
エラーパート
s libraryFile = "D:\iTunes3\iTunes Library.xml" ;サイズ=165M
w !,"libraryFile = ",libraryFile
w !,"##class(%File).GetFileSize(libraryFile)=",##class(%File).GetFileSize(libraryFile)
w !,"s sc=##class(%XML.TextReader).ParseFile(libraryFile,.reader) 実行"
Set sc = ##class(%XML.TextReader).ParseFile(libraryFile,.reader)
w !,$SYSTEM.Status.GetErrorText(sc)
q
開発者の皆様こんにちは。先日のWebinar「ベクトルであそぼう!」では、以下の内容でデータをベクトル化することの可能性をご紹介しました。
写真から魚の名前をあててみる
ベクトルを「見える化」する
データの集まりを見る
変なデータ (=アノマリ) を見つける
一番お伝えしたかったのは 「データをベクトルに変換することで、データ利活用の幅が大きく広がる」 ということです。
本記事ではマルチモーダルAIおよびCLIPについておさらいし、Webinarでは時間の都合で触れきれなかったTips - モダリティギャップというマルチモーダルモデル特有の現象についてお伝えします。
なお筆者は AI/機械学習の専門家ではありませんが、機械学習を利用したプロダクト・プロジェクトに携わり親しんでまいりました。ご質問・ご指摘などありましたらお気軽にコメント欄からお願いします。
近年、AI 分野では マルチモーダル AI が大きな注目を集めています。
「モーダル」とはデータの種類のことを指します。
これは InterSystems FAQ サイトの記事です。
ダイナミックオブジェクトの%ToJSONメソッドを利用することで簡単にJSONデータを送信することができます。
但し、標準的な方法では、出力するJSONのデータがIRIS文字列の最大長(約32万文字 正確には$SYSTEM.SYS.MaxLocalLength()が返す値)を超えると<MAXLENGTH>エラーとなります。
これを回避するためには、文字列として返すのではなく、%ToJSONメソッドの出力先としてStreamを指定し、その結果作成されたそのStreamデータを順次読み取って、出力先に書き出すようにする必要があります。
以下のように処理できます。