新しい投稿

検索

記事
· 2024年12月24日 1m read

新的WebTerminal —— iterm

Web Terminal 已经存在相当长一段时间了,但它存在诸多限制,并非所有功能都能正常使用。它不支持 shell,也没有诸如嵌入式 Python 支持这样的最新功能。对于那些需要编程模式的工具来说,存在一些问题。基本身份验证也不如简单的登录页面便捷,使用登录页面的话,倘若你想要改变登录应用程序的方式(比如使用单点登录,即 SSO),你还可以自行添加登录页面。

通过将最初的iris terminal 封装到一个网页表单中,利用在网络领域应用极为广泛且同样被像 Visual Studio Code(VSCode)这类工具所使用的 xterm.js,并借助 Python 施展的一些 “魔法”(这些 “魔法” 有助于实现进程间的终端交互),我们就能在网络上完整地实现终端功能了。

安装方法

zn "%SYS"
zpm "install iterm"

iTerm

为了测试它是如何在web中工作的,可以执行 term routine,如下

iTerm

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2024年12月24日 1m read

如何基于表格现有数据新增数据列

现有一个数据表的数据像这样:

我们的需求是基于表中的Item列新增一个status字段,如果item的内容是第一次出现,那么status列就是New,反之显示Old,

比如,应该是下面的显示内容

 

在原文章的回复中, Robert Cemper给出了下面的建议

新建一个存储过程,并在SELECT查询语句中生效:

/// Return NEW for first occurance of item 
/// otherwise return OLD
Class User.ItemStat Extends %RegisteredObject
{
ClassMethod NewOld(item As %String = "") As %String [ SqlProc ]
{
    if item="" quit "?"
    if $d(^||list(item)) quit "OLD"
    if $i(^||list(item)) quit "NEW"
}
}

使用下面SELECT语句使之生效:

SELECT *, ItemStat_NewOld(item) as Status
FROM items order by 2

结果如下:

ID	date	  item	Status
1	09/13/1932	A	NEW
2	04/06/1933	D	NEW
10	06/15/1940	A	OLD
4	11/26/1940	A	OLD
6	02/19/1956	B	NEW
8	04/22/1957	D	OLD
7	05/01/1959	D	OLD
9	06/29/1961		?
3	07/04/1992	B	OLD
5	12/08/2020	D	OLD
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2024年12月24日

★受賞者発表!★InterSystems アイデア実現コンテスト(USコミュニティ)

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

アイデア実現コンテストの勝者が発表されましたのでお知らせします!

今回は 13 applications 🔥の素晴らしい投稿がありました!


Experts Nomination

🥇 1位 - $5,000 は、vault-link を開発された @Henrique Dias さん @Henry Pereira さん  @José Pereira さんに贈られました。 

🥈 2位と3位 - $2,250 は、IRIS Global VSCode Editor を開発された @Yuri Marx Pereira Gomes さんと tz - ObjectScript Time Zone Conversion Library を開発された @Eric Fortenberry さんに贈られました。  

🏅 4位 - $750 は、docs-intersystems を開発された @Dmitry Maslennikov さんに贈られました。 

🏅 5位 - $500 は、iris-unit-test-dashboard を開発された @Chi Nguyen-Rettig さんに贈られました。  

🌟 $100 - iris-HL7v2Gen を開発された @Muhammad Waseem さんに贈られました。 

🌟 $100- iris-http-calls を開発された @Oliver Wilms さんに贈られました。  

🌟 $100 - SharePoint Online SPO REST API を開発された @Mark OReilly さんに贈られました。  

🌟 $100 - Doxygenerate を開発された @John Murray さんに贈られました。  

🌟 $100 - ks-fhir-gen を開発された @Robert Barbiaux さんに贈られました。  

Community Nomination

🥇 1位 - $1,000 は、Database-Size-Monitoring を開発された @sara aplin さんに贈られました。  

🥈 2位 - $750 は、ServiceInspection を開発された @Wolis Oliavr さんに贈られました。 

🥉 3位 - $500 は、IRIS Global VSCode Editor を開発された @Yuri Marx Pereira Gomes さんに贈られました。  

🏅 4位 - $300 は、vault-link を開発された @Henrique Dias さん @Henry Pereira さん @José Pereira さんに贈られました。  

🏅 5位 - $200 は、iris-unit-test-dashboard を開発された @Chi Nguyen-Rettig さんに贈られました。 

受賞された皆さん、おめでとうございます!また、コンテストにご興味お持ちいただきありがとうございました!

次回のコンテストもご期待ください!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2024年12月24日 3m read

Interoperability(Ensemble)の大量にたまったイベントログやメッセージをAPIを利用して削除する方法

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

イベントログの削除には、Ens.Util.LogクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

 

メッセージの削除には、2種類の方法があります。

1) 2022.1.2以降の導入されたマルチプロセスで削除する方法

Ens.Ens.Util.MessagePurgeクラスのPurge()メソッドを使用します。実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

第4引数:メッセージボディも一緒に削除する場合は1を指定

第5引数:デフォルトは500(秒)が設定されていますが、大量のメッセージをパージするとクリアされたビットマップの最適化に時間を要して最適化が完了しない場合があるため、大量削除の場合は 10000000000など大きな値を指定します。

2) Ens.MessageHeaderクラスのPurge()メソッドを使用する方法。

実行時以下の引数を指定します。

第1引数:削除数(参照渡し)

第2引数:保持日数(デフォルト7)

第3引数:1を指定(Completeではないメッセージの削除を防止するための指定)

第4引数:メッセージボディも一緒に削除する場合は1を指定

 

上記パージ用メソッド実行時、ログ削除の内容もジャーナルに記録されますので、Purge()メソッド実行中プロセスのジャーナルファイルへの書き込みを無効にする設定を使用します。

※ジャーナルファイルへの書き込みが無効化されるのは、以下ユーティリティを実行しているプロセスのみのため、システム全体に影響はありません。

※注意※ ミラーリングを使用している環境でミラーデータベースへの更新ではこのジャーナル無効化の影響を受けず、ジャーナルが記録されますのでご注意ください。

以下実行例です。

//使用中プロセスのジャーナルファイルへの書き込み無効化
do DISABLE^%NOJRN
//イベントログを直近7日分を保持して削除
set st=##class(Ens.Util.Log).Purge(.cnt,7,1)
//削除数確認
write cnt,!

//マルチスレッド対応のメッセージヘッダとボディを直近7日分を保持して削除する
set st=##class(Ens.Util.MessagePurge).Purge(.cnt2,7,1,1,10000000000)
//削除数確認
write cnt2,!

//メッセージヘッダとボディを直近7日間分を保持して削除
set st=##class(Ens.MessageHeader).Purge(.cnt3,7,1,1)
//削除数確認
write cnt3,!

//使用中プロセスのジャーナルファイルへの書き込み有効化
do ENABLE^%NOJRN
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2024年12月24日 2m read

第五十七章 File 输入 输出 - READ 命令

第五十七章 File 输入 输出 - READ 命令

在定位的 READWRITE 之后,后续的 READWRITE 操作将按顺序进行,直到下一个带有 position 参数的 USE 命令。

READ 命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください