Initialisation and validation of data contract in AX 2012

In following text you will find sample implementation. Members of this simple data contract are initialised with current date and validated in some manner, and if validation is failed, feedback information is presented to user. Please notice, that spoken logic is limited to context of data contract object only. If it requires broader context we can initialise data contract in controller and validate in operation, but that goes out of scope of this blog entry.

[DataContractAttribute]
class SimpleContract implements SysOperationInitializable, SysOperationValidatable
{
StartDate startDate;
EndDate endDate;
[DataMemberAttribute]
public StartDate parmStartDate(StartDate _startDate = startDate)
{
startDate = _startDate;
return startDate;
}
[DataMemberAttribute]
public EndDate parmEndDate(EndDate _endDate = endDate)
{
endDate = _endDate;
return endDate;
}
public void initialise()
{
startDate = systemDateGet();
endDate = startDate;
}
public boolean validate()
{
if (endDate < startDate)
{
return checkFailed("End date must be greater or equal to start date.");
}
return true;
}
}
class SimpleService
{
public void run(SimpleContract _contract)
{
info(strFmt("Date range: %1 - %2", _contract.parmStartDate(), _contract.parmEndDate()));
}
}
class SimpleController extends SysOperationServiceController
{
public static void main(Args args)
{
SimpleController controller;
controller = new SimpleController();
controller.parmClassName(classStr(SimpleService));
controller.parmMethodName(methodStr(SimpleService, run));
controller.startOperation();
}
}
See more

AGA pomaga – poznaj inteligentnego asystenta do przetwarzania zapytań ofertowych: ANEGIS Generative Assistant

Jak z pomocą narzędzi Power Platform, Microsoft Fabric i AI zrealizować plan na cyfrową transformację? ANEGIS Power Center

Obowiązkowy KSeF startuje za 4 miesiące! Umów się na bezpłatne konsultacje i przygotuj swój system na zmiany
Let's talk about your project
Let us know what you need: implementation, migration, system development, or a question you’re looking to have answered. We’ll get back to you with a concrete proposal for the next step - not a sales pitch.

