![]() |
#1 |
Участник
|
Additional parameters in RunBaseBatch class extension
Источник: http://alexvoy.blogspot.com/2022/02/...basebatch.html
============== Old good pack/unpack patterns with SysPackExtension call. Say, we need to augment RunBaseBatch based class . /// /// We are going to use a new additional parameter/// [ExtensionOf(classStr())] public final class My_Extension{ private boolean myNewParm; #define.CurrentVersion(1) #localmacro.CurrentList myNewParm #endmacro /// /// myNewParm access /// /// boolean /// boolean public boolean parmMyNewParm(boolean _parm = myNewParm) { myNewParm= _parm; return myNewParm; } /// /// Extends Pack /// /// container public container pack() { container packedClass = next pack(); return SysPackExtensions::appendExtension(packedClass, classStr(My_Extension), this.myPack()); } /// /// Extends Unpack /// /// container /// boolean private boolean myUnpack(container packedClass) { Integer version = RunBase::getVersion(packedClass); switch (version) { case #CurrentVersion: [version, #currentList] = packedClass; break; default: return false; } return true; } /// /// Packs my locals /// /// container private container myPack() { return [#CurrentVersion, #CurrentList]; } /// /// Extends unpack /// /// container /// boolean public boolean unpack(container _packedClass) { boolean result = next unpack(_packedClass); if (result) { container myState = SysPackExtensions::findExtension(_packedClass, classStr(My_Extension)); //Also unpack the extension if (!this.myUnpack(myState)) { result = false; } } return result; } } Источник: http://alexvoy.blogspot.com/2022/02/...basebatch.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|