質問 Yuji Ohata · 3月 6, 2022

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

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

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

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

どなたか、類似の仕組みを作成された方がいらっしゃったら、アイデアをいただけませんでしょうか。
最悪、ビジネスサービスのロジック内にスケジュールを見て、
処理を中断するロジックを入れるしかないと考えております。

2
0 322
記事 Toshihiko Minamoto · 3月 8, 2022 8m read

InterSystemsを使用してExcelファイルを生成する方法はたくさんあります。ZENレポートやIRISレポート(Logiレポートまたは正式にはJReportsと呼ばれるレポート)のほか、サードパーティのJavaライブラリを使用するなど、可能性はほぼ無限です。

しかし、Caché ObjectScriptだけで単純なスプレッドシートを作成したい場合はどうでしょうか。 (サードパーティアプリケーションを使用せずに、です)

私の場合、大量の生データを含むレポート(金融関係の人たちが好むレポート)を生成する必要がありますが、私のZEN/IRISでは対応できません。私が呼ぶところの「ゼロバイトファイル」が生成され、基本的にJavaのメモリ不足となり、レポーティングサーバーに大きな負荷を生じてしまいます。

これは、Office Open XML(OOXML)を使って実現できます。 Office Open XML形式は、多数のXMLファイルで構成されるZIPパケージです。 つまり基本的には、これらのXMLファイルを生成してZIP圧縮し、.xslxに名前を変更すればよいのです。 それくらい単純です。

0
0 477
InterSystems公式 Toshihiko Minamoto · 3月 3, 2022

注意事項:前回リリースしましたビルド2021.1.1.324.0には問題があります。  2021.1.1 メンテナンスリリースはWRCから削除し、ビルド2021.1.2.336.0 に更新しています。2021.1.2のコンテナ版はまもなくリリースする予定です。

2種類のメンテナンスリリースが利用可能です。  

  • Caché  2018.1.6, Ensemble 2018.1.6,  HSAP 2018.1.6
  • InterSystems IRIS 2020.1.2, IRIS for Health 2020.1.2, HealthShare Health Connect 2020.1.2 

インストレーションキットやコンテナはWRC ソフトウェア配布サイト からダウンロードできます。 Container images for the Enterprise Editions of InterSystems IRISや IRIS for Health の Enterprise Editionのコンテナイメージ、すべての関連コンポーネントはInterSystems Container Registry から取得できます。

0
0 117
記事 Megumi Kakechi · 3月 3, 2022 3m read

これは、InterSystems FAQサイトの記事です。
ある処理において、データを無期限に保存する必要がなくグローバルの強力な性能が必要になる場合に、IRISTEMP/CACHETEMP データベースに保存される一時グローバルが使用されます。
IRISTEMP/CACHETEMPデータベースはジャーナルされないので、一時グローバルの使用ではジャーナルファイルは作成されません。

IRISTEMP/CACHETEMP データベースは、システムで一時ストレージ用に使用され、ユーザも同じ用途で使用することができます。

一時グローバルとIRISTEMPデータベースの詳細については、以下のドキュメントをご覧ください。
一時グローバルと IRISTEMP データベース


一時グローバルとして使用されるグローバルには以下のようなものがあります。

0
1 463
お知らせ Toshihiko Minamoto · 3月 3, 2022

2022年2月のコミュニティリリースへようこそ!

開発者向けの新しいコミュニティ・イベント・カレンダーをご紹介します。​​​​

🎯 https://jp.community.intersystems.com/events 

このカレンダーでは、開発者コミュニティのイベント履歴を見ることができます。現在または近日中に開催されるイベントを確認したり、過去のイベントをチェックしたり、Communityのウェビナーやミートアップの録画を見たりすることができます。

ではその使い方を詳しく見ていきましょう。

0
0 85
記事 Toshihiko Minamoto · 3月 2, 2022 5m read

