Written by

UKK Köln
Question Dmitrii Baranov · Sep 11, 2023

Create Production programmatically

I'm playing with ZPM. Accidentally dropped a production. How can I recreate it programmatically? I see Ens.Director.StartProduction, StopProduction, and even DeleteProduction but I don't see CreateProduction anywhere. Please help 😊 

Product version: IRIS 2023.2

Comments

Dmitrii Baranov · Sep 11, 2023

It seems to me that I found the answer (was googling for two hours and found nothing, then used forum search and voila):

  1. Declare a class which inherits Ens.Production:
Class My.Production Extends Ens.Production
{

XData ProductionDefinition
{
<Production Name="My.Production" TestingEnabled="true" LogGeneralTraceEvents="true">
  <Description></Description>
  <ActorPoolSize>1</ActorPoolSize>
</Production>
}
}
  1. And launch:
Set isProductionRunning = ##class(Ens.Director).IsProductionRunning("My.Production")
If isProductionRunning = 0 {
            Set sc = ##class(Ens.Director).StartProduction("My.Production")
}
0
Luis Angel Pérez Ramos  Sep 12, 2023 to Dmitrii Baranov

And if you want to autostart the production:

set production = "Your.Production"
set ^Ens.Configuration("csp","LastProduction") = production
do ##class(Ens.Director).SetAutoStart(production)
0