blog for Dynamics Axapta

Creating Number Sequence for a New Module

Say you want to create a new module called Pre Purchase, and for simplicity, we will create just One new Number sequence.
Here’s what to do:-
 

1. Edit the baseEnum NumberSeqModule, adding a reference for your new module (Pre Purchase)

 

2. Create a new EDT say PurchaseRequisitionId which will be used in the module

 

3. Create new class NumberSeqReference_PrePurchase that extends NumberSeqReference

Add 3 methods to that class

public class NumberSeqReference_PrePurchase extends NumberSeqReference

{

}

———————————————————————

protected void loadModule()

{
NumberSequenceReference numRef;

;

/* Setup PurchaseRequisitionId */

numRef.dataTypeId = typeid2extendedtypeid (typeid (PwC_PurchaseRequisitionId));
numRef.referenceHelp = literalStr("Unique key for Purchase Requisition identification. The key is used when creating new Purchase Requisitions."); // Use Labels here
numRef.wizardContinuous = true;
numRef.wizardManual = NoYes::No;
numRef.wizardAllowChangeDown = NoYes::No;
numRef.wizardAllowChangeUp = NoYes::No;
numRef.sortField = 1;
this.create(numRef);
}

———————————————————————

static NumberSeqModule numberSeqModule()

{
return NumberSeqModule::PrePurchase;
}

 

4. Modify the NumberSeqReference Class for the following methods

 

\Classes\NumberSeqReference\moduleList

 

Add the following code

 

// PrePurchase Begin

 

moduleList += NumberSeqReference_PrePurchase::numberSeqModule();

 

// PrePurchase End

 ———————————————————————

\Classes\NumberSeqReference\construct

 

 Add the following code  

// Pre Purchase addition begin

 

case (NumberSeqReference_PrePurchase::numberSeqModule()):

return new NumberSeqReference_PrePurchase(_module);

 

// Pre Purchase addition end

———————————————————————

 

5.  Create a parameters table and form

You should create a parameters table and form for your new module. The easiest way is generally to duplicate an existing Parameters table and modify it as required.

The important elements on the new parameter table are the numberSeqModule() and numberSeqReference() methods.

client server static NumberSeqModule numberSeqModule()
{
    return NumberSeqReference_ PrePurchase::numberSeqModule();
}
---------------------------------------------------------------------
client server static NumberSeqReference numberSeqReference()
{
    return NumberSeqReference::construct(NSParameters::numberSeqModule());
}

In the parameters form, you must ensure that the code in the numberSeqPreInit(), numberSeqPostInit() and NumberSequenceType.executeQuery() methods correctly reflect your new number sequence elements. 

 
6. Calling a number sequence
 
Add this code into this TableParameters
 
static client server NumberSequenceReference numRefSomeMethodID()
{
return NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(Your EDT)));
}
 
7. Add this declaration in the form ClassDeclaration



public class FormRun extends ObjectRun
{
NumberSeqFormHandler numberSeqFormHandler;
}
 
8. Add this method to the form where you want Number sequences



NumberSeqFormHandler numberSeqFormHandler()
{
if

(!numberSeqFormHandler)
{
numberSeqFormHandler=
NumberSeqFormHandler::newForm(YourTableParameters::numRefSomeMethodID().NumberSequence,
element,
YourTable_DS,
fieldnum(YourTable,YourField));
}
return numberSeqFormHandler;
}

 9. Add Create, Write and Delete methods to the Data source in the Form:

 

Create:

 

void create(boolean append = false)

           // If created externally

{

    ;

    element.numberSeqFormHandler().formMethodDataSourceCreatePre();

 super(append);

     element.numberSeqFormHandler().formMethodDataSourceCreate();

}

 

 

Write:

 

void write()

{

 

 

    ttsbegin;

 

    element.numberSeqFormHandler().formMethodDataSourceWrite();

 

    super();

 

    ttscommit;

}

 

Delete:

 

void delete()

{

    ttsbegin;

    element.numberSeqFormHandler().formMethodDataSourceDelete();

 

    super();

    ttscommit;

}


10. Create a new Number Sequence in BASIC module and Run Wizard

 

Basic -> Setup -> NumberSequences -> Number Sequences

 

Create New Number Sequence code and assign the format. Click "Wizard" button and choose your number sequence in the next screen.

 

Now open your form to see the Number Sequence you created.



Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: