記事 Hiroshi Sato · 2021年11月29日 2m read イメージファイルをFTPサーバからアップロード/ダウンロードする方法 これは、InterSystems FAQサイトの記事です。 FTPサーバから、アップロード/ダウンロードする方法は以下の通りです。 1. FTPサーバにイメージファイルをアップロードする #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 139
記事 Mihoko Iijima · 2021年3月26日 1m read IRISTEMP / CACHETEMP 上のグローバルのみを参照する方法について これは InterSystems FAQ サイトの記事です。 管理ポータルを使用して確認する場合は、以下の手順で参照できます。 管理ポータル > [システムエクスプローラ] > [グローバル] の画面で、ネームスペースではなく データベース を指定し、IRISTEMP / CACHETEMP データベースを選択すると参照できます。 #グローバル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 202
記事 Mihoko Iijima · 2021年4月9日 1m read 指定のテーブルの全フィールドをSQLで取得する方法 これは InterSystems FAQ サイトの記事です。 INFORMATION_SCHEMA スキーマを使用して取得できます。 INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルのSQLメニューに表示されません。表示させる方法は以下の通りです。 管理ポータル→システムエクスプローラ→SQL メニューを開きます。 スキーマのプルダウン左にある「システム」をチェックします。 スキーマのプルダウンから INFORMATION_SCHEMA を選択します。 #SQL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 439
記事 Mihoko Iijima · 2021年5月23日 2m read イメージファイルを FTP サーバからアップロード/ダウンロードする方法ご紹介 これは InterSystems FAQ サイトの記事です。 %Net.FtpSession クラスを使用して FTP サーバから、アップロード/ダウンロードする方法をご紹介します。 1. FTPサーバにイメージファイルをアップロードする #FTP #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 203
記事 Hiroshi Sato · 2021年9月2日 2m read $ZF(-100)の使用方法 これは InterSystems FAQ サイトの記事です。 $ZF(-100) のコマンドは、以下のフォーマットで使用します。 $ZF(-100, フラグ, コマンド名, コマンドの引数) OSコマンドを実行する場合は、「/shell」フラグが必要です。例えば mkdir であれば、次のように使用します。 // mkdir C:\temp\newdir Write $ZF(-100, "/shell", "mkdir", "C:\temp\newdir") コマンドの引数が複数ある場合は、以下の例のように引数の数だけ二重引用符で括ってカンマ区切りで指定します。 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 417
記事 Mihoko Iijima · 2021年7月28日 1m read IRIS と他社のシステム統合製品との違い これは InterSystems FAQ サイトの記事です。 一般的なシステム統合製品はメッセージエンジン製品を中心にビジネスプロセス管理製品、ポータル製品、ビジネスアクティビティモニタリング製品などの付随する製品を1つのパッケージ製品(スイート製品と呼ばれることも多い)として提供しています。 パッケージとして提供はしていますが、個々の構成製品は通常別々に作成されたもので、操作法、リポジトリ管理、開発手法、管理手法等が各製品バラバラでシステム統合プロジェクトを実施するに当たり、これら全ての製品に習熟するためには膨大な時間がかかります。 また各製品毎に担当者をアサインするということも考えられますが、そうすると各担当者間のコミュニケーションが必要となりプロジェクト管理の手間が増えます。 InterSystems IRIS data platform にはシステム統合に必要な全ての機能が1つの製品に含まれており、統一された操作法、一元化されたリポジトリ、1つの首尾一貫した開発/管理環境が提供されます。 #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 126
記事 Megumi Kakechi · 2021年9月3日 2m read 文字列の中から数値だけを抜き出す方法 これは InterSystems FAQ サイトの記事です。 $ZSTRIPコマンドは、指定された文字列から文字のタイプと文字を削除します。このコマンドを使用することで文字列から数値部分のみを抽出することが可能です。 $ZSTRIP(string,action,remchar,keepchar) 第1引数(string) :対象文字列第2引数(action) :string から削除する対象。アクションコードとマスクコードで構成。第3引数(remchar) :削除する特定の文字を指定。第2引数のマスクコードに含まれない文字も指定可能。【オプション】第4引数(keepchar):削除しない特定の文字を指定。【オプション】 以下はその例です。 #ObjectScript #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 257
記事 Tomoko Furuzono · 2023年4月11日 3m read データ更新中にインデックスの再構築を実行する これは、InterSystems FAQサイトの記事です。データの登録/更新/削除を実行中でも、インデックスを再構築することは可能です。ただし、再構築中は更新途中の状態で参照されますので、専用ユーティリティを使用することをお勧めします。手順は以下の通りです。 追加予定のインデックス名をクエリオプティマイザから隠します。 インデックス定義を追加し、再構築を実施します。 再構築が完了したら、追加したインデックスをオプティマイザに公開します。 実行例は以下の通りです。Sample.Person の Home_State(連絡先住所の州情報)カラムに対して標準インデックス HomeStateIdx を定義する目的での例で記載します。 1、追加予定のインデックス名を Caché のクエリオプティマイザから隠します。 #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 201
記事 Tomoko Furuzono · 2022年3月1日 2m read ミラー・データベースがミラー構成削除後に読み取り専用でマウントされる これは、InterSystems FAQサイトの記事です。 ミラー構成削除時に、ミラー・データベースのミラー属性を削除するオプションを指定しないと、通常データベースに戻すことができず、次回マウント時に読み取り専用でデータベースがマウントされます。 読み書き可能なデータベースに戻すためには、システムルーチン ^MIRROR を使用してミラー属性を削除する必要があります。手順は以下のとおりです。(%SYSネームスペースで実行します。) #Mirroring #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 111
記事 Megumi Kakechi · 2022年8月18日 1m read クライアントからターミナルにログインできない場合のチェック項目について これは InterSystems FAQ サイトの記事です。 クライアントからターミナルにログイン(接続)できない時、ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。 ターミナル接続を可能にするサービスが有効になっていないことが原因として考えられます。 管理ポータル :[ホーム] > [システム管理] > [サービス] 有効になっていない場合は、リンクをクリックしてサービス定義編集画面を開き、"サービス有効"にチェックを入れて保存します。 もう一つの原因としてはOSのファイアウォールによりターミナル接続が遮断されている場合が考えられます。 リモートでターミナル接続される場合はファイアウォールの設定を無効にしてお使い下さい。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 270
記事 Megumi Kakechi · 2022年10月3日 1m read InterSystems IRIS は 2フェーズコミットをサポートしていますか? これは InterSystems FAQ サイトの記事です。 Question: InterSystems IRIS は 2フェーズコミットをサポートしていますか? Answer: サポートしていません。 2フェーズコミットはデータベースシステムがサポートしているだけでは十分ではなく、アプリケーションサーバ等の各実装が定めている2フェーズコミットのプロトコルを駆使して、アプリケーションを構築する必要があります。 また関連するシステムの全てのコンポーネントが対応している必要がある、ロングトランザクションには向いていないなど、現実に実装する局面では様々な制約事項があります。 2フェーズコミットは、技術面、設計および実装面、コスト面、性能面などハードルが非常に高いため、実際には限られた領域での利用に留まっています。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 76
記事 Mihoko Iijima · 2023年4月10日 4m read テーブル定義のデータが格納されるグローバル変数名について これは InterSystems FAQ サイトの記事です。 バージョン2017.2以降から、CREATE TABLE文で作成したテーブル定義のデータを格納するグローバル変数の命名ルールが変わり ^EPgS.D8T6.1 のようなハッシュ化したグローバル変数名が設定されます。(この変更はパフォーマンス向上のために追加されました。) ※ バージョン2017.1以前については、永続クラス定義のルールと同一です。詳細は関連記事「永続クラス定義のデータが格納されるグローバル変数名について」をご参照ください。 以下のテーブル定義を作成すると、同名の永続クラス定義が作成されます。 #SQL #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 161
お知らせ Seisuke Nakahashi · 2023年5月7日 2017.1 以前の InterSystems Caché と InterSystems Ensemble のドキュメントは PDF フォーマットのみになります 5月16日以降、 バージョン 2017.1 以前のInterSystems Caché® と InterSystems Ensemble® のドキュメントは、弊社ドキュメントウェブサイトで PDF フォーマットのみ公開されるよう変更となります。ご理解いただけますよう、どうぞよろしくおねがいします。もちろん、お手元の Caché / Ensemble のドキュメントについては、これまで通りのフォーマットでブラウザからご覧いただけます。 #Caché #Ensemble #ドキュメント 0 0 0 47
記事 Mihoko Iijima · 2024年3月4日 9m read オブジェクト同時(並行)処理オプションについて これは InterSystems FAQ サイトの記事です。 永続クラス定義(またはテーブル定義)に対してオブジェクト操作でデータの参照・更新を行うとき、オブジェクトオープンで使用する%OpenId()、オブジェクトの削除に使用する%DeleteId()の第2引数を使用して並行処理の制御方法を選択できます。 ご参考:オブジェクト同時処理のオプション 既定値は1です。(永続クラスのDEFAULTCONCURRENCYクラスパラメータでデフォルト値を指定できます。特に変更していない場合は 1を使用します) 並行処理の基本事項は以下の通りです。 #オブジェクトデータモデル #データベースのトランザクション処理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 38
記事 Hiroshi Sato · 2020年10月19日 3m read クラス定義に基づき作成されたデータを別システムに移行する方法 これはInterSystems FAQ サイトの記事です。 2つのステップにて作業します。 クラス定義の移行 クラス定義を別システムへ移行するため、XML形式またはUDL形式(拡張子.cls)のファイルにエクスポートします。 スタジオでのエクスポート手順は以下の通りです。 [ツール] > [エクスポート] > [追加]ボタンで移行したいクラスを複数選択 > [ローカルファイルにエクスポート]にチェック > ファイルの種類がXMLであることを確認し、ファイル名を入力し、[OK] この後、別システム上のスタジオで、エクスポートしたXML、UDLファイルをインポートします。 この手順で、クラス定義は移行できます。 スタジオでのインポート手順は以下の通りです。 [ツール] > [ローカルからインポート] > 上記手順で出力したXML、UDLファイルを指定します。 #システム管理 #Caché #Ensemble #InterSystems IRIS 0 0 0 269
記事 Hiroshi Sato · 2020年11月23日 1m read 変数等命名規約について これはInterSystems FAQ サイトの記事です。 変数等命名規約に関して、InterSystems自体が定めている規則の様なものはありません。 しかし、チームで開発を行う際には、何らかの命名規約を作ることをお勧めします。 一般的には、変数名から使用目的が容易に想像できる様な名前付けが好ましいです。 名前の長短で、実行性能には有意な差はないと考えて結構ですので、一目見て内容が理解しやすく、他の名前と明確な区別ができるよう、ある程度の長さを持った命名を心がけることをお勧めします。 また、先頭のアルファベットを大文字にする、単語の先頭は大文字にするというのが一般的です。しかし、昨今は、Javaで良く使われる、先頭は小文字で初めて、途中の単語の始まりを大文字にするという命名規約を使う開発者も増えてきました。 さらに変数のタイプ(一時変数、パラメータなど)がわかるように、先頭の文字で表現する方法もよく使われます。(例: tSC,pLengthなど) #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 130
記事 Hiroshi Sato · 2021年2月1日 1m read ローカル変数の値がOREFであるかどうかの判定法 これは InterSystems FAQ サイトの記事です。 $IsObject()を使用して判別できます。 調べたい変数をvとすると、 $IsObject(v)=1 // vはOREF$IsObject(v)=0 // vはOREFではない$IsObject(v)=-1 // vはOREFだが、有効なオブジェクトを指していない となります。 vが未定義の場合は、$IsObject(v)はUNDEFINEDエラーとなりますので、ご注意ください。 UNDEFINEDエラーを防止するには、次のように$Getを使用することをお勧めします。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 152
記事 Mihoko Iijima · 2021年2月12日 3m read SQL から ObjectScript で記述したプログラムを実行して値を返す方法 これは InterSystems FAQ サイトの記事です。 以下例のクラスメソッド getLatestID() のように ObjectScript のクラスメソッドを用意します。返したい値を戻り値に指定し、SQLストアドプロシージャ(SqlProc)キーワードを指定するだけで値が返せます。 ClassMethod getLatestID() As %Integer [ SqlName = getLatestID, SqlProc ] { set latestID=$Order(^ISJ.TestClass1D(""),-1) quit latestID } 操作を試す場合は、以下のクラス定義をご準備ください。 #ObjectScript #SQL #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 232
記事 Hiroshi Sato · 2021年11月24日 1m read InterSystems製品開始時に特定の処理を実行する方法 これは InterSystems FAQ サイトの記事です。 InterSystems製品開始時に、OSの実行ファイルやコマンド、InterSystems製品内に作成したプログラムを実行したい場合は SYSTEM^%ZSTART ルーチンに処理を記述します。 (%ZSTARTルーチンは%SYSネームスペースで作成します) SYSTEM^%ZSTART に記述する処理は、事前にあらゆる条件下でうまく動作することを確認してください。 ^%ZSTART ルーチンの記述ミスや、記述は正しくとも起動時にコマンドが応答を返さなかったり処理でエラーが起こった場合、InterSystems製品が起動できなくなることがあります。 詳しくは、以下ドキュメントをご参照ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 177
記事 Mihoko Iijima · 2021年3月26日 2m read Linux のシェルスクリプトでルーチンやメソッドの戻り値を取得する方法 これは InterSystems FAQ サイトの記事です。 Linux で シェルスクリプト(shell script) からルーチンやメソッドを実行し戻り値を取得するには、iris コマンドを使用します。 詳細はドキュメント「インスタンスの接続について」 をご参照ください。 コマンド記述例は以下の通りです。 iris session インスタンス名 -U ネームスペース名 "実行ルーチン・メソッド" #システム管理 #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 1K
記事 Mihoko Iijima · 2021年4月15日 2m read プログラムから、クラス定義に記述されたプロパティ定義を取得する方法 これは InterSystems FAQ サイトの記事です。 クラスに定義されたプロパティの情報については、以下システムクラスを利用して情報を取得できます。 %Dictionary.ClassDefinetion #ObjectScript #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 237
記事 Mihoko Iijima · 2021年5月23日 2m read VDOC (仮想ドキュメント)とは? これは InterSystems FAQ サイトの記事です。 仮想ドキュメント(以降VDOC)とは複雑な構造のドキュメント(メッセージ)を効率良く高速に処理するために考えられたメッセージ処理の仕組みです。 HL7に代表される EDI 標準は電子データ交換のための汎用的なかなり複雑なメッセージ形式を含んでいます。 また、メッセージの種類を増やすと運用が複雑になってしまうため、1 つのメッセージに様々なデータを詰め込む傾向があります。 その結果 1 つのメッセージは複雑かつデータ量が多いものになりがちです。 一方、実際のメッセージ交換では、メッセージの全てのデータを処理することはまれで一部のデータのみが必要となるケースがほとんどです。 #HL7 #XML #相互運用性 #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 713
記事 Mihoko Iijima · 2021年6月28日 2m read クラス定義でプロパティ名を変更するとそれまで参照できていたデータが参照できなくなる/参照時にエラーが発生する場合の対処方法 これは InterSystems FAQ サイトの記事です。 クラス定義の Property 定義文の名称を直接変更した場合、内部的には 元のプロパティを削除し、新しいプロパティを追加 したことになります。 このため、すでにデータを格納している永続クラスのプロパティ名をエディタで直接変更した場合、元のプロパティで設定されていた値にはアクセスができなくなります(新しいデータの格納位置が割り当てられます)。 また、変更したプロパティが必須(非ヌル)に指定されていた場合、データが存在しないために参照時にエラーが発生します。 以下の図は、左画面が変更前の状態、右画面がプロパティ名を変更してコンパイルを行った状態です。 #オブジェクトデータモデル #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 238
記事 Megumi Kakechi · 2021年8月5日 7m read しばらく(1ヶ月以上)使用していなかった環境にログインする方法 これは InterSystems FAQ サイトの記事です。 あるユーザが「不活動上限」を超える期間にわたって、一度もInterSystems製品にログインしなかった場合、そのユーザは無効になりログインできなくなります。 なお、この設定の初期値は、インストール時の初期セキュリティによって変わります。「通常」以上では既定値は90日間、「最小」では0日に設定されています。ユーザを有効に変更することにより再びログインすることができるようになります。 2007.1以降であれば%Allを持つユーザが最低1つは残っていますので、そのユーザでログインできればそこから設定を変更します。(%Allを持つユーザは、インストール時のセキュリティ設定によって異なります) 使用できるものがわからないときは、InterSystems製品を緊急アクセスモードで起動してログインします。 <緊急アクセスモードからの復元方法> #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 567
記事 Tomoko Furuzono · 2022年3月1日 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】全てのクラスをコンパイル #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 104
記事 Megumi Kakechi · 2022年10月13日 4m read デプロイモードで別環境にプログラムを配布する方法 以下、デプロイモード(配置モード)でプログラムを配布する方法を2つご紹介します。 ① DB内のソースコードをデプロイモードでエクスポートする方法 ② ソースコード用DBを用意してIRIS.datごとデプロイモードにする方法 ①は、プログラムのみデプロイモードでエクスポート/インポートできるので、初回システム構築時はもちろん、プログラムの修正が発生した時などソースの一部のみエクスポートすることも可能となります。②は、IRIS.dat ごとデプロイするので初回システム構築時に IRIS.dat のみ配置すればよく手順が単純です。 クラスがデプロイモードになると、そのクラスのメソッドとトリガのソースコードは削除されます。クラスがデータ型クラスである場合、クエリキャッシュによって実行時にメソッド定義が必要になる可能性があるために、メソッド定義が保持されるのでご注意ください。 #システム管理 #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 161
記事 Mihoko Iijima · 2023年4月17日 1m read データベースがReadOnlyでマウントされるケース これは InterSystems FAQ サイトの記事です。 以下の状態の時、ReadOnlyでマウントされます。 #システム管理 #データベース #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 158
記事 Mihoko Iijima · 2024年3月6日 2m read プロダクションの設定項目をクラスメソッドで取得する方法 これは InterSystems FAQ サイトの記事です。 Ens.Directorクラスのクラスメソッドを使用して取得できます。 プロダクション名(FAQSample.Interop.Production)とホスト名(FAQSample.Interop.FileOperation)を指定して設定リストを取得する方法は以下の通りです。 #ヒントとコツ #相互運用性 #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 35
記事 Hiroshi Sato · 2020年12月8日 1m read SQLでユニークな番号を自動付番する方法 これはInterSystems FAQ サイトの記事です。 連番を生成する関数($INCREMENT)を使用してユニークな番号を自動付番することができます。 SQLのSELECT文で使用する場合には OracleのSequence相当の機能を実装したクラスを利用する方法があります。 サンプルを以下のGitHubリポジトリより取得することができます。 OracleのSequence機能を実装するサンプル #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 314
記事 Mihoko Iijima · 2020年11月20日 3m read InterSystems 製品を初めて使用する方向け学習コンテンツなど これはInterSystems FAQ サイトの記事です。 現在ご覧いただいている開発者コミュニティの中では、初心者(beginner)タグ があり、下記セルフラーニング用資料/ビデオをご用意しています。ぜひご参照ください。 【はじめての InterSystems IRIS】セルフラーニングビデオ 索引 【はじめてのInterSystems IRIS】セルフラーニングビデオ:アクセス編:IRIS で作成する REST サーバの仕組み Python から IRIS にアクセスしてみよう! Python の NativeAPI に挑戦 Python から PyODBC を使って IRIS に接続してみよう 【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう! 【はじめてのInterSystems IRIS】Embedded Python セルフラーニングビデオシリーズ公開! ObjectScript クックブック 「ObjectScript」の基本の使い方から、困ったときのヒント集、エラーの読み方などを解説しています。 セルフラーニングビデオ以外にも、過去に開催したウェビナーアーカイブビデオも公開しています👉「開発者向けウェビナー:アーカイブビデオ一覧」 ぜひご参照ください。 #初心者 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 395