これは、IRIS でリレーショナルデータをクエリするアナリストとアプリケーションに、さらに優れた適応性とパフォーマンスによるエクスペリエンスを提供する IRIS SQL のイノベーションをトピックとした短い連載の 3 つ目の記事です。 2021.2 では連載の最後の記事になるかもしれませんが、この分野ではさらにいくつかの機能強化が行われています。 この記事では、このリリースで収集し始めたヒストグラムという追加のテーブル統計について、もう少し詳しく説明します。

0
0 119
記事 Tomoko Furuzono · 3月 1, 2022 2m read

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

オブジェクトに対する一般的な処理をサポートする各種関数を提供しています。
詳細は以下ドキュメントをご参照ください。
オブジェクトへの動的アクセス【IRIS】
オブジェクトへの動的アクセス


サンプルクラス(Sample.Person)を使用して、利用例をご紹介します。

【InterSystems IRIS でご確認いただく場合】
InterSystems IRISでは、サンプル定義の一部を GitHub 上に公開しています。
ダウンロード情報やインポート、データ作成手順については、下記の記事をご参照ください 。
サンプル(Sample.Person)のクラス定義ダウンロードとサンプルデータの作成について

【Caché/Ensemble/HealthShare でご確認いただく場合】
SAMPLES ネームスペースへ移動してご確認ください。

