Skip to main content

Notifications

Announcements

No record found.

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,550

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
    Mohit Rampal 12,554 Super User 2024 Season 1 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

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Vahid Ghafarpour – Community Spotlight

We are excited to recognize Vahid Ghafarpour as our February 2025 Community…

Congratulations to the January Top 10 leaders!

Check out the January community rock stars...

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 292,187 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 230,966 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans