|| DYNAMICS AX NUMBER SEQUENCE ||
Suppose we want
create number sequence for Test field on form in General ledger
module
Consideration:
EDT-Test, Table-NumSeqTable and Form- NumSeqTable
Step1. Create new EDT with name Test
Step 2. Modify load module() method on NumberSeqModuleLedger
class
{
datatype.parmDatatypeId(extendedTypeNum(Test));
datatype.parmReferenceHelp(literalStr("Test"));
datatype.parmWizardIsManual(NoYes::No);
datatype.parmWizardIsChangeDownAllowed(NoYes::No);
datatype.parmWizardIsChangeUpAllowed(NoYes::No);
datatype.parmWizardHighest(999);
datatype.parmSortField(30);
datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
this.create(datatype);
}
Step 3.Create a method on LedgerParameters
Table
client server static NumberSequenceReference numRefTest()
{
return NumberSeqReference::findReference(extendedTypeNum(Test));
}
Step 4.Write and run following job
static void NumberSeqLoadAll(Args _args)
{
NumberSeqApplicationModule::loadAll();
}
Step 5.Then run the wizard
Organization Administration ->
CommonForms -> Numbersequences->Numbersequences-> Generate -> run
the wizard.
Step 6.Now we have to check the number
sequence is correctly working for that write a job:
static void NumSeq(Args _args)
{
NumberSeq numberSeq;
Test num;
;
numberSeq =
NumberSeq::newGetNum(ProjParameters:: numRefTest ());
num =
numberSeq.num();
info(num);
}
Step 7.Now we want that Number Sequence in
form level(Test Table):
Write below code in class
declaration
public class FormRun extends ObjectRun
{
NumberSeqFormHandler
numberSeqFormHandler;
}
Step 8.Write the NumberSeqFormHandler() in
form methods node.
NumberSeqFormHandler
numberSeqFormHandler()
{
if (!numberSeqFormHandler)
{
numberSeqFormHandler
= NumberSeqFormHandler::newForm(LedgerParameters:: numRefTest
().NumberSequenceId,
element,
NumSeqTable_DS,
fieldNum(NumSeqTable, Test)
);
}
return numberSeqFormHandler;
}
Step 9.Write the Create(),Delete(),Write() , Validate Write(),Link
Active() on the
Data source methods node.
Create() Method
void create(boolean append = false,
boolean extern = false)
{
element.numberSeqFormHandler().formMethodDataSourceCreatePre();
super(append);
if (!extern)
{
element.numberSeqFormHandler().formMethodDataSourceCreate(true);
}
}
Delete() Method
public void delete()
{
element.numberSeqFormHandler().formMethodDataSourceDelete();
super();
}
Write()Method
public void write()
{
super();
element.numberSeqFormHandler().formMethodDataSourceWrite();
}
Validate Write() Method
public boolean validateWrite()
{
boolean ret;
ret = super();
ret
= element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret)
&& ret;
if (ret)
{
NumSeqTable.validateWrite();
}
return ret;
}
Link Active() Method
public void linkActive()
{
;
element.numberSeqFormHandler().formMethodDataSourceLinkActive();
super();
}
Step 10.Finally add Close() method on form
void close()
{
if (numberSeqFormHandler)
{
numberSeqFormHandler.formMethodClose();
}
super();
}
No comments:
Post a Comment