お知らせ Mihoko Iijima · 7月 9, 2025

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

開発者の方々の業務を効率化する有用なツールの開発を目的とした、InterSystems のオンラインプログラミングコンテストの開催が決定しました!📣

🏆 InterSystems Developer Tools コンテスト 🏆

期間:2025年7月14日~8月3日

賞金総額: $12,000


0
0 71
記事 Mihoko Iijima · 7月 7, 2025 3m read

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

一般的に、500番台はサーバー側で発生したエラーを表していて、503番エラーはサーバーが何らかの理由で機能を停止していてクライアントの要求に回答できない場合に出現するエラーです。

外部サイトの説明:503エラー 【HTTP 503 Service Unavailable】

以下、InterSystems 製品の使用で発生する503エラーの考えられる原因について一覧します。

REST/CSPページにアクセスできない

原因:ライセンスが割り当てられない場合に発生します(ライセンスが「同時接続ユーザ」での購入である場合、ユーザ数が制限を迎えたためライセンスが割り当てられずこのエラーが発生します)。

アプリケーションが「認証なし」アクセスを使用している場合、以下の原因により503エラーが発生します。

  • REST では、「認証なし」アクセスの場合は処理が終了しても10秒間ライセンスが保持されます。このため、保持するライセンス数を超えるような使用方法となっている可能性があります。
  • CSPアプリケーションでは、ブラウザごとにセッションを作成します。明示的にセッション終了を指定する、またはセッションタイムアウトを迎えるまでライセンスを保有し続けます。
0
0 116
記事 Mihoko Iijima · 7月 3, 2025 4m read

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

InterSystems 製品では、ファイルオープン時に文字コードを指定すれば指定の文字コードで正しくファイルの中身を処理できます。

文字コードを指定しない場合、InterSystems 製品をインストールした OS に合わせて設定されたファイル I/O 用文字コードを利用してファイルをオープンします(Linux 系は UTF8、Windows は SJIS)。

また、文字列については文字コードが判明していれば $ZCONVERT() 関数を使用して指定文字コードで文字列を処理することができます。

 例)$ZCONVERT(文字列,"I","IRIS内文字コード")

文字コードが不明な場合、残念ながら InterSystems 製品だけでそのコードを判別することができないため、例えば Embedded Python で Python の chardet パッケージを使用して文字コード判別し、IRIS 内文字コードを取得しファイルオープン、文字列の文字コード変換をすることができます。

chardetパッケージについては、外部サイトですが参考となります。ぜひご参照ください。

参考ページ:[解決!Python]テキストファイルのエンコーディングを調べて、その内容を読み込むには(chardetパッケージ)

以下、具体的な処理内容です。

0
1 196
記事 Mihoko Iijima · 6月 30, 2025 2m read

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

ObjectScript で日付の比較を行う場合、一旦 $HOROLOG 形式(内部数値)に変換することで算出しやすくなりますが、SQL 関数を利用して算出することもできます。

ObjectScript から SQL 関数を実行するには、%SYSTEM.SQL.Functions クラスを使用します。

※ 2021.1以前のバージョンでは、%SYSTEM.SQL クラスを使用します。

%SYSTEM パッケージは、システム・オブジェクトと呼ばれ ObjectScript では $SYSTEM 特殊変数を利用して以下の構文で実行します。

  $SYSTEM.サブパッケージ名.クラス名.メソッド名() または $SYSTEM.クラス名.メソッド名()

以下、SQL 関数 DATEDIFF を使用して日付の比較を行う例です。

USER>write $system.SQL.Functions.DATEDIFF("dd","2025-01-20","2025-03-20")
59

分での比較

USER>write $system.SQL.Functions.DATEDIFF("mi","2025-01-20","2025-03-20")
84960

秒での比較

USER>write $systemSQL.Functions.
0
0 58
記事 Mihoko Iijima · 6月 25, 2025 3m read

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

管理ポータルのシステム管理やシステムエクスプローラーなど最上位のメニューについては、事前定義ロールをユーザに付与することでアクセスを制限することができます。

最下位のメニュー、例えば [システム管理] > [構成] > [システム構成] > [ネームスペース] などは、事前定義ロールの %Manager を付与されたユーザであれば、全てのユーザが利用できてしまいます。

