web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested Answer

Number sequence by default value based on a setup in D365FO

(0) ShareShare
ReportReport
Posted on by 1,215

Hi all,

number.PNG

As shown in the picture above, once I click "Generate number sequence" i want to by default value insert in number sequence table based on a setup form.

scenario : If record exist in number sequence table and transaction .number sequence is Empty  update it and don't insert new number in sequence table.

Form : Custom form.

MPTransactionSeqNum

NumberSequenceTable

both table are in relation.

below my code.

public void clicked()
        {
            NumberSequenceTable numberSeq;
            
                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Addintion");
                MPTransactionSeqNum.insert();


                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Cost");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Leave Encash");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Absence");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Ticket Encash");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Deductions");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Overtime");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Warning");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Loan");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("EOS");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Leave");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Leave Return");
                MPTransactionSeqNum.insert();

                MPTransactionSeqNum.clear();
                MPTransactionSeqNum.initValue();
                MPTransactionSeqNum.TransNumSeq = str2Int64("Business trip");
                MPTransactionSeqNum.insert();

                select firstonly numberSeq
                    where numberSeq.RecId == MPTransactionSeqNum.ReqNumSeq;

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "OATN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Addintion";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Lowest = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();


                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "OCTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Cost";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OCTN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();


                numberSeq.initValue();
                numberSeq.NumberSequence = "OATN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Leave Encash";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.Highest = 999999;
                numberSeq.NextRec = 1;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "LETN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Absence";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "TETN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Ticket Encash";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.Highest = 999999;

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "ODTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Deductions";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "OTTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Overtime";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "WATN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Warning";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "OATN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "LOTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Loan";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "LOTN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "EOSN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "EOS";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "EOSN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "VACN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Leave";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "VACN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "LRTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Leave Return";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "LRTN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();

                numberSeq.clear();
                numberSeq.initValue();
                numberSeq.NumberSequence = "BTTN-USMF";
                numberSeq.RecId = MPTransactionSeqNum.ReqNumSeq;
                numberSeq.Txt = "Business trip";
                numberSeq.Continuous = NoYes::Yes;
                numberSeq.Format = "BTTN-USMF";
                numberSeq.NextRec = 1;
                numberSeq.Highest = 999999;
                numberSeq.insert();
            
            
            super();
            MPTransactionSeqNum_ds.research(true);
            MPTransactionsSetup_ds.research(true);
            Info(strFmt("%1", "Number sequence created successfully"));
        }

    }

but its getting error : Cannot create a record in Transaction Company Setup (MPTransactionSeqNum). The record already exists.

could you plzz give me the solution what am i missing above code ?

Thanks  

I have the same question (0)
  • Suggested answer
    André Arnaud de Calavon Profile Picture
    305,797 Super User 2026 Season 1 on at

    Hi Riyas,

    You are using the same TransNumSeq value for all records here. The outcome of str2Int64 is in all cases "0". That is causing your duplicate error.

    Have you considered using a pattern like setting up number sequences like on all parameter forms?

  • Riyas ahamed F Profile Picture
    1,215 on at

    Thanks for replay sir,

    Now what should i rewrite above my code sir ? please give me example for that?

    That "TransNumSeq" is int64 but i want to like "Addition" so that what should do ?

    And could you please tell a bit about  "number sequences like on all parameter forms".

  • André Arnaud de Calavon Profile Picture
    305,797 Super User 2026 Season 1 on at

    Hi Riyas,

    I think you first need to review what exactly you have done and what you want to achieve. I don't know the purpose of your custom table. You have an int64 field, but you want to save string values. Here you have a design issue. You can have a look how Microsoft themselves implemented support to setup number sequences. That is why I talked about the parameter forms.

    If you open e.g. the account receivable parameters or inventory parameters form, you can find a tab page called 'Number sequences'. These are references per module. You can create a similar tab page for your number sequences. How to create new references for a new module can be found on the internet. There are various blog posts, like this one: devmusings.blog/.../

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Women in Power Builds Momentum

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders

These are the community rock stars!

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Abhilash Warrier Profile Picture

Abhilash Warrier 566 Super User 2026 Season 1

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 504 Super User 2026 Season 1

#3
Subra Profile Picture

Subra 429

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans