Wednesday, 9 September 2026

Direct transfers from warehouse-enabled locations in Business Central 2026 wave 2

Direct transfers have always been the shortcut option for moving stock between locations. No in-transit location, no separate ship and receive steps, one posting and you are done. The catch was that the moment your source location had any real warehouse configuration on it, the shortcut stopped feeling like a shortcut.

Update 29.0 (2026 release wave 2) addresses two related things: direct transfers now work properly with outbound warehouse handling at the source location, and the posting method is no longer a single company-wide switch. You can set it per transfer route.

 

Quick refresher on the two posting methods

A direct transfer skips the in-transit location. What happens behind the scenes depends on which posting method is in play, and the difference matters more than the name suggests.

Direct Transfer posts one Posted Direct Transfer document. Business Central posts the full transfer line quantity. No transfer shipment, no transfer receipt. Per the current documentation, this produces two item ledger entries: transfer from the source location and transfer to the destination location.

Shipment and Receipt posts a transfer shipment and a transfer receipt together, so you end up with both a posted transfer shipment and a posted transfer receipt. Qty. to Ship must equal Qty. to Receive. Per the current documentation, this produces four item ledger entries, routed through a blank location rather than a real in-transit location.


What changed in the setup

Previously, one setting on the Inventory Setup page decided how Business Central posted every direct transfer in the company. If you had a mix of simple store-to-store moves and warehouse-controlled moves, you picked one method and lived with it.

Now there are two levels:

  • Default Direct Transfer Posting on the Inventory Setup page sets the company-wide default.
  • Direct Transfer Posting on the Transfer Routes page overrides the default for a specific route.

The transfer order uses the route setting when one exists, and falls back to the Inventory Setup default when it does not. You can also change Direct Transfer Posting on an open transfer order when a one-off needs different treatment.

Outbound warehouse scenarios

This is the part that unlocks the feature for warehouse-enabled sites. How you complete the transfer depends on how the transfer-from location is configured.

Transfer-from location setup

How you complete the transfer

No warehouse requirements

Post from the Transfer Order

Require Pick without Require Shipment

Create and post an Inventory Pick

Require Shipment without Require Pick

Create and post a Warehouse Shipment

Require Pick and Require Shipment

Register the Warehouse Pick, then post the Warehouse Shipment

Bin Mandatory

Enter valid source and destination bins, then post from whichever document the other warehouse settings require

Directed Put-away and Pick at the source

Register the warehouse pick and post the warehouse shipment using the advanced warehouse process

Partial posting is supported when you post from a warehouse shipment under the Shipment and Receipt method. Everywhere else, expect the full line quantity.

Walkthrough

1. Set the company default

Search for Inventory Setup and set Default Direct Transfer Posting. Pick the method that fits the majority of your transfers, because everything without a route-level override inherits this.



2. Override the method on a transfer route

Search for Transfer Routes. For the route you want to treat differently, turn on Direct Transfer and set Direct Transfer Posting.



3. Confirm the source location setup

Open the Location Card for the transfer-from location and check Require Pick, Require Shipment, Bin Mandatory, and Directed Put-away and Pick on the Warehouse FastTab. This combination decides which document you post from later, so note it before you create the order.



4. Create the transfer order

Search for Transfer Orders and create a new one. Fill in Transfer-from Code and Transfer-to Code, then turn on Direct Transfer. Confirm that Direct Transfer Posting picked up the value you expect from the route or the setup default.



5. Add lines and bin codes

Add the item lines. If either location uses bins, fill in Transfer-From Bin Code and Transfer-To Bin Code. A destination that uses bins needs a valid Transfer-To Bin Code or posting will fail.

You can build lines by hand, use Select items for several at once, or pull from Get Bin Content or Get Receipt Lines.



6. Post according to the source setup

No warehouse requirements. Choose Post on the transfer order.

Require Pick only. Choose Create Inventory Put-away/Pick on the released transfer order, open the inventory pick, enter the handled quantities and bins, then post it.

Require Shipment only. Choose Create Warehouse Shipment, open the warehouse shipment, set the quantities, and post. This is the path where partial posting works under Shipment and Receipt.

Require Pick and Require Shipment. Create the warehouse shipment, create the pick from it, register the warehouse pick, then post the warehouse shipment. Registering the pick does not post the transfer, it just makes the quantity available to the shipment.

Directed Put-away and Pick at the source. Same as above, using the standard advanced warehouse flow.

7. Check what got posted

With Direct Transfer, look for the Posted Direct Transfer document. With Shipment and Receipt, look for the posted transfer shipment and the posted transfer receipt.



Then open the item ledger entries for the item and confirm the entry count and the location codes match what you expect.



Limitations to design around

These are stated in the preview documentation and they shape your location setup more than anything else in the feature:

  • Direct transfer posting does not create inbound warehouse receipts or inventory put-aways.
  • The transfer-to location cannot use Directed Put-away and Pick.
  • With Shipment and Receipt, the destination also cannot require warehouse receipt or put-away.
  • A destination that uses bins requires a valid Transfer-To Bin Code.

Outbound warehouse handling at the source is now in scope. 

