毎月ご好評をいただいておりますインターシステムズ主催 開発者向けオンラインセミナーにつきまして

4月は「IRIS 2024.1 の管理用Webサーバ(PWS)廃止に備えて」のテーマで開催いたします。

日時:4月23日(火)13:30~14:00

オンライン形式(参加費無料・事前登録制)

ご登録はこちらから

<概要>

Caché / IRISで今まで同梱されていたシステム管理ポータル用Webサーバ(PWS: Private Web Server)

機能がIRIS2024.1からはインストールされなくなりました。

0 0
0 53
InterSystems 開発者コミュニティは 17,762 名の優秀な開発者が参加しているコミュニティです
InterSystems IRIS のプログラマーが学習や知識の共有を行い、最新情報を入手し、共に楽しく成長できる場所です!

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

過去に開催した開発者向けウェビナー アーカイブビデオのまとめページを作成しました。

今後もウェビナーを開催していきますのでこのページをブックマークしていただけると嬉しいです

2024年開催分:

✅ウェビナー

4 11
0 307

弊社では、Cacheの時からExcel(VBA)を使用して、Cache側のクラス定義を抽出して画面に表示する、という開発サポートツールを作成して使用していました。

今回、IRISベースでの開発に移行するにあたって、このExcel(VBA)の動作確認をしました。

実施したことは、VBAのエディタ画面にあるメニューから「ツール」→「参照設定」へと進み、表示される選択リストの「CacheActiveX3.0[IRIS] Type Library」を選択しなおすことで、VBAのコードを変更することなく動作する事が確認できました。

このようなExcel(VBA)への対応はカットされたのではないかと不安がありましたが、流石ですね、ちゃんとカバーされていました。

なお、Type Libraryの名称が「CacheActiveX」で始まっていたのはご愛嬌でしょうか?Cache経験者であれば、問題ないと思いましたが、IRISから使い始めた方にとっては、少々困惑されるかも、と感じました。

Excel(VBA)でIRISに接続する事例がどの程度存在するのかは不明ですが、Excel(VBA)でIRISに接続できると便利だと感じています。今時ですから、ODBC を使った方が分かりやすいかも知れませんね。

1 8
0 594

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

SQLの実行結果について、意図せぬ結果になるものが二点ありますので、
利用方法等に誤りがないかを確認させてください。


CREATE TABLE Tmp.AAA AS SELECT * FROM Mst.AAA WHERE column = ?
⇒管理ポータルで実行しても、?パラメータを置換するダイアログが表示されず、
 オンコードで%Execute()しても実行エラーになる。

★この構文では?パラメータは利用できないのでしょうか?

0 8
1 227

皆様こんにちは。

Native API for .NETを使用して、%Stream.GlobalBinaryタイプのプロパティを持つデータを作成しようとしています。

%Stream.GlobalBinaryタイプのプロパティ(binaryData)に書き込む部分は以下のようになっています。

Using obj As InterSystems.Data.IRISClient.ADO.IRISObject = iris.ClassMethodObject("User.Sample","%New")

Using prop As InterSystems.Data.IRISClient.ADO.IRISObject = obj.GetObject("binaryData")

prop.InvokeStatusCode("Write", binary)

End Using

obj.InvokeStatusCode("%Save")

End Using

0 8
0 192

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

TIMESTAMP型のデータを持つテーブルの扱いについて教えてください。

現在Ens_Util.Logを参照するシステムを開発しようとしております。
このテーブルの中にTimeLoggedというTIMESTAMP型のデータがあるのですが、
それをSELECTした際、CASTの有無で表示されるデータに差異が出ます。

SELECT
DATE(TimeLogged),
CAST(TimeLogged AS TIME),
TimeLogged
FROM
Ens_Util.Log

0 8
0 141

Vue.jsのホットリロードを使った環境においてWebアプリケーションを開発しています。Webアプリケーションから開発環境と同じローカルPCにあるDocker上のIRISへ%RESTを使用しRESTfulAPI通信をしていますが、Webアプリケーションをhttpsで利用した場合は、httpsからhttpへはAPI通信ができないので、間にプロキシサーバーを立ててリダイレクトしないといけないと思います。しかし上手くいきません。

○ npm run serve で起動したWebアプリ http -> httpでIRISの%RESTを呼び出せる。

× npm run serve -- --https で起動した場合 https -> http は呼び出しできない。

  https -> プロキシサーバ(https-httpへリダイレクト)-> httpでIRISの%RESTが呼びさせるはず。

環境

Webアプリ:Vue.js 例)https://localhost:3014/

0 7
0 1.1K
ディスカッション
· 2021年2月22日
IRISで困ること(是非、ご教授下さい)

今思えば、製品名に「M」が付いている時代は説明が楽でした。私が記憶している製品は、DTM(Data Tree Mumps:MS-DOS上で巨大なシステムを構築できていましたね)、DSM(Dec Standard Mumps)、MSM(マイクロネティック Standard Mumps あってますか?)、ISM(Intersystems Standard Mumps)、U-MUMPS(?)その他もあったかも知れませんが、M(Mumps)の実装環境です、という説明で何とかなっていました。すると、「へぇ~、MUMPSってまだあったんだね」という答えを頂くこともありました。これらの製品が統合されて「OpenM」となりましたが、まだ「M」の文字が入っており、MUMPSもSQL対応できるようになりました、などと説明していました。

ところが、製品名がCacheになり、趣が大きく変わり、製品の説明が難しくなりました。「データベースです。」→「RDBなの?」→「RDBとしても動作しますがKey-Value的で多次元データ管理もできます」→「OLAP用なの?」→「OLAP処理もできますが、基本はトランザクション処理用です」→「で、結局、何なの」という禅問答のような状況にはまって行きました。

0 7
0 337

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

どなたかインスタンスの起動を%ZSTART等のMACではなく、
クラスのコールバック等で検知する方法をご存知ではないでしょうか?

背景としましては以下の通りです。

===================================================================

現在、Interoperabilityを利用する機能を開発しております。
Ens.Productionを継承したクラスの中でOnStart()をoverrideしており、
その中で上記のクラス自身をリコンパイルする処理が含まれております。

OnStart()でリコンパイルが行われる際、プロダクションの定義が変更されていると
そのプロセスでのプロダクションの起動が失敗してしまいます。
(プロダクション上の定義と、実際のクラスの状態に不一致が発生するため。)

そのため、クラス自身のリコンパイルをプロダクションの開始時ではなく、
インスタンスの開始時にしたいのですが、%ZSTART等のMACファイルは今回利用したくありません。

0 6
0 146

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

リレーションシップが設定されており 1対n の n が多量の場合、そのリレーションシップの順次処理などで大量のメモリ消費となるケースがあります。

プログラムの中で多側オブジェクトを参照し内部的にスウィズル処理した後には、そのOREFを含む変数の解放(削除、他の値の設定など)だけでは、その多側オブジェクトとリレーションシップオブジェクトが解放されないことが原因です。

それらを完全にメモリから解放するためには、OREF変数の解放とRelationshipオブジェクトの%UnSwizzleAt<%Library.RelationshipObject >メソッドの実行による明示的なメモリ解放が必要です。

- 使用例 -

0 6
0 216

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

現在、Embedded Pythonを用いて開発を行おうとしているのですが、
別のNMSPに存在するグローバルをiris.gref()で参照する方法がわかりませんでした。

> iris.gref("^[NMSP]GBL") <-----こうしても自身のNMSPのグローバルを参照してしまう。

諦めてznでネームスペースを切り替えてみようかな、とも思ったのですが、
python上でznをかける方法もよくわからず、対応方法に悩んでいます。

どなたか、上記の対応方法についてご存じな方はいらっしゃいませんでしょうか?

1 5
1 154

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

今回の記事では前回の記事に引き続き、IRIS for Health上で、FHIRリポジトリ+OAuth2認可サーバ/リソースサーバを構成する方法をご案内します。

(注意:2020.4以降のバージョンではこの記事に記載されているスコープ指定では正しくリソースが取得できません。詳細はこちらの記事をご覧ください。)

パート1では、事前準備と、OAuth2認可サーバを構成し、アクセストークンを取得するとこまでをご紹介しました。
このパート2では、FHIRリポジトリの構築方法と、OAuth2クライアント/リソースサーバの構成方法をご紹介していきます。

1 5
0 640

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

AWSのcodebuildを利用して、
IRIS環境をビルドされた経験がある方がいらっしゃたら
情報共有いただきたいです。

ただいま取り組んでいるプロジェクトでは、
IRISのclsファイルをaws codecommitのgitリポジトリで管理しております。
※Dockerコンテナではない。

