検索

記事
· 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 さんと 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 さんに贈られました。  

🏅 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
続けるにはログインするか新規登録を行ってください
記事
· 2024年12月24日 2m read

Como administrar inscrições no InterSystems Ideas

Oi Comunidade!

Nós sabemos que pode ser frustrante receber muitos emails (e nós definitivamente não queremos adicionar no seu lote), então aqui está como você pode definir notificações por email para o portal InterSystems Ideas.

Por padrão, todos os usuários registrados são inscritos em todas as categorias de ideias. Para mudar isso, entre no seu perfil do Portal de Ideias, selecione "Edit Profile", e então clique dentro do item "Weekly summary email", clique em "categories to highlight" e escolha o que você tem interesse.

 

Também tem algumas coisas que você deve saber:

1. Quando você cria uma ideia ou vota numa ideia existente, você automaticamente se inscreve para mudanças de status e comentários relacionados àquela ideia.

2. Você pode se inscrever/desinscrever de notificações relacionadas a uma ideia especifica clicando no botão "Subscribed" no topo direito da tela.

Se você apoia uma ideia, mas não quer receber notificações, por favor não cancele seu voto para se desinscrever, use o botão "Subscribed".

3. Para ver as ideias que você se inscreveu, use o filtro "My subscriptions" no menu principal do Portal de Ideias. Esse filtro estará disponível após o login.

Ali, você pode gerenciar suas inscrições a cada ideia

4. Se você não quer notificações do Portal de Ideias, envie uma mensagem privada a @Vadim Aniskin .


Aguardando suas novas ideias, comentários e votos no InterSystems Ideas! 

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