記事 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 396
記事 Toshihiko Minamoto · 2020年11月18日 3m read FTP ファイルのダウンロード(すべてのファイル、ファイル数)オプション: ファイルのコピーまたはファイルの移動 FTP ファイルを Intersystems Caché からダウンロードするメソッドを以下に示します。ご質問がある場合はメッセージをお寄せください。 #Code Snippet #FTP #ObjectScript #Caché 0 0 0 240
記事 Hiroshi Sato · 2020年11月16日 2m read ネームスペースやデータベースを作成するコマンドラインインタフェースとAPI これはInterSystems FAQ サイトの記事です。 Config.Configurationクラス、SYS.Databaseクラスのメソッドを使用して、ネームスペース・データベースの作成及び登録をターミナルから実行することができます。 以下はデータベースファル/CacheDB/AAA/cache.datを作成し、構成ファイル(cache.cpf)にデータベース AAA、及び、ネームスペースAAAの登録を行う一連の実行例です。*実行は、%SYSネームスペースで行って下さい。* #API #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 248
記事 Hiroshi Sato · 2020年11月16日 1m read メソッドのオーバロードについて これはInterSystems FAQ サイトの記事です。 InterSystems ObjectScript言語では引数の異なる同名のメソッドを定義することはできません。 InterSystems ObjectScript言語は一般的に動的言語と呼ばれるプログラミング言語に分類されます。 ObjectScriptではメソッド実行時にどの引数を使用するかどうかは自由に制御可能ですので、動的プログラミング言語ではないJava等の言語と異なり、コンパイルの段階で厳密に引数の数でメソッドを区別する必要がありません。 従って ObjectScript言語は、オーバーロードと一般に呼ばれる言語仕様を含んでいません。 Java等で記述されたプログラムを移植する際にオーバーロード相当の機能を実現するには、 ClassMethod test(args... as %String) のように引数の後ろに ... を付加します。 #ObjectScript #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 113
記事 Mihoko Iijima · 2020年11月12日 3m read オンラインバックアップでのバックアップサイズを見積もる方法 これはInterSystems FAQ サイトの記事です。 システムルーチン ^DBSIZE を利用するとバックアップファイルサイズを見積もることができます(メモ1もご参照ください)。 ^DBSIZE は、データベース・バックアップ・リストに選択されたデータベースを対象に、フルバックアップ/累積バックアップ/差分バックアップそれぞれのファイルサイズを見積もります。 なお、データベース・バックアップ・リストは、管理ポータルの [システム管理] > [構成] > [データベースバックアップ] > [データベース・バックアップ・リスト] から作成します。 詳細については、下記ドキュメントもご参照ください。 #バックアップ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 220
記事 Toshihiko Minamoto · 2020年11月11日 22m read Grafana ベースの mgstat(InterSystems Caché / Ensemble / HealthShareのシステム監視ツール)用 GUI こんにちは! この記事は「Prometheus で InterSystems Caché を監視する」の続きになります。 ここでは #システム管理 #監視 #視覚化 #Caché 0 0 0 348
記事 Mihoko Iijima · 2020年11月10日 4m read 大量データのロードを高速化する方法 これはInterSystems FAQ サイトの記事です。 インデックスが複数定義されているクラス/テーブルへ csv 形式等のシーケンシャルファイルから大量データをデータベースに登録する際、推奨される登録方法として、データ登録時インデックスを生成させず、登録完了後に一括でインデックスを生成する 方法があります。 この方法は、新規に大量のレコードを一括登録する際に最も有効な手段となります。 <メモ>大量のデータを追加登録する際には、既存のデータ量と新規データ量のバランスにより、この手法が有効でないケースもあります。その場合は、インデックスの再構築を範囲指定で行うこともできます。 説明に使用するクラス定義例は以下の通りです。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 347
記事 Toshihiko Minamoto · 2020年11月10日 8m read Caché ObjectScript でパフォーマンスの良い loop を書く方法について 最近行われたディスカッションの中で、Caché ObjectScript における for/while loop のパフォーマンンスが話に出ましたので、意見やベストプラクティスをコミュニティの皆さんと共有したいと思います。 これ自体が基本的なトピックではありますが、他の点では合理的と言える方法のパフォーマンスが意味する内容を見逃してしまうことがよくあります。 つまり、$ListNext を使って$ListBuild リストをイテレートするループ、または $Order を使ってローカル配列をイテレートするループが最も高速な選択肢ということです。 #Code Snippet #ObjectScript #コーディングのガイドライン #ヒントとコツ #Caché 1 0 0 366
記事 Mihoko Iijima · 2020年11月6日 2m read SELECTのみを実行できるユーザ作成方法について これはInterSystems FAQ サイトの記事です。 SELECT のみを実行できるユーザを作成するには、ユーザかロールに対してテーブルへのアクセス権限を設定することで対応できます。 設定は、管理ポータルか、GRANT 文を実行することで設定できます。GRANT 文については、以下ドキュメントもご参照ください。InterSystems SQL リファレンス - GRANT【IRIS】CachéSQLリファレンス - GRANT 管理ポータルでの設定は、ユーザまたはロールの編集画面内「SQLテーブル」タブを使用します。 #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 434
記事 Mihoko Iijima · 2020年11月6日 4m read 外れ値について これはInterSystems FAQ サイトの記事です。 テーブルチューニングを行った際に、フィールドに値がほとんど登録されていない(Null)場合や、特定の値がほとんどを占める場合、その値を [外れ値] として除外して選択性計算を行います。 また、外れ値が全レコードの何 % を占めているかの値は [外れ値の選択性] として記録されます。 InterSystems 製品のクエリオプティマイザは、選択性数値とエクステントサイズを使用してクエリの経路を決定しますが、クラスクエリ、埋め込み SQL に使用しているクエリに外れ値が含まれる場合は、外れ値の選択性が自動的に考慮され、インデックスの使用有無を決定しています。 #SQL #インデックス付け #ヒントとコツ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 408
記事 Toshihiko Minamoto · 2020年11月5日 6m read Azure BackupによるInterSystems IRISおよびCachéアプリケーション・コンシステントなバックアップ データベースシステムには非常に特殊なバックアップ要件があり、企業のデプロイメントでは、事前の検討と計画が必要です。 データベースシステムの場合、バックアップソリューションの運用上の目標は、アプリケーションが正常にシャットダウンされた時と同じ状態で、データのコピーを作成することにあります。 アプリケーションの整合性バックアップはこれらの要件を満たし、Cachéは、このレベルのバックアップ整合性を達成するために、外部ソリューションとの統合を容易にする一連のAPIを提供しています。 #Azure #インターシステムズビジネスソリューションとアーキテクチャ #クラウド #バックアップ #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 283
記事 Toshihiko Minamoto · 2020年11月3日 123m read Caché における正規表現の使用について 1.本記事の内容 Caché パターンマッチングと同様に、Caché では正規表現を使ってテキストデータのパターンを特定することができますが、後者の場合はより高い表現力を利用できます。 本記事では正規表現を簡単に紹介し、Caché での活用方法について解説します。 本記事の情報は、主に Jeffrey Friedl 氏著作の「Mastering Regular Expressions (詳説 正規表現)」に加え、もちろん Caché のオンラインドキュメンテーションなど、様々なリソースを基に提供しています。 本記事は正規表現のあらゆる可能性や詳細について解説することを意図したものではありません。 更なる詳細にご興味のある方は、チャプター 5 に記載のソースを参照してください。 オフラインで読む場合は、PDF バージョンをダウンロードしていただけます。 #ObjectScript #チュートリアル #Caché #InterSystems IRIS 0 0 1 578
記事 Hiroshi Sato · 2020年10月29日 1m read 起動時に、 CTELNETD startup error: bind(sock) failed エラーが出てスタートアップに失敗する場合の対処法 これはInterSystems FAQ サイトの記事です。 起動時に、 CTELNETD startup error: bind(sock) failed Telnet23ポートは別ソフトでは使用していません。というエラーが発生する場合の対処法です。 現在、InterSystems製品と以下のソフトの組み合わせで、この現象が発生することがわかっています。 #セキュリティ #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 443
記事 Hiroshi Sato · 2020年10月29日 1m read SQLログイン認証の際にログを出力する方法 これはInterSystems FAQ サイトの記事です。 以下のようにユーザ名、パスワードを引数に持ち、認証が成功した場合はユーザ名、失敗したときは""(NULL)を返すルーチン(SecTest^SecTest)を作成し、標準の認証システムを書き換えることができます。 SecTest(user,pass) // user1のパスワードがuser1の場合、認証OKのログを作成 if user="user1",pass="user1" { set ^sqllog($i(^sqllog))="認証OK;"_$horolog_";"_user quit user } // 認証できなかった場合、認証NGのログを作成 set ^sqllog($i(^sqllog))="認証NG;"_$horolog_";"_user quit "" #認証 #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 125
記事 Hiroshi Sato · 2020年10月29日 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を使用することをお勧めします。 $IsObject($Get(v)) #ObjectScript #Caché #InterSystems IRIS 0 0 0 213
記事 Toshihiko Minamoto · 2020年10月28日 12m read $Sequence 関数について この記事では $Increment 関数と $Sequence 関数を比較します。 まずは、$Increment 関数を聞いたことがないという方のために、その概要を説明いたします。 $Increment は、CachéObjectScript の関数で、引数をアトミックに 1 ずつインクリメントし、結果の値を返します。 $Increment にパラメーターとして渡せるのはグローバル変数ノードとローカル変数ノードのみで、任意の式を渡すことはできません。 $Increment は連続する ID の割り当てに多用されます。 その場合、$Increment のパラメーターにはグローバルノードがよく使用されます。 $Increment を使用するプロセスには確実に任意の ID が割り当てられます。 #ObjectScript #Caché 0 0 0 245
記事 Toshihiko Minamoto · 2020年10月27日 14m read Cachéでの照合 秩序(順序)はだれにとっても必要であるが、皆が同じように秩序(順序)を理解しているわけではない (ファウスト・セルチニャーニ) 免責事項: この記事では、例としてロシア語とキリル文字を使用しますが、英語以外のロケールでCachéを使用するすべての方に関連のある記事です。 この記事は主にNLS照合について言及しており、SQL照合とは異なることに注意してください。 SQL照合(SQLUPPER、SQLSTRING、照合なしを意味するEXACT、TRUCATEなど)は、値に明示的に適用される実際の関数であり、その結果はグローバルサブスクリプトに明示的に格納されることがあります。 サブスクリプトに格納されると、これらの値は当然、有効なNLS照合(「SQLおよびNLS照合」)に従うことになります。 #ObjectScript #SQL #グローバル #Caché 0 0 0 390
記事 Mihoko Iijima · 2020年10月25日 2m read %Net.HttpRequest クラスを使用して https のアクセスでエラーが発生したときに確認したいこと これはInterSystems FAQ サイトの記事です。 %Net.HttpRequest クラスの SSLConfiguration プロパティに SSL/TLS 構成の「クライアント」構成名が指定されているかご確認ください。 %Net.HttpRequest クラスを使用して、https の url にアクセスするためには、以下のドキュメントに記載されている SSL/TLS 構成 の「クライアント」構成を作成して指定した名前を SSLConfiguration プロパティに指定する必要があります。 SSL/TLS構成のクライアント構成方法 #SSL #ヒントとコツ #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 319
記事 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 272
記事 Mihoko Iijima · 2020年10月15日 5m read サーバ側ロジック(ObjectScript)で SQL を実行するときの DATE 型や TIME 型カラムの操作方法 これはInterSystems FAQ サイトの記事です。 DATE 型は InterSystems 製品のデータ型の %Date に、TIME 型は %Time に対応しています。 %Date は内部日付(特殊変数 $Horolog のカンマ区切り1番目)、%Time は内部時刻($Horolog のカンマ区切り2番目)を登録するタイプであるため、サーバ側ロジックでは表示モードを切り替えない限り、内部(論理)形式の値が使用されます。サーバ側ロジックで内部日付・時刻の表示形式を変更する方法は、操作方法により異なります。 以降の実行例では、Sample.Person テーブルを使用して解説します。(コマンド実行例は SELECT 文で記載していますが、更新文に対しても同様に記述できます。) #ObjectScript #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 2 0 0 571
記事 Hiroshi Sato · 2020年10月15日 1m read カウンタとして時間経過を正確に計測する方法 これはInterSystems FAQ サイトの記事です。 $ZHorologを使用します。 $ZHorologシステム変数はInterSystems製品を起動してからの経過時間(秒)を保持しています。 2点間の$ZHorolog値の差を取るだけで正確な経過時間を取得する事が出来ます。 詳しくは以下、ドキュメントをご参照ください。 $ZHorologについて【IRIS】 $ZHorologについて この他、秒の小数部を含む時間の日付と時間の取得には $NOW, $ZTimeStamp が使用できます。 #ObjectScript #Caché #Ensemble #InterSystems IRIS 1 0 0 138
記事 Mihoko Iijima · 2020年10月15日 6m read 誤って削除したグローバルを復旧させる方法 これはInterSystems FAQ サイトの記事です。 この記事では「グローバルを誤って削除してしまった!」という場合の対処方法をご紹介します。 誤って削除してしまった特定のグローバルを復旧するためには、バックアップファイルとジャーナルを使用します。復旧は、^ZJRNFILTユーティリティによるジャーナルリストアで条件を指定してジャーナルレコードをリストアする方法で行います。この方法で、ある時点のデータベースのバックアップに対して、削除が含まれるジャーナルレコードについて特定グローバルを削除するまでのものを適用することができます。 ^ZJRNFILTユーティリティの詳細については、以下のドキュメントをご参照ください。 #ObjectScript #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 1 0 0 380
記事 Toshihiko Minamoto · 2020年10月14日 9m read ObjectScript Class Explorer - UML 記法を使って ObjectScript クラスをみる こんにちは! この記事では、IRIS から Caché、Ensemble、HealthShare など、InterSystems の製品で使用されるクラスやその構造を理解するのに役立つツールの概要を簡単にまとめています。 つまり、そのツールはクラスやパッケージ全体を視覚化し、クラス間の相対関係を示し、ディベロッパーやチームリーダーに必要な情報をすべて提供してくれるので、わざわざ Studio に移動してコードを調べる必要が省けます。 InterSystems の製品について情報を集めている方からたくさんのプロジェクトをレビューしている方、または単純に InterSystems Technology ソリューションの新機能に興味がある方まで、ObjectScript Class Explorer の概要をぜひお読みください! #ObjectScript #オブジェクトデータモデル #ツール #視覚化 #Caché #Ensemble #HealthShare #InterSystems IRIS #Open Exchange Open Exchange app 1 0 0 269
記事 Henrique Dias · 2020年10月8日 2m read 概要 npm-iris npm-iris とは何ですか? N.P.Mは "No Project Mess "の略です。 N.P.M.は、InterSystems IRISとBootstrap 4を使用したプロジェクト&タスク管理アプリです。 No Project Messは、シンプルで直感的なプロジェクトとタスクの管理ソフトウェアで、開発者や中小企業が日々の複雑な問題を軽減できるように作成されています。 スプレッドシート、カンバン、カレンダー、ガントチャートなど、タスクのためのさまざまなビューを提供しています。 #CSP #Docker #JavaScript #ObjectScript #REST API #オープンソース #フロントエンド #Caché #InterSystems IRIS #Open Exchange Open Exchange app 0 2 0 123
記事 Toshihiko Minamoto · 2020年10月8日 18m read Ansible を使った Caché アプリケーションのプロビジョニング(パート 1) Ansible は Caché とアプリケーションコンポーネントをいかに迅速にデータプラットフォームのベンチマークにデプロイするかという課題を解決するのに役立ちました。 同じツールと方法をテストラボ、トレーニングシステム、開発環境、またはその他の環境の立ち上げも使うことができます。 顧客サイトにアプリケーションをデプロイする場合、デプロイの大部分を自動化し、アプリケーションのベストプラクティス標準に合わせてシステム、Caché、アプリケーションを確実に構成することができます。 #オープンソース #システム管理 #Caché 0 0 0 200
記事 Toshihiko Minamoto · 2020年10月5日 15m read CachéとCosFakerを使ったテスト駆動開発の簡単な紹介 CachéとCosFakerを使ったテスト駆動開発の簡単な紹介 読了****目安時間: 6分 皆さん、こんにちは。 私がTDDに初めて出会ったのは約9年前のことです。すぐに夢中になってしまいました。 最近は非常に人気が出てきているようですが、残念ながら多くの企業ではあまり使われていないようです。 また、主に初心者の方ではありますが、一体それがなんであるのか、どのように使うのかといったことさえも知らない開発者もたくさんいます。 #テスト #Caché #InterSystems IRIS Open Exchange app 1 0 0 308
記事 Toshihiko Minamoto · 2020年9月30日 14m read InterSystems IRIS のクラスクエリ InterSystems IRIS のクラスクエリ InterSystems IRIS(および Cache、Ensemble、HealthShare)のクラスクエリは、SQL クエリを Object Script のコードから分離する便利なツールです。 このクエリの基本的な機能は、同じ SQL クエリを複数の場所で異なる引数で使用する場合にクエリの本文をクラスクエリとして宣言し、このクエリを名前で呼び出すことでコードの重複を回避できるというものです。 このアプローチは、次のレコードを取得するタスクを開発者が定義するカスタムクエリにも便利です。 興味が湧きましたか? それではこのまま読み進めてください! #ObjectScript #SQL #オブジェクトデータモデル #コンパイラ #言語 #Caché 0 0 0 496
記事 Megumi Kakechi · 2020年9月30日 2m read コンソールログに出力される [SYSTEM MONITOR] DBLatency... の警告について これはInterSystems FAQ サイトの記事です。 DBLatency の Warning メッセージは、ヘルス・モニタプロセスが定期的にデータベースからのランダム読み取りが完了するまでに要した時間(ミリ秒)を計測していて、設定されている閾値(1000 msec)を超えた場合に出力されます。 mm/dd/yy-18:31:15:060 (2932) 1 [SYSTEM MONITOR] DBLatency(c:\xxx\) Warning: DBLatency = 1510 ( Warnvalue is 1000). 上記例では、C:\xxx\IRIS.DAT(または C:\xxx\CACHE.DAT)へのディスク読み取り I/O に 1510 msec かかったことを示していて、メッセージ出力時のディスク I/O 応答速度が遅いことが考えられます。 ディスク I/O 応答速度が遅い原因としては、ディスク I/O 負荷が高いことが考えられます。 #システム管理 #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 278
記事 Mihoko Iijima · 2020年9月29日 2m read SQLで最後に更新したIDを取得するには? これはInterSystems FAQ サイトの記事です。 LAST_IDENTITY() SQL関数を使用すると取得できます。※ この関数は、埋め込み SQL または ODBC 利用時に使用できます。ダイナミック SQL、SQL シェル、または管理ポータルの SQL インタフェースによる値には設定されません。 簡単な埋め込み SQL での例をご紹介します。 #ODBC #SQL #Caché #Ensemble #HealthShare #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 699
記事 Toshihiko Minamoto · 2020年9月28日 6m read Arduino で気象観測 InterSystems ハッカソンの時、Artem Viznyuk と私のチームは Arduino ボード(1 台)とその各種パーツ(大量)を所有していました。 そのため、私たちは活動方針を決めました。どの Arduino 初心者もそうであるように、気象観測所を作ることにしたのです。 ただし、Caché のデータ永続ストレージと DeepSee による視覚化を利用しました! #ターミナル #Caché 1 0 0 705