#InterSystems IRIS

1 フォロワー · 1.3K 投稿

InterSystems IRISは総合データプラットフォームです

    InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。

    完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。

記事 Megumi Kakechi · 2月 18, 2021 3m read

jQuery($.getJSON と $.ajax)を使用した InterSystems IRIS データのJSON形式での取得方法をご紹介します。

以下にサンプルをご用意しました。

https://github.com/Intersystems-jp/REST_JSON_sample


サンプルには、次の内容が含まれます。

・REST + JSON
・REST + CORS

※それぞれ、$.getJSON と $.ajax で取得する方法を記載しています。

※サーバ側ではSelect文の実行結果をJSON_OBJECT関数を使用しJSON文字列で出力しています。
 関数については以下のドキュメントをご覧ください。
 JSON_OBJECT関数


使用手順は以下になります。

1. USERネームスペースに json.xml をインポート・コンパイル
 

2. テスト用データの作成(ターミナルで以下のコマンドを実行する)

    USER>do ##class(Sample.Person).Populate(200)


3. 初期設定(REST用)

   管理ポータル > セキュリティ管理 > ウェブ・アプリケーション

   新しいウェブ・アプリケーションを作成ボタンを押す

   名前 /csp/user/rest
   ネームスペース    USER
   ディスパッチ・クラス REST.Person

   保存ボタンを押す

4.

0
0 630
お知らせ Makiko Kokubun · 2月 18, 2021

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

2/16-2/18に開催しましたインターシステムズの年次カンファレンス「InterSystems Japan Virtual Summit 2021」のオンデマンド配信を開始しました。3/19(金)までご視聴いただけます。

⚡️ ご視聴はこちらから ⚡️

テーマは「データプラットフォーム最前線 ニューノーマル時代に求められるアジリティとレジリエンス」です。
InterSystems IRIS 、IRIS for Health の最新技術情報を多くのセッションを通してお届け致します。ぜひご視聴ください。*本セミナーは日本語での開催となります。

0
0 149
InterSystems公式 Toshihiko Minamoto · 2月 18, 2021

InterSystems API Manager(IAM) バージョン1.5がリリースされました

 

以前のバージョンからアップグレードできるIAMコンテナはWRCソフトウェア配布サイトのComponents areaからダウンロードすることができます。

 

ビルド番号はIAM 1.5.0.9-4 です。

 

