Bug 127214 - Base files macros not being able to run through a command line
Summary: Base files macros not being able to run through a command line
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
(earliest affected)
Inherited From OOo
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Not Assigned
Depends on:
Blocks: Commandline
  Show dependency treegraph
Reported: 2019-08-29 11:57 UTC by Nuno Seixas
Modified: 2019-08-29 23:32 UTC (History)
0 users

See Also:
Crash report or crash signature:

A DB with a macro (4.69 KB, application/vnd.sun.xml.base)
2019-08-29 12:08 UTC, Mike Kaganski

Note You need to log in before you can comment on or make changes to this bug.
Description Nuno Seixas 2019-08-29 11:57:54 UTC
I was trying to run a macro stored in a Base file like this:

soffice "C:\Users\nuno\AppData\Roaming\LineMap.odb" "macro://LineMap/Reports.Report.genRep"

However it doesn't work.

A friend have debugged, and in SfxMacroLoader::loadMacro, the call to SfxObjectShell::GetFirst() returns nullptr - it means that the open database isn't listed among open shells - and thus doesn't offer the expected functionality (unlike Writer or Calc components)

Steps to Reproduce:
1. soffice "C:\Users\nuno\AppData\Roaming\LineMap.odb" "macro://LineMap/Reports.Report.genRep"

Actual Results:
Open file but doesn't fire up the macro

Expected Results:
Fire up the macro

Reproducible: Always

User Profile Reset: No

Additional Info:
Comment 2 Mike Kaganski 2019-08-29 12:03:51 UTC
Repro with Version: (x64)
Build ID: e979878b49a48dab15ebe528f238b88125e32c65
CPU threads: 12; OS: Windows 10.0; UI render: GL; VCL: win; 
Locale: ru-RU (ru_RU); UI-Language: en-US
Calc: CL
Comment 3 Mike Kaganski 2019-08-29 12:08:49 UTC
Created attachment 153732 [details]
A DB with a macro

This contains a library Reports, module Report, macro genRep that only shows a "Test" messagebox.

Allowing to run macros, and trying

> soffice dbMacro.odb macro://dbMacro/Reports.Report.genRep

does not show the dialog when opening the DB. As mentioned, the DB doesn't have an associated shell in the list returned by SfxObjectShell::GetFirst called from SfxMacroLoader::loadMacro, thus not allowing to access its macros when dispatching the 'macro:' URI.
Comment 4 Alex Thurgood 2019-08-29 12:34:22 UTC
Tested this against 

OOO320m18 (build 9502)

macro isn't executed there either from the command line. However, it runs just fine when executed manually from via the Macros menu.