Another solution can be with SAM :

// Enable Intero metrics for SAM
zw ##class(Ens.Util.Statistics).EnableSAMForNamespace()
zw ##class(Ens.Util.Statistics).EnableSAMIncludeHostLabel()

Since the launch of IRIS, ENSDEMO namespace is gone.

Now to have demo or anything else you have to go with ZPM : https://community.intersystems.com/post/install-zpm-one-line (the package manager).

Check the list here :

https://openexchange.intersystems.com/

If you still want EnsDemo check those githubs :

This demo is now 100% python :

https://github.com/grongierisc/iris-python-interoperability-template/tre...

Look at this beauty :

FileOperation.py

import grongier.pex
import datetime
import os
import iris

class FileOperation(grongier.pex.BusinessOperation):

    def OnInit(self):
        if hasattr(self,'Path'):
            os.chdir(self.Path)

    def OnMessage(self, pRequest):

        ts = title = author = url = text = ""

        if (pRequest.Post is not None):
            title = pRequest.Post.Title
            author = pRequest.Post.Author
            url = pRequest.Post.Url
            text = pRequest.Post.Selftext
            ts = datetime.datetime.fromtimestamp(pRequest.Post.CreatedUTC).__str__()

        line = ts+" : "+title+" : "+author+" : "+url
        filename = pRequest.Found+".txt" 

        self.PutLine(filename, line)
        self.PutLine(filename, "")
        self.PutLine(filename, text)
        self.PutLine(filename, " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")

        return iris.cls('Ens.StringResponse')._New("hello")


    @staticmethod
    def PutLine(filename,string):
        try:
            with open(filename, "a",encoding="utf-8") as outfile:
                outfile.write(string)
        except Exception as e:
            raise e

FileOperationWithIrisAdapter (we can use native iris adapter :)):

import iris
import grongier.pex

class FileOperation(grongier.pex.BusinessOperation):

    def getAdapterType():
        """
        Name of the registred adaptor
        """
        return "EnsLib.File.OutboundAdapter"

    def OnMessage(self, pRequest):

        ts = title = author = url = text = ""

        if (pRequest.Post != ""):
            title = pRequest.Post.Title
            author = pRequest.Post.Author
            url = pRequest.Post.Url
            text = pRequest.Post.Selftext
            ts = iris.cls("%Library.PosixTime").LogicalToOdbc(iris.cls("%Library.PosixTime").UnixTimeToLogical(pRequest.Post.CreatedUTC))

        line = ts+" : "+title+" : "+author+" : "+url
        filename = pRequest.Found+".txt" 

        self.Adapter.PutLine(filename, line)
        self.Adapter.PutLine(filename, "")
        self.Adapter.PutLine(filename, text)
        self.Adapter.PutLine(filename, " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")

        return 1

With this image you will see the difference between Kong Enterprise and Kong Community :

alt

In short Kong EE (Enterprise Edition) bring :

  • A web portal to manage your services/routes
  • A dev portal to publish and test you API for developers
  • Some additional plugins like LDAP support, proxy caching, advanced rate limiting
  • Kong EE inherits from all Kong Community features

If you need training on Kong EE you can follow this guide :

https://community.intersystems.com/post/iam-intersystems-api-manager-zer...