このページに対して、「%Manager ロールを持っているが、あるユーザは使用でき あるユーザは使用できない」のようにユーザ毎のアクセス制限を追加したい場合は、カスタムリソースを作成し再下位メニューに対して作成したカスタムリソースを付与することで制限を追加することができます。

手順は以下の通りです。

  1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。
  2. 管理ポータルの任意の再下位メニューに 1 で作成したカスタムリソースを設定する。
  3. 新規でロールを作成し、1で作成したカスタムリソースに対する USE 許可を設定する。
  4. メニューを利用できるユーザを 3 で作成したロールのメンバーに設定する。

具体的な設定の流れは以下の通りです。

1. カスタムリソースを任意名で作成する。この時パブリック許可は設定しない。

0
0 48
記事 Mihoko Iijima · 6月 24, 2025 11m read

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

InterSystems 製品インストール時に用意されている事前定義ロールを利用して、ログインユーザ毎に管理ポータルメニュー(システム管理/システムエクスプローラー/システムオペレーション など)のアクセスを制限することができます。

管理ポータルメニューに対するアクセス制限を行うためには、管理ポータルへの「認証なし(UnknownUser)」アクセス(※1)を使用しない環境が必要です。

管理ポータル上部の「ログアウト」をクリックしてログイン画面が表示されない場合は、関連記事「管理ポータル/スタジオ/ターミナルにパスワード認証を設定するにはどうしたらいいですか?」をご覧いただき必要な設定を行ってください。

以下、インストールデフォルトで管理ポータルへのフルアクセスが許可されている事前定義ユーザ(※2): SuperUser や _SYSTEM アカウントを使用して管理ポータルにログインした状態の設定例でご説明します。

これらユーザのパスワードはインストール時に設定しています(インストール時の「初期セキュリティ」を「最小」でインストールした環境では、パスワードは大文字の SYS が設定されています)。

InterSystems 製品はロールベースのセキュリティを使用しています。

0
0 87
お知らせ Mihoko Iijima · 6月 10, 2025

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

開発者コミュニティにスマートで積極的な新しい助っ人が誕生しました!

🤖 開発者コミュニティAIボット 通称 @DC AI Bot です! 🤖

DC AI assistant と同様に、IRIS のベクトル検索を搭載した @DCAI.Botは、さらに一歩進んでいます!

👉 新しく投稿されたすべての質問を自動的にスキャンし、関連する回答が見つかった場合、コメントに返信を残します。

メモ:現時点では、USコミュニティに投稿された質問に対して自動スキャンが行われています。日本語で質問を書いても英語でコメント欄に返信を残してくれるそうです!


0
0 43
お知らせ Mihoko Iijima · 6月 9, 2025

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

次のアイデアコンテストの開催が決定しました!(InterSystems 社員も含め、すべての開発者コミュニティメンバーの皆さんが参加できます!)

💡 第 4 回 InterSystems アイデアコンテスト 💡

InterSystems IRISおよび関連製品・サービスを強化するための革新的なアイデアを募集しています。 あなたのアイデアが他のユーザにもたらす具体的なメリットや、開発者のインターシステムズの技術体験をどのように向上させるかを強調し、実際のユースケースに基づいたご提案をお待ちしています。

📅 期間: 2025年6月9日~7月6日

🏆 最優秀アイデアには賞品があります!+ランダム抽選も予定しています!

🎁 参加賞:コンテストに採用されたアイデアの投稿者には素敵な参加賞をご用意しています。

>> アイデアの登録はこちら! <<

0
0 44
お知らせ Mihoko Iijima · 6月 2, 2025

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

InterSystems FHIR とデジタルヘルスの相互運用性コンテスト 2025 の勝者が発表されました!

今回のコンテストには、11 の素晴らしいアプリケーション 🔥 が投稿されました。

ご応募いただきました参加者の皆さん、素敵な作品をありがとうございました!

それでは受賞者を発表します!

0
0 44
記事 Mihoko Iijima · 6月 1, 2025 7m read

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

InterSystems 製品では、ユーザが持つロールによって「InterSystems 製品内で何ができるのか」が決まります。

では、ロールには何が含まれているのでしょうか。

ロールには、複数の特権を含めることができます。特権とは、リソース(保護対象)に対する許可の設定を指しています。

本記事では、IRIS の開発者である山田さん(Yamada) を例に、以下の内容をご説明します。

