Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applies To: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012
The code in the two examples below can be rewritten to be much clearer.
Example 1
From:
if (args.parmEnumType() != enumnum(BMBuildIdEnum))
{
if (args.record().tableId == tableNum(BMmoduleTable))
{
moduleTable = args.record();
buildId = moduleTable.buildId;
}
else
{
return null;
}
}
else
{
buildId = args.parmEnum();
}
...
To:
if (args.parmEnumType() == enumNum(BMBuildIdEnum))
{
buildId = args.parmEnum();
}
else
{
if (args.record().tableId == tableNum(BMmoduleTable))
{
moduleTable = args.record();
buildId = moduleTable.buildId;
}
else
{
return null;
}
}
...
The rewrite puts the most important case first, and removes the negative logic used in the first if statement in the first version of the code.
Example 2
From:
ledgerJournalTrans = this.ledgerJournalTransInitFromCreate(_tmpProjAdjustmentCreate);
if (ledgerJournalTrans.validateWrite())
{
ledgerJournalTrans.insert();
ProjPostLedger = ProjPost::construct(ledgerJournalTrans,ledgerVoucherTrans);
if (projPostLedger.checkTrans())
{
projPostLedger.PostTrans();
}
else
{
throw error("@SYS21628");
}
}
else
{
throw error("@SYS21628");
}
ledgerjournalTrans.delete(false);
...
To:
ledgerJournalTrans = this.ledgerJournalTransInitFromCreate(_tmpProjAdjustmentCreate);
if (!ledgerJournalTrans.validateWrite())
{
throw error("@SYS21628");
}
ledgerJournalTrans.insert();
ProjPostLedger = ProjPost::construct(ledgerJournalTrans,ledgerVoucherTrans);
if (!projPostLedger.checkTrans())
{
throw error("@SYS21628");
}
projPostLedger.PostTrans();
ledgerjournalTrans.delete(false);
...
See also
Announcements: New book: "Inside Microsoft Dynamics AX 2012 R3" now available. Get your copy at the MS Press Store.