投稿者

Developer at Paltac Corporation
質問 Yuji Ohata · 4月 13, 2023

Pythonからネームスペースを指定してグローバルを参照する方法。

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

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

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

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

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

製品版: IRIS 2022.1

Comments

Minoru Horita  4月 14, 2023 to Yuji Ohata

@Yuji Ohata さん、

リンクしていただいた回答が、現状対応できる方法だと思います。

PythonでObjectScriptと同じレベルのことができるように開発を続けているようですので、今後の拡張に期待しつつ、現在はこの方法でお願いできたらと思います。 

0
Yuji Ohata  4月 14, 2023 to Minoru Horita

ご回答いただきありがとうございます。
承知いたしました。

0
Minoru Horita  7月 4, 2023 to Yuji Ohata

2023.1では、Embedded Pythonでネームスペースを変更する関数が実装されているようです。

iris.system.Process.SetNamespace(ネームスペース) です。変更に成功した場合、変更後のネームスペース名の文字列を返すようです。(変更前を返してくれた方が良い気もしますが、、)

>>> iris.system.Process.SetNamespace("WORK")
'WORK'
0