記事 Hiroshi Sato · 2021年9月29日 2m read プログラミングでタスクスケジュールを登録・参照する方法 これは InterSystems FAQ サイトの記事です。こちらでは、タスクスケジュールを登録・参照するサンプルコードをご紹介します。 ①タスクスケジュール登録のサンプル ※毎日 am1:00に do ^TEST を実行するタスクを作成します。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 225
記事 Megumi Kakechi · 2022年5月25日 2m read 設定されているネームスペース一覧をプログラムで取得する方法 これは、InterSystems FAQサイトの記事です。%SYS.Namespace クラスの List クエリで取得することができます。 次のようなルーチンを作成し、ターミナルで実行してください。 1. サンプルの作成 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 228
記事 Megumi Kakechi · 2023年7月11日 3m read エラーのステータス値を表示する方法 クラスメソッドの多くは、%Status データ型を使用して、成功 または 失敗 の情報を返します。成功の場合は 1 が返り、失敗の場合はエラーステータス および 1 つ以上のエラーコードとテキストメッセージを含むエンコードされた文字列が返ります。このようなメソッドでは、戻り値を必ず取得して確認するようにしてください。 こちらの記事では、失敗の場合の具体的なエラー情報を確認する方法をご紹介します。 #ObjectScript #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 1 0 1 102
記事 Tomohiro Iwamoto · 2020年6月5日 18m read InterSystemsデータプラットフォームとパフォーマンス –パート3: CPUに注目 今週は、ハードウェアの主な”食品群” (^_^) の1つであるCPUに注目します。お客様から、次のようなシナリオについてのアドバイスを求められました。お客様の本番サーバーはサポート終了に近づいており、ハードウェアを交換する時期が来ています。 また、仮想化によってサーバーを一元的に管理できるようにし、ベアメタルか仮想化によりキャパシティを適正化したいとも考えています。 今日はCPUに焦点を当てますが、後日の記事では、メモリやIOといったほかの主要食品群を適正化するアプローチについて説明したいと思います。 では、質問を整理しましょう。 #システム管理 #パフォーマンス #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 549
記事 Minoru Horita · 2020年7月6日 7m read Python Gateway パート II:インストール この連載記事では、InterSystemsデータプラットフォーム用のPython Gatewayについて説明します。 また、InterSystems IRISからPythonコードなどを実行します。 このプロジェクトは、InterSystems IRIS環境にPythonの力を与えます。 #AI #Python #機械学習 #言語 #InterSystems IRIS Open Exchange app 0 0 1 237
記事 Tomoko Furuzono · 2020年9月7日 6m read フリーテキスト検索:SQL開発者が秘密にしているテキストフィールドの検索方法* アプリケーションに、効率的に検索したいフリーテキストを含むフィールドがありますか?これまで複数の方法を試してみたものの、顧客が要求するパフォーマンスを満たせなかった経験はありませんか?私は変わった手段を使ってあらゆる問題を解決できると思っていませんか。もうご存じですよね。私ができるのは、パフォーマンス低下に対処する優れたソリューションを提供することです。 #iFind #オブジェクトデータモデル #ObjectScript #SQL #インデックス付け #Caché #InterSystems IRIS 0 0 0 263
記事 Hiroshi Sato · 2020年10月5日 9m read Caché .Net BindingアプリケーションをIRISの.Net Native APIを利用して書き換える方法(その3) ここで紹介するサンプルは、以下のGitHubから入手可能です。 IRIS .Netサンプル jpegファイルを読んで、IRISデータベースに格納するサンプル 上記GitHub上のinsertbinary\insertbinary\binread.csというファイル名です。 処理内容は、ファイルシステム上のjpeg形式のファイルを読み込んで、BLOB形式でIRISデータベースに格納します。 Caché ではADO.NET Managed Providerを使用して実装していましたが、それをIRISのInterSystems Managed Provider for .NETを使用して書き換えました。(名前が変わっていますが、ADO.NETに関しては、機能はほとんど同じです) 従って、厳密に言うと.Net Native APIを使用していませんが、コネクションオブジェクトの使用方法は共通なので、この部分は、Native APIを使用していると言うこともできます。 #InterSystems IRIS 0 0 0 338
記事 Mihoko Iijima · 2020年10月27日 8m read 【はじめてのInterSystems IRIS】Interoperability(相互運用性):コンポーネントの作成(ビジネス・プロセス) この記事はこちらの投稿の続きの内容です。 前回の記事では、システム統合に必要なコンポーネントの中から、ビジネス・オペレーションの作成について解説しました。 今回の記事では、確認した2つのビジネス・オペレーションを順番を守って呼び出しを行うビジネス・プロセスの作成について解説します。 #ビジネスプロセス(BPL) #初心者 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 576
記事 Toshihiko Minamoto · 2020年12月4日 5m read SOAP(Web)サービスでの OAuth2 の使用 みなさん、こんにちは。 数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。 Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。 #SOAP #セキュリティ #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 576
記事 Hiroshi Sato · 2020年12月16日 2m read SQLインジェクションに対する対策 これはInterSystems FAQ サイトの記事です。 SQLインジェクションに関しては、様々なWebサイトで対策等が公開されていますが、InterSystems SQLを使ったアプリケーションでも、他のRDBMSと同様にそれらの対策を適切に実施することで、SQLインジェクションは防げると考えられます。 さらに、InterSystems Data Platform(以下IRIS)の場合、一般的なRDBMSに比較して、SQLインジェクションを実行しづらい、幾つかの施策が組み込まれています。 #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 161
記事 Megumi Kakechi · 2020年12月15日 1m read プログラムでクエリキャッシュを削除する方法 これはInterSystems FAQ サイトの記事です。 %SYSTEM.SQL クラスの Purge* メソッドを使用して削除することが可能です。 ※各メソッドの詳細は、以下ドキュメントをご参照ください。 %SYSTEM.SQLクラスについて【IRIS】 %SYSTEM.SQLクラスについて #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 292
記事 Toshihiko Minamoto · 2021年3月31日 13m read Caché のメソッドジェネレータを使ったコード生成の検証 デベロッパーの方なら、反復的なコードを書いた経験があると思います。 プログラムを使ってコードを生成できたら楽なのに、と考えたことがあるかもしれません。 まさに自分のことだと思った方、ぜひこの記事をお読みください! まずは例をお見せします。 注意: 次の例で使用する %DynamicObject インターフェースは Caché 2016.2 以上のバージョンが必要です。 このクラスに馴染みのない方は、Using JSON in Caché と題したドキュメンテーションをお読みください。 とても重宝すると思います! #オブジェクトデータモデル #コンパイラ #Caché #InterSystems IRIS 0 0 0 171
記事 Toshihiko Minamoto · 2021年1月19日 6m read 2個のBME280で気象データを取得する みなさん、こんにちは。 前回の記事では1個のBME280で気象データを取得したのですが、気温のブレが大きかったので基板からただ、基板につけたBME280のはんだを外すのが大変なので、別のBME280を外付けすることにしました。当初、ESP8266の別のIO端子と接続することを考えていたのですが、Wire.hが複数のバスに対応していないため、以下の配線図のようにカスケード接続することにしました。 #IoT #InterSystems IRIS 0 0 0 712
記事 Hiroshi Sato · 2021年10月20日 1m read IRISに含まれるアダプタについて これは、InterSystems FAQサイトの記事です。 InterSystems IRIS Data Platformにはシステム接続に良く使われる一般的な電子メール、ファイル、FTP、HTTP、ウェブサービス、REST、SQL、TCPアダプタなどが標準で含まれています。 特定アプリケーション向けに IBM WebSphere MQ アダプタや SAP Java Connector アダプタも提供します。 そしてJavaアプリケーションを呼び出すためや .Net アプリケーションを呼び出すための PEX(Production EXtension)というフレームワーク もあります。 そのほか、IRIS for HealthにはHL7 FHIR、HL7 V2、HL7 V3、CDA、DICOM、X12、ASTM,EDIFACT などのアダプタもあります。 さらに標準で用意していないカスタムアプリケーション用にはカスタムアダプタを作成することもできます。 #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 245
記事 Megumi Kakechi · 2021年4月9日 2m read 使用中のデータベースキャッシュ(グローバルバッファ)のサイズを知る方法 これは InterSystems FAQ サイトの記事です。 グローバル変数毎のデータベースキャッシュ使用量を確認するツール(^GLOBUFFユーティリティ)が用意されています。 %SYSネームスペースにて、ユーティリティを直接実行する方法と、プログラムで実行する方法があります。 ユーティリティを直接実行する方法は以下のようになります。 #ObjectScript #ツール #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 303
記事 Megumi Kakechi · 2021年5月13日 1m read ロックテーブルの使用状況を簡単に確認する方法 これは InterSystems FAQ サイトの記事です。 システムクラス SYS.Lock のメソッド GetLockSpaceInfo() にてロックテーブルの空きサイズ、使用サイズが取得可能です。 %SYS>w ##class(SYS.Lock).GetLockSpaceInfo()4717392,4712512,1200 戻り値は、“AvailableSpace, UsableSpace, UsedSpace” になり、それぞれByte単位の値を表しています。 AvailableSpace:ロックテーブルサイズから使用サイズ(UsedSpace)を引いたサイズ #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 176
記事 Megumi Kakechi · 2021年6月3日 5m read Javaから配列のような複数項目のデータを渡す方法 これは InterSystems FAQ サイトの記事です。 Java のプログラムで $List 構造のデータを扱うには、InterSystems 製品が提供する IRISList クラスを使用することが可能です。 こちらは、IRIS Native と同様に JDBCドライバの拡張機能の一部として提供しております。 Native API for Java Quick Reference(英語のみ) こちらでは、InterSystems 製品上に $List 構造を扱うクラスメソッドを作成し、それをストアドプロシージャとして公開し Java から呼び出すサンプルをご紹介します。 【使用可能バージョン】 #Java #JDBC #ヒントとコツ #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1.1K
記事 Toshihiko Minamoto · 2021年7月28日 7m read InterSystems API Management で OAuth 2.0 を使用して API を保護する - パート 3 この 3 部構成の記事では、IAM を使って、以前に IRIS にデプロイされた認証されていないサービスに OAuth 2.0 標準に従ったセキュリティを追加する方法を説明します。 パート 1 では、サービスを保護するプロセス全体を理解しやすくするために、IRIS と IAM の基本的な定義と構成を示しながら OAuth 2.0 の背景を説明しました。 パート 2 では、着信リクエストに存在するアクセストークンを検証し、検証が成功した場合にはそのリクエストをバックエンドに転送するように IAM を構成する手順について詳しく説明しました。 #API #OAuth2 #REST API #セキュリティ #InterSystems IRIS 0 0 0 168
記事 Mihoko Iijima · 2021年6月28日 2m read クラス定義でプロパティ名を変更するとそれまで参照できていたデータが参照できなくなる/参照時にエラーが発生する場合の対処方法 これは InterSystems FAQ サイトの記事です。 クラス定義の Property 定義文の名称を直接変更した場合、内部的には 元のプロパティを削除し、新しいプロパティを追加 したことになります。 このため、すでにデータを格納している永続クラスのプロパティ名をエディタで直接変更した場合、元のプロパティで設定されていた値にはアクセスができなくなります(新しいデータの格納位置が割り当てられます)。 また、変更したプロパティが必須(非ヌル)に指定されていた場合、データが存在しないために参照時にエラーが発生します。 以下の図は、左画面が変更前の状態、右画面がプロパティ名を変更してコンパイルを行った状態です。 #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 237
記事 Megumi Kakechi · 2021年8月26日 2m read クラス定義のコンパイルで、「エラー #5368:クラス名 のオブジェクトが、1プロセスでインスタンス化されています。」のエラーが出ます これは InterSystems FAQ サイトの記事です。 こちらは、コンパイル時に既にそのクラスのインスタンスを開いている場合に起こるエラーです。 対処方としては以下の2つの方法があります。 インスタンスを開いているプロセスまたはアプリケーションを終了する スタジオのビルドメニュのコンパイルオプション:コンパイルフラグ “使用中のクラスをコンパイル” をチェックしコンパイルを行う インスタンス化しているプロセスを特定したい場合は、以下のサンプルルーチンをお試しください。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 130
記事 Toshihiko Minamoto · 2021年11月9日 18m read 別のIRISメッセージビューワを作成する IRISインターオペラビリティのメッセージビューワで何かを変更できるとしたら、何を変更しますか? #Docker #ObjectScript #InterSystems Package Manager (IPM) #ビジネスオペレーション #ビジネスサービス #メッセージ検索 #相互運用性 #Ensemble #InterSystems IRIS Open Exchange app 0 0 0 195
記事 Toshihiko Minamoto · 2022年1月27日 11m read Python用IRISネイティブAPI はじめに バージョン2019.2より、InterSystems IRISは、高性能データアクセス手法としてPython用のネイティブAPIを提供してきました。 ネイティブAPIを使用すると、ネイティブのIRISデータ構造と直接対話することができます。 #API #Python #InterSystems IRIS 0 0 0 321
記事 Toshihiko Minamoto · 2022年3月8日 8m read Caché ObjectScriptによるExcelドキュメントの生成 InterSystemsを使用してExcelファイルを生成する方法はたくさんあります。ZENレポートやIRISレポート(Logiレポートまたは正式にはJReportsと呼ばれるレポート)のほか、サードパーティのJavaライブラリを使用するなど、可能性はほぼ無限です。 しかし、Caché ObjectScriptだけで単純なスプレッドシートを作成したい場合はどうでしょうか。 (サードパーティアプリケーションを使用せずに、です) 私の場合、大量の生データを含むレポート(金融関係の人たちが好むレポート)を生成する必要がありますが、私のZEN/IRISでは対応できません。私が呼ぶところの「ゼロバイトファイル」が生成され、基本的にJavaのメモリ不足となり、レポーティングサーバーに大きな負荷を生じてしまいます。 これは、Office Open XML(OOXML)を使って実現できます。 Office Open XML形式は、多数のXMLファイルで構成されるZIPパケージです。 つまり基本的には、これらのXMLファイルを生成してZIP圧縮し、.xslxに名前を変更すればよいのです。 それくらい単純です。 #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 326
記事 Toshihiko Minamoto · 2022年4月12日 3m read ビジュアルトレースと選択の自由 コミュニティの皆さん、こんにちは。お元気ですか? 皆さんは、創造性をどのようにして発揮していますか? 新しいアイデアはどのようにしてテストしていますか? 数年にもわたって、私はずっと新しいものを作り出し、既存のものを改良し、実験、テスト、破壊(いつも壊れてしまいます)を経て作り直し、そしてこのプロセスを繰り返してきました。 InterSystems が推進するコンテストは、モチベーションを大きく持ち上げてくれます。もちろん、賞品に目が行ってしまうことは否定できませんが。 しかし、賞品や報酬だけでなく、こういったコンテストでは自分の創造性が試されますし、作成、改良、テスト、実験の機会が得られます。 さらに、最も素晴らしいのは、何をやるのも自由であるということです! #メッセージ検索 #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 124
記事 Toshihiko Minamoto · 2022年4月26日 8m read クラスの全プロパティをリストする(ObjectScript がお気に入りな理由) @Ming Zhou から素晴らしい質問をいただきました。その回答は、まさに私がObjectScriptを愛用している理由を表しています。 初めて誰かに ObjectScript や IRIS を説明する際、必ず、クラスを記述してコンパイルし、テーブルを取得して、オブジェクトまたはリレーショナルのいずれか最も自然な観点からデータを操作できると説明しています。 いずれにせよ、これは単に、グローバルと呼ばれる非常に高速な内部データ構造を囲む薄めのラッパーであり、速度をさらにバーストさせる必要がある場合にも使用できます。 #ObjectScript #オブジェクトデータモデル #InterSystems IRIS 0 0 0 306
記事 Megumi Kakechi · 2022年6月29日 1m read ODBCツール等からアクセスした際に表示されるカラム順を制御する方法 これは InterSystems FAQ サイトの記事です。 デフォルトではテーブルのカラムの順番はシステムが自動的に決定します。 順番を変更するにはクラス定義を行う際にプロパティ・キーワード SqlColumnNumber でプロパティ毎に明示的に順番を設定してください。 例: Property Name As %String [SqlColumnNumber = 2]; ドキュメントは以下をご参照ください。 #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
記事 Hiroshi Sato · 2022年7月25日 1m read ミラーリングでデータベース以外のファイルを同期する方法 これは InterSystems FAQ サイトの記事です。 ミラーリングが同期の対象とするのはデータベースファイルのみです。 アプリケーションに必要なその他のファイル(CSPファイル、画像ファイル、ドキュメントファイルなど)をミラーセットを構成する二台のサーバー間で同期させるには、 NASなどを導入して共有ディスク上にそれらのファイルを配置する方法 または同期ソフトを導入して二台のサーバー間のファイルを同期させる方法 などの方法が考えられます。 また、2の方法ではWindows上ではRoboCopy、Linuxの場合にはrsyncという同期ソフトを使った実例があります。 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
記事 Mihoko Iijima · 2023年2月16日 2m read DX Jetpack for VS Code(VSCodeを使用するIRIS開発者のエクスペリエンスを向上させるツール):デベロッパーツールコンテスト2023入賞作品のご紹介 開発者の皆さん、こんにちは! InterSystems デベロッパーツールコンテスト2023 の21の応募作品の中から、Experts Nomination 第2位に輝いた @John Murray さんの DX Jetpack for VS Code (VSCodeを使用するIRIS開発者のエクスペリエンスを向上させるツール)についてご紹介します。 #ツール #開発環境 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 103
記事 Mihoko Iijima · 2023年3月13日 3m read 永続クラス定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 永続クラス定義では、データを格納するグローバル変数名を初回クラスコンパイル時に決定しています。グローバル変数名は、コンパイル後に表示されるストレージ定義(Storage)で確認できます。 例) #オブジェクトデータモデル #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 192
記事 Tomoko Furuzono · 2024年3月18日 1m read Pythonを使用して、外部のサーバからIRISへアクセスする これは、InterSystems FAQサイトの記事です。 Pythonで、IRISサーバ外部から、IRISの処理を呼び出したりIRISのデータを扱いたい場合には、Native API for Pythonを使用します。モジュールのインポートは、 import irisnative で、行います。詳細は、下記ドキュメント及び、各関連トピックをご参照ください。[ドキュメント] InterSystems Native SDK for Python #Python #言語 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 23