web
You’re offline. This is a read only version of the page.
close
Skip to main content
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();

    }








I have the same question (0)
  • Suggested answer
    Mohit Rampal Profile Picture
    12,565 Moderator on at
    RE: LineAmount value not being set directly when creating sales order by code

    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

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

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

#1
Martin Dráb Profile Picture

Martin Dráb 683 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 563 Super User 2025 Season 2

#3
Sohaib Cheema Profile Picture

Sohaib Cheema 398 User Group Leader

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans