新着
記事 Hiroshi Sato · 3月 4 13m read

最近話題のClaude Codeを使って、ObjectScriptプログラミングをトライしてみました。

もちろんClaude CodeにObjectScriptのコードを書かせるにはそれなりの指示が必要ですが、適切なプロンプトを与えると想像以上にちゃんとしたObjectScriptコードを書いてくれます。

今回試したのは、少し前に投稿したCSPの#server問題に対応するため、#serverをREST APIに書き換えるというものです。

元のソースは、

https://github.com/wolfman0719/shopdemo

これはCSPのデモアプリケーションですが、しっかりと#server機能を使用しています。


結論をいうと、%sessionがRESTとCSP間で共有できないという根本問題があって、実行成功までには至っていませんが面倒なコーディングをかなりカーバーしてくれることがわかります。

(REST APIをCSPクラスで実装することで%session共有の問題を回避でき、Claude Codeが生成したロジックの正しさは証明されました)

そして、Claude Codeは、 ObjectScriptのことかなり理解してくれています。

ObjectScriptプログラマーが少ない問題を大きく改善してくれる可能性があります。
 

それでは、私がどのようなことを行ったか説明します。

2
0 24
InterSystems 開発者コミュニティは 26,224 名の優秀な開発者が参加しているコミュニティです
InterSystems IRIS のプログラマーが学習や知識の共有を行い、最新情報を入手し、共に楽しく成長できる場所です!
新着
記事 Toshihiko Minamoto · 3月 6 7m read

はじめに

あるお客さんから、ワークフローの待受画面での新着通知方法についてご相談がありました。

  • 単純なポーリングだと、通知の遅延や、サーバリソースを消費する
  • ロングポーリングは、待ち受け画面のためにIRISのライセンスを消費する
  • MQTTなどを使うと専用のサーバプロセスが必要

何か良い方法は無いでしょうか。 といった内容です。

この課題に対して調査したところ、以下の方式が見つかりました。

  • ブラウザからSSE(Server-Sent Event)方式を使い、nginx上にアクセス
  • IRIS側から通知が必要なクライアントのIDに対してnginxにメッセージをPOST
  • nginxがルーティングを行い、当該クライアントにメッセージを通知

今回は以下の点について手順や設定等解説していきたいと思います。

  • nginx のソースビルドと Web Gateway のインストール
  • nginx-push-stream-module を使った SSE (Server-Sent Events) 通知
  • ブラウザ受信 (/subscribe) とサーバ送信 (/publish) の最小実装

全体構成

まずは全体像です。データの流れをシンプルに分けることで、役割が明確になります。

0
0 9
記事 Hiroshi Sato · 2月 15 4m read

IRISではCSPタグベースの開発は、非推奨(Deplicated)になっています。

非推奨とはいえ、いますぐ使えなくなることはないと思います。

が、CSP機能に含まれるHyperEventの#server()#呼び出しは、かなりやばいということがわかってきました。

これはChromeを始めとするメジャーなブラウザーが提供しているSynchronous XMLHttpRequestという関数を呼び出しています。

この関数をGoogleは10年前くらいから非推奨機能としていて、いつか完全に機能をドロップすると宣言しています。

Stackoverflowの該当記事

インターシステムズのドキュメントにもさりげなく記載されています。

HyperEventCallメソッド

とはいえ、10年もそのままなので、希望的観測をすれば、今後も使える可能性は高いかもしれません。

しかし、ある日突然なくなるリスクはゼロではありません。

ですので、#server()#呼び出しをお手元のコードからなるべく早く取り除くのが賢明です。

それでは、どうすれば良いのか?

ということですが、今のご時世で考えれば、REST APIに変えましょうというのが美しい世界ですが、おそらく書き換えのコストは、半端じゃないでしょう。

ということで、現実的な解は、#Call()#に置き換えることだと思います。

3
2 47
新着
お知らせ Mihoko Iijima · 3月 3

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

InterSystems フルスタックコンテストの受賞者が決定しました!

このコンテストには、16 件🔥のアプリケーション の応募がありました。ご参加いただきありがとうございました!

