.png)
Well, next year will be better
- Log in to post comments
.png)
Well, next year will be better
Thanks, this year has been a bit poor, but I will not give up on continuing to publish new articles and new applications.
Thanks Enrico,
I'll bear in mind the next time. This is just the beginning, there are still many things to explore from OpenAI
.png)
@Eduard Lebedyuk Here you have ;)
Sorry, I realized that your problem is how to pass the parameters when you install the component via ZPM, not how to add the value into the item.
Hi,
In iris.script add the following line:
zpm "install iris-deploy-tools -v" In TgGptProduction.cls remove the settings of Token and ApiKey
<Item Name="Telegram.InboundService" Category="" ClassName="Telegram.LongPollingService" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
<Setting Target="Adapter" Name="SSLConfig">tg</Setting>
<Setting Target="Host" Name="Target">GPTRouter</Setting>
</Item>
....
<Item Name="St.OpenAi.BO.Api.Connect" Category="" ClassName="St.OpenAi.BO.Api.Connect" PoolSize="1" Enabled="true" Foreground="false" Comment="" LogTraceEvents="false" Schedule="">
<Setting Target="Host" Name="Organization"></Setting>
<Setting Target="Adapter" Name="SSLConfig">tg</Setting>
</Item>In Setup.cls, extends the class to St.Tools.Deploy and modify the loop to add the default configuration.
Class shvarov.telegramgpt.Setup Extends St.Tools.Deploy
{
ClassMethod Init(TgToken As %String, GPTKey As %String) As %Status
{
set st=$$$OK
set production="shvarov.telegramgpt.i14y.TgGptProduction"
for item="Telegram.InboundService","Telegram.OutboundOperation" {
set st = ..AddDefaultSetting("*",item,,"Token",TgToken)
quit:$$$ISERR(st)
}
set item="St.OpenAi.BO.Api.Connect"
set st = ..AddDefaultSetting("*",item,,"ApiKey",GPTKey)
return st
}
....
}
I hope you find it useful
Well done. Good job.
Why not use "System default settings"?
You can add the value of the property in this table and it is used in your production item.
Have a look iris-deploy-tools
A new version is coming soon... New features 😉
Great!!! Good job
Thanks, it is our Plan B... we're going to create a BP that calls to the provider and uses the variable.
Great answer, thanks mates
Thanks for the solution.
I'm using several templates of texts so It will be essential in my future developments
The error about module.xml is the ZPM installation, not for a package that I want to install
Thanks, but in that instance of IRIS there wasn't any ZPM before. How to remove the actual installation?
WOW!!!! this is the first time that I participate in a Intersystems contest and it won't be the last... thanks for all voted and congrats to the winners
I just uploaded my app... It is the first time that I participate in one of the programming contests... I hope you like it.
Thanks for all and congratulation to @Robert Cemper ... our light in our dark doubts
Hi,
Indeed, the problem was caused because the address to which it is going to connect is variable, so the component is not configured with the Server or URL parameters.
I've solved it by the following way:
set ..Adapter.HTTPServer = pRequest.Url
Set URL = pRequest.Url_"/search"
set tHttpResponse = ##class(%Net.HttpResponse).%New()
set tSC = ..Adapter.SendFormDataArray(.tHttpResponse,"POST",tHttpRequest,,,URL)
if $$$ISERR(tSC) && (tHttpResponse="") $$$ThrowStatus(tSC)
// Check what is the status code
set content = ""
while (tHttpResponse.Data.AtEnd = 0) {
set content = content_tHttpResponse.Data.Read()
}
do pResponse.%JSONImport(content)
set pResponse.StatusCode = tHttpResponse.StatusCode
Regards,
Kurro Lopez
Congratulation... next challenge... 15,000 members and 10,000,000 views 🥳🥳🥳🥳🥳
Thanks John,
We've reinstalled it using the dowload packaged from the website. Now it works.
This is the second time that the link in the WebTerminal doesn't work.
Thanks againg mate.
Best regards,
Francisco Lopez
Thanks Robert but it wasn't a firewall problem.
The problem was due the instalation didn't compile the code correctly. It doesn't get the version of ISC as expected.
I'm using the version WebTerminal-v4.9.3, in the line 1507 there is a initialization of the parameter iscProductVersion
<Parameter name="iscProductVersion">
<Description>
In older Cache versions, method "GetISCProduct" does not exists</Description>
<Expression>$case(
##class(%Dictionary.CompiledMethod).IDKEYExists("%SYSTEM.Version", "GetISCProduct"),
1: $CLASSMETHOD("%SYSTEM.Version", "GetISCProduct"),
: 2
)</Expression>
</Parameter>Later, in line 1611, it checks what is the version to set the role required:
set requiredRole = $case(..#iscProductVersion >= 4, 1: "%DB_IRISSYS", : "%DB_CACHESYS")
But, if I check what is my version, the answer is 3, instead of 4, so it was trying to set %DB_CACHESYS instead of %DB_IRISSYS, so the compilation didn't end.
w ##class(%SYSTEM.Version).GetISCProduct()
3Then, I've modified the file and change the comparison ..#iscProductVersion to check if is equal or upper than 3, and it works.
In the line 1730, there is other comparison to set the dbPrefix, so I've modified this line also.
set dbPrefix = $case(..#iscProductVersion >= 3, 1: "IRIS", : "CACHE")Now, I have the Webterminal worning fine.
Note: I'm using IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT
Best regards,
Francisco Lopez
Bienvenue

You are right.
In Europe we have the same problem when started the Gregorian calendar.
October 4th 1582 was in Julian calendar (thursday) and the next day (friday) was October 15th 1582...
If you want to retrieve the October 10th 1582... in theory that day never existed
Thanks Julian.
I thought that the rules were sequential, that is, if it met a rule, it was executed, regardless of the order.
So if a rule is met, it is executed and the "return" command causes it to exit the process.
Thanks for all.
Congratulations to all community members
Felicitaciones a todos los miembros de la comunidad
Parabéns a todos os membros da comunidade
コミュニティメンバーの皆さん、おめでとうございます
恭喜所有社區成員
I'm sorry for the translations, I just wanted to extend congratulations to all the communities.![]()
Thanks.. the 3,5 was the answer... now it's working !!!
Very good presentation. They are a true trio of pocker aces to win
And all the crew that are in the same ship
.png)
If you are missing other templates from Atelier or Studio... add the following links:
Hi,
The $HOROLOG is the cache datetime format, then the first part is de date and the second part is the time. The time is in seconds, then if you want to increase 15 minutes, you should to plus the time (15*60)
This is a example:
.png)
It only works if you are in the same day, because it raises an error
.png)
The best way to increase minutes, days, months, etc... is using $system.SQL.DATEADD method
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…
Best regards,
Kurro
Hi Sean,
I've created my Business Operation using the wizard to create SOAP Client.
I've modified the object to change the location and namespace according to the provider. This value is into the message.
This is a pice of the code:
Method MyMethod(pRequest As MyMessageWS.RequestsearchInfoRequest, Output pResponse As MyMessageWS.RequestsearchInfoResponse) As %Library.Status
{
do ..prepareOperation(pRequest)
Set tSC = ..Adapter.InvokeMethod("searchInfo",.info,pRequest.idSpeciality,pRequest.listaActs,pRequest.healthCenter,pRequest.aditionalInfo)
Quit:$$$ISERR(tSC) tSC
Set tSC = pRequest.NewResponse(.pResponse) Quit:$$$ISERR(tSC) tSC
Set pResponse.InfoCentro=$get(info)
Quit $$$OK
}
Method prepareOperation(pRequest As MyMessageWS.Request.base) As %Status
{
Set ..Adapter.%Client.Namespace = pRequest.Namespace
Set ..Adapter.%Client.Location = pRequest.Url
Quit $$$OK
}The problem is the InvokeMethod is raising the error, so I'm not able to modify this code. It's part of the %Soap library.