@Humza Arshad 

You can create a REST API/ SOAP API, or any other kind of protocol/technology, to get authentication, retrieve and send data to IRIS.

See the documentation: 

REST

SOAP

These other two link are two Open Exchange apllication to create Rest Services and Form UI.

RESTForms2

RESTFormsUI2

Search in the Leraning Portal for some course that help you.

Best Regards.

Hi @Raja Mohan and @Haitem El Aaouani 

Bellow a sample method

ClassMethod CreatProdution(package As %String = "test", name As %String = "AutoCreatedProduction") As %Status
{
  #Dim produtionClassName As %String = package _ "." _ name
  If ('$ZName(produtionClasName, 4))
  {
  Return $System.Status.Error(5001, "Invalid Production package or name.")
  }
  // Create empty production class definition
  #Dim productionDefinition As %Dictionary.ClassDefinition = ##Class(%Dictionary.ClassDefinition).%New()
  //
  Set productionDefinition.Name         = produtionClassName
  Set productionDefinition.Super        = "Ens.Production"
  Set productionDefinition.ClassVersion = 25
  //
  // Create the XData definition
  #Dim xdataDefinition As %Dictionary.XDataDefinition = ##Class(%Dictionary.XDataDefinition).%New()
  //
  Set xdataDefinition.Name = "ProductionDefinition"
  //
  Do xdataDefinition.Data.WriteLine("<Production Name="""produtionClassName"""/>")
  //
  // Insert XData Definition into Production Definition
  Do productionDefinition.XDatas.Insert(xdataDefinition)
  //
  #Dim statusCode As %Status = productionDefinition.%Save()
  //
  If ($System.Status.IsError(statusCode))
  {
  Return statusCode
  }
  // Compile the production class
  Set statusCode = $System.OBJ.Compile(produtionClassName,"k-d")
  If ($System.Status.IsError(%Dictionary.XDataDefinition))
  {
  Return statusCode
  }
  // fill in production:
  #Dim production As Ens.Config.Production = ##Class(Ens.Config.Production).%OpenId(produtionClassName)
  If ('$IsObject(production))
  {
  Return $System.Status.Error(5001, "Unable to open new production: " _ produtionClassName)
  }
  Set production.Name           = produtionClassName
  Set production.ActorPoolSize  = 2
  //
  // save production (and item), update production class and account for Source Control
  Return ##Class(EnsPortal.Template.prodConfigSCPage).CallProductionUpdateAndSaveToClass(production,"","SaveProduction")
}

Hi @Scott Roth 

Like the @Jeffrey Drumm told, the problem are because the Database ENSLIB are Read Only. The error occur because you are using the Macros $$$FormatText and $$$Text.

When you use $$$Text macro, the macro try to create a entry in the global ^IRIS.Msg. The global ^IRIS.Msg is mapped from ENSLIB database that is by default Read Only. See imagem bellow that the ^IRIS.Msg("ENSEMBLE") is mapped, but the root global ^IRIS.Msg is mapped to the namespace data base.

To solve the compilation error do change calls to $$$Text("some text", "Ensemble") for some think like $$$Text("some text", "MyDomain")

Click in Replace all

Then compile:

For more information see the documentation String Localization and Message Dictionaries

Regrads.

Hi @Punit Shah 

Use the method LinkToFile below a example.

C:\temp before create the file:


Execute the code

Set file = ##Class(%Stream.FileBinary).%New()
Set statusCode = file.LinkToFile("c:\temp\test_file.txt")
If ($System.Status.IsError(statusCode))
{
  Do $System.Status.DisplayError(statusCode)
  Return
}
Do file.WriteLine($ListBuild("Some bin data"))
Write $System.Status.DisplayError(file.%Save())

After execution:

You can use add or remove programs too.

  • would I be correct to interpret 'CacheC' in the example command as the instance name of the Ensemble installation to be uninstalled? Or is that the folder name on the filesystem where it is in installed?

Is the instance name.

  • Not familiar with Windows Registry editing, so can I safely delete those two trees in the registry if i want a completely fresh start?

After uninstall and if you have only one installation yes.