1) ロールから付与される特権(=リソースに対する許可)について具体例を利用した確認方法

2) ロールを利用したセキュリティ設定について

《ご参考》

ビデオでの解説もあります。ラーニングパスの「InterSystems IRIS 管理の基本」の「4. セキュリティの構成と管理」をご参照ください。

ラーニングパスには、管理者ではないけれど管理概要も知っておきたい方向けの「開発者向け InterSystems IRIS の管理概要」もあります。ぜひご参照ください。

1) ロールから付与される特権(=リソースに対する許可)について具体例を利用した確認方法

山田さんは開発者であるため、VSCode から T1 ネームスペースにアクセスし開発をしています。

0
0 91
お知らせ Mihoko Iijima · 5月 7, 2025

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

次のコンテストの詳細が発表されましたのでご案内します。

🏆 InterSystems FHIR とデジタルヘルスの相互運用性コンテスト 2025 🏆

期間:2025年5月12日~6月1日

賞金総額:$12,000


0
0 59
お知らせ Mihoko Iijima · 4月 17, 2025

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

開発者の方なら、誰でも小さなサイドプロジェクトやアプリケーションをお持ちのはずです。新しい技術を試したり、アイデアをより大きなソリューションに実装する前の試作品、また興味ある技術を使ったアプリケーションなどなど。

今お持ちのこれらの作品が、InterSystems READY 2025 の目標達成につながるとしたらどうでしょうか?

開発者コミュニティでは、ユニークなチャンスをご用意いたしました。IRIS に対するあなたの情熱、創造性、そして想いを自由に表現して InterSystems READY への無料パスとホテル宿泊券をゲットしましょう!

応募ルールは簡単です。あなたのIRISを使用したアプリケーションを Open Exchangeにアップロードします。そして、InterSystems の年間最大イベントである InterSystems REDY の無料パス獲得に向けた意気込みを短い感動的なビデオに録画して送ってください。

期間:  2025年4月21日~5月4日

賞品: ホテル宿泊と InterSystems READY 2025 への無料パス!

0
0 43
お知らせ Mihoko Iijima · 4月 8, 2025

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

InterSystems AI プログラミングコンテスト:ベクトル検索、生成AI、AIエージェント(USコミュニティ)の勝者が発表されましたのでお知らせします!

今回のコンテストには 15 の素晴らしいアプリケーション 🔥が投稿されました。

ご応募いただきました参加者の皆さん、素敵な作品をありがとうございました。  

それでは受賞者を発表します!

0
0 56
記事 Mihoko Iijima · 3月 28, 2025 4m read

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

先日、EM リリース新バージョン 2025.1 がリリースされました。

コンテナ版以外ですが、新規インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン(Locked Down)」に変更となりましたので、今までとの違いについて以下ご説明します。

以前のバージョンのデフォルトは、IRIS:「最小(Minimal)」、IRIS for Health:「通常(Normal)」です。

ロックダウンオプションは、初期セキュリティの中で一番厳しいセキュリティ設定を行うオプションで、例えば、オブジェクト/SQL のアクセスが行えない、VSCode から IRIS にアクセスできない状況からスタートします。

そのため、使用したいアクセスに対してアクセス許可追加していく必要のあるセキュリティオプションです。

0
0 65
お知らせ Mihoko Iijima · 3月 10, 2025

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

25人のコミュニティメンバーが参加した InterSystems 技術文書ライティングコンテスト(USコミュニティ) ですが、なんと!

🌟 38 の素晴らしい記事 🌟の投稿がありました!

コンテストは、革新性と専門知識をもった参加者による非常に質の高い記事が数多く投稿されたため、審査員によるベスト 3 の選出は簡単ではありませんでした。

それでは、受賞作品を発表します!

0
0 72
お知らせ Mihoko Iijima · 2月 28, 2025

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

今年最初のプログラミング・コンテスト(USコミュニティ)の開催が決定しました!

🏆 InterSystems AI プログラミングコンテスト:ベクトル検索、生成AI、AIエージェント 🏆

期間:2025年3月17日~4月6日

賞品総額:$12,000 + Global Summit 2025 へご招待!


0
0 110
お知らせ Mihoko Iijima · 2月 19, 2025

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

前回の懸賞 が大好評でしたので、今回も開催することにいたしました!😉 今回の懸賞のテーマは 

🔎 DC 検索 🔍

検索エンジンを改善する方法についていくつかご提案がございましたらぜひお聞かせください。

0
0 36
お知らせ Mihoko Iijima · 2月 17, 2025

皆さん、こんにちは!

これから InterSystems 製品で開発を始める/未使用の機能を確認したい/運用保守を担当する  など、担当される役割や学習目的に合わせた最適なラーニングパス(学習経路)を確認できるページを公開しました!

💡InterSystems ラーニングパス💡

学習経路に沿った学習内容(数分の解説ビデオ、対象となる日本語ドキュメント、コミュニティ記事、セルフラーニングビデオ、体験環境付き演習(英語のみ)、オンラインラーニング(英語のみ)、講師付きトレーニングコース)を確認しながらご自身のペースで学習を進めていただくことができます。

以下、ページの使い方を簡単にご紹介します。下図のように、役割毎に各種パスが用意されています。

0
1 125
お知らせ Mihoko Iijima · 1月 26, 2025

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

2025 年最初のコンテスト開催が決定しました!

✍️ InterSystems 技術文書ライティングコンテスト 2025(USコミュニティ) ✍️

InterSystems 製品やサービスに関連した記事であればどのような内容でもご応募いただけます。

🎁 投稿者全員に参加賞あります: コンテストに投稿いただいた参加者全員にスペシャルな参加賞をご用意いたします!

0
0 73
記事 Mihoko Iijima · 1月 21, 2025 16m read

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

Teams ワークフロー Webhook を用意すると、curl コマンドや REST クライアントを利用して Teams チャネルに任意メッセージを簡単に送信できるので、IRIS や IRIS の Interoperability を使って自動的に何か情報を入手+必要なときだけ Teams チャネル通知ができたら面白いな、と思い試してみた内容をご紹介します。

以下、Teamsワークフローの作成例です。

Teams ワークフローの仕様に合わせたメッセージ用 JSON が用意できれば、こんなメッセージを出すことができます。

Teams チャネルにメッセージを通知するには「Teams ワークフローの Webhook」の用意が必要です。(この用意によってアクセスするために必要なURLが生成されます)詳しくは、「Microsoft Teamsのワークフローを使用して受信 Webhook を作成する」をご参照ください。

通知までの設定などについては、こちらのページを参考にさせていただきました:Teams チャネルへメッセージ送信する方法

以下、試した順でご紹介します。

1. curl コマンドでまずは実行してみる

2. シンプルにターミナルから試す

3. 通知メッセージのJSONを変えてみる

4. メッセージのJSONをJSONテンプレートエンジンで作ってみる

5.

0
0 131
記事 Mihoko Iijima · 1月 13, 2025 1m read

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

<ALARM>エラーは、クライアントアプリでタイムアウトが発生し、その結果InterSytemsサーバのプロセスがあわせて終了している状況をあらわしています。

クライアントアプリで、タイムアウト設定を無効にすることで回避できる可能性があります。

例えば、クライアントアプリから初回実行するSQL文がある場合、初回実行時のみInterSystems製品内部にクエリキャッシュ(=コンパイル済クエリ)を生成するため(※1)通常実行よりも時間がかかります(2回目以降の実行ではコンパイルは行われません)。

例えば、コンパイルに非常に時間がかかるSQL文の初回実行をクライアントアプリから命令し、タイムアウト以内に応答が戻らない場合 <ALARM> エラーが発生します。

※1:IRIS2020.1以降では埋め込みSQLで記述されたクエリも、初回実行時にコンパイルされます(2019.1以前では、埋め込みSQLを含むクラス/ルーチンがコンパイルされるタイミングでSQLもコンパイルされます)。

0
0 57
記事 Mihoko Iijima · 1月 9, 2025 2m read

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

InterSystems製品では、システム開始時に任意の処理を追加できます。

データベースミラーリングを構成していない環境では、%ZSTARTルーチンのSYSTEMラベルを作成することで任意の処理を実装できますが、データベースミラーリングを構成している環境では、このルーチンでは動作しない処理があります。

ご参考:^%ZSTART ルーチンと ^%ZSTOP ルーチンによる開始動作と停止動作のカスタマイズ

理由として、ミラーリング構成の場合、ミラーデータベースへのアクセスはミラーリングサービスが開始されプライマリメンバとなるまでReadOnlyとなります。

ミラーリングの開始処理は、%ZSTARTの処理とは別プロセスで実施している為、%ZSTARTの実行時にミラーデータベースへ書き込みアクセスができる状態とは限りません。

そのため、InterSystems製品開始時にミラーデータベースにアクセスするような任意処理を追加する場合は、ルーチン:ZMIRRORの NotifyBecomePrimary()を使用します。

ご参考:^ZMIRROR ルーチンの使用法

なお、ルーチン:ZMIRROR は、%ZSTART と同様に既定では存在しませんので%SYS上に新規で作成する必要があります。

例:ZMIRROR.

0
0 132
記事 Mihoko Iijima · 1月 6, 2025 2m read

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

POST要求で受信したBodyのJSON文字列を、REST ディスパッチクラス内メソッドでダイナミックオブジェクト(%DyamicObject)に変換する際、以下エラーが発生する場合があります。

0
0 156
記事 Mihoko Iijima · 12月 26, 2024 2m read

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

方法は2種類あります。

1) 同一サーバにIISとCachéがインストールされている環境をそのままアップグレードする場合は、IRIS(※)インストールキットを起動し「CACHE(CONVERSION)」からCSPゲートウェイとCaché両方をアップグレードします。

2) IISがIRISとは異なるサーバにインストールされている場合は、IRIS用Webゲートウェイキットを利用します。

(※)InterSystems IRISまたはIRIS for Health

それぞれの方法は以下の通りです。

1)同一サーバにIISとCachéがインストールされている環境の「CACHE(CONVERSION)」でのアップグレード方法

a) インストーラーを起動します。

b) CACHE(CONVERSION)を選択します。

c) 「このインスタンスのローカルIIS Webサーバを構成」選択し「次へ」のボタンをクリックします。

d) 「コンバート」ボタンをクリックします。(この後、IRISのライセンスキーの指定を行う必要があります。事前にiris.keyをご用意ください)

2) IRIS用Webゲートウェイキットを利用する方法

a) Webゲートウェイキットを起動します。

b) 「Complete」を選択し「Next」ボタンをクリックします。

0
0 149
記事 Mihoko Iijima · 12月 24, 2024 3m read

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

イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

メッセージの削除には、2種類の方法があります。

1) 2022.1.2以降の導入されたマルチプロセスで削除する方法

Ens.Ens.Util.MessagePurgeクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

第4引数:メッセージボディも一緒に削除する場合は1を指定

第5引数:デフォルトは500(秒)が設定されていますが、大量のメッセージをパージするとクリアされたビットマップの最適化に時間を要して最適化が完了しない場合があるため、大量削除の場合は 10000000000など大きな値を指定します。

2) Ens.MessageHeaderクラスのPurge()メソッドを使用する方法。

実行時以下の引数を指定します。

0
0 77
記事 Mihoko Iijima · 12月 18, 2024 2m read

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

試していたWebAPIでは、POST要求時クエリパラメータとボディの両方を送る必要がありましたので、HTTPアウトバウンドアダプタが提供するメソッド:Post()/PostFormDataArray()/PostURL() 辺りをドキュメントで確認していたのですが、残念ながら両方を渡せるように作成された丁度良いメソッドがありませんでした。

ドキュメント:HTTPアウトバウンドアダプタが提供するメソッド

では、どのように送ったかというと、SendFormDataArray()の第3引数を利用して両方の情報を送付してみました。

具体的には、SendFormDataArray()の第2引数にはHTTPメソッド(GET、POST、PUT、DELETEなど)第3引数に%Net.HttpRequestのインスタンスが渡せる仕様になっていましたので、クエリパラメータとボディを%Net.HttpRequestのインスタンスに設定し、第3引数に指定して実行する方法をとりました。

  set status=..Adapter.SendFormDataArray(
0
0 114
お知らせ Mihoko Iijima · 11月 24, 2024

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

🎄 クリスマスの雰囲気が漂いはじめた今日のこの頃、今年最後のプログラミングコンテストで何か新しいことに挑戦するのはどうでしょうか?

🏆 アイデア実現コンテスト 🏆

Community Opportunity のステータスを持ち、実際のプログラミングを必要とするInterSystems Ideas Portal のアイデアを実装した作品をご応募ください。

期間:2024年12月2日~22日

賞金総額: $14,000

0
0 78