Friday, 23 June 2017

Number Sequence

1.Create Number Sequence----In Ax 2012

If we want to create Number Sequence, follow Below steps….

Step1: Create Edtà StuId(stringedit)

Step2: Create Table-à Class Table àin this Table Add Some Field and Then the Primary Field To extend Above Edt.
Exp: StudentIdàExtendsàStuId.

Step3: Create New Form and add Data Source Above Table (Class Table).


Step4: Based On Requirement generate number sequence On Class Table Form in studentID…
So we will select Suitable Class and Add Some Code on that class Load Method…

Example: NumberseqModuleCustomer (or) NumberseqModuleProject (or)NumberSeqModuleBank (or) NumberSeqModuleGeneral…etc

Here  I have taken NumberseqModuleCustomer àload Module()àAdd some code Here.


    datatype.parmDatatypeId(extendedTypeNum(Studentid));
    datatype.parmReferenceLabel(literalStr("Student Id"));
    datatype.parmReferenceHelp(literalStr("Unique Student number"));
    datatype.parmWizardIsContinuous(false);
    datatype.parmWizardIsManual(NoYes::No);
    datatype.parmWizardIsChangeDownAllowed(NoYes::Yes);
    datatype.parmWizardIsChangeUpAllowed(NoYes::Yes);
    datatype.parmWizardLowest(1);
    datatype.parmWizardHighest(99999);
    datatype.parmIsGroupEnabled(NoYes::Yes);
    datatype.parmSortField(54);

    datatype.addParameterType(NumberSeqParameterType::DataArea, true, false);
    this.create(datatype);
  

Step5: Add Method in Parameter Table Like: CustParameters (or) Vend Parameters (or) Projparameters.

Here I have Taken Custparameters  table add Below code…

client server static NumberSequenceReference numRefStuid()
{
     return NumberSeqReference::findReference(extendedTypeNum(Studentid));
}

//This Method Assign the Edt to Parameters table.
Step6: Write the job and Run the Job about Generating Number sequence.

static void Na_loadNumSeqstuid(Args _args)
{
//define the class variable
   NumberSeqModuleCustomer seqMod = new NumberSeqModuleCustomer();

//load the number sequences that were not generated
    seqMod.load();
    info("Generated");
}


Step6: Run The Wizard…
Organization Administration >> CommonForms >> Numbersequences>>Numbersequences>> Generate >> run the wizard.


Step7: Now we have to Check Number Sequence Is Correctly working or not. write Job Below

.
static void Na_number(Args _args)
{
    NumberSeq       numberSeq;
    Studentid       num;

    ;
    numberSeq = NumberSeq::newGetNum(CustParameters::numRefStuid());
    num = numberSeq.num();
    info(num);
}


Step8: Now we want to apply Number Sequence in form Level....Apply Below Code in form Level.
























Step9: Now We declare NumberSeqFormhandler classes in form Declaration.

public class FormRun extends ObjectRun
{
     NumberSeqFormHandler       numberSeqFormHandler;
}





Step10: Add NumberSeqFormHandler()  Method in Form Methods.

NumberSeqFormHandler        numberSeqFormHandler()
{

    if (!numberSeqFormHandler)
    {
        numberSeqFormHandler = NumberSeqFormHandler::newForm(CustParameters::numRefStuid().NumberSequenceId,
                                                             element,
                                                             Na_ClassDetails_DS,
                                                             fieldNum(Na_ClassTable, StudentId)
                                                            );
    }
    return numberSeqFormHandler;
}



Step11: Add Close () method in Form Method.

public void close()
{
    if (numberSeqFormHandler)
    {
        numberSeqFormHandler.formMethodClose();
    }
    super();
}



Step12: Add Create () method in Form Data Source Methods.

 public void create(boolean _append = false)
{
    element.numberSeqFormHandler().formMethodDataSourceCreatePre();

    super(_append);

    element.numberSeqFormHandler().formMethodDataSourceCreate(true);

}



Step13: Add Write () method in Form Data Source Methods.

public void write()
{
    super();
    element.numberSeqFormHandler().formMethodDataSourceWrite();
}



Step14: Add Validate Write () method in Form Data Source Methods.

public boolean validateWrite()
{
    boolean ret;

    ret = super();

    ret = element.numberSeqFormHandler().formMethodDataSourceValidateWrite(ret) && ret;

    return ret;
}



Step15: Add Delete () method in Form Data Source Methods.

public void delete()
{
    element.numberSeqFormHandler().formMethodDataSourceDelete();
    super();
}



Step16: Add link Active () method in Form Data Source Methods.

public void linkActive()
{
    element.numberSeqFormHandler().formMethodDataSourceLinkActive();
    super();
}



Important Classes:
1.NumberSeqDataType               -------> Class
2.NumberSeqModuleCustomer  ------>Class
3.NumberSeqFormHandler       -------->Class

Tables:
1.OurTable (class Table)             ------->Table
2.CustParameters                         -------> Table



My Number Sequence is Generated.












Set The Setup in Account Receivable in Account Receivable Parameters














 Set the Setup of Number Sequence Id



No comments:

Post a Comment