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

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

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

LineAmount value not being set directly when creating sales order by code

(0) ShareShare
ReportReport
Posted on by 1,552

Hi,

I'm creating a sales order using this code. And I noticed that when I set the salesLineAmount and the i call salesLine.createLine(true, false, true, true, true, true);  -- Then LineAmount changes back to 0. So I had to update SalesLine again as you can see in order to fill the line amount with the value that I need -- why is that?? why it gets changed to 0?

public void createSalesOrder(XXReqHeader _reqHeader, XXReqLine _reqLine)
{
    SalesTable  salesTable;
    SalesLine   salesLine;
    CustTable   custTable;
    
    select firstonly custTable where custTable.AccountNum == _reqHeader.AccountNum();
    salesTable.CustAccount = custTable.AccountNum;
    
    salesTable.SalesId  = NumberSeq::newGetNum(SalesParameters::numRefSalesId()).num();
             
    salesTable.initValue();
                 
    salesTable.initFromCustTable();
    if(_reqHeader.Currency())
    {
        salesTable.CurrencyCode = _reqHeader.Currency();
    } 
    if(salesTable.validateWrite())
    {
        salesTable.insert();
    }
    
    salesLine.initFromSalesTable(_salesTable);
    
    salesLine.ItemId        = _reqLine.ItemId();
    salesLine.Name          = _reqLine.ItemName();
    salesLine.SalesQty      = _reqLine.Qty();
    salesLine.SalesPrice    = _reqLine.Price();
    salesLine.LineAmount    = _reqLine.LineAmount();
    
    salesLine.createLine(true, false, true, true, true, true);
    
    this.updateSalesLine(salesLine, _reqLine);
}


public void updateSalesLine(SalesLine _salesLine, XXReqLine _reqLine)
{
        salesLine salesLineLocal;

        select firstonly forupdate salesLineLocal where salesLineLocal.SalesId == _salesLine.SalesId
                                && salesLineLocal.LineNum == _salesLine.LineNum;

        salesLineLocal.Name             = _reqLine.ItemName();
        salesLineLocal.LineAmount       = _reqLine.LineAmount();
        if(_reqLine.SalesUnit())
        {
            salesLineLocal.SalesUnit        = _reqLine.SalesUnit();
        }
       
        salesLineLocal.update();

    }








  • Suggested answer
    Mohit Rampal Profile Picture
    12,573 Moderator on at

    Hi, Why do you need to specify LineAmount in code, isn't it calculating automatically.

    check this out

    paragchapre.com/.../

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 Winners!

Congratulations to our community stars!

Women in Power Builds Momentum

Expanding mentorship, skilling, and AI innovation

Congratulations to the August Top 10 Community Leaders

These are the community rock stars!

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

#1
Martin Dráb Profile Picture

Martin Dráb 528 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 424 Super User 2026 Season 2

#3
CU10121822-0 Profile Picture

CU10121822-0 374

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans