Nova postagem

Pesquisar

Anúncio
· Maio 13

Fourth Spanish Technical Article Contest – Prizes for Everyone!

Hello Community!

The big challenge you've all been waiting for is finally here: The fourth InterSystems technical article writing contest in Spanish is here!

🏆 4th Spanish Technical Article Contest 🏆

Contest description: Write an article in Spanish in the Developer Community on any topic related to InterSystems technology.

Duration: May 12 – June 8, 2025.

Prizes for all participants: Everyone who publishes an article in Spanish during the contest period will receive a prize.

Main prize: Apple Watch SE / 10th generation iPad

 

Take part in the contest and share your knowledge with hundreds of users! It’s one of the best opportunities to publish that trick, discovery, or potential you see in InterSystems technology (Newcomers are very welcome in these contests!)

Prizes

  1. Everyone wins in the InterSystems technical article contest → Any Community member who participates in the contest will receive a gift from InterSystems for taking part.
  2. Expert Awards – The winning articles in this category will be selected by InterSystems experts, and for each position, the winner may choose one of the following:

🥇 1st place: Apple Watch SE or 10th generation iPad
🥈 2nd place: Insta360 Link 2 or Nintendo Switch Lite
🥉 3rd place: Samsonite backpack

Alternatively, any winner may choose a prize from a lower category.

Note: Prizes are subject to change if availability in the country prevents delivery.

  1. Developer Community Award – Article with the most "Likes". The winner will receive:

🎁 Samsonite Backpack

Note: Each author can only win one prize per category (in total, an author can win two prizes: one in the Experts category and one in the Community category).

Who can participate?
Anyone registered in the Developer Community, except InterSystems employees. Register here in the Community if you don't have an account yet.

Contest Duration
📝  May 12 to June 8: Article submission period.

📝 June 9 to June 15: Voting phase.

Publish your article(s) during this period. Members of the Developer Community can vote for the articles they like by clicking "Like" under each article.

Tip: The earlier you publish your article(s), the more time you'll have to get votes from both the Experts and the Community.

🎉 Once the voting is complete, we will announce the winners in the Developer Community.

Requirements
❗️ Any article written during the contest period that meets the following requirements will automatically be entered into the competition ❗️:

  • The article must be directly or indirectly related to InterSystems technology (specific features of InterSystems products or complementary tools, architectural solutions, development best practices, etc.).
  • The article must be written in Spanish.
  • The article must be 100% new (it can be a continuation of a previously published article).
  • The article cannot be a copy or translation of another article already published in the Developer Community in Spanish or in another Community.
  • Article length: >1,000 characters (links do not count toward the character count).
  • Participation mode: individual (a participant may publish multiple articles).

What can you write about?
You can choose any technical topic directly or indirectly related to InterSystems technology.

🎯 BONUS:

Experts award 9 points to the article they consider the best, 6 points to the second-best, and 3 points to the third-best. Additionally, articles can receive more points based on the following bonuses:

Note: the judges' decision is final.

  1. New author bonus: If this is your first time participating in the Spanish Technical Article Contest, your article will receive 4 extra points from the Experts.
  2. Topic bonus: If your article falls under the following topics, it will receive 3 extra points:

✔️ Use of ODBC and JDBC
✔️ Use of DB-API
✔️ Use of Dynamic SQL and Embedded SQL
✔️ Generation of OpenAPI Documentation
✔️ Authentication-related Endpoints (use of SSO, OAuth, and ZAuth)
✔️ Use of isc.rest for API development
✔️ Embedded Python in Interoperability (Operations, Services, Custom Functions)
✔️ Common IKO deployments
✔️ Adapting existing C#, Java, and Python code to IRIS and IRIS interoperability via external language gateways
✔️ GenAI, Vector Search, RAG
✔️ FHIR, EHR, OMOP
✔️ Data Fabric, Data Lake, Data Warehouse, Data Mesh
✔️ Sharding, Mirroring

  1. Video bonus: If the article is accompanied by an explanatory video, the participant will receive 2 points. Here are some tips in case you're unsure how to approach this.
  2. Tutorial bonus: You will receive 3 points if the article has tutorial characteristics, with step-by-step instructions that a developer can follow to complete one or more specific tasks.

Do you have any questions? Feel free to write to me!

We're really looking forward to your articles!

And as we always say... Ready, set, code! 🔥

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Maio 13

Problème lors d'un déploiement sur un espace de nom

Bonjour,

J'ai rencontré un problème lors du déploiement. Quand je déploie en utilisant la classe Ens.Deployment.Deploy, je ne reçois plus les logs dans le terminal. Cependant, le déploiement s'est bien passé, je le vois dans l'historique sur le portail.

Cela fonctionne sur notre environnement mais pas sur celui du client.

 

Set tSC = ##class(Ens.Deployment.Deploy).DeployCode(chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0.xml","SVCCLI.ProdClient",1,chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0_rb.xml","L",chemin_"GESL_SVCCLI_DEPLOY_CPT-243_V4_0.log",1,1)

 

Merci 🙂

3 Comments
Discussão (3)2
Entre ou crie uma conta para continuar
Artigo
· Maio 13 1min de leitura

各DDLデータ型とInterSystems IRISデータ型のマッピング定義

IRISから他DDLのデータを参照したり取り込んだりする場合、各DDLのデータ型はそれと同等の InterSystems IRIS データ型にマッピングされます。

マッピングの定義は、管理ポータル、および、下記ドキュメントページでご確認いただけます。

 

管理ポータル:[システム管理] > [構成] > [SQLとオブジェクトの設定] > [システムDDLマッピング]

 

ドキュメント:InterSystems IRIS へのデータ型のマッピングの表示

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· Maio 12

ERROR #5883: Item '%Test' is mapped from a database that you do not have write permission on

I have a local testing environment using VSCode.

I'm trying to create a routine %Test.mac, but keep getting permission error.

I have enabled write permissions to percent globals in the Admin Portal.

I'm connecting to Iris with superuser.

How do I give myself permissions?

Thanks

5 Comments
Discussão (5)2
Entre ou crie uma conta para continuar
Pergunta
· Maio 12

Error Handling Server to Client Side - Best Practices

There have been some really good, helpful posts on this already:

https://community.intersystems.com/post/robust-error-handling-and-cleanu...

https://community.intersystems.com/post/registering-new-error-code-and-e...

https://community.intersystems.com/post/objectscript-error-handling-snip...

https://community.intersystems.com/post/can-you-have-custom-status-objec...

I'm trying to put this all together and determine what is the best convention for handling errors, logging them and reporting them to the user as they navigate a web application or command line program.  

In my own evolution as a ObjectScript developer, I've tried to be more consistent for class methods that return %Status by 

- Starting each method with setting st=$$$OK

- Using a try/catch block

- Check if {somethingsWrongOrNotRight} $$$ThrowStatus($$$ERROR($$$GeneralError,"My custom error message.")) to throw the error handling into the catch block

- Log the error to our error table in the catch block using $System.Status.GetErrorText(thrownError.AsStatus()) to get the error message as defined in the bullet above and then s st=thrownError.AsStatus()

- End the method with q st

I don't know if I modeled it quite right, but I took this from studying method implications of InterSystems library methods in various classes. It works quite well especially using backend processes.  However, I am continually challenged on the best ways to get the correct error message to the client.  A few thoughts:

- Often the error message I am reporting in the audit/error log is not the one I want to display to the client 

- Sometimes, especially if implementing an API, I want to handle or consider the status code of the HTTP response.

- We work with CSP pages, REST services (building our own and implementing others), and command line applications.

- Considering the articles and advice above, what's the best way to generate custom errors that we can log to the audit log but then also format 'happy text' that we may need to show the user but also not go through the process of creating a whole new library of custom errors for tons of little validation things along the way.

A use case:

We are implementing an API that tends to have intermittent availability errors and we also call it using a session token that expires.  So if we call the API and it's a 502, we just want to stop the presses and try again later.  If we call it and it's a 403, we want to refresh the token and try again.  In the implementation method I will $$$ThrowStatus($$$ERROR($$$GeneralError,HTTPSRequest.HttpResponse.StatusCode_" "_HTTPSRequest.HttpResponse.Data.Read())) if the code is not 200 or whatever we expect as successful. 

This is good, robust info to add to the audit log so we do that in the catch block, but I still have to return a status.  502 Gateway error is not useful to the client or even to my logic that called it so I find myself doing something like if $$$ISERR(st) { if $SYSTEM.Status.GetErrorText(st)[502 {//handle that} elseif $SYSTEM.Status.GetErrorText(st)[403 {//handle this}}

I suppose this works, but it feels hacky to me.  I would prefer setting a custom error code so I didn't have to rely on the string analysis to determine what to do.  But I don't feel it's necessary to create a whole new custom error code in a library for this one off reason.  Further, if this were a method that was returning something to a client now I have an additional step of checking the string and handling the audit but also now crafting a display message to the user "The service is currently unavailable.  Please try again later or call technical support."

That $$$ThrowStatus() macro compiles to ##safeexpression($$macroERROR^%occMsgXML(%literalargs)) and I don't know from looking at that if my message could be an object so that I have something like {"errorCode": "API502", "errorAudit": "Gateway error", "errorDisplay": "The service is currently unavailable.  Please try again later or call technical support."}.  I can view the %occStatus routine but I cannot find the %occMsgXML routine to examine what I can or can't pass into this.  That said, I haven't seen this as a recommended solution anywhere, so I'm sure that's wrong.  Does anyone have a good example of how they use a %Status to report an error to a client gracefully?

At the end of the day I think I'm trying to fit square pegs into round holes, so maybe someone can set me straight on some best practices here.

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