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

Notifications

Announcements

No record found.

Community site session details

Community site session details

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

Bundles, partially delivery and invoice

(0) ShareShare
ReportReport
Posted on by 23

Hi All,

We're using bundles form the revenue recognition. Assume bundle: 

ABC, that consists of these three items:
  • Item A
  • Item B
  • Item C
We sell 10 ABC on an order. Then we start partial delivery:
Packingslip 1:
  • Item A: 3 pieces
  • Item B: 8 pieces
  • Item C: 10 pieces
Next we run an invoice based on the packingslip. I have 3 invoice transaction lines for 3, 8 and 10 pieces. On the invoice itself, I only have 1 line (the ABC Bundle line). Result is 'strange' data on the invoice as I cannot put a Qty of 3 on the invoice line. And neither can I use 8 of 10.
What i would need is a way that, in this case, only 3 pieces of item A, B and C can be reserved/picked/packed, As there are only 3 of item A on stock. That we have more stock of item B and C does not matter. I only want to deliver the bundle as a whole; not the seperate items on that bundle in different quantities. 
Does anyone know if this can be achieved out of the box ? Or another creative solution that preferably does not required customizations ?
Thanks,
Gerard Verbruggen
I have the same question (0)
  • NikolajSorensen Profile Picture
    1,792 on at

    If I understand you correctly you only wanted to be able pick, pack and invoice a total of 3 ABC bundles as it was only possible to have 3 complete bundles.

    Have you looked into the Retail Kits? I think this functionality might be what you are looking for even though you will have a process of defining and assembling the kits.

    docs.microsoft.com/.../about-setting-up-retail-product-kits

  • Suggested answer
    g.verbruggen Profile Picture
    23 on at

    Thanks for the suggested answer Nikolaj. I talked with our functional consultant and the retails kits do not meet the requirements the customer has.

    We're going to solve this with some extra code when the picking list is created (or released to warehouse in case of warehouse management) that will check if the bundle-line quantities are all the same. If not: generate an error so the user can fix this.

  • LFM Profile Picture
    5 on at

    We faced the same problem and our consultant also advice to modify adding code in order to only release to warehouse the maximum multiple quantity available of the components. 

  • g.verbruggen Profile Picture
    23 on at

    Thanks for the reply LFM. In case someone is interested in the code I used:

    [ExtensionOf(tableStr(SalesTable))]
    internal final class ULT_Table_salesTable_ULT00008493_Extension
    {
        public boolean canReleaseToWarehouse()
        {
            boolean canReleaseToWarehouse = next canReleaseToWarehouse();
    
            if(canReleaseToWarehouse && COE_Global::configActive(configurationKeyNum(ULT_CheckBundleOnDelivery_ULT00008493)))
            {
                canReleaseToWarehouse = this.ULT_CheckReleaseToWarehouse();
            }
    
            return canReleaseToWarehouse;
        }
    
        private boolean ULT_CheckReleaseToWarehouse()
        {
            boolean ret = true;
            SalesLine salesLine;
            SalesLine salesLineChild;
            InventTrans inventTrans;
            InventTransOrigin inventTransOrigin;
            ULT_tmpBundleCheck_ULT00008493 reservedQty;
            Qty QtyReservedFirstChild;
    
            while select ItemId, InventTransId from salesLine
                where salesLine.SalesId == this.SalesId
                && salesLine.RevRecBundle == NoYes::Yes
            {
                
                while select salesLineChild
                    where salesLineChild.RevRecBundleParent == salesLine.InventTransId
                {
                    select sum(Qty) from inventTrans
                        join inventTransOrigin
                        where inventTransOrigin.RecId == inventTrans.inventTransOrigin
                        && inventTransOrigin.InventTransId == salesLineChild.InventTransId
                        && inventTrans.StatusIssue == StatusIssue::ReservPhysical;
                    
                    reservedQty.clear();
                    reservedQty.inventTransId = salesLine.InventTransId;
                    reservedQty.ReservedQty = inventTrans.Qty;
                    reservedQty.insert();
                }
    
                select firstonly ReservedQty from reservedQty where reservedQty.inventTransId == salesLine.InventTransId;
                QtyReservedFirstChild = ReservedQty.ReservedQty;
                select firstonly ReservedQty
                    where reservedQty.ReservedQty != QtyReservedFirstChild
                    && reservedQty.inventTransId == salesLine.InventTransId;
                
                if(reservedQty)
                {
                    warning(strFmt("@ULT:UnequalQty", salesLine.ItemId));
                    ret = false;
                }
            }
            return ret;
        }
    
    }

    ULT_tmpBundleCheck_ULT00008493 is an InMemory table.

    It will block Release to Warehouse if the reserved Qty of the children is not the same for every line. So we do allow to deliver 3out of the 10 Bundles, as long as all children have a reserved Qty of 3. 

    Cheers,

    Gerard

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 646 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

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

#3
Sohaib Cheema Profile Picture

Sohaib Cheema 285 User Group Leader

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans