Ничего не невозможно. Все в Caché может быть создано программно. И Классы не являются исполнением. Существует по крайней мере два способа сделать это:
- простой SQL-запрос CREATE TABLE, создаст класс.
- и как вы уже упоминали код ObjectScript, который может это сделать.
Все определения любых классов, определенных в других классах. Который вы можете найти в пакете% Dictionary.
Сам класс определяется в% Словарь. ClassDefinition. Которые имеют некоторые свойства, для определения каких-либо частей классов. Итак, это простой код, который создает некоторый класс с одним свойством.
set clsDef=##class(%Dictionary.ClassDefinition).%New()
set clsDef.Name="package.classname"
set clsDef.Super="%Persistent"
set propDef=##class(%Dictionary.PropertyDefinition).%New()
set propDef.Name="SomeProperty"
set propDef.Type="%String"
do clsDef.Properties.Insert(propDef)
do clsDef.%Save()
И в последних версиях существует еще один способ создания/изменения класса. Если у вас есть текст класса, как вы можете видеть его в Studio. Затем вы можете загрузить его в Caché, класс %Compiler.UDL.TextServices