ここで作成されたソースコードをaws Codebuildの仕組みを利用して
自動でコンパイルチェックをする仕組みを構築したいと考えております。
コンパイルを実行する環境としては、AWS ECRに自作したDockerコンテナを利用しております。
※コンテナはstore/intersystems/iris-community:2020.1.0.215.0を基底に、簡単なネームスペースを作成しただけのもの。
 ローカルPC上ではIRIS環境として利用できることを確認済み。

ビルドはbuildspec.ymlにて、以下のような命令で行おうと考えております。

0 5
0 750

突然ですが、みなさま、IRIS でのコーディングに Visual Studio Code をご利用されていますか? 以前投稿しましたように、2023.2からスタジオは非推奨 となっています。私自身も数年前からは VSCode 一本に移行しました。VSCode はご存じのように、ありとあらゆる項目でカスタマイズが可能となっており、一度慣れると、スタジオより見た目よく、自分好みに仕上げられ、何より動作が軽いのがお気に入りです。

さて今日は、その VSode の見た目のカスタマイズのお話です。

3 5
0 196

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

ObjectScriptでは様々な型の変数定義が可能ですが、
実際に定義された変数(Object)から、その変数の型を逆引きする方法を
ご存じな方はいらっしゃいませんでしょうか?

理想としては、Java等で利用可能な『instanceof』演算子の
代替えとなるような仕組みが望ましいです。

力技で何とかなりそうなら、専用のメソッドみたいなものを
自作で作ってもよいかなとは考えておりますが、
現状その力技すら思いついていない状況です。。。

何か情報をお持ちの方がいらしたら、助言いただけますと幸いです。

0 4
0 295

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

日本の InterSystems 開発者コミュニティで初となるコンテストを開催いたします!

初回コンテストは、技術文書ライティングコンテストで InterSystems IRIS/InterSystems IRIS for Health に関連した内容であればどのような内容でもご応募いただけます。(応募記事一覧は以下👇URLよりご覧いただけます。)

✍ InterSystems Japan 技術文書ライティングコンテスト:IRISに関連した記事 ✍

🎁 参加賞:投稿いただいた方全員に参加賞あります。

🏆 特別賞:選ばれた3作品に特別賞があります。

コンテストへの応募は簡単です!2023年9月6日(水)~11月6日(月)までの期間に開発者コミュニティに「IRISに関連した記事」を投稿してください(詳細は後述の「応募条件」「ボーナスポイント」をご参照ください)。

投票期間延期のお知らせ📣:2023年11月13日(月)23時59分まで投票いただけるように期間を延長しました!

5 4
0 374

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

現在テーブルを用いてシステムの設計を行っておりますが、
トランザクション中に、そのトランザクションの影響を受けずにテーブルを
更新するような仕組みが欲しいと考えております。
(トランザクションがRollbackされても、そのテーブルの更新だけは確定させたい。)

例えば$INCREMENT()はトランザクション中であっても、その制約を無視して値を更新できます。
そのような回避策がないかをご教示いただきたいです。

用途としては、連番を生成するAPIを作成していて、その値をテーブルで管理しています。
このAPIは複数プロセスから呼ばれることがありますが、
1トランザクション中の連続Updateにより、行ロックからテーブルロックへの昇格が行われる
(1000行以上行ロックをしたときのIRISの仕様)ことで、
他プロセスがAPIを利用できなくなるなどの影響が出ています。
今回のAPIに関しては、番号重複さえ起きなければよいので、そのような影響は受けたくありません。

0 4
0 264

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

現在開発している処理の中で、大量データをSELECT & INSERTする処理があり、合計で91分かかっています。
この処理で用いるSQLは実行結果を再利用したい等の意図があったため、ScrollableResultSetを用いていましたが、
このAPI自体がSQL実行時に全件ループを回したり、そもそも古いAPIとの事であったため、
%SQL.Statementに書き換えたところ、62分まで短縮することが出来ました。

ここからが問題なのですが、更なる処理時間の軽減のために時間がかかる処理を調査していたところ、
カラム情報を取得する%Get()メソッドにコストがかかっていることがわかりました。
なので現在はこれを改善したいと思っております。

こちらで動作を見たところ、最速は下記でいう所の「rset.name」でこちらを利用すると、41分まで削減されます。

0 4
0 201

Python から InterSystems IRIS へ接続する方法の1つである「PyODBC」(※)の利用方法をご説明します。

