Skip to main content
Community site session details

Community site session details

Session Id :
Microsoft Dynamics AX (Archived)
Answered

BOM Journal automatic reservation

(0) ShareShare
ReportReport
Posted on by

Hi all,

I was working with BOM journals and found out that the reservation for my BOM lines is automatically performed.

I have setup the reservation field on my inventory journal name to be "Manual" however it seems not to be working.

Is it possible to have manual reservation on BOM journals? Am I missing some setup? Is that standard behaviour by design?

Hope you can help me.

*This post is locked for comments

  • Brandon Wiese Profile Picture
    17,788 on at
    RE: BOM Journal automatic reservation

    It my opinion, it's a mistake, or a bug, depending on how you feel about things like this.

    Report as finished journals have their own journal type and journal name.  As coded, there appears to be no way to prevent reservation as desired, even though you already have a perfectly good mechanism to achieve that for Report as finished journals without impacting other journals accidentally.  In fact you could have multiple Report as finished journal names, and one of them could be used for Automatic report as finished operations, with its own setup, and another for your manual Report as finished operations.  Perfectly good design, squashed by a single line of code.  I really don't see how that can be on purpose.

  • Community Member Profile Picture
    on at
    RE: BOM Journal automatic reservation

    Brandon, your explanation was awesome!

    I wonder if the intention was to have a "fixed" Automatic reservation parameter despite the journal name setup or if it is a mistake.

    It seems to me that an assignment to "_itemReservation" parameter should be done according to the journal name reservation configuration.

    I will analyze the customization you suggest.

    Thank you very very much for your time and detailed answer.

  • Verified answer
    Brandon Wiese Profile Picture
    17,788 on at
    RE: BOM Journal automatic reservation

    I think the source of your problem is pretty easy to see in the following code.

    In class BOMReportFinish method initInventJournalTable(), there is a call to .initFromInventJournalName(..) which does indeed copy the Reservation field from InventJournalName to InventJournalTable.  But then on the next line, the Reservation field is set according to a caller parameter _itemReservation, effectively ignoring the journal name setup.

    void initInventJournalTable(ItemReservation _itemReservation = ItemReservation::Automatic)
    {
        ;
        if (! bomParmReportFinish.JournalId)
        {
            journalTableData                        = JournalTableData::newTable(parentInventJournalTable);
            parentInventJournalTable.JournalId      = journalTableData.nextJournalId();
            parentInventJournalTable.JournalType    = InventJournalType::BOM;
            if(bomParmReportFinish.JournalNameId)
                parentInventJournalTable.JournalNameId  = bomParmReportFinish.JournalNameId;
            else
            {
                parentInventJournalTable.JournalNameId  = journalTableData.journalStatic().standardJournalNameId(parentInventJournalTable.JournalType);
                if(!parentInventJournalTable.JournalNameId)
                    throw error("@SYS55001");
            }
            parentInventJournalTable.initFromInventJournalName(InventJournalName::find(parentInventJournalTable.JournalNameId));
            parentInventJournalTable.Reservation    = _itemReservation;
            parentInventJournalTable.insert();
        }
        else
        {
            parentInventJournalTable    = InventJournalTable::find(bomParmReportFinish.JournalId, true);
            journalTableData            = JournalTableData::newTable(parentInventJournalTable);
            lineNum                     = InventJournalTrans::lastLineNum(bomParmReportFinish.JournalId);
        }
    
    }

    So, what value does the caller provide?

    In method run(), the .initInventJournalTable() method is called in one of two ways, depending on whether the report as finished quantity is negative or not.  Below you can see that in the case of a "return" report as finished Reservation is set to None, and in the "normal" case where no parameter is provided, the default in the method declaration of Automatic is used.  Thus, you're getting Automatic despite the journal name.

            if (bomParmReportFinish.InventTransIdReturn && bomParmReportFinish.Qty < 0)
            {
                this.initInventJournalTable(ItemReservation::None);
                this.initBOMReceiptReturn();
                this.searchReturnLotId();
            }
            else
            {
                this.initInventJournalTable();
                this.initBOMReceipt();
                this.searchBOM(
                    bomParmReportFinish.bomId,
                    bomParmReportFinish.ItemId,
                    bomParmReportFinish.inventDim(),
                    bomCalcData);
            }


    If it were up to me, I would only want the journal name to be overwritten when the caller ACTUALLY specified a parameter, i.e. the "return" case, and not in the normal case.  I would want the journal name to control the journal's behavior.  Thus, I would do something like this in the first method.

            if (!prmisDefault(_itemReservation))
            {
            parentInventJournalTable.Reservation    = _itemReservation;
            }


    Hope this helps.

  • Community Member Profile Picture
    on at
    RE: BOM Journal automatic reservation

    Hi John, thank you for your answer.

    I have checked that parameter and it is set to "Manual".

    The problem is that if I set it to "Automatic", then Sales Orders will automatically reserve inventory while they are created (and I don't want that).

    My customer doesn't want to use reservations of any kind in any transaction (inventory or sales). That's why I want to prevent automatic reservation on BOM journal.

  • Suggested answer
    John_Castro Profile Picture
    on at
    RE: BOM Journal automatic reservation

    Nick,

    Try the accounts receivable parameters, there is a reservation parameter there for Bills of Materials...

    technet.microsoft.com/.../aa551553.aspx

    See the following option -

    Automatic – Inventory is reserved when order lines are created, in the order in which the order lines are created. For bills of materials (BOMs), reservations are made for the BOM item number, not for the individual elements of the BOM.

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

News and Announcements

Now Available: 2025 Release Wave 2

Quick Links

Ramesh Kumar – Community Spotlight

We are honored to recognize Ramesh Kumar as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

Leaderboard > 🔒一 Microsoft Dynamics AX (Archived)

#1
Kempeth Profile Picture

Kempeth 4

#1
Andy Adamak Profile Picture

Andy Adamak 4

#1
Community Member Profile Picture

Community Member 4

Featured topics

Product updates

Dynamics 365 release plans