Hauptmenü

Report-Erzeugung über API mit mehreren Parametern

Begonnen von Niels Ippensen, 18.03.2026 13:40:32

⏪ vorheriges - nächstes ⏩

Niels Ippensen

Hi zusammen,

erzeugt jmd per API Reports, die mehrere Parameter braucht? Das klappt in unserem System (v36.1) nicht...

MfG,
Niels

URL: /reporting/reports
JSON-Body vom POST-Request:

{
  "Report": {
    "DefinitionID": 2222,
    "Config": {
      "Parameters": [{"dateStart": "2026-01-01"},{"dateEnd": "2026-01-01"}],
      "OutputFormats": [
        "JSON"
      ]
    }
  }
}

Starman-Fehler :-)

Not a HASH reference at /opt/kix/Kernel/System/Reporting/Report.pm line 625
Kernel::System::Reporting::Report::_ValidateReport('KIXPro::Kernel::System::Reporting=HASH(0x622f7e7724e0)', 'Definition', 'HASH(0x622f7df21c78)', 'DefinitionID', 22, 'Config', 'HASH(0x622f7e443120)', 'UserID', 483367) called at /opt/kix/Kernel/System/Reporting/Report.pm line 212
Kernel::System::Reporting::Report::ReportCreate('KIXPro::Kernel::System::Reporting=HASH(0x622f7e7724e0)', 'DefinitionID', 22, 'Config', 'HASH(0x622f7e443120)', 'UserID', 483367) called at /opt/kix/Kernel/API/Operation/V1/Reporting/ReportCreate.pm line 136
Kernel::API::Operation::V1::Reporting::ReportCreate::Run('Kernel::API::Operation::V1::Reporting::ReportCreate=HASH(0x622f7e3aeed8)', 'Data', 'HASH(0x622f7e4438e8)') called at /opt/kix/Kernel/API/Operation/V1/Common.pm line 310
Kernel::API::Operation::V1::Common::RunOperation('Kernel::API::Operation::V1::Reporting::ReportCreate=HASH(0x622f7e3aeed8)', 'Data', 'HASH(0x622f7e4438e8)') called at /opt/kix/Kernel/API/Operation.pm line 259
Kernel::API::Operation::Run('Kernel::API::Operation=HASH(0x622f7e398aa0)', 'Data', 'HASH(0x622f7e4438e8)') called at /opt/kix/bin/server/../../Kernel/API/Provider.pm line 390
Kernel::API::Provider::Run('Kernel::API::Provider=HASH(0x622f7e8bee80)') called at /opt/kix/bin/server/app.psgi line 74
eval {...} at /opt/kix/bin/server/app.psgi line 70
Plack::Sandbox::_2fopt_2fkix_2fbin_2fserver_2fapp_2epsgi::__ANON__ at /usr/share/perl5/CGI/Emulate/PSGI.pm line 30
Plack::Middleware::StackTrace::try {...}  at /usr/share/perl5/Try/Tiny.pm line 100
eval {...} at /usr/share/perl5/Try/Tiny.pm line 93
Plack::Middleware::StackTrace::call('Plack::Middleware::StackTrace=HASH(0x622f7d22a0d8)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Middleware/AccessLog/Timed.pm line 17
Plack::Middleware::AccessLog::Timed::call('Plack::Middleware::AccessLog::Timed=HASH(0x622f7d26f328)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Middleware/Deflater.pm line 20
Plack::Middleware::Deflater::call('Plack::Middleware::Deflater=HASH(0x622f7d2641c8)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Middleware/Refresh.pm line 23
Plack::Middleware::Refresh::call('Plack::Middleware::Refresh=HASH(0x622f7d252da8)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Middleware/Runtime.pm line 12
Plack::Middleware::Runtime::call('Plack::Middleware::Runtime=HASH(0x622f7d1eb650)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Component.pm line 50
Plack::Component::__ANON__('HASH(0x622f7e35bf28)') called at /usr/share/perl5/Plack/Util.pm line 145
eval {...} at /usr/share/perl5/Plack/Util.pm line 145
Plack::Util::run_app('CODE(0x622f7d20fc98)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Starman/Server.pm line 195
Starman::Server::dispatch_request('Starman::Server=HASH(0x622f76776148)', 'HASH(0x622f7e35bf28)') called at /usr/share/perl5/Starman/Server.pm line 299
Starman::Server::process_request('Starman::Server=HASH(0x622f76776148)', 'Net::Server::Proto::TCP=GLOB(0x622f7d6d3280)') called at /usr/share/perl5/Net/Server.pm line 72
Net::Server::run_client_connection('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Net/Server/PreFork.pm line 226
eval {...} at /usr/share/perl5/Net/Server/PreFork.pm line 226
Net::Server::PreFork::run_child('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Net/Server/PreFork.pm line 184
Net::Server::PreFork::run_n_children('Starman::Server=HASH(0x622f76776148)', 1) called at /usr/share/perl5/Net/Server/PreFork.pm line 381
Net::Server::PreFork::coordinate_children('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Net/Server/PreFork.pm line 328
Net::Server::PreFork::run_parent('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Starman/Server.pm line 164
Starman::Server::run_parent('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Net/Server/PreFork.pm line 109
Net::Server::PreFork::loop('Starman::Server=HASH(0x622f76776148)') called at /usr/share/perl5/Net/Server.pm line 58
Net::Server::run('Starman::Server=HASH(0x622f76776148)', 'port', 'ARRAY(0x622f7aa368f0)', 'host', '*', 'proto', 'tcp', 'serialize', 'none', 'min_servers', 32, 'min_spare_servers', 15, 'max_spare_servers', 30, 'max_servers', 320, 'max_requests', 1000, 'user', 110010100, 'group', '0 0', 'listen', 1024, 'check_for_waiting', 1, 'no_client_stdout', 1) called at /usr/share/perl5/Starman/Server.pm line 106
Starman::Server::run('Starman::Server=HASH(0x622f76776148)', 'CODE(0x622f7d20fc98)', 'HASH(0x622f7d229910)') called at /usr/share/perl5/Plack/Handler/Starman.pm line 25
Plack::Handler::Starman::run('Plack::Handler::Starman=HASH(0x622f7d0f5430)', 'CODE(0x622f7d20fc98)') called at /usr/share/perl5/Plack/Loader.pm line 84
Plack::Loader::run('Plack::Loader=HASH(0x622f7667a0e8)', 'Plack::Handler::Starman=HASH(0x622f7d0f5430)') called at /usr/share/perl5/Plack/Runner.pm line 279
Plack::Runner::run('Plack::Runner=HASH(0x622f76405b98)') called at /usr/bin/plackup line 7

Frank Niethardt

Moin Niels,

möglicherweise sind die Parameter bei dir falsch definiert. In der API Doc steht dort ein Object und kein Array. Beispiel:

{"Report": {"DefinitionID": 1,"Config": {"Parameters": {"Name_Pattern": "in"},"OutputFormats": ["CSV"]}}}
Wäre also für dich sowas wie:
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]{[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]  "Report": {[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]    "DefinitionID": 2222,[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]    "Config": {[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]      "Parameters": {"dateStart": "2026-01-01", "dateEnd": "2026-01-01"},[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]      "OutputFormats": [[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]        "JSON"[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]      ][/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]    }[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]  }[/font][/size][/color]
[color=#5e5e64][size=2][font=Roboto, Arial, sans-serif]}[/font][/size][/color]


Viele Grüße
Frank

Niels Ippensen

Hi,

vielen Dank - damit klappts. Ich war mir zwar sicher, dass wir es so probiert hatten und dann ein

{
  "Code": "Transport.REST.InvalidJSON",
  "Message": "Error while decoding request content."
}

kam, aber aktuell ist dies nicht der Fall :-)

MfG,
Niels