※ Python からのアクセスは、PyODBCの他に、Native API を利用した接続方法もあります。Native APIを利用してIRISのグローバル変数にアクセスする方法については、別の記事でご説明します。

0 4
0 670

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

InteroperabilityのRecordMapの仕組みを利用した、ファイル取り込みについて、
取り込み時のエラー内容を独自のログ出力グローバルに吐き出したいと考えております。

管理ポータル上だと以下のように表示されている内容を
文字列として取得したいだけなのですが、何か方法はありませんでしょうか?

Ent_Util.Logの中を見ると上記の内容は確認できたのですが、
わざわざシステムが吐いているログを見なくとも、
ビジネス・サービスの結果として取得できる情報があるのでは?と考えております。

0 4
0 108

こんにちは、皆さま

IRISとVSCODE環境を日頃から愛用しています。

普段は使用しませんが、実験的にCSPファイル(*.CSP)をVSCODEで編集してみようと思い試みましたが上手く行きませんでした。

VSCODEの拡張は、「InterSystems ObjectScript Extension Pack」を使用しています。

具体的は2つの方法を試しました。

1.DBからworkspaceにExportして編集+Import&Compile

ObjectScriptのソースTree-コンテキストメニューにExportが無いため動作を確認できず。

clsのExprot

cspのExportが…ない

0 4
0 373

こんにちは、皆さま。
業務でIRISを用いて開発を行っている者です。

同じ現象に陥っていた方がいれば助言頂きたいのですが、
VsCodeでIRISにリモートで接続した際、SourceControlでUserNameが取得できていないようです。

{
"objectscript.conn": {
"host": "xxxx.xxxx.xxxx.xxxx",
"port": 52773,
"ns": "RKNK",
"username": "xxxx",
"password": "xxxx",
"active": true
},
"editor.formatOnType": true
}

→SourceControlクラスで..Usernameを取得しようとしても値が入っていない。

同じような現象になった方はいらっしゃらないでしょうか?
何か情報をお持ちの方がいらっしゃれば、フォローいただけますと幸いです。

0 4
0 123

皆さん、こんにちは。

他のシステムとファイル連携を行う場合、Cachéでは、Jobコマンドを使った常駐プロセスやタスクを作成し、特定のディレクトリにあるファイルを定期的に監視、データを取り込むといった機能を手作りされていたかと思います。
これにはファイルの監視や、常駐プロセスの監視、プロセスの制御(起動、停止)を行う機能を用意する必要がありましたが、IRISではInteroperability機能が使えますので、そのようなプログラムを省略することが可能です。

今回は、既にファイル読込処理を行うルーチンが存在し、ルーチン呼出時の引数にファイル名があるという前提で、その処理をInteroperability機能を使ってどのように呼び出すかについて説明したいと思います。

手順

作業手順は以下の通りとなります。

0 3
0 326

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

ダイナミックオブジェクトから JSON 文字列を生成するときに使用する %ToJSON() の引数にストリームオブジェクトを指定することでエラーを回避できます。

コード例は以下の通りです。

USER>set temp=##class(%Stream.TmpCharacter).%New()

USER>set jsonobj={}

USER>set jsonobj.pro1=["a","b","c","d"]

USER>set jsonobj.pro2=["あ","い","う","え"]

USER>do jsonobj.%ToJSON(temp)

USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}

詳細はドキュメントもご参照下さい。

1 3
0 357

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

✨新しいコンテスト✨「InterSystems 技術文書ライティングコンテスト」の開催が決定しました!

🏆 InterSystems Tech Article Contest 🏆

いつもの「IRIS プログラミングコンテスト」とは異なり、今回は InterSystems のテクノロジに関連するあらゆるトピックについての記事を投稿いただくコンテストです!

応募期間:2021年7月15日~2021年8月15日 8月22日まで延長します!

今回は、応募期間中に投稿いただいた方 全員 特別賞 をご用意しています。

🎁優勝賞品:Apple iPad 🎁


月間 55,000人 以上の読者が訪れるインターシステムズ開発者コミュニティに記事を投稿してみませんか?

詳細は以下の通りです。

0 3
0 131

Cache2008.1+WindowsServer2008R2で稼動していたCSPアプリケーションを、Cache2018.1+WindowsServer2019に移植したところ、下記のエラーメッセージが表示されるようになってしまいました。どういった原因が考えられるでしょうか?また、対処方法をご存知でしたらご教授願います。

Unexpected status code, unable to process HyperEvent: Not Found (404)

0 3
0 249