moving code between IRIS and CACHÉ

Solapas principales


Unfortunately, I don't have yet, any good solution for now, as store your sources in XML format. You can export them with /exportversion=cache2018.1  flag, with your Studio SourceControl class. IRIS will upgrade source code for Caché and downgrade when you export them with the flag.

Btw, you can have sources in XML and use the modern VSCode-ObjectScript editor.

Working with customers who use Cache based products, while myself using primarily IRIS based products I have run into this difficulty more than once.

The only work-around I have found has been to manipulate the header of the export file generated by an IRIS system before importing into a Cache based system, not exactly easy or guaranteed to work.

The other option is to keep your code exported in an external code repository and then after you make fixes to the code re-deploy the changes to IRIS and Cache.

WOW! This works excellent.
I applied it to the whole namespace.  $system.OBJ.SetQualifier("/exportversion=cache2016.2.2") 
and it worked.

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="IRIS for Windows (x86-64) 2019.1.1 (Build 608U)" ts="2019-11-19 22:40:10">
<Class name="Par.Elo">

 compared to a different namespace with default settings

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="IRIS" version="26" zv="IRIS for Windows (x86-64) 2019.1.1 (Build 608U)" ts="2019-11-19 22:43:38">
<Class name="User.NewClass1">

which granted my attempt by

Thanks for the hint !!

BTW. I found that qualifier already also back in Cache 2016.2.2

see my comment to previous answer.
It seems to be one of the features that were documented but never explained.

IRIS and Caché have many more differences. There are also changes in Storage classes, if you will look at Storage definition in any Persistent class you will see it. And such downgrade can deal with it as well. As far as I know, the lowest version is /exportversion=2010.2

One more flag which is very useful for export sources is /diffexport