Hello,
Yes — and your screenshot already told you exactly what you're fighting. Page Inspection shows the dialog is "Whse.-Shipment - Create Pick (7318, Report Request page)". So that box isn't a confirm dialog you can suppress with HideDialog; it's the request page of report 7318. The standard action on the Warehouse Shipment page ultimately calls that report (via CreatePickDoc on table 7320, which does Report.RunModal), and RunModal shows the request page by default.
To run it headless you replicate that call yourself with UseRequestPage(false), and pre-set the options the request page would have collected via the report's Initialize procedure.
A custom action that does it:
pageextension 50100 "Whse. Shipment Ext" extends "Warehouse Shipment"
{
actions
{
// The base action's OnAction trigger can't be overridden in a pageextension,
// so hide it and add your own.
modify(CreatePick) { Visible = false; }
addafter(CreatePick)
{
action(CreatePickNoDialog)
{
Caption = 'Create Pick';
Image = CreateInventoryPickup;
ApplicationArea = Warehouse;
trigger OnAction()
var
WhseShptLine: Record "Warehouse Shipment Line";
CreatePick: Report "Whse.-Shipment - Create Pick";
begin
WhseShptLine.SetRange("No.", Rec."No.");
// Pre-set the options the request page would have asked for.
// Verify the exact signature against YOUR version's symbols (see note).
CreatePick.Initialize(
'', // Assigned User ID
"Whse. Activity Sorting Method"::None,
false, // Set Breakbulk Filter
true, // Do Not Fill Qty. to Handle (matches your screenshot)
false); // Print Document
CreatePick.SetWhseShipmentLine(WhseShptLine, Rec);
CreatePick.UseRequestPage(false); // <-- this is what kills the dialog
CreatePick.RunModal();
end;
}
}
}
}
The mechanics:
UseRequestPage(false) is the single line that suppresses the dialog. SetWhseShipmentLine is how the standard table code feeds the report (so you're using the same supported entry point, just without the UI). Initialize is how you set the options programmatically instead of having the user toggle them.
The one thing to verify in your version: the Initialize signature. Across recent releases the request page gained extra toggles — your screenshot shows "Prioritize lines with item tracking" and "Show Summary (Directed Put-away...)" on top of the classic five, which means your Initialize may take more parameters than the example above (or those newer options may be set a different way). Right-click the report in VS Code → Go to Definition (or open it in the symbol browser) and check the actual procedure Initialize(...) parameters before wiring it up. If UseRequestPage(false) runs but an option you care about isn't set, it's almost always because that option isn't covered by your version's Initialize and defaults instead.
Thanks.
Shrey Chauhan