記事 Toshihiko Minamoto · 2024年1月11日 3m read DeepSee で有効な階層を設計 DeepSee で階層を設計する場合、子メンバーに 1 つの親しか指定できません。 子が 2 つの親に対応する場合には、信頼性のない結果が得られることになります。 類似する 2 つのメンバーが存在する場合、そのキーがそれぞれ一意になるように変更する必要があります。 これが起きる場合とそれを回避する方法について、2 つの例を見ながら説明します。 例 1 (アメリカには)Boston と言う都市がある州がたくさんあります。 私のサンプルデータでは、Boston, MA(マサチューセッツ州ボストン)と Boston, NY(ニューヨーク州ボストン)のレコードがあります。 次元は次のように定義されています。 #キューブ #データモデル #ヒントとコツ #ベストプラクティス #分析 #Caché #InterSystems IRIS #InterSystems IRIS BI (DeepSee) 0 0 0 120
記事 Toshihiko Minamoto · 2023年11月8日 2m read AWS EC2 への InterSystems API Manager(IAM)のデプロイ手順 この記事では、EC2(ubuntu)に IAM をデプロイする手順を説明します。 IAM とは? IAM は InterSystems API Manager です。 IAM の詳細については、以下のリンクをご覧ください。 https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_apimgr #AWS #InterSystems API Manager (IAM) #クラウド #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 120
記事 Mihoko Iijima · 2023年5月30日 2m read Embedded Pythonから%SYSTEMパッケージ以下クラスを呼び出す方法 これは InterSystems FAQ サイトの記事です。 %SYSTEMパッケージには沢山の便利なシステムクラスがあり、Embedded Pythonでも一般クラスと同様に%SYSTEMパッケージ以下クラスを操作できます(iris.cls("クラス名").メソッド名()で呼び出せます)。 ObjectScriptでは、$SYSTEM特殊変数を利用して、%SYSTEMパッケージ以下クラスのメソッドを呼び出すことができますが、Embedded Pythonでは、iris.system を利用して実行することができます。 以下実行例をご紹介します。 現在のネームスペースを取得する 一般クラスと同じ呼び出し方の例 #Embedded Python #Python #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 120
記事 Megumi Kakechi · 2023年3月8日 2m read 2つのグローバルの内容を比較する方法 これは InterSystems FAQ サイトの記事です。 ^%GCMP ユーティリティにて2つのグローバルの内容を比較することができます。 例としてUSERとSAMPLESネームスペースにある、^testと^testを比較する場合は以下のようになります。※以下の例では、2つのネームスペースに全く同じグローバルを700個作り、その中の一つの中身を変えて検出対象としています。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 119
記事 Mihoko Iijima · 2022年8月25日 1m read データベース xxxENSTEMP、xxxSECONDARY について これは InterSystems FAQ サイトの記事です。 メモ:xxx にはネームスペース名が入ります。 xxxENSTEMPは、プロダクション実行中に作成される一時データが保存されるデータベースです。^IRIS.Temp.Ens* のグローバルがこのデータベースにマッピングされています。なお、xxxENSTEMPはジャーナルにかかれない設定のデータベースです。 xxxSECONDARYは、プロダクションで使用される資格情報を保存するデータベースです。^Ens.SecondaryData* のグローバルがこのデータベースにマッピングされています。 注意:InterSystems IRIS for Health、HealthShare ではこれらデータベースは作成されません 詳細は以下ドキュメントをご覧下さい。 #データベース #ヒントとコツ #相互運用性 #Ensemble #InterSystems IRIS 0 0 0 119
記事 Toshihiko Minamoto · 2024年4月8日 10m read Open AI と IRIS の統合 - ファイル管理 人工知能は、命令によってテキストから画像を生成したり、単純な指示によって物語を差作成したりすることだけに限られていません。 多様な写真を作成したり、既存の写真に特殊な背景を含めたりすることもできます。 また、話者の言語や速度に関係なく、音声のトランスクリプションを取得することも可能です。 では、ファイル管理の仕組みを調べてみましょう。 #Artificial Intelligence (AI) #ビジネスオペレーション #フレームワーク #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 118
記事 Takao Otokita · 2024年4月7日 8m read IRIS BI開発者向けチュートリアルを試してみる(3) はじめに IRIS BIチュートリアル試してみたシリーズの3回目です。チュートリアルの「キューブ要素の概要」ページの続きを行います。前回同様、アナライザを操作しながらキューブの要素について説明していきます。では、早速はじめていきましょう。 #アナライザ #キューブ #ダッシュボード #チュートリアル #InterSystems IRIS BI (DeepSee) 2 0 0 118
記事 Megumi Kakechi · 2024年3月3日 2m read ユーザではなくロールに対してSQL権限を割り当てる方法 これは InterSystems FAQ サイトの記事です。 ユーザに権限を与えたい場合、「GRANT」コマンドや「GrantPrivilegeメソッド」を使用しますが、ロールに対しても権限を与えることができます。 例えば、特定スキーマにのみ何でもできるロールを作成し、それを特定のユーザに割り当てるようなことが可能となります。 こちらの記事では、その方法をご紹介します。 (1) GrantPrivilegeメソッドを使用して「スキーマXXX に何でもできるロール」を作成し、(2) 該当ユーザに (1) のロールを割り当てる ★GRANT文を使う場合 #SQL #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 118
記事 Toshihiko Minamoto · 2023年9月28日 22m read OpenAPI Suite - パート 1 コミュニティの皆さん、こんにちは。 私が作成した OpenAPI-Suite という最新のパッケージをご紹介します。これは、OpenAPI 仕様バージョン 3.0 から ObjectScript コードを生成するツールセットです。 簡単に言うと、これらのパッケージでは以下を行うことができます。 サーバーサイドクラスの生成。 ^%REST による生成コードに非常に似ていますが、バージョン 3.0 がサポートされていることに付加価値があります。 HTTP クライアントクラスの生成。 クライアントプロダクション(ビジネスサービス、ビジネスオペレーション、ビジネスプロセス、Ens.Request、Ens.Response)クラスの生成。 コードの生成とダウンロードまたはサーバーでの直接コンパイルを行う Web インターフェース。 バージョン 1.x からバージョン 3.0 への仕様の変換。 #REST API #相互運用性 #InterSystems IRIS #InterSystems アイデアポータル #Open Exchange Open Exchange app 0 0 0 118
記事 Tomoko Furuzono · 2021年12月7日 2m read メッセージ・ログ(messages.log)/コンソール・ログ(cconsole.log) に出力される「Skipping SET(KILL) global ^xxxx during transaction rollback...」のメッセージとは これは、InterSystems FAQサイトの記事です。このメッセージが出力される要因は以下の2つになります。 同じデータに対して適切に排他を行わずに、別々のプロセスから更新が行われている ロールバックが発生している 詳細は以下の通りです。 メッセージログ/コンソールログに、以下のようなメッセージがある場合、これはロールバック処理にて出力されています。※バージョンによってメッセージは多少異なります。 #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 117
記事 Toshihiko Minamoto · 2021年10月5日 2m read Ensembleで大量のメッセージを再送信するには メッセージビューアはメッセージを再送信できますが、大量(>100件)のメッセージを再送信するには適していません。 それを行うには、以下のようなCache Object Scriptコードを使用する必要があります。 Class Sample.Resender Extends %RegisteredObject{ #Code Snippet #Ensemble 0 0 0 117
記事 Mihoko Iijima · 2021年7月5日 1m read Extent クエリの結果が ID 順にならないわけ これは InterSystems FAQ サイトの記事です。 %Persistent クラスに既定で生成される Extent クエリは、ID 順に結果セットを出力することを意図していませんので、これは、仕様通りの動きとなります。 並び順は、設定されているインデックスにより、変わることがあります。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems Natural Language Processing (NLP, iKnow) #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 117
記事 Megumi Kakechi · 2025年2月4日 4m read 整合性チェックの各方法の違いについて これは InterSystems FAQ サイトの記事です。 整合性チェックを行う場合、管理ポータルやタスクマネージャーから行う方法と、ターミナルから ^Integrity ユーティリティを使用して行う方法があります。 こちらのトピックでは、それぞれの違いをご説明します。 管理ポータル、整合性チェックタスク、および SYS.Database の IntegrityCheck メソッドから行う方法 こちらの方法は、選択した複数のデータベースや、1 つのデータベースに格納された選択可能な複数のグローバルを対象に整合性をチェックを行います。 管理ポータル:[システムオペレーション] > [データベース] 整合性チェック・ボタン※チェックを行いたいネームスペース、必要に応じてグローバルを選択し、実行・ボタンをクリック #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 116
記事 Tomoko Furuzono · 2023年4月11日 2m read 監査データベースの閲覧のみを許可する これは、InterSystems FAQサイトの記事です。管理ポータルの監査メニューを使用する場合、ユーザに監査データベースの閲覧のみを許可するということはできません。管理ポータルから監査データベースを閲覧する場合は、そのユーザに、・%Admin_Secure:U(監査以外にもセキュリティ関連の操作が可能となる)・%DB_IRISAUDIT:RW(監査データベースへの読み込み/書き込み権限)等のリソースへの権限が必要になりますが、これを与えることにより、監査データベースの閲覧以外の操作も可能となってしまいます。 監査データベースの閲覧のみを許可したい場合には、管理ポータルの監査メニューは使用せず、外部ツール等からSQLで監査テーブルを参照するようにします。このとき、ユーザに必要な権限は以下の通りです。※他の権限は与えないようにします。・IRISAUDITデータベースへのRW権限 ⇒ %DB_IRISAUDITロールの付与・%SYS.AuditテーブルへのSelect権限 #システム管理 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 116
記事 Toshihiko Minamoto · 2021年12月15日 2m read Ensemble とFile Outbound Adapter - ちょっとしたヒント あるお客様の問題から、この短い記事を書くことにしました。 お客様はEnsembleを使用して、多数のシステムを統合しています。一部のシステムではプレーンファイルのみが使用されています。 そのため、ターゲットファイルへの書き込みには、自然とFile Outbound Adapter を選択しました。 数年もの間すべてが順調に稼働していましたが、最近になって、ファイルに書き込まれるデータが数十メガバイトという大きなサイズに達するようになり問題が出てきました。オペレーションが完了するまでに約30分かかるようになり、プロセス内の後続の処理を待たせなければならないタイミングの問題が発生し始めたのです。当然、連携先のシステムはそれほど長く待つことを良しとしません。 お客様のコードは、以下の疑似コードのようなものでした。 #ヒントとコツ #ビジネスオペレーション #Ensemble 1 0 0 116
記事 Makiko Kokubun · 2021年6月22日 1m read 動画:IRISシステムを簡単に可視化 ー InterSystems SAMのご紹介 *この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。 昨年、SAM(System Alerting and Monitoring)をリリースしました。これはInterSystems IRISシステムを監視するためのツールで、InterSystems IRISをお使いの方でしたら、どなたでも利用できます。 https://www.youtube.com/embed/OOnroi6AGjE[これは埋め込みリンクですが、あなたはサイト上の埋め込みコンテンツへのアクセスに必要な Cookie を拒否しているため、それを直接表示することはできません。埋め込みコンテンツを表示するには、Cookie 設定ですべての Cookie を受け入れる必要があります。] Dockerやdocker-composeを使用し、Prometheus、Grafanaといったオープンソースの監視用ツールを組み合わせて簡単にインストールや設定ができるようにしています。 #System Alerting and Monitoring (SAM) #Webセミナー #InterSystems IRIS 0 0 0 116
記事 Tomoko Furuzono · 2022年3月29日 1m read 現在実行中のコードの位置(どの行を実行中か)を知る方法 これは、InterSystems FAQサイトの記事です。 現在実行中のコードの位置は、$STACK関数を使用して $STACK($STACK,"PLACE") で取得できます。 サンプルコードは以下ドキュメントをご参照ください。 現在実行中のコードの位置を取得する方法について【IRIS】現在実行中のコードの位置を取得する方法について #ObjectScript #Caché #InterSystems IRIS 0 0 0 115
記事 Toshihiko Minamoto · 2022年3月10日 4m read ストレージ定義の変更による危険性 背景 先日、ObjectScript の永続(Persistent)クラスのプロパティを編集していたところ、ストレージ定義が最後の変更を反映するように更新されていないことに気づきました。 この場合、クラス定義に不要となったプロパティを削除した上で保存し、再コンパイルしましたが、それでもストレージ定義に残ったままになっていました。 それでも焦ることはありませんでした。 ストレージ定義がコンパイル時に自動生成されるのであれば、それを削除して、クラスを再コンパイルすればよいからです。 もちろん、この後、削除されたプロパティはストレージ定義に表示されなくなりました。 問題解決... ですよね? (ブブー、間違いです) 後になって、このアプローチはクラスにデータが保存されていないときに機能することがわかりました。 ただし、既存のデータがあるのであれば、重大なデータ参照の問題が発生する可能性があります。 そもそもストレージ定義とは? #ObjectScript #オブジェクトデータモデル #Caché 0 0 0 115
記事 Toshihiko Minamoto · 2022年3月29日 3m read Apache Zeppelin + IRIS のクイックスタート Apache Zeppelin は以下を行えるようにする多目的ノートブックです。 データの取り込み データ検出 データ分析 データの可視化とコラボレーション Apache Zeppelin インタープリターの概念に基づき、あらゆる言語/データ処理バックエンドを Zeppelin にプラグインすることができます。 現在、Apache Zeppelin は、Apache Spark、Apache Flink、Python、R、JDBC、Markcown、およびシェルなど、多くのインタープリターに対応しています。 データの洞察を得るための安全な環境を得られます。 Zeppelin のハイライト機能は、JDBC と Spark IRIS のネイティブコネクタを使用して利用することができます。 これは、あなたを軌道に乗せるためのクイックスタートガイドです。 #InterSystems IRIS 0 0 0 114
記事 Toshihiko Minamoto · 2020年11月18日 1m read 開発者コミュニティでの記事の検索方法 皆さん、こんにちは。開発コミュニティでの検索方法について説明します。 開発コミュニティのページで検索される場合は以下の赤枠の虫眼鏡マークをクリックします。 すると、以下のようにテキストボックスのみ浮かび上がりますので、検索したい文字列を入力します。 #開発者コミュニティのよくある質問 #開発者コミュニティ公式 0 0 0 114
記事 Hiroshi Sato · 2024年3月18日 1m read $ZF(-100) で呼び出した外部プロセスがハングしてしまった場合のIRISプロセスの終了方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100)で外部コマンドを実行する場合、その外部コマンドの子プロセスからの応答が返らない限り、$ZF(100)コマンドを発行したIRISプロセスはその応答を待って残り続けます。 従ってIRISプロセスを終了させるためにはその応答がない子プロセスを強制終了させる必要があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
記事 Toshihiko Minamoto · 2023年6月8日 2m read グローバルサミット2023、完結編! コミュニティの皆さん、こんにちは。 この #GlobalSummit23 も最終日を迎えました!そして、今日は私たちの日、プログラマーの日です。今日の基調講演は、すべて開発者の成長や意欲、イノベーションに捧げられたものでした。 #Global Summit 2023 #イベント #Summit 2 0 0 113
InterSystems公式 Masahito Miura · 2024年5月2日 1m read 警告:"NOT %INLIST" を使用した SQL クエリが結果を返さない 警告:"NOT %INLIST" を使用した SQL クエリが結果を返さない インターシステムズは、一部の SQL クエリが不正な結果を返す原因となる 3 つの不具合を修正しました。 影響を受けるクエリの詳細については、以下を参照してください。 この問題は、以下の製品のリストにあるバージョンに存在します: InterSystems IRIS® data platform InterSystems IRIS for Health™ HealthShare® Health Connect 同様に上記製品をベースとしたその他のインターシステムズ製品 影響を受けるバージョン: #Health Connect #InterSystems IRIS #InterSystems IRIS for Health #InterSystems公式 0 0 0 112
記事 Megumi Kakechi · 2024年4月25日 2m read 大きいデータを持つフィールドに対してインデックスを作成する方法 大きなサイズのデータを持つフィールドに対してインデックスを作成すると、<SUBSCRIPT>エラーとなることがあります。 これは、グローバルの添え字(サブスクリプト)のサイズには制限があり、制限を超えるとエラーとなるためです。 例えば、以下のようなインデックスの場合、 ^Sample.PersonI("NameIdx"," xxx...xxx",1) = "" グローバル名+サブスクリプト部(=の左側)が、エンコード文字数で最長 511 文字を超えるとエラーとなります(日本語の場合はもっと小さな文字数です)。 ※ご参考:グローバル参照の最大長 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 112
記事 Toshihiko Minamoto · 2022年7月19日 2m read InterSystems レポート: トラブルシューティングとして、サポートでユーザーのレポートを実行できるようにする方法 インターシステムズのサポートではレポートのトラブルシューティングを手助けしており、彼らはローカルシステムにて問題を再現したいのですが、JDBC データソース接続が失敗するため、レポートを実行できず、残念な結果となります。 何かよい方法はあるでしょうか? #InterSystems Reports (Logi) #InterSystems IRIS 0 0 0 112
記事 Tomoko Furuzono · 2024年6月6日 2m read JSON_Table(SQL)の利用 これは、InterSystems FAQサイトの記事です。 IRIS/IRIS for Health2024.1以降のバージョンのSQLで、JSON_TABLE関数がサポートされています。【ドキュメント】JSON_TABLE(SQL) これを使用することにより、JSON形式データを表形式で取得することが出来ます。【例】郵便番号情報を外部から取得し、表形式にマッピングする。(取得データ(JSON)) #JSON #SQL #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 111
記事 Mihoko Iijima · 2024年5月16日 9m read インターシステムズ製品をバックアップする前に確認したいこと 開発者の皆さん、こんにちは。 この記事では、InterSystems製品のバックアップ方法(4種類)のご紹介と、バックアップを行う前に確認しておきたい内容について解説します。 また、この記事に続くシリーズ記事では、それぞれのバックアップの仕組みと操作例を交えたバックアップとリストア手順を解説していきます。 #システム管理 #バックアップ #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health #Health Connect 0 0 0 111
記事 Hiroshi Sato · 2025年1月6日 1m read 日本のMacユーザーがIRISを使う際にまずやるべきこと 日本でMacユーザーのIRIS使いがどの程度いるのかわかりませんが、圧倒的少数派なのは確かでしょう。 そのせいもあってか、Mac版のインストーラは、Windows版ほどきめ細かい対応をしてくれていません。 Windows版はインストーラが勝手に日本語のロケールを設定してくれているのですが、Mac版(おそらくLinux版も)は英語ロケールのままです。 それでも、通常の使用ではさほど問題がないといえないこともないのですが、ファイルを読んだりする場合や他にも何かと不都合があります。(何かあったような気がしますが、忘れました。) ですので、Macユーザーは面倒ですが、管理ポータルで日本語ロケールjpuwのインストールをする必要があります。 またはターミナルでコマンド一発でもOKです。 #ローカリゼーション #InterSystems IRIS #InterSystems IRIS for Health 3 2 0 68
記事 Hiroshi Sato · 2024年1月9日 1m read CSPアプリケーションをReactを使って書き換えるその5 最後にCSP機能の中でReactでうまく置き換えできなかった処理について紹介します。 該当する処理は、サーバー上の商品データに含まれるその商品の画像データ(GIF形式)を取得して、ブラウザにイメージとして描画させるものです。 CSPにはStreamServer.clsというサーバー側で動作する機能が用意されています。 この機能を使ってデータベース上に格納されているストリームデータをHTML IMGタグで処理できる形式に変換してくれます。 StreamServer機能を使って画像を表示する処理 Reactで同様の機能を実現する方法が見つからなかったため(そもそもReactはサーバーサイドではなくクライアント上の技術なので)、データベース内に格納されているイメージを取得するのではなく、静的なイメージファイルをウェブサーバーが参照可能な場所に置くことで解決しました。 #CSP #React #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 108
記事 Megumi Kakechi · 2023年5月15日 2m read グローバルの kill で <SLMSPAN> エラーとなる原因と対処方法 これは InterSystems FAQ サイトの記事です。 サブスクリプトレベルマッピングされたグローバルを、トップノードから全体をkillする場合、<SLMSPAN>エラーとなり削除ができません。 これは、サブスクリプトレベルマッピングされたグローバルについては、マッピングを跨いだサブスクリプト範囲の kill コマンドは行えないためです。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 108