Create Sales Quotation in Dynamics 365 Data Model Tutorial 16
In this Techno-Functional Tutorial 16 by Instructor Brandon, you learn how to Create Sales Quotation in Microsoft Dynamics 365 as a great selling tool.
“It has been a long and fruitful journey regarding these blog post series! Dynamics 365 is big domain to have more than 25 business processes, that’s for sure, we will continue describing the functional steps, table structures and code samples for the most important ones. Now we will talk about Creating Sales Quotation or a Business Sale Quote, a useful feature for selling related items to customers in the POS (Point of Sale) of your brick and mortar store or your online commerce. I hope you will enjoy this post as much as the rest of the series. We are here to help you with your Microsoft Dynamics 365 implementation, please reach us anytime”. — Brandon A.
Create a Sales Quotation Process
A ‘Sales Quotation’ or business sale quote is a formal business document. It allows a potential buyer/customer to view the cost involved in purchasing a specific service or product. Actually, it is generally used by suppliers or resellers to initiate a business transaction cycle. Moreover, a professional ‘Sales Quotation’ contains an itemized list of products and services. Also, it states the price per item, terms of sale, and acceptable payment methods. So, before making a purchase, a sales quote is furnished at the request of a prospective buyer who is interested in knowing the cost of a certain product/service, or both. Indeed, learning how to Create Sales Quotation is ideal.
A ‘Sales Quotation’ is a formal document. However, it is not a legally binding contract. Instead, it is a document to establish a mutual understanding between two business entities. Doing that, once the quote is accepted/agreed upon, the Seller and the Customer commits to making a transaction at the stated prices and conditions.
Going forward, Follow-up is an integral and important part of the sales process. Moreover, not following through results is a missed opportunity for conversion. Actually, Follow-up is one of the significant factors in a sales process that helps convert a quote into an actual sale. A follow-up activity is about demonstrating your interest and seriousness to your buyers regarding the intended transaction.
Once you have shared the ‘Sales Quotation’, the team should follow up within 2-3 working days to inquire regarding feedback, intentions, or concerns. It is a good method to stay on their radar and increase your chance of winning the deal.
Now, let’s see how to create a Sales Quotation inside Dynamics 365:
Quick Functional Recap
STEP 1: Sales and Marketing
The First Step in the creation of Sales Quotation in Microsoft Dynamics 365 is clicking on Sales and Marketing. After that click on the Sales Quotation option as shared below. From there you have to go to All Quotation.
To follow the pattern here is a brief.
Go to Sales and marketing > Sales quotations > All quotations.
STEP 2: Click on New
The next step which you have to follow is Click on the New option as highlighted in the screenshot attached below.
STEP 3: Select an Option
Coming to Third Step; in the Account type field you have to select an option.
In the Customer account field, please enter or select a value.
Then Click OK.
And then Click Yes.
STEP 4: Select Item & Enter Quantity of Item
Go to the Line details, there you will be selecting item and then you have to enter the quantity of the item.
Looking for Microsoft Dynamics 365 Training Courses. Instructor Brandon can help you in this as we have the most advanced Dynamics 365 Training Courses from Microsoft along with Top Level Certifications which can add real-time value and enhance your career as a professional in IT World.
Moreover, you can also read about Microsoft courses and Dynamics 365 certifications with every possible detailed information provided.
STEP 5: Send Quotation
Last but not least, Go to the Quotation tab. There, you have to click on the Send quotation tab to send the quotation.
STEP 6: Confirm Sales Quotation
To confirm the quotation, go to the Follow up Tab. There, Click on Confirm button to confirm the sales quotation. Doing that, a dialog box will come up. After it happens, click on OK.
Quick Technical Recap
Let’s have a quick technical recap of creating sales quotation in Dynamics 365 as shared below.
1. Sales Quotation Table
The Sales Quotation Table contains sales quotation header details as shown below.
Data Field | Data Type | Description |
QUOTATIONID | nvarchar | Primary Key identifier for the Sales Quotation. |
CONFIRMDATE | datetime | Date of confirmation of the sales quotation |
CUSTACCOUNT | nvarchar | The customer account number |
CUSTPURCHASEORDER | nvarchar | In case the Sales Quotation is accepted, this is the purchase order number |
2. Sales Quotation Line
The Sales Quotation Line contains sales quotation line details as shared below.
Data Field | Data Type | Description |
INVENTRAANSID | String | Primary key identifier for the sales quotation line table |
NAME | String | Name of the sales quotation |
PRICEUNIT | Real | Price of the item’s unit in the quotation |
QUOTATIONID | String | Foreign key of the SalesQuotationTable |
ITEMID | String | Foreign key of the InventTable |
3. Logistic Postal Address
As far as the Logistics Postal Address table is concerned, it contains the addresses in the system that could be associated with various entities.
Data Field | Data Type | Description |
RECID | Int64 | Primary Key Identifier for the Logistic Postal Address table |
ADDRESS | String | The customer’s address |
CITY | String | The customer’s City of residence |
ZIPCODE | String | The customer’s Zip code |
4. Invent Table
The Invent Table table contains information about items as shared.
Data Field | Data Type | Description |
ITEMID | String | Primary key identifier for the Item table |
HEIGHT | Real | The item’s height |
WIDTH | Real | The item’s width |
ITEMTYPE | Enum | The enumeration that identifies whether an item is an Inventory, Non-inventory or if it’s a service. |
5. Invent Trans Origin
Below shared are the invent trans origin details.
Data Field | Data Type | Description |
RECID | Int64 | Primary key identifier for Invent Trans Origin Table |
REFERENCECATEGORY | Enum | An enumeration that denotes the category of the reference |
INVENTRAANSID | String | Foreign key of the Sales Quotation Line table |
ERD – Entity Relationship Diagram for Sales Quotation Process
This is the ERD for the Sales Quotation process:
Code
This code is used to create a sales order quotation in X++.
[sourcecode language=”c-sharp”] static void CreateSalesQuotation(Args _args)
{
AxSalesQuotationTable axSalesQuotationTable;
AxSalesQuotationLine axSalesQuotationLine ;
SalesQuotationTable salesQuotationTable;
SalesQuotationLine salesQuotationLine;
CustTable custTable;
InventTable inventTable;
SalesQty salesQty;
SalesPrice salesPrice;
SalesLineDisc salesLineDisc;
SalesLinePercent salesLinePercent;
container conItems = ["ItemA","Dell","HP"];
int i =0;
InventDim inventDim;
SalesQuotationEditLinesForm salesQuotationEditLinesForm;
ParmId parmId;
SalesQuotationUpdate salesQuotationUpdate;
;
salesQty = 10;
SalesPrice = 100;
salesLineDisc = 1;
salesLinePercent = 1;
axSalesQuotationTable = new AxSalesQuotationTable();
axSalesQuotationTable.parmCustAccount(‘Jaga’);
axSalesQuotationTable.parmCurrencyCode(‘USD’);
axSalesQuotationTable.save();
for(i = 1; i<= conLen(conItems); i++)
{
axSalesQuotationLine = new AxSalesQuotationLine();//::construct(smmQuotationLine);
axSalesQuotationLine.axSalesQuotationTable(axSalesQuotationTable);
axSalesQuotationLine.parmQuotationId(axSalesQuotationTable.parmQuotationId());
axSalesQuotationLine.axSalesQuotationTable(axSalesQuotationTable);
axSalesQuotationLine.parmItemId(conPeek(conItems,i));
axSalesQuotationLine.parmSalesQty(salesQty);
axSalesQuotationLine.parmSalesPrice(SalesPrice);
axSalesQuotationLine.parmLineDisc(SalesLineDisc);
axSalesQuotationLine.parmLinePercent(SalesLinePercent);
inventDim.InventSiteId = "1";
inventDim.InventLocationId = "11";
axSalesQuotationLine.parmInventDimId(‘002504’);
axSalesQuotationLine.parmcurrencyCode(‘USD’);
axSalesQuotationLine.save();
}
//Quotation status — sent
if(!axSalesQuotationTable.salesQuotationTable()) return;
salesQuotationEditLinesForm =
SalesQuotationEditLinesForm::construct(DocumentStatus::Quotation); //DocumentStatus
parmId = salesQuotationEditLinesForm.parmId();
salesQuotationEditLinesForm.initParmSalesQuotationTable(axSalesQuotationTable.salesQuotationTable());
salesQuotationEditLinesForm.parmId(parmId);
salesQuotationEditLinesForm.parmTransDate(systemdateget());
salesQuotationEditLinesForm.prePromptInit();
salesQuotationEditLinesForm.initParameters(NoYes::No, //printFormletter,
NoYes::No, //transferHours2Forecast,
NoYes::No, //transferExpenses2Forecast,
NoYes::No, //transferFees2Forecast,
NoYes::No, //transferItems2Forecast,
‘Competency’, //reasonCode,
NoYes::No); //usePrintManagement)
salesQuotationEditLinesForm.run();
/// Quotation status — Confirmation
if(!axSalesQuotationTable.salesQuotationTable())
return;
salesQuotationEditLinesForm =
SalesQuotationEditLinesForm::construct(DocumentStatus::Confirmation); //DocumentStatus
//Quotation o Confirm
parmId = salesQuotationEditLinesForm.parmId();
salesQuotationEditLinesForm.initParmSalesQuotationTable(axSalesQuotationTable.salesQuotationTable());
salesQuotationEditLinesForm.parmId(parmId);
salesQuotationEditLinesForm.parmTransDate(systemdateget());
salesQuotationEditLinesForm.prePromptInit();
salesQuotationEditLinesForm.initParameters(NoYes::No, //printFormletter,
NoYes::No, //transferHours2Forecast,
NoYes::No, //transferExpenses2Forecast,
NoYes::No, //transferFees2Forecast,
NoYes::No, //transferItems2Forecast,
‘Competency’, //reasonCode,
NoYes::No); //usePrintManagement)
salesQuotationEditLinesForm.run();
}
[/sourcecode]
Summary: Create Sales Quotation in Dynamics 365 Data Model Tutorial 16
In conclusion to this post Create Sales Quotation in Dynamics 365 Data Model Tutorial 16 there is a lot to learn. To summarize, following are the outcomes which can be learned from our blog post:
- Learned about the ‘Sales Quotation’ Process
- Familiarized yourself with the step by step ‘Sales Quotation’ creation process
- Looked at executable code, tables, and ERD for the process
- Understood the importance of the tables Sales Quotation Table, Sales Quotation Line, Logistic Postal Address, Invent Table and Invent Trans Origin
Microsoft Dynamics 365 Techno-Functional Data Model Tutorial 16 explains how to Create Sales Quotation in Dynamics 365 as Business Sale Quote.
In addition, we sincerely hope that you enjoyed part 16 of our exciting series on the Dynamics 365 data model. In short we aim to provide quality service at all times. Moreover, if you need to reach me, you know how to get in touch by reaching out to me here. – Brandon Ahmad, founder of Instructor Brandon and Dynatuners.