Non è inusuale avere flussi di lavoro FrameMaker "misti" in cui i membri di un team utilizzano versioni diverse di FrameMaker. I documenti salvati in una versione inferiore possono essere aperti con versioni superiori, ma non è possibile aprire documenti salvati con una versione superiore con una versione inferiore di FrameMaker. Esistono due soluzioni: innanzitutto, è possibile utilizzare la versione superiore per "salvare in versione inferiore". Tuttavia, è possibile salvare solo nella versione immediatamente inferiore, ad esempio, da FrameMaker 12 a FrameMaker 11. In secondo luogo, è possibile salvare il documento in MIF (Maker Interchange Indeling), nel qual caso è possibile aprirlo con qualsiasi versione inferiore di FrameMaker.
Il principale ostacolo al salvataggio in MIF è che è necessario ricordarsi di farlo. Ma con ExtendScript, è possibile automatizzare questa operazione. È possibile creare uno script che salvi automaticamente il documento in MIF ogni volta che si sceglie File > Salva o si preme Control+S. Quando siete pronti a passare il file MIF a un altro membro del team che potrebbe utilizzare una versione inferiore di FrameMaker, saprete che rispecchierà sempre le ultime modifiche salvate.
Di seguito viene illustrato come configurare lo script:
Notification (Constants.FA_Note_PostSaveDoc, true);
function Notify (note, object, sparam, iparam) {
switch (note) {
case Constants.FA_Note_PostSaveDoc :
saveAsMif (object);
break;
}
}
function saveAsMif (doc) {
// Get required parameters for the save function.
var params = GetSaveDefaultParams();
var returnParamsp = new PropVals();
// Replace the .fm extension with .mif.
var saveName = doc.Name.replace (/\.[^\.\\]+$/,".mif");
// Get the FileType save parameter and set it to MIF.
var i = GetPropIndex(params, Constants.FS_FileType);
params[i].propVal.ival = Constants.FV_SaveFmtInterchange;
// Save the document as MIF.
doc.Save(saveName, params, returnParamsp);
}