Nova postagem

Pesquisar

Resumo
· jan 27

InterSystems 开发者出版物,一月 20 - 26, 2025,摘要

一月 20 - 26, 2025Week at a GlanceInterSystems Developer Community
Artigo
· jan 26 2min de leitura

第八章 D 开头的术语

第八章 D 开头的术语

数据集 (dataset)

通用

表示IRIS中目录名称或目录和系统名称的逻辑实体。

数据源名称 (Data Source Name, DSN)

ODBC

数据源名称标识特定服务器系统上的特定数据库。

数据类型 (data type)

对象(Objects)

属性的数据类型决定其行为、验证要求以及如何投射到 SQLJava 等客户端。

数据类型类 (data type class)

对象(Objects)

数据类型是具有其 DATATYPE 类关键字设置的类,支持数据类型接口。该接口包括多个用于验证和 SQL 互操作性的操作。

DDL 导入工具 (DDL import utility)

对象(Objects)

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· jan 26

InterSystems 技術文書ライティングコンテスト 2025(USコミュニティ)

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

2025 年最初のコンテスト開催が決定しました!

✍️ InterSystems 技術文書ライティングコンテスト 2025(USコミュニティ) ✍️

InterSystems 製品やサービスに関連した記事であればどのような内容でもご応募いただけます。

🎁 投稿者全員に参加賞あります: コンテストに投稿いただいた参加者全員にスペシャルな参加賞をご用意いたします!

賞品:

1. 参加賞: 技術文書ライティングコンテストに投稿した方全員が勝者です!コンテスト期間中に記事を投稿してくださった方全員に以下の参加賞が贈られます。

🎁 4-in-1 Charging Cable

2. エキスパート賞 – InterSystems エキスパートにより審査され選ばれた記事に贈られます。

🥇 1位 - Nintendo Switch OLED / Hogwarts Icons - Collectors' Edition Lego / The X-Mansion Lego

🥈 2位 - Nintendo Switch Lite / Lamborghini Countach 5000 Quattrovalvole Lego

🥉 3位 - Amazon Kindle Paperwhite / Retro Radio Lego

※受賞された方は、受賞された順位より低い順位の賞品を選択することができます。

3. 開発者コミュニティアワード – 「いいね」の数で競います。

🏅 Amazon Kindle Paperwhite / Retro Radio Lego

メモ: 

  1. 著者は 1ノミネートに対して1つの賞品を獲得できます(一人の著者は、エキスパートノミネートで1賞品、コミュニティノミネートで1賞品 の合計 2 つの賞品を獲得することができます)。
  2. 同点の場合は、同点の記事に対する専門家の票数が、同点決着の基準とされます。

 

参加資格:

応募対象は、InterSystems 社員以外の開発者コミュニティメンバー(契約社員は応募できます)。アカウント作成がまだの方は、ぜひアカウントを作成してください!

ご参考:アカウント作成方法

 

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

📝  記事公開(応募)期間:2025年2月3日~3月2日 

🗳️  投票期間:2025年3月3日~3月9日

🏅  勝者発表:2025年3月10日 

開発者コミュニティメンバーは、公開された記事に「いいね!yes」をつけることで「開発者コミュニティアワード」の投票を行ったことになります。

《注意》記事の公開が早ければ早いほど、「いいね!yes」を集める期間が長くなります。

 

応募条件:

❗️ コンテスト期間中に書かれた記事で、以下の条件を満たすものは、自動的(*)にコンテストに参加することができます。

  • 記事は、InterSystems 製品やサービスに関連したものでないと投稿できません。 
  • 英語での投稿をお願いします。(スクリーンショット、コードなども含めて英語での表記でお願いします。
    • USの開発者コミュニティに投稿してください。(日本のコミュニティに投稿してからの英語翻訳記事としてUSコミュニティに投稿した場合、コンテスト対象記事として認識されませんのでご注意ください。)
  • 記事は、新しい記事で投稿してください(コンテストに応募していない既存の記事の続編でも構いません)。
  • 他のコミュニティで投稿された記事の翻訳記事では応募できません。
  • 記事には、インターシステムズの技術に関する正確で信頼できる情報のみを掲載してください。
  • 記事は400単語以上としてください(リンクとコードは文字制限にカウントしません)
  • 同じトピックであっても異なる著者による異なる内容の記事であれば許可されます。

* コミュニティのエキスパートが記事を審査します。コンテストに参加できるのは有効はコンテンツのみです。

🎯 EXTRA BONUSES

Bonus 加点  詳細

Topic bonus

以下提案されたトピックのいずれかの記事を投稿した場合加点されます。  

Video bonus

記事の公開に加えて説明ビデオを作成した場合加点されます。

Discussion bonus

1

InterSystems エキスパートによって選ばれた最も役立つ情報を記載された記事に加点されます。

(この得点を得られるのは1記事のみです)

Translation bonus

2

翻訳記事をいずれかの地域のコミュニティで公開した場合、獲得できます。詳細はこちらをご覧ください

注意:記事毎に1得点のみ

New participant bonus

5

はじめてコンテストに参加された方が獲得できます。

Application bonus

5 Open Exchangeにアプリケーションをアップロードした記事に対して獲得できます。

 

提案されたトピック

ボーナス得点を得られるトピックは以下の通りです。

✔️  ODBC と JDBC の使用
✔️  DB-API の使用
✔️  動的 SQL & 埋め込み SQL
✔️  OpenAPI ドキュメントの生成
✔️  認証関連エンドポイント(SSO、OAuth、ZAuthを使用したもの)
✔️  isc.rest を使用した API の開発
✔️  Interoperability での Embedded Python の利用(Operations, Services, カスタム関数)
✔️  IKO 共通デプロイメント
✔️  外部言語ゲートウェイを使用して既存の C#、Java、Python コードを IRIS および IRIS Interoperability に適合させる
✔️  生成AI, ベクトル検索, RAG
✔️  FHIR, EHR
✔️  Data Fabric, Data Lake, Data Warehouse, Data Mesh
✔️  シャーディング、ミラーリング

インスピレーションや例が必要ですか?ぜひベストプラクティスもご覧ください👉 #Best Practices.

あなたのライティングスキルを披露するときがしました!

🖋️ 書いて、共有して、輝いてください!


重要なお知らせ: 配送と賞品は国によって異なり、一部の国では利用できない場合があります。制限のある国のリストに含まれている場合は、@Liubka Zelenskaiaまでお問い合わせください。

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· jan 26 8min de leitura

Pyhon Embutido no InterSystems IRIS Parte - 2

No artigo anterior. Práticas de membros de classe e sua execução dentro do Python embutido. Agora voltaremos nossa atenção para o processo de alternância de espaços de nomes, acesso a variáveis globais, travessia e execução de rotinas dentro do Python embutido.

Antes de prosseguir para as outras funções. vamos revisar brevemente a função executedentro do pacote iris. Esta função é excepcionalmente benéfica para executar funções ObjectScript arbitrárias e invocação de classe.

>>> b = iris.execute('return $Piece("test^aaaa","^",2)')
>>> b
'aaaa'
>>> b = iris.execute('return $Extract("123456",2,5)')
>>> b
'2345'
>>> b = iris.execute('return $Length(123456)')
>>> iris.execute('write ##Class(%SYSTEM.SYS).NameSpace()')
LEARNING>>>
>>> b = iris.execute('return ##Class(%SYSTEM.SYS).NameSpace()')
>>> b
'LEARNING'

 

Vamos começar!

4. Mudar Namespaces

A troca de espaços de nomes durante a execução é frequentemente necessária. No entanto, diferentemente do IRIS, a troca direta de espaços de nomes dentro do Python embutido não é viável. Portanto, é essencial utilizar definições de classe existentes ou criar um método wrapper para facilitar a troca de namespaces.

ClassMethod SwitchNM() [ Language = python ]
{
    import iris
    print(iris.cls('%SYSTEM.SYS').NameSpace())
    print(iris.system.Process.SetNamespace("USER"))
    try:
        iris.cls('User.EmbeddedPython').pyGetTemplateString()
    except RuntimeError as e:
        print("Wrong NameSpace",e)
}

 

5. Global

Para utilizar as capacidades de global para travessia de dados ou para recuperar informações de sistemas globais legados diretamente, em vez de usar SQL ou objetos dentro do Python embutido, é possível acessá-lo diretamente empregando a função gref do pacote iris. Para definir ou obter valores globais, a função gref pode ser utilizada para estabelecer uma referência à variável global e atribuir valores diretamente dentro do Python.

 
iris.gref

5.1 Definir valores de global

ClassMethod SetGlobal() [ Language = python ]
{
import iris
#create a global reference
g = iris.gref('^mygbl') 
g[1],g[2]='Mon','Tue'
g["95752455",1]=iris.execute('return $LFS("Ashok,55720,9639639639,test@gmail.com",",")')
g["85752400",1]=iris.execute('return $LB("Test","9517539635","t@gmail.com")')
g["test","c1"]=iris.execute('return ##Class(MyLearn.EmbeddedPython).executeAndGetResult()') # method wil return some listbuild values
# declare values by using set function
g.set([3],'Wed')
g.set([3,1,1],'Test multilevel')
}

5.2 Buscar valores de global

 Obtenha os valores globais do Python diretamente usando os subscritos ou o método get.

ClassMethod GetGlobal() [ Language = python ]
{
    import iris
    #gets a global reference
    g = iris.gref('^mybgl') 
    # get values
    print(g[3,1,1])
    print(g.get([2,1]))
    print(g["95752455",1])
}

5.3 Travessia

order - Travessia do global é essencial para coletar múltiplos níveis de dados do global. Esta função order do Python embutido funciona de forma semelhante ao comando $Order, utilizando a função order do iris.gref. Inicialmente, é necessário estabelecer uma referência à entidade global que requer travessia.

Travessia de nível de subscrito único

ClassMethod DollarOrder() [ Language = python ]
{
    import iris
    g = iris.gref('^MyLearn.EmbeddedPythonD') # I use my persistent class global
    key = ''
    while True:
        key = g.order([key])
        if key == None:
            break
        print(f'{key} {g.get([key])}')
}

Percurso em níveis com múltiplos índices

 
global
ClassMethod DollarOrderMultiLevel() [ Language = python ]
{
 import iris
 g = iris.gref('^mygbl')
 key1= ''
 while True:
 	key1 = g.order([key1])
 	if key1== None:
 		break
 	key2 = ''
 	while True:
 		key2 = g.order([key1,key2])
 		if key2 == None:
 			break
 		value = g.get([key1,key2])
 		print(key1,key2,value)
}

query - Função de consulta a partir do iris.gref semelhante a$query. sta função coleta todos os valores globais em tuplas. O resultado da tupla contém os IDs em uma lista e os valores na próxima tupla. Você pode consultar o exemplo de tupla abaixo.

 
tuple
ClassMethod DollarQuery() [ Language = python ]
{
 	import iris
 	g = iris.gref('^mygbl')
 	key = g.query()#this will return tuples of all the subscripts
 	for x in key:
 		print(x) # output (['3', '1', '1'], 'Test multilevel')
}

data - Esta funçãodata verifica se o subscrito fornecido existe no escopo global e retorna os valores de $data usando a própria função de dados.

ClassMethod DollarData() [ Language = python ]
{
    import iris
    g = iris.gref('^mygbl')
    key1= ''
    print(g.data([1]))
}

 

6. Rotinas

Além disso, é essencial implementar os membros da classe. Devemos executar as rotinas como parte da implementação para sistemas com base de código legado e outras situações relacionadas. Consequentemente, existe uma função dedicada dentro do pacote da biblioteca iris que permite a invocação de rotinas a partir do Python embutido através do uso da função routine.

 
myirispython.mac
ClassMethod RunRoutines() [ Language = python ]
{
    import iris
    iris.routine('^myirispython')
    iris.routine('add^myirispython',1,2) # same as write $$add^myirispython(1,2)
}

Além disso, você também pode executar a rotina usando a função execute. iris.execute('do ^myirispython')

note: If the routine is not found 
>>> iris.routine('^myirispythonT')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
RuntimeError: Routine not found

Continuaremos os outros tópicos no próximo artigo.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· jan 25 2min de leitura

第七章 C - D 开头的术语

第七章 C - D 开头的术语

当前设备 (current device)

系统

处理 I/O 命令的设备。当你登录时,当前设备是你的主设备,通常是你登录时使用的终端或个人计算机。

当前目录 (current directory)

通用

你当前工作的目录。

基于游标的 SQL (cursor-based SQL)

SQL

一种嵌入式 SQL 查询类型,打开一个游标来处理查询。当你的应用程序需要访问多行数据时,必须使用游标。游标像一个指针——它专注于访问和处理一行数据,然后移动到序列中的下一行。

游标 (cursor)

SQL

在多行数据中向前移动的迭代器。

自定义存储 (custom storage)

对象(Objects)

Discussão (0)1
Entre ou crie uma conta para continuar