InterSystems API Manager 1.5 ではAPIトラフィックの管理や、環境とAPI利用者の統合がさらに簡単になりました。新機能は以下の通りです。

 

  • ユーザエクスペリエンスの改善
  • 新たな開発者ポータル
  • Kafka connectivityのサポート
  •  

    このリリースは、Kong Enterprise バージョン 1.5.0.9 をベースにしています。これまでのIAMリリースにはKong Enterpriseのホワイトラベルバージョンが入っていましたが、このリリースではホワイトラベルなしバージョンが入っています。この変更で、より頻繁にリリースすることができ、 Kongの提供するドキュメントやその他の資産を効果的に活用できるようになりました。

     

    IAM 1.5のドキュメントはこちらです。このドキュメントはIAM固有の部分のみカバーしています。

    0
    0 165
    記事 Tomohiro Iwamoto · 2月 16, 2021 19m read

    目的

    CloudFormationの記事は、Linux系のものが多いですが、Windowsでも自動化したいという需要がありそうですので、オリジナル記事を元に、CloudFormationを使用してミラークラスターをWindowsサーバにデプロイする例を実装してみました。また、簡単な実行例も追加しました。
    ソースコード一式はこちらのGitレポジトリにあります。

    更新: 2021年3月1日 ワンライナーで踏み台ホスト経由でWindowsに公開鍵認証する方法を追記しました

    更新: 2022年11月29日 QuickStartの形式に合わせて大幅に変更しました。以前の内容はこちらに保存してあります。

    更新: 2022年12月21日 踏み台ホストの使用を止め、代わりにAWS System Manager(SSM)を有効化しました。プライベートサブネット上のインスタンスへのアクセスが簡素化されます。以前の内容はこちらに保存してあります。

    0
    0 805
    記事 Megumi Kakechi · 2月 15, 2021 7m read

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

    データベースキャッシュおよびルーチンキャッシュをモニターし、最適値を調べる方法をご紹介します。
     

    (1) データベースキャッシュ

    現状の設定値で問題ないかは、^GLOSTAT ユーティリティ のCache Efficency値(キャッシュ効率)でモニターします。

    Cache Efficiency 値は大きければ大きいほど良いですが、目安として100 以上であれば、設定サイズは問題ありません。

    実行例)

    %SYS>do ^GLOSTAT
    Should detailed statistics be displayed for each block type?
    0
    0 585
    記事 Megumi Kakechi · 2月 15, 2021 4m read

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


    「特権ルーチンアプリケーション」を使用し、コード中に $system.Security.AddRoles()メソッドを使用してロールを付与する仕組みを利用します。

    ※ロールベースで必要な特権を付与するため、予め特定の特権を持ったロールを作成する必要があります。

    詳細は、以下ドキュメントをご参照ください。
    特権ルーチン・アプリケーション【IRIS
    特権ルーチン・アプリケーションについて


    例えば、特定ルーチン(またはクラスメソッド)実行時のみデータベースの更新を許可するための設定は、以下のとおりです。

    (接続するデータベースに対してはREAD許可だけを持ち、あるルーチン実行時のみデータベースに対するREAD/WRITE許可を持つように設定します。)
     

    1)  データベース:Aのリソース定義を確認する

     データベース:Aのリソースに %DB_%DEFAULT が設定されている場合は、独自リソースを作成します。

    0
    0 196
    記事 Mihoko Iijima · 2月 12, 2021 3m read

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

    以下例のクラスメソッド getLatestID() のように ObjectScript のクラスメソッドを用意します。
    返したい値を戻り値に指定し、SQLストアドプロシージャ(SqlProc)キーワードを指定するだけで値が返せます。

    ClassMethod getLatestID() As %Integer [ SqlName = getLatestID, SqlProc ]
    {
        set latestID=$Order(^ISJ.TestClass1D(""),-1)
        quit latestID
    }

    操作を試す場合は、以下のクラス定義をご準備ください。

    Class ISJ.TestClass1 Extends (%Persistent, %Populate)
    {
    Property name As %String;
    
    ClassMethod getLatestID() As %Integer [ SqlName = getLatestID, SqlProc ]
    {
        set latestID=$Order(^ISJ.
    0
    0 450
    記事 Mihoko Iijima · 2月 12, 2021 5m read

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

    XMLファイルの内容を格納する永続クラス定義を作成し、%XML.Adaptor を追加で継承します。

    例は以下の通りです(右端の %XML.Adaptorクラスを追加で継承します)。

    Class ISJ.Class1 Extends (%Persistent, %Populate, %XML.Adaptor)

    次に、%XML.Reader クラスを使用して格納先のインスタンスへ、タグとクラスの関連付け(Correlate())を行い、reader.Next() でXMLを取り込みます。

    set sc=reader.OpenFile(filename)
    do reader.Correlate(tag,class)
    while reader.Next(.x,.sc) { do x.%Save() } 

    サンプルコードは以下の通りです。

    Class ISJ.Class1 Extends (%Persistent, %Populate, %XML.
    0
    0 2238
    記事 Toshihiko Minamoto · 2月 11, 2021 27m read

    InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート 

      注意: 本ガイド (特に前提条件のセクション) を理解するには、AWS に関する中級から上級レベルの知識が必要になります。 S3 バケット、EC2 インスタンスの IAM ロール、VPC、サブネットを作成する必要があります。 また、InterSystems バイナリへのアクセス (通常は WRC サイトからダウンロード可) および IRIS のライセンスキーも必要になります。

    0
    0 477
    お知らせ Makiko Kokubun · 2月 9, 2021

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

    InterSystems 開発者コミュニティでは、初めてIRIS を使われる方向けに、IRIS の概要をご紹介するウェビナーを開催致しました。そのウェビナーのアーカイブを公開致しました。

    インターシステムズのデータプラットフォーム製品をご覧になるソフトウェアエンジニアの方向けに、弊社のエンジニアが 約 30分でその特徴をご紹介します。ぜひご覧ください。

    アーカイブ配信はこちらから

    ウェビナー(アーカイブ配信)「InterSystems IRIS データプラットフォーム 概要」

    • 配信時間:23分
    • 無料でご視聴頂けます。

    アーカイブはこちら(ON24を使用しています)
    https://event.on24.com/wcc/r/2982378/17DE6BE0C44C34513F10A8D7C7B68FB0

    以下のような開発者の方におすすめです。

    • 初めてインターシステムズのデータプラットフォーム製品をお使いになる方、ご興味のある方
    • 新しいデータプラットフォームを試してみたい方
    • Caché から IRIS への移行をご検討中の方

    ぜひご視聴ください!

    0
    0 118
    お知らせ Mihoko Iijima · 2月 8, 2021

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

    第10回のグランプリ・プログラミングコンテストの 続報 📣 のテクノロジーボーナスについてご紹介します。

    今回のコンテストでは、チームで開発した作品もご応募いただけます!ぜひコンテスト詳細ページもご確認ください!







    Group Bonus Points
    General Docker 2
    ZPM 2
    Unit Testing 2
    API REST API 2
    ODBC/JDBC 2
    Native API in Java, Python, .NET, node.
    0
    0 105
    記事 Megumi Kakechi · 2月 8, 2021 1m read

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

    システムのパフォーマンスが低下した場合、OSやインターシステムズ製品の様々なツールを使用して情報収集を行い
      ”通常時と比較して、どこがどの程度変わっているか”
    を確認することで、問題のある箇所を特定できます。
    (逆に、通常時の状況が不明な場合、パフォーマンス問題点の切り分けが非常に困難となる場合もあります。)

    いざ という時に備え、通常時のパフォーマンスを確認することは、大変重要な情報となります。


    収集情報詳細は、以下のドキュメントをご参照ください。

    パフォーマンス調査ガイド

    ガイド内でご紹介しているサンプルは、https://github.com/Intersystems-jp/performance-sample からダウンロードいただけます。


    パフォーマンス低下時の情報収集ツールについては、以下の関連FAQトピックをご参照ください。

    【FAQ】パフォーマンス低下時の情報収集ツールについて教えてください。

    0
    0 183
    記事 Mihoko Iijima · 2月 5, 2021 5m read

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

    Java ゲートウェイを使用することで、Java クラスのモジュールを InterSystems IRIS から実行できます。

    【メモ】Java ゲートウェイは、外部 Java オブジェクトを InterSystems IRIS 内のネイティブ・オブジェクトと同じようにインスタンス化し、Javaオブジェクトを操作するための方法です。

    詳細は以下ドキュメントをご参照ください。
    Java ゲートウェイについて

    Java ゲートウェイを使用する手順は以下の通りです。

    1) Java ゲートウェイサーバを開始する

    2) プロキシオブジェクト(ダイナミック・プロキシ・オブジェクト)を作成して Java オブジェクトを操作する


    1) Java ゲートウェイサーバを開始する

    Java ゲートウェイサーバを開始する方法は 3 種類あります。以下のいずれかの方法で、Java ゲートウェイサーバを開始します。

    A) 管理ポータルの「オブジェクトゲートウェイ」を利用する

    B) プロダクションにJavaゲートウェイサービスを追加する

    C) java コマンドを使用する

    A)~C) の方法は以下の通りです。

    0
    0 527
    お知らせ Mihoko Iijima · 2月 1, 2021

    開発者の皆さん、こんにちは!第10回目のコンテストが発表されました👏👏

    今回は 🏆 InterSystems グランプリ・プログラミングコンテスト🏆 です!

    今回は、いつものコンテストと賞金が異なり 賞金総額:16,000ドルです( ゚Д゚)

    応募期間は 2021年2月8日~2月28日 (投票期間は 2021年3月1日~7日、勝者発表は 3月8日)です。

    優勝特典

    1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。

    🥇 1位 - $6,000  

    🥈 2位 - $3,000 

    🥉 3位 - $2,000

    2、開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。

    🥇 1位 - $3,000 

    🥈 2位 - $1,500

    🥉 3位 - $500

    複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。

    参加資格

    どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)

    コンテストのスケジュール

    2月8日~28日 応募期間(Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。

    1
    0 224
    記事 Toshihiko Minamoto · 2月 4, 2021 6m read

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

    InterSystems ObjectScript でライブラリやツール、パッケージなどを開発していると、「このパッケージはどうすればターゲットマシンに展開できるのか?」という疑問がよく浮かびます。

    また、私たちは、既に別のライブラリがインストールされていることを想定したり、その特定のバージョンのことを考慮したりしながらパッケージを開発しています。

    JavaScript や Python などでコーディングを行うと、依存関係を管理しながらパッケージを展開するのに パッケージ管理システム が必要になります。

    これを踏まえ、 InterSystems ObjectScript Package Manager のリリースを発表したいと思います!

    0
    0 364
    記事 Megumi Kakechi · 2月 2, 2021 2m read

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


    ※こちらの方法は、ミラーリング、シャドウイング、またはその他のメカニズムを使用して複製したデーターベースを比較したい場合に利用します。

    グローバル変数の比較には、DATACHECKユーティリティを利用できます。以下ドキュメントをご参照ください。
    DataCheckの概要【IRIS】

    DATACHECK ユーティリティの実行サンプルは、添付のPDFをご覧ください。
     

    ***

    ルーチンの比較は、システムルーチン %RCMP か、管理ポータルを使用します。

    以下は、管理ポータルでの使用方法になります。

    例えば、以下ルーチンがUSERネームスペースにあるとします。

    test() public{
     quit "hello"
    }

    以下ルーチンがUSER2ネームスペースにあるとします。

    test() public{
     quit "こんにちは"
    }

    以下は、USERネームスペースに接続したターミナルで %RCOM を実行した結果になります。

    ※ Compare: にルーチン名を記述し、 with: に比較したいルーチン名を記載します。
      別ネームスペースにあるルーチンを指定する場合は |"ネームスペース名"|ルーチン名.MAC で指定します。

    USER>do ^%RCMP
     
    Compare: comptest.
    0
    0 438
    記事 Megumi Kakechi · 2月 1, 2021 1m read

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

    下記のWebゲートウェイのエラーメッセージ/システム応答に対して、個別のエラーページを設定することができます。

    • サーバエラー
    • サーバビジー
    • サーバが利用可能ではありません
    • サーバタイムアウト
    • 接続が閉じられました

    設定は、Webゲートウェイ管理画面( [管理ポータル] > [システム管理] > [構成] > [Webゲートウェイ管理] )で行います。

    [デフォルトパラメータ] メニュー内の [エラーページ] セクションで、各エラー発生時に表示させるhtmlページのファイル名またはリダイレクトさせるURLを設定します。

    ※Webゲートウェイ管理画面は、下記URLからもアクセス可能です。

    http://<Webサーバアドレス>:<ポート>/csp/bin/Systems/Module.cxw

    詳細は、以下ドキュメントをご参照ください。
    カスタムエラーページについて【IRIS】
     

    0
    0 339
    記事 Hiroshi Sato · 2月 1, 2021 1m read

    これは 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))
    0
    0 325
    記事 Hiroshi Sato · 2月 1, 2021 1m read

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

    ドキュメント上は明確に記述されていませんが、エクスポートの追加ボタンを押した時に表示されるファイルダイアログのファイル名にグローバル名 + .GBLと入力することでグローバルをエクスポートの対象にすることができます。
    (例: ^aaaの場合、^aaa.gblと指定)

    この機能はクラス、ルーチン等と一緒にグローバルデータを一括してエクスポート/インポートする際に、便利な機能ですが、XMLで表現されるため、データ容量は実データに比較し大きくなりますので、大量データを処理する場合には必要な容量に注意が必要です。

    0
    0 391
    お知らせ Mihoko Iijima · 2月 1, 2021

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

    第9回 InterSystems IRIS プログラミングコンテスト(マルチモデルコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。

    今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します!

    🏆 Experts Nomination  - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 

    🥇 1位 - $2,000 は  iris-image-index-demo を開発された @José Roberto Pereira さんに贈られました!

    🥈 2位 - $1,000 は zapm を開発された @Sergey Mikhailenk さんに贈られました!

    🥉 3位 - $500 は iris-multimodel-suite を開発された @Renato Banzai さんに贈られました!

    🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。

    🥇 1位 - $1,000 は HealthInfoQueryLayer を開発された @Botai Zhang さんに贈られました!

    0
    0 95
    記事 Mihoko Iijima · 2月 1, 2021 3m read

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

    IRIS プログラミングコンテストでは、💨すぐに💨開発を開始いただけるようにコンテナ版 IRIS を利用した「開発環境テンプレート」をご提供してしていました。

    終了したコンテストにはご応募いただけませんが、テンプレートは「ちょっと試したい」「加工して自分オリジナル環境を作りたい」の目的にぴったりの内容です。

    また、全て Open Exchange で公開されていて、Docker、Git、VSCode をインストールした環境があればすぐにご利用いただけます。

    テンプレートの使用方法については、各コンテストの紹介ページでご案内しています(日本語解説ビデオ付きもあります)。

    基本は以下 3 行だけで開始できます。(とっても簡単!)

    git clone <ここにテンプレートのURL>
    
    cd <作成されたディレクトリ>
    
    docker-compose up -d --build

    ご興味ある内容ありましたら、ぜひお手元で試してみてください!



    コンテスト名 内容紹介+テンプレート解説ビデオ(YouTube) テンプレート
    REST

    https://www.intersystems.

    0
    0 390
    記事 Mihoko Iijima · 1月 29, 2021 4m read

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

    %SYS.Journal.File クラスの ByTimeReverseOrder クエリ と %SYS.Journal.Record クラスの List クエリを使用して検索することができます。

    それぞれのクエリの役割は以下の通りです。

    A) %SYS.Journal.File クラスの ByTimeReverseOrder クエリ

    ジャーナルファイル名を取得できます。ジャーナルファイル名の降順で結果が返ります。​​

    USER>set stmt=##class(%SQL.Statement).%New()
    
    USER>set status=stmt.%PrepareClassQuery("%SYS.Journal.File","ByTimeReverseOrder")
    
    USER>set rs=stmt.%Execute()
    
    USER>while rs.%Next() { write rs.%Get("Name"),! }
    c:\intersystems\irishcom\mgr\journal\20230725.002
    c:\intersystems\irishcom\mgr\journal\20230725.
    0
    0 527
    記事 Mihoko Iijima · 1月 29, 2021 4m read

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

    システム提供の %SYS.GlobalQueryクラス の Size クエリーを使用することで取得できます。

    2026/3/31 更新:%SQL.Statementクラスの利用方法を追加+サブスクリプトのサイズ取得方法を追記しました。

    使用例は、以下のサンプルコードをご参照ください。
    ※カラムやパラメータの指定はクラスリファレンスをご確認ください。

    %SQL.Statementクラス(推奨方法)を利用して実行する例は以下の通りです。

     set dir="/usr/irissys/mgr/user"  // データベースディレクトリ
     set stmt=##class(%SQL.Statement).%New()
     set status=stmt.%PrepareClassQuery("%SYS.GlobalQuery","Size")
     write status // 1が戻れば実行できます。
     set rset=stmt.%Execute(dir)
     while rset.%Next() {
      write rset.%Get("Name"),"-",rset.%Get("Used MB"),!
    0
    0 440
    記事 Henrique Dias · 1月 28, 2021 3m read

    2020年に世界を襲ったパンデミックの影響で、COVID-19のニュースや数字をみんなでフォローするようになりました。

    これを機に、世界の予防接種の数を追いかけて、シンプルで楽しいものを作ってみてはいかがでしょうか。

    この課題に立ち向かうために、私はOur World in Dataで提供されたデータを利用しています。世界最大の問題を解決するための研究とデータ。

    Github上にCOVID-19のデータで専用のリポジトリを用意してくれていて、そのワクチンのデータを持ってトラッカーを手伝ってくれました。

    もしあなたが彼らを知らなかったら、それをチェックしてみてください、それはあなたにとって価値ある時間です。 Github repository

    アプリケーション iris-vaccine-trackerには、3つの異なるページがあります。

    1. メインダッシュボード
    2. ダッシュボードに表示されている詳細情報のデータ表
    3. ヒートマップ

    ダッシュボード

    メインダッシュボードでは、世界中の予防接種の状況を簡単に知ることができます。

    最初のウィジェットは:

    • ワクチンを何本接種しているのか
    • ワクチン接種に関する情報を提供している国はどれくらいあるのか
    • これまでに申請した予防接種の合計。

    2つ目のウィジェットでは、最も重要な予防接種数の多いトップ10の国の予防接種を時系列で見ることができます。

    2
    0 186
    記事 Toshihiko Minamoto · 1月 28, 2021 4m read

    独自の組織データアーキテクチャを書き、InterSystems IRIS にマッピングする必要がある場合は、以下にご紹介するデータアーキテクチャダイアグラムおよび InterSystems IRIS ドキュメンテーションのリファレンスに記載されている内容を考慮してください。

     

    アーキテクチャマッピング

  • SQL データベース: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GSQL
  • 管理されるファイル: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=AFL_mft および https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=SETEDIGuides
  • IoT ブローカー、イベント、センサー: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EMQTT
  • メッセージ: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?
  • 0
    0 240
    質問 Taro Yamada · 1月 28, 2021

    皆さんこんにちは。

    以下のメソッドでは日付の入った配列を受け取り、すべてのYYYY-MM-DD形式の
    日付を$horologに変換しているのですが、たまに日付が古すぎるものが入っており
    <VALUE OUT OF RANGE>エラーが発生して途中で止まってしまいます。
    エラー時にエラーメッセージを代入してそのまま継続できる方法はないでしょうか?

    プログラムは以下の通りです。

    Class DC.Sample Extends %RegisteredObject [ Language = objectscript ]
    { 
    /// 配列に入っているYYYY-MM-DD形式の日付を$horologに変換する
    ClassMethod TransDate(array) As %Status
    {
    set key="" for {
       set key=$order(array(key),1,data)
       quit:key=""
    
       set array(key)=$zdh(data,3)
    }
    quit $$$OK
    } 
    }

    よろしくお願いいたします。

    2
    0 850
    お知らせ Makiko Kokubun · 1月 28, 2021

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

    インターシステムズは、2/16(火)~ 2/18日(木)の3日間にかけて、オンラインカンファレンス「InterSystems Japan Virtual Summit 2021」を開催致します。

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

    テーマは「データプラットフォーム最前線 ニューノーマル時代に求められるアジリティとレジリエンス」です。
    InterSystems IRIS 、IRIS for Health の最新技術情報を多くのセッションを通してお届け致します。ぜひご参加ください。*本セミナーは日本語での開催となります。

    0
    0 171
    記事 Hiroshi Sato · 1月 27, 2021 1m read

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

    InterSystems ObjectScript言語では引数の異なる同名のメソッドを定義することはできません。

    InterSystems ObjectScript言語は一般的に動的言語と呼ばれるプログラミング言語に分類されます。

    ObjectScriptではメソッド実行時にどの引数を使用するかどうかは自由に制御可能ですので、動的プログラミング言語ではないJava等の言語と異なり、コンパイルの段階で厳密に引数の数でメソッドを区別する必要がありません。

    従って ObjectScript言語は、オーバーロードと一般に呼ばれる言語仕様を含んでいません。

    Java等で記述されたプログラムを移植する際にオーバーロード相当の機能を実現するには、

    ClassMethod test(args... as %String)

    のように引数の後ろに ... を付加します。

    これにより、可変長引数を渡すことが可能です。

    このメソッドに複数の引数が渡された場合は、args(1)=第一引数 args(2)=第二引数というように順次設定されます。

    これを使用して、メソッドコード中で渡された引数の個数を取得して処理を分岐させることができます。

    ※ただし、引数のデータタイプを判別することはできません。

    0
    0 294
    記事 Hiroshi Sato · 1月 27, 2021 4m read

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

    クラス定義のプロパティの表示順は、スタジオのプロパティウィザードを利用して登録した場合は、末尾に追記されます。

    また、エディタ上の任意の場所でプロパティ定義文を記述する場合は、その場所に追記され、クラス定義が登録されます。


    つまり、定義者が記述した順番に登録されます。

    (スタジオが並び換えを行ったりはしません。)

    作成したクラス定義が、PersistentやSerialのようにデータベースに格納する属性を持ったクラス定義である場合、”初回のコンパイル”で クラス定義に対応するグローバル変数の定義情報=ストレージ定義を作成します。

    初回コンパイル以降に、プロパティ定義の追加が行われれば、そのプロパティに対応するグローバル変数のスロット番号を、末尾に追加し、ストレージ定義を更新します。

    以下の例は、クラス定義に対応するストレージ定義の例です。

    (初回コンパイル時の状態)

    Class Sample.
    0
    0 191