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

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

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

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

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

1 4
1 68

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

私たちのシステムでは一部グローバルを利用しているものがあるのですが、
それをテーブル定義したものと同様にDbeaver等で参照できるようにしたいと考えております。

もともと定義していたグローバル(キーを二つ持つもの)に対して、対応するPersistentのクラスを作成し、
DataLocationをそのグローバルにすることで、Dbeaverからそのクラスの存在は見えるようになったのですが、
valueの値を参照することできず、困っています。
どなたか情報をお持ちでしたらご教示いただけないでしょうか…。

■グローバル
>zw ^Test
^Test(1,2)="A"
^Test(1,3)="B"
^Test(2,1)="C"
^Test(2,2)="D"

■永続クラス

0 2
0 54

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

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

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

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

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

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

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

0 6
0 77

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

この度、新たにUbuntu環境にIRISを入れてEmbedded Pythonを用いて開発をすることとなりました。
初期設定として、Ubuntuへのpythonのインストールが必要だと考えているのですが、
その時のバージョンの指定等はあるのでしょうか?

公式サイトを漁ってもうまく見つけられず、ご存知の方がいらっしゃれば教えてください。
同様の開発をされている方で、躓きポイントなど(Ubuntuだとスタジオ使えないからVSCode必須だよ)が
あれば、合わせて助言頂けますと幸いですcheeky

0 2
1 101

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

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


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

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

0 8
1 108

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

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

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

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

0 4
0 114

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

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

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

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

0 4
0 164

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

現在複数のJob実行の仕組みをInteroperabilityの機能を使って実現しておりますが、
特定のビジネスサービスは、xx:xx~yy:yyの間実行させたくない、
という仕組みを実現させる必要が出てきました。

https://docs.intersystems.com/iris20201/csp/docbookj/DocBook.UI.Page.cls...

ここに「スケジュール指定の定義」というものがあり、まさにこれが利用できるのかと思ったのですが、
文献を見る限りだと、プロダクションそのものを停止するような仕組みに見えており、
また実際に定義を作ってみたのですが、それをどうやってプロダクションへ反映させるかもわかりませんでした。

0 2
0 104