Показать сообщение отдельно
Старый 12.02.2022, 00:13   #1  
Blog bot is offline
Blog bot
Участник
 
25,646 / 848 (80) +++++++
Регистрация: 28.10.2006
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, напишите личное сообщение администратору.