(1) クラス名の取得:$CLASSNAME(インスタンス

SAMPLES>set p=##class(Sample.Person).%OpenId(1)
SAMPLES>write $CLASSNAME(p)
Sample.Person
SAMPLES>write $CLASSNAME(p.Home)  // オブジェクト参照のプロパティ
Sample.Address
SAMPLES>
0
0 536
記事 Tomoko Furuzono · 3月 1, 2022 1m read

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

マップされたクラス・ルーチンも含めてコンパイルする場合は、コンパイラ修飾子に "/mapped=1" もしくは "/mapped" を指定します。 例えば、以下のように行います。

【例1】クラスリストを取得してコンパイル 

 do $System.OBJ.GetClassList(.list,"/mapped")
 // build your list starting from .list
 do $System.OBJ.Compile(.list) 

【例2】全てのクラスをコンパイル 

 do $system.OBJ.CompileAll("/mapped") 
0
0 183
記事 Tomoko Furuzono · 3月 1, 2022 2m read

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

ミラー構成削除時に、ミラー・データベースのミラー属性を削除するオプションを指定しないと、通常データベースに戻すことができず、次回マウント時に読み取り専用でデータベースがマウントされます。 読み書き可能なデータベースに戻すためには、システムルーチン ^MIRROR を使用してミラー属性を削除する必要があります。
手順は以下のとおりです。(%SYSネームスペースで実行します。)

0
0 284
記事 Toshihiko Minamoto · 3月 1, 2022 5m read

これは、適応性とパフォーマンスに優れた SQL エクスペリエンスを提供する 2021.2 SQL 強化機能に関する連載第 2 回目の記事です。 この記事では、前の記事で説明したランタイムプランの選択機能の主要な入力であるテーブル統計の収集におけるイノベーションに焦点を当てます。

0
1 195
記事 Mihoko Iijima · 2月 28, 2022 7m read

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

今回は、スーパーやコンビニでもらうレシートを写真で撮り、OCR を使ってレシートの画像から文字列を切り出して IRIS に登録する流れを試してみました。

サンプルでは、Google の Vision API を利用してレシートの JPG 画像から購入物品をテキストで抽出しています。

サンプルコード一式 👉 https://github.com/Intersystems-jp/iris-embeddedpython-OCR
 

最初、オンラインラーニングで使っている 「tesseract-OCR」を使ってみようと思ったのですが、レシートには半角カナが混在していたりで、半カナがなかなかうまく切り出せず、あきらめました・・(半角カナがなかったら日本語もばっちり読めていたのですが・・)

もし、tesseract-OCR で半カナを切り出す良い方法をご存知の方いらっしゃいましたら、ぜひ教えてください!

今回試すにあたり、Vision API の使い方を詳しく書いているページがありましたのでコードなど参考させていただきました。ありがとうございました。

​​【Google Colab】Vision APIで『レシートOCR』

0
1 1454
記事 Toshihiko Minamoto · 2月 24, 2022 5m read

InterSystems IRIS Data Platform の 2021.2 リリースには、ミッションクリティカルなアプリケーションを高速で柔軟性に優れ、セキュアに開発するための刺激的な新機能が多数含まれています。 Embedded Python は間違いなく脚光を浴びています(正当な理由で!)が、SQL の分野でも、テーブルデータに関する詳細な統計情報を収集し、それを最適なクエリプランに提供する、より適応性の高いエンジンに向けて大きな一歩を踏み出しました。 この短い連載記事では、2021.2 で新しく追加された 3 つの要素について詳しく説明し、ランタイムプランの選択(RTPC)を手始めに、この目標に向かって進みます。

これらについて適切な順序で話していくのは困難です(この記事を書く上で、私がどれだけ順序を入れ替えたか想像できないほどです!) というのも、これらが相互に非常にうまく機能するためです。 そのため、ご自由に順序を変えてお読みくださいsmiley

0
1 223
記事 Megumi Kakechi · 2月 23, 2022 1m read

これは、InterSystems FAQサイトの記事です。
現ジャーナルファイル名の取得は、ジャーナリング API を利用します。

##class(%SYS.Journal.System).GetCurrentFileName()


現ジャーナルファイルの使用量bytesの取得は、ジャーナリング API を利用します。

##class(%SYS.Journal.System).GetCurrentFileOffset()


実行例は以下の通りです。

%SYS>Write ##class(%SYS.Journal.System).GetCurrentFileName()
c:\journal\20110223.001
%SYS>Write ##class(%SYS.Journal.System).GetCurrentFileOffset()
1213012

あわせて、以下の関連記事も是非ご覧ください。

0
0 242
記事 Toshihiko Minamoto · 2月 22, 2022 14m read

最初のパートでは、IMAP プロトコルコマンドについて簡単に説明しました。このパートでは、IRIS を使用してこれらのコマンドを実装し、独自の IMAP クライアントを作成してみましょう!

IRIS Email フレームワーク

IRIS プラットフォームには電子メールを操作するためのデフォルトのインターフェースとクラスがあります。 これらのアーティファクトは元々 POP3 実装用に設計されていますが、 これらのインターフェースとクラスを IMAP クライアントの実装に使用して拡張できないということではありません。 それでは、このことについて説明しましょう。

  • %Net.FetchMailProtocol: メールを取得するための基本クラスです。 IMAP クライアントはこれを拡張しています。
  • %Net.MailMessage: MIME メッセージです。 %Net.MailMessagePart. を拡張します。
  • %Net.MailMessagePart: マルチパートメッセージの MIME メッセージをカプセル化します。 このクラスにはそれ自体の配列があり、メッセージのサブパートをツリーで表現できるようにします。
  • %Net.MIMEReader: このユーティリティは、メッセージの MIME コンテンツを解析するメソッドで、%Net.MIMEPart インスタンスを生成します。
  • 0
    0 167
    質問 Yuji Ohata · 2月 17, 2022

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

    現在、共通のIRIS環境を複数個所に用意するため、
    インストール・マニフェストを利用した環境構築の仕組みを作成しております。
    https://docs.intersystems.com/iris20211/csp/docbookj/DocBook.UI.Page.cl…

    Interoperabilityを有効にしたNMSPについて、
    管理ポータル上から作成すると、資格情報を保持する用のSECONDARYのローカルデータベースが
    自動で作成されるように認識しております。
    https://docs.intersystems.com/iris20211/csp/docbookj/DocBook.UI.Page.cl…

    しかし、マニフェスト経由で作成した場合にはそれが作成されていません


    ■作成しているマニフェスト

    2
    0 206
    質問 Akio Hashimoto · 2月 3, 2022

    皆さん
    こんにちは。

    最近ではVSCodeでIRISのプログラミングを行っている方も多いと思います。
    クラスメソッドなんかをコーディングし、実行してエラーとなった場合に、以下のようなエラーメッセージが取得できると思います。

    > <UNDEFINED> zNewMethod+32^ClassName.1
    

    これは、NewMethodというメソッド内の32行目でUNDEFINEDが発生した事を指していますが、これは実際にはClassName.clsのNewMethod内の32行目ではなく、ClassName.1というルーチン(int)のzNewMethodでの32行目を示しています。
    .clsから生成されるintは空行が削られたり、複数ルーチンに分割されたりしますので、実際のClassName.clsを開いてNewMethodの32行目を見ても実際のエラー箇所では無い場合があります。
    VSCodeで開発をしていると、これが結構面倒なのですが、エラーメッセージに出力される行番号を .clsや、.mac 上での行番号に変える方法があれば教えて頂きたく、よろしくお願い致します。

    2
    0 556
    記事 Toshihiko Minamoto · 2月 16, 2022 8m read

    この記事では、InterSystems IRIS プラットフォームを使用して基本的な IMAP クライアントを記述する方法を説明します。 はじめに IMAP の概要を確認してから、本題の IMAP コマンドとクライアント実装について説明します。 最後に、IRIS 相互運用性アプリケーションでこの IMAP クライアントを簡単に使用します。

    この記事では IMAP を詳しく説明していません。 詳細な情報については、この記事のリソースをご覧ください。

    IMAP の概要

    ユーザーは IMAP(Internet Message Access Protocol)を使ってメールを取得できます。 IMAP は 1980 年代に Marc Crispin によって提唱されました。以来、このプロトコルは RFC 3501 として公開され、改訂されています。 この記事の執筆時点での最新バージョンは、IMAP4rev1 です。

    0
    0 391
    InterSystems公式 Toshihiko Minamoto · 2月 15, 2022

    更新: 開発者プレビュー・リリース3が公開されました

    これはインターシステムズにとって初めての開発者プレビュー・リリースであるため、これらがどのようなものであるかを説明します。 開発者プレビュー・プログラムは、従来のIRISプレビュー・プログラムを強化したもので、約2週間ごとにリリースされ、準備が整うと機能が追加されます。 これにより、機能や機能拡張に関するフィードバックを得ることができます。 2022.1に向けた機能拡張のリストは以下の通りです。これらは最初の開発者プレビューには含まれていません。 これらは今後数週間のうちに公開される予定です。

    一般公開に先立ち、皆様からのご意見をお待ちしています。より良い製品を一緒に作っていくために、開発者コミュニティを通じてフィードバックを共有してください。

    InterSystems IRIS Data Platform 2022.1 は、エクステンデッド・メンテナンス (EM) リリースです。2022.1 には、前回の EM リリースである 2021.1 以降、継続的デリバリー (CD) リリースである 2021.2 で追加された多くの重要な新機能や拡張機能が追加されています。これらの機能強化の概要については、2021.2 のリリース・ノートをご参照ください。

    0
    0 200
    記事 Toshihiko Minamoto · 2月 14, 2022 19m read

    キーワード: IRIS、IntegratedML、Flask、FastAPI、Tensorflow Serving、HAProxy、Docker、Covid-19

    目的:

    過去数か月に渡り、潜在的なICU入室を予測するための単純なCovid-19 X線画像分類器やCovid-19ラボ結果分類器など、ディープラーニングと機械学習の簡単なデモをいくつか見てきました。  また、ICU分類器のIntegratedMLデモ実装についても見てきました。  「データサイエンス」の旅路はまだ続いていますが、「データエンジニアリング」の観点から、AIサービスデプロイメントを試す時期が来たかもしれません。これまでに見てきたことすべてを、一式のサービスAPIにまとめることはできるでしょうか。  このようなサービススタックを最も単純なアプローチで達成するには、どういった一般的なツール、コンポーネント、およびインフラストラクチャを活用できるでしょうか。

    対象範囲

    対象:

    ジャンプスタートとして、docker-composeを使用して、次のDocker化されたコンポーネントをAWS Ubuntuサーバーにデプロイできます。

    0
    0 569
    記事 Megumi Kakechi · 2月 13, 2022 2m read

    これは、InterSystems FAQサイトの記事です。
    各プロセスが消費しているメモリの内容は、Windowsリソースモニタの項目のワーキングセット、共有可能、プライベートで確認できます。

    これらの内容は以下になります。

    ワーキングセット プロセスが使用する物理メモリです。
             ワーキングセット(プライベート)とワーキングセット(共有可能)との合計です。 

    共有可能               プロセスが使用する物理メモリ内で他のプロセスと共有可能なメモリです。

    プライベート       プロセスが使用する物理メモリ内で他のプロセスと共有不可能なメモリです。


    例えば、以下のようにメモリを使用しているプロセスがある場合、ほとんどは共有メモリになっているといえます。

    ワーキングセット 5,341,472 = 共有可能 5,328,664 + プライベート12,808 (kb)


    プロセスがアクセスする共有メモリは、データベースキャッシュおよびルーチンキャッシュで使用されているメモリ領域になります。

    プロセスが大量にグローバルへのアクセスを行うと、データベースキャッシュへのアクセス量も多くなり、メモリ使用量の共有可能の数値が大きくなります。
    (最大でデータベースキャッシュサイズまで大きくなります)

    0
    0 306
    記事 Toshihiko Minamoto · 2月 9, 2022 2m read

    これは、前回の「DockerマイクロサーバーとしてのIRIS Native APIを使用するWebSocketクライアントJS」のフォローアップです。

    すべてのピースが1つのDockerイメージにまとめられたため、インストールがはるかに簡単になりました。
    作業が楽になります。 ただしもちろん、マイクロサービスの原則はわかりにくくなくなっています。
    オールインワンのバンドルパッケージであるため、 コンパクトになっています。

    0
    0 293
    InterSystems公式 Toshihiko Minamoto · 2月 9, 2022

    インターシステムズは、2018年からInterSystems IRISで2ストリームのリリースサイクルを採用しています(開始時のお知らせをご覧ください)。  

    • Continuous delivery (CD) リリース —このリリースは、新機能を迅速に提供し、継続的に更新され、新機能を直ちに利用するアプリケーションの開発、およびデプロイに最適です。
    • Extended maintenance (EM) リリース — このリリースは、CDリリースよりも頻度は低いですが、メンテナンス・リリースの安定性を提供します。新機能をいち早く利用することよりも、メンテナンスリリースでの修正が容易であることが重要な大規模エンタープライズアプリケーションに最適です。

    このアプローチについては非常に好意的なフィードバックをいただいており、人々は「鈍行列車(slow train)」と「快速列車(fast train)」という言葉を使うようになりました。 EMリリースは、大規模なオンプレミスの顧客基盤をs持つお客様やパートナーに好まれる「鈍行列車」です。 CDリリースは、最新かつ最高の機能を求めるお客様やパートナーに好まれる「快速列車」です。

    0
    0 297
    お知らせ Mihoko Iijima · 1月 28, 2022

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

    次の InterSystems プログラミングコンテストのお題が発表されました!次は、Python です!

    🏆 InterSystems Python Contest 🏆

    応募期間:2022年2月7日~20日

    💰 賞金総額: $10K 💰 + さらに賞品を用意予定です!


    1
    0 277
    お知らせ Mihoko Iijima · 2月 7, 2022

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

    InterSystems Python コンテスト 2022 のテクノロジーボーナスについてご案内します。

    以下のテクノロジを使いコンテストにご応募いただくと、ボーナス点を獲得できます!

    • Embedded Python - 4
    • Python Native API  - 3
    • Python Pex - 3
    • ObjectScript を使用しない - 5
    • アンケート への回答- 2
    • Docker コンテナの使用 - 2 
    • ZPM パッケージによるデプロイ - 2
    • オンラインデモ公開 - 2
    • コミュニティに記事を投稿する - 2
    • コミュニティに2つ目の記事を投稿する - 1
    • YouTubeでビデオを公開する - 3

    詳細は以下の通りです。

    0
    0 130
    InterSystems公式 Maki Hashizawa · 2月 7, 2022

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

    インターシステムズジャパンは、3/8(火)~ 3/9日(水)に、オンラインカンファレンス「InterSystems Japan Virtual Summit 2022」を開催致します。

    "Innovation in Data - データによるデジタル変革の推進" をテーマに、DX推進に不可欠な健全なデータの提供とデータプラットフォームの最新情報をお届け致します。ご参加をお待ちしております!

    ⚡️ 現在、事前登録受付中 ⚡️

       

    【InterSystems Japan Virtual Summit 2022 開催概要】

    ■テーマ:Innovation in Data - データによるデジタル変革の推進

    ■開催日時:2022年3月8日(火)・9日(水)13:30 - 15:45 (予定)

    ■開催形式:オンラインライブ配信

    ■参加:無料(事前登録制)

    お申込み・詳細はこちらから

    《ゲストスピーカー講演》

      「物流業界における真の課題を解決― 運ばない物流を支えるロジスティクス変革システム「Jobs」のご紹介」

       株式会社 ビーイングホールディングス 事業開発本部 部長 北川 徹也 様

      「情報連携基盤を活用した医療情報二次利用の経験」

      岩手医科大学 総合情報センター センター長 田中 良一 様

    《技術セッション》

    0
    0 257
    記事 Mihoko Iijima · 2月 4, 2022 7m read

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

    ドキュメントをみながら IRIS 2021.2 に追加された Embedded Python を試してみました!

    IRIS にログインしてるのに Pythonシェルに切り替えできて Python のコードが書けたり、Python で import iris するだけで SQL を実行できたりグローバルを操作できるので、おぉ!✨という感じです。

    ぜひ、みなさんも体感してみてください!

    では早速。

    まず、IRISにログインします。Windows ならターミナルを開きます。Windows 以外は以下実行します。

    IRIS のインストール方法を確認されたい方は、【はじめての InterSystems IRIS】セルフラーニングビデオ:基本その1:InterSystems IRIS Community Edition をインストールしてみよう!をチェックしてみてください!

    iris session iris
    0
    1 858
    記事 Toshihiko Minamoto · 2月 3, 2022 12m read

    キーワード: Pandasデータフレーム、IRIS、Python、JDBS

    目的

    PandasデータフレームはEDA(探索的データ分析)に一般的に使用されるツールです。 MLタスクは通常、データをもう少し理解することから始まります。 先週、私はKaggleにあるこちらのCovid19データセットを試していました。 基本的に、このデータは1925件の遭遇の行と231列で構成されており、タスクは、患者(1つ以上の遭遇レコードにリンク)がICUに入室するかどうかを予測するものです。 つまりこれは、いつものようにpandas.DataFrameを使用して、まず簡単にデータを確認する、通常の分類タスクです。  

    0
    0 371
    質問 Akio Hashimoto · 2月 1, 2022

    Windows端末でCachéやIRIS等を開発環境として使っています。

    Windows11での動作状況について、インターシステムズからの正式な対応はまだのようですので、

    下記のバージョンで既にインストールをされている方が居られれば、状況などを教えて頂けないでしょうか。

    特に問題無く動いていますでしょうか?

    ・Caché 2017.1

    ・IRIS for Health 2019.1

    この他のバージョンについても情報が御座いましたらよろしくお願い致します。

    2
    0 425