Do you wait for any more variants?
Do not forget to mark the answer as accepted.
- Log in to post comments
Do you wait for any more variants?
Do not forget to mark the answer as accepted.
Do not forget to mark answer as accepted.
Do not forget to mark answer as accepted
I think maybe something like this
/deploy <cache-instance> webterminal
Nowadays when somebody says "chatbot", it means, that such a chatbot will work on one of the popular chats. Like, Slack, Telegram, or maybe Skype. So, where your chat bot will work?
About functionality. Some time in the organization could be useful, such commands as create the new instance, or maybe clone some old one. And anyway you missed at least one command, it is a list of available instances.
But for such bot, I think should be much more than just to start or to stop instances. It is also should support, something like deploying some services there.
you should look at XSLT, it can help transform xml as you need
ClassMethod SplitXML()
{
for item="market","product" {
set params("path")="/doc/"_item
Set tSource=##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1)_"||XML").Data
Set tXSL=##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1)_"||XSL").Data
// Transform the source according to the XSL
Set tSC=##class(%XML.XSLT.Transformer).TransformStream(tSource,tXSL,.tOutput,,.params)
If $$$ISERR(tSC) Quit
write !!
// Output the result to the screen
Set tSC=tOutput.OutputToDevice()
}
}
XData XML
{
<?xml version="1.0"?>
<doc>
<header></header>
<product><test>1</test></product>
<market><test2>2</test2></market>
</doc>
}
XData XSL
{
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="path"></xsl:param>
<xsl:output method="xml" indent="no"/>
<xsl:template match="/">
<xsl:copy-of select="$path"/>
</xsl:template>
</xsl:stylesheet>
}
will output like below
USER>d ##class(Test).SplitXML() <?xml version="1.0" encoding="UTF-8"?><market><test2>2</test2></market> <?xml version="1.0" encoding="UTF-8"?><product><test>1</test></product>
you can do it with ccontrol tool
Syntax: ccontrol create <instance name> <parameters> Description: Create an instance's entry in the Cache registry. Parameters: directory=<installation directory name> versionid=<version identifier> Example: ccontrol create mystuff directory=/usr/cachesys versionid=2008.2.0.357.0
What are you going to deploy?
To deploy some application you can use Installer Manifest.
Look at this article.
It is not so simple as would appear in the first time. Because you can have some mentions to old package in a source. In studio only possible to rename some class with refactoring feature. Unfortunately, this feature is not documented, or I have not found.
Stay tuned, I'm going to show how to do it the next part.
Hi, I would not recommend thinking seriously about Caché in windows server core container, I think it is too early, yet.
Alexey, yes, it is very easy to build a little application just in one container. I don't see any problem, to use any supported technologies as well. Even also possible some load balancing from docker, which also good for microservices. I'm going to show some example with application in the next article soon.
I think in this case better to use property ReplyTo, which will be used in mail clients as an address for response.
$zf(-1) can only return status code from called process
To get some output result, you should redirect this output to some file, and read result from this file after executing.
set status=$zf(-1, "find /tmp -name *.tmp > /tmp/result.log") set fs=##class(%Stream.FileCharacter).%New() set fs.Filename="/tmp/result.log" set result=fs.Read()
Stay tuned, I'm going to write next about it. In this article, we did a basic image. Wich will be as a source FROM for next images with some our application.
Thanks, sure, fixed
As it is opened project, you can fill an issue directly on that repository. So, developer may get notification about it quite quickly to respond.
In Caché there is no any such classification for errors. Developer should decide it depends on his own tasks and needs.
%-variables, stored in local memory of the current process.
Process-private globals, implicitly stored in database CACHETEMP.
It means, that when you use %-variables, you limited by the memory of your process, (which can be increased programmatically by the way). While Process-private global works exactly as simple global and limited only by free size on the disk.
And also you should remember that you can not store objects in global variables, even if it is Process-private one.
Access to process-private variables also could be a bit slower than %-variables.
this port is from internal Apache which was installed by default with Caché. And should be used only in development.
For production, or pre-production, you should use some external WebServer, IIS (if you use Windows), Apache or Nginx. You can find more information about configuration all of this webservers, in the documentation.
I would recommend looking at HAProxy, I've used it only for HTTP, with about 10 ECP application servers. But while it can work with binary protocols as well, I think it should be useful. Quite easy to configure and monitor it.
I've been working with Caché now a bit less than before. But anyway I see that Atelier very slow, I'm typing much faster, then it can show what I wrote. And still exists some highlighting errors, which I've already described earlier.
Why do you ask about Postman here?
For Postman does not matter which server do you use. Please go to their documentation, where you can also find some video tutorials.
Because, your UrlMap define only GET method, If you need more, you should add it to the same or any other methods.
And with CRUD, you should not put delete/insert inside URL, just use different HTTP methods with the same URL.
Why do you think it should be in this part of the documentation. It usual procedure. Almost everything possible to do programmatically, so, you can write a script for it. And there are lots of ways ho to do it. As for me, I think the bast way is to use Installer manifest.
Restoration database from the backup is only to restore database file CACHE.DAT. If you want to see this new database on that server, you should configure this server.
If you would look carefully to your code, you would see this place
all HTML should be between &html< and >
But in your code, some of HTML outside of this command.
Looks like you forgot to define web application for your REST Service. Please look at the documentation. And at this part:
Each subclass that has its own entry point must have its own CSP web application. You define the CSP web application and specify its security for on the Management Portal’s [Home] > [Security Management] > [Web Application] page, which you can access by clicking System Administration, Security, Applications, and Web Applications. When you define the CSP web application, you set the Dispatch Class to the name of the custom subclass of %CSP.REST and specify the first part of the URL for the REST call as the name of the application.
Studio uses language from Regional Settings. Even when system's language is English, but you can use your regional settings (clock, number formats etc). And you can change to use default language inside Studio.

When you export and import this class to another namespace(s), you will have multiple different copies. I think much better to have the same class in all namespaces. You can do it with package mapping. And here you have two ways create a mapping in the each namespace where you need access to this class, or create special namespace %ALL, and configure mapping which will be available in all namespaces (except DOCBOOK and SAMPLES).