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

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

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

プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz

2024年開催分:

✅ウェビナー

4 17
1 462

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

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


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

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

0 8
1 284

※ 本内容は随時更新予定です。ワークショップに必要な内容をご覧いただき、参加のご検討などしていただければ幸いです。

Pythonワークショップにご参加いただく場合は、事前に以下の環境をご用意ください。

2 8
0 233

皆様こんにちは。

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 227

弊社では、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 684

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

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

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

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

0 8
0 271

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.2K

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

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

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

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

- 使用例 -

0 6
0 263

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

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

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

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

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

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

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

0 6
0 173

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

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

3 5
0 287

IRISでPythonを扱う時に、既存の%DynamicObject型の値をそのまま利用したいと思うのですが、Embedded Pythonは自動で%DynamicObjectをdict型にはしてくれません。親和性はとてもあるのですが。。。

そこで、既存プログラムで生成した%DynamicObject型の値をPython側、特に外部のPythonファイル側でdict型を期待している関数に利用するにはどうすれば良いか。

少しスマートではありませんが、%DynamicObjectを一旦JSON文字列に置き換え、Embedded Python 内でJSON文字列からdict型に変換する方法しかないようです。
以下が、その手順です。

3 5
0 155

こんにちは、皆さま。
業務で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 816

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

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

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

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

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

1 5
1 186

こんにちは、皆さま

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 448

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

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

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

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

0 4
0 227

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

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

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

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

0 4
0 125

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

日本の 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 428

こんにちは、皆さま。
業務で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 173

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

昨年初めて開催した日本の InterSystems 開発者コミュニティのコンテストですが、📣今年も開催します!📣

テーマは昨年と同じで InterSystems IRIS/InterSystems IRIS for Health に関連した内容であればどのような内容でもご応募いただけます。

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

🎁 参加賞:投稿いただいた方全員に👚開発者コミュニティ特製Tシャツ👕をプレゼントいたします!

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

8/30更新:賞品情報追加しました!ぜひご確認ください!👇

1 4
0 242

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

ジャーナルファイルのサイズが大きすぎて、管理ポータルで検索やフィルタリング等できない場合、以下の2つの方法で参照することができます。

① ^JRNDUMP ユーティリティを使用する方法
② プログラムで参照する方法

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

① ^JRNDUMP ユーティリティを使用する方法 例えば、グローバル参照 ^ABC を含むジャーナルファイルのすべてのレコードを選択する場合は、以下のようになります。


※以下、すべてのコマンドは %SYS ネームスペースで実行してください。

1 4
0 392

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

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

0 4
0 784

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

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

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

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

0 4
0 357

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

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

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

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

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

0 4
0 360

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

IRISにSQLを投げるときの動作について教えてください。

■適当なテーブルを作成
CREATE TABLE Mst.Test (id int, name varchar(10))

■データをINSERT
INSERT INTO Mst.Test VALUES (2, 'bbb ')
※文字列の末尾にスペースを追加。

■SELECT
SELECT * FROM Mst.Test WHERE name = 'bbb'
※whereの条件には末尾のスペースを入れない。

⇒上記の結果、INSERTされたデータがヒットしている。

[疑問点]
SQLの実行において、=を使って完全一致検索をしているつもりなのですが、
末尾のスペースはその条件を無視してヒットしてしまうものなのでしょうか?

何か情報をお持ちの方がいらっしゃれば、フォローいただけますと幸いです。

0 3
0 169

こんにちは、皆さん

私は、%CSP.WebSocketの非同期動作(SharedConnection=1)で、ソケットのクローズを検知する手段が見つからなくて困っています。

WebアプリケーションとIRIS間でソケットの接続、データの送受信は出来ましたが、Webアプリケーション側でソケットクローズしたとき、IRIS側でそれを検知する方法が分かりませんでした。

どなたか、IRIS(サーバ側)でソケットのクローズを検知する方法をご存じでしたら教えて下さい。

0 3
0 168

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

今年も開発者コミュニティミートアップを東京にて開催いたします!(10月1日:お申込みサイトオープンいたしました!)

日 時:2024年11月8日(金)13時半~19時

場 所:AP東京八重洲 13階

<JR各線をご利用の場合>「東京駅」八重洲中央口より徒歩6分
<東京メトロ銀座線をご利用の場合>「日本橋駅」徒歩約5分/「京橋駅」徒歩約4分
<都営浅草線をご利用の場合>「宝町駅」徒歩約4分

※ヤエチカ24番出口から出るとわかりやすいです。

参加費:無料

定 員:50名
※定員に達した際は調整をお願いすることもございます。予めご了承下さい。

申 込:(申込受付終了しました)

2 3
0 319

Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。

以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。 *実行は、%SYSネームスペースで行って下さい。*

1 3
0 625

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

こちらの記事👉「Apache Webサーバ(プライベートWebサーバ: PWS)インストレーションの廃止」でご案内していましたが、コミュニティエディションを除くInterSystems製品のバージョン2023.2以降では、プライベートWebサーバ(*)を使用した管理ポータル/Webアクセスを非推奨に変更しました。

(*)プライベートWebサーバとは、バージョン2023.1以前のInterSystems製品をインストールすると自動でインストールされる簡易的なApacheで、52773番ポートで管理ポータルやWebアクセスのテストにご利用いただけるWebサーバです。(本番運用環境には適さない簡易的なWebサーバです)

新規インストール/アップグレードインストールによるプライベートWebサーバの利用可否やインストール時の選択項目の違いについての概要は以下表をご参照ください。

2 3
0 324