If the receiving side needs warehouse receipt or directed put-away control, the configuration that supports full warehouse handling on both ends is a transfer order with the Direct Transfer toggle off and an in-transit location.



Tuesday, 8 September 2026

Business Central 2026 Wave 2: Preview Images Directly in the Web Client

One of the most practical user experience enhancements in Dynamics 365 Business Central 2026 Release Wave 2 (BC29) is the ability to preview image attachments directly in the web client without downloading them first. This feature brings image files in line with the PDF preview experience introduced in earlier releases and makes working with attachments much more seamless.

What's New?

With BC29, users can open supported image attachments directly within Business Central and view them in a dedicated preview window. There's no need to download the file locally before viewing it.

The viewer experience is similar to the existing PDF and print preview experiences. Users can zoom, navigate, print, and download the image if they want to keep a local copy.



Supported Image Formats

Microsoft has included support for a wide range of image types:

  • JPEG / JPG
  • PNG
  • BMP
  • SVG
  • WEBP
  • ICO
  • GIF (including animated GIFs)
  • AVIF (including animated AVIFs)

Safari users also gain support for:

  • TIFF
  • TIF

 

Additional Benefits

Beyond simply opening images, Microsoft has included a couple of nice enhancements:

Animated GIF Support

GIF thumbnails can now be displayed in FactBoxes, including animation support for GIFs up to 48 frames.

Clickable Thumbnails

Image thumbnails and PDF thumbnails become clickable and automatically open the preview window.

These small improvements make document-heavy processes much more user friendly. 




Where This Helps

This feature can be useful in many scenarios:

  • Product images
  • Item catalogs
  • Quality inspection photos
  • Purchase documentation
  • Service department attachments
  • Employee receipts and supporting documents
  • Images generated or uploaded by custom extensions

Instead of downloading multiple files while reviewing records, users can quickly preview them directly inside Business Central.

What About Custom Extensions?

The good news is that Microsoft has made this capability available to extension developers.

For Business Central Online, developers can use:

File.ViewFromStream(...)


Customization Example: Preview an Image Stored in a Custom Table/Field

Suppose you've added a custom Table/field and want users to preview the image directly without downloading it.

Table 

table 50100 "Image Test"
{
Caption = 'Image Test';
DataClassification = CustomerContent;

fields
{
field(1; "No."; Code[20])
{
Caption = 'No.';
}

field(10; Description; Text[100])
{
Caption = 'Description';
}

field(20; "File Name"; Text[250])
{
Caption = 'File Name';
}

field(30; "Image Blob"; Blob)
{
Caption = 'Image';
}
}

keys
{
key(PK; "No.")
{
Clustered = true;
}
}

}


page 50100 "Image Test List"
{
Caption = 'Image Test List';
PageType = List;
SourceTable = "Image Test";
UsageCategory = Lists;
ApplicationArea = All;

layout
{
area(Content)
{
repeater(Group)
{
field("No."; Rec."No.")
{
ApplicationArea = All;
}

field(Description; Rec.Description)
{
ApplicationArea = All;
}

field("File Name"; Rec."File Name")
{
ApplicationArea = All;
Editable = false;
}
}
}
}

actions
{
area(Processing)
{
action(UploadImage)
{
Caption = 'Upload Image';
ApplicationArea = All;
Image = Import;
Promoted = true;
PromotedCategory = Process;

trigger OnAction()
var
FileName: Text;
InS: InStream;
OutS: OutStream;
begin
if UploadIntoStream(
'Select Image',
'',
'All Files (*.*)|*.*',
FileName,
InS)
then begin

Clear(Rec."Image Blob");

Rec."Image Blob".CreateOutStream(OutS);
CopyStream(OutS, InS);

Rec."File Name" := FileName;

Rec.Modify(true);

Message('File uploaded: %1', FileName);
end;
end;
}

action(PreviewImage)
{
Caption = 'Preview Image';
ApplicationArea = All;
Image = View;
Promoted = true;
PromotedCategory = Process;

trigger OnAction()
var
InS: InStream;
begin
Rec.CalcFields("Image Blob");

if not Rec."Image Blob".HasValue() then
Error('No image uploaded.');

if Rec."File Name" = '' then
Error('No filename stored.');

Rec."Image Blob".CreateInStream(InS);

File.ViewFromStream(
InS,
Rec."File Name"
);
end;
}
}
}

 

When the user selects Preview Image, the image opens directly inside the BC29 web client without downloading it first.


Why This Matters for Developers

Prior to this feature, many developers had to rely on:

  • JavaScript control add-ins
  • SharePoint previews
  • Temporary downloads
  • External viewers

With native image preview support now built into the platform, custom solutions become simpler, cleaner, and more consistent with the standard Business Central user experience. 


Final Thoughts

The new Preview Images Directly in Web Client feature is one of those enhancements that users will immediately appreciate. It removes unnecessary downloads, provides a familiar viewing experience, and gives developers a standard way to surface image content directly within Business Central.

Combined with support for animated GIFs, clickable thumbnails, and extension development support through File.ViewFromStream, this feature helps make Business Central's document experience more modern and productive.