以下、受賞された方々です。

0
0 17
新着
InterSystems公式 Ayumu Tanaka · 2月 24

インターシステムズは InterSystems Caché®, InterSystems Ensemble®,  HealthShare® Health Connect のメンテナンスリリース 2018.1.12 をリリースしました。  

製品の品質改善のために、 アイディアポータル にある リリース後フィードバック のカテゴリにてご意見をぜひお聞かせください。

ドキュメント

変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(英語):

早期アクセスプログラム (EAP)について

現在、多くの早期アクセスプログラムをご提供しています。こちらの ページ からご興味のあるプログラムにお申込みいただけます。

キットの入手方法

InterSystems Caché の通常インストーラパッケージ形式のキットは WRC Direct の Caché ダウンロードページ から、InterSystems Ensemble のキットは Ensemble ダウンロードページ から、HealthShare Health Connect のキットは HealthShare ダウンロードページ からそれぞれ入手してください。

0
0 18
記事 Mihoko Iijima · 2月 18 4m read

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

私は普段 Windows を使用しており、VSCode で ObjectScript を書いてテストする際には、IRIS ターミナルを別途起動し、VSCode とターミナルの 2 画面を行き来する操作を続けてきました。

ところが今回、ObjectScript エクステンションに追加された「ObjectScript Lite Terminal」を利用することで、VSCode 1 画面内で IRIS ターミナルを操作できるようになりました。

一見すると小さな追加機能ですが、日々 IRIS を触っている開発者にとっては “地味に革命” と言えるかもしれません。本記事では、その使い勝手を詳しくご紹介します。

Windows 以外の環境では、通常 iris session xxx を実行して ObjectScript シェルに切り替えますが、Lite Terminal を使えばこの操作が不要になります。

 

まずは、起動方法から。

Lite ターミナルの起動には、3種類の方法があります。

その1:コマンドパレットを使って起動する

VSCode の View > Command Palette.. >  ObjectScript: Launch Lite Terminal

 

クリック後、VSCode

2
2 53
記事 Toshihiko Minamoto · 2月 18 10m read

前回の記事、SQLでの変数やパターンを使ったLIKEの使用では、組み込みSQLから動的SQLまで、さまざまなシナリオでのLIKE述語の動作や、ワイルドカードや変数を使った場合のパフォーマンスへの影響について解説しました。 前回の記事では、動作するLIKEクエリを書くことに慣れることをテーマにしました。しかし、SQLを動かすことができるようになるのは、あくまで出発点に過ぎません。 信頼性が高く、スケーラブルで安全なアプリケーションを構築するには、LIKEを使ったクエリを含む、すべてのSQLに共通するベストプラクティスを理解する必要があります。

この記事では、次のステップに進みます。 SQLコードを強化し、ありがちな間違いを避け、SELECTステートメント文が正しく動作するだけでなく、効率的かつ安全に実行されるようにするためのいくつかの重要なポイントを見ていきます。 途中で、LIKE述語を使ったSELECTステートメントを例として取り上げ、これらの基本原則がどのようにクエリやその結果に直接影響するかを説明します。

*これは、Geminiがこの記事のために生成したものです。いい感じです。

0
0 20
記事 Megumi Kakechi · 2月 15 4m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメンテナンスリリースバージョン(例:2025.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。

脆弱性の問題の対応などで、最新メンテナンスリリースバージョンへのアップグレードが必要な場合はこちらの方法をご使用ください。

こちらの手順は、「ミラー環境アップグレード中にアプリケーションの変更を伴わない」ことを前提とした手順になります。
こちらのドキュメント にある以下のイメージの、「 Procedure 1: Maintenance Release Upgrades with No Application Changes」の手順です。
※ ミラーが使用できなくなるのは、計画的フェイルオーバーの実行時間のみです。

  
【注意1】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。
【注意2】
ミラーリング構成のInterSystems IRISでは、ジャーナルファイルの互換性を保つため、バックアップメンバーを先に、プライマリを後にアップグレードする必要があります。

0
0 33
InterSystems公式 Masahito Miura · 2月 12

インターシステムズは、InterSystems IRIS® data platformInterSystems IRIS® for HealthTMHealthShare® Health Connect のメインテナンスバージョン 2025.1.3 をリリースしました。このリリースには、最近発行された以下の警告および勧告に対する修正が含まれております。

ドキュメント

変更点の詳細と、アップグレードチェックリストは以下のリンクからご覧いただけます。(すべて英語)

早期アクセスプログラム(EAPs)について

現在、多くの早期アクセスプログラムをご提供しております。 こちらの ページ ご興味のあるプログラムにお申込みいただけます。

0
0 29
記事 Toshihiko Minamoto · 2月 11 8m read

年月を重ねるにつれて、InterSystems開発者コミュニティで特定のSQLの質問が何度も繰り返されることに気づくようになりました。特にさまざまなコンテキストでのLIKE述語の使用についてです。 よくあるバリエーションには、以下のようなものがあります。

また、さらに多くの派生パターンがあります。 そこで、InterSystems IRIS SQLでのLIKEの仕組みに焦点を当てた記事を書くことにしました。特に、埋め込みSQL、動的SQL、クラスクエリで変数を使用する方法について取り上げ、パターンのエスケープ、特殊文字検索についても解説しています。

まず最初に、InterSystems IRIS SQLでは、SQL標準の新しいバージョンを実装しているその他のリレーショナルDBMSで利用できるほとんどの機能を提供していることを述べておきたいと思います。 同時に、IRISではリレーショナルアクセスだけでなく、オブジェクトモデルやドキュメントモデルを使って同じデータにアクセスできることも重要なポイントです。

それでは、LIKE述語と、SQLでのパターンマッチングの使い方を詳しく見ていきましょう。

0
1 26
記事 Toshihiko Minamoto · 2月 9 3m read

IRIS DocDB Explorerの紹介:InterSystems IRISでJSONドキュメントを管理できるスタイリッシュなUI

IRISは、DocDBを使用してJSONドキュメントを保存および取得できる専用機能を提供しており、事前定義されたスキーマを必要としません。

開発者は、複数のツールを切り替えたり、冗長なコードを書いたりせずに、ドキュメントを素早く簡単に閲覧、作成、編集できる方法を求めています。 そこで私は、DocDBと簡単にやり取りできるクリーンでレスポンシブなインターフェースを提供するCSPベースのオープンソースアプリケーション、iris-docdb-uiを開発しました。 ユーザーは、ネームスペースやドキュメントデータベースの作成、保存されたドキュメントの閲覧、新規ドキュメントの追加、既存ドキュメントの編集を、すべて1つの便利なプラットフォーム上で簡単に行えます。

このアプリケーションは、InterSystems Open Exchangeでも公開されているため、簡単にインストールして、すぐに使い始めることができます。

 

DocDBを使いやすくする方法

Iiris-docdb-ui -  RIS DocDB Explorerの本質はそのシンプルさにあります。

0
0 30
新着
記事 Megumi Kakechi · 2月 25 5m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、ミラー環境をメジャーバージョン(例:2024.1.0 -> 2025.1.1)にアップグレードする際の手順についてご説明します。

こちらの手順は、「ミラー環境アップグレード時に計画的なダウンタイムを伴う」ことを前提とした手順になります。
こちらのドキュメント にあるイメージの、「 Procedure 2: Major Version Upgrades with Planned Downtime」の手順です。

  

【注意1】
ミラーを構成するすべてのフェイルオーバーおよび DR 非同期メンバーは、同じバージョンの InterSystems IRIS である必要があります。異なるバージョンが許容されるのは、アップグレード中のみです。
アップグレードしたメンバーがプライマリメンバーになると、アップグレードが完了するまで、他のフェイルオーバーメンバーおよび DR 非同期メンバーは使用できません。
 
【注意2】
InterSystems IRIS for Health および Health Connect でミラーリングを構成する場合は、HSSYSを必ずミラーリングするようにしてください。また、アップグレードは2024.1以降のバージョンへ行うようにしてください。

0
0 26