Třída Box

Stále vídám X++ programátory, kteří volají třídu Box v kódu, který se používá v databázových transakcích. To může způsobit ošklivé problémy – jak ukážu v tomto příspěvku. Představte si takovýto kód, použitý na nějaké tabulce: void delete() { if (Box::yesNo("Are you sure?", DialogButton::No) == DialogButton::Yes) { super(); } } Při mazání záznamu se zpracování zastaví …

Continue reading ‘Třída Box’ »

AX: Podpora pesimistických zámků

Vynechme úvod a skočme rovnou do kódu: while select forUpdate myTable { ttsBegin; myTable.MyField = ‚something‘; myTable.update(); ttsCommit; } S takovým kódem se setkávám opravdu často a za určitých okolností funguje velmi dobře. Konkrétně vyžaduje, aby bylo aktivní optimistické zamykání záznamů. Dynamics AX v takovém případě jen zkontroluje, že je záznam vybrán pro update a …

Continue reading ‘AX: Podpora pesimistických zámků’ »