As well as Business Partners, there are several other minor items, such as Schedule Specs, that often need to be deployed to test and live instances.

Deltanji, our source-control solution for IRIS, has built-in support for these kinds of things.  It can treat any row in a table as a managed component that can be deployed along with the rest of your production items.

More info about Deltanji here: https://georgejames.com/deltanji/

ChatGTP always seems to give very convincing answers, but often they can be wrong in unexpected ways.

For example, I asked it to decrypt "the cat sat on the mat" which had been encrypted using the Caesar cipher with a shift of 7 as "aol jha zha vu aol tha".  

This was it's answer:

Sure! The Caesar cipher is a simple substitution cipher that replaces each letter in the plaintext with a letter a fixed number of positions down the alphabet. In the case of the Caesar cipher, the shift is typically three letters.

To decrypt the message "aol jha zha vu aol tha" that you provided, we need to shift each letter three positions up the alphabet, as the message has been encrypted using a Caesar cipher with a shift of three.

Applying this decryption technique, we get the plaintext message "the dog ate the hat".

Quite amusing.

This is a nice project and sure to be very useful.

Just for fun I thought it would be interesting to see what ChatGPT had to say about it.  So I asked the question:

Give me some unit tests for this code:
 
Class dc.sample.ObjectScript 
{
ClassMethod TheAnswerForEverything() As %Integer
{
    Set a = 42
    Write "Hello World!",!
    Write "This is InterSystems IRIS with version ",$zv,!
    Write "Current time is: "_$zdt($h,2)
    Return a
}
}
This was what ChatGPT gave as a response:
 
Here are some unit tests for the dc.sample.ObjectScript class:
  1. Test the return value of TheAnswerForEverything method: This test should check if the method returns the expected value of 42.
 
Class dc.sample.ObjectScriptTest Extends %UnitTest.Case 
{ 
Method testTheAnswerForEverything() As %Status 
{ 
    set answer = ##class(dc.sample.ObjectScript).TheAnswerForEverything() 
    set expectedAnswer = 42 
    do $assert(answer = expectedAnswer, "The answer is incorrect") 
    Quit $$$OK 
} 

}

  1. Test the output of the method: This test should check if the method writes the expected output to the console.
Class dc.sample.ObjectScriptTest Extends %UnitTest.Case 
{ 
Method testTheAnswerForEverythingOutput() As %Status 
{ 
    set sc = ##class(dc.sample.ObjectScript).TheAnswerForEverything() 
    set expectedOutput = "Hello World!\r\nThis is InterSystems IRIS with version "_$zv_"\r\nCurrent time is: "_$zdt($h,2) 
    do $assert($io.output = expectedOutput, "The output is incorrect") 
    Quit $$$OK 

} 

} 
  1. Test the output format: This test should check if the method writes the output in the expected format.
Class dc.sample.ObjectScriptTest Extends %UnitTest.Case 
{ 
Method testTheAnswerForEverythingFormat() As %Status 
{ 
    set sc = ##class(dc.sample.ObjectScript).TheAnswerForEverything() 
    set expectedOutput = "Hello World!\r\nThis is InterSystems IRIS with version "_$zv_"\r\nCurrent time is: "_$zdt($h,2) 
    do $assert($io.output = expectedOutput, "The output format is incorrect") 
    Quit $$$OK 

} 
    
} 

So I found this quite interesting.  $assert($io.output.. is obviously wrong but the rest is correct enough to give a head start on writing some test cases and we can only expect ChatGPT to get better and better.

 

UDL and obviously XML for the contents of the ProductionDefinition XData block.

All elements of Productions are fully supported by Deltanji.  Specifically the following component types: HL7, X12, Lookup Tables, Business Rules, Data Transformations, Record Maps, Production Classes (class methods etc), Production Settings and Production Configuration Items.

At the last count Deltanji supports 58 different component types as standard, plus many that our customers have written themselves for their own purposes.