postExecuteInterfaceMacro method

Future<Response> postExecuteInterfaceMacro(
  1. String macroName, {
  2. Map<String, dynamic>? body,
})

Führt ein Schnittstellenmakro auf dem Server aus

Diese Methode ermöglicht die Ausführung von benutzerdefinierten Interface-Makros, die in DOCUframe hinterlegt sind.

Das Makro wird über den /v1/execute/{macroName} Endpunkt ausgeführt und erhält die übergebenen Daten als JSON-Body. Die Antwort enthält das Ergebnis der Makro-Ausführung und kann je nach Makro unterschiedliche Datenstrukturen enthalten.

macroName - Der Name des auszuführenden Interface-Makros body - Die Eingabedaten für das Makro als Map (werden als JSON übertragen)

Returns: http.Response - Die direkte HTTP-Response des Makro-Aufrufs

Throws: Exceptions definiert in RestApiResponse und HTTP-Fehler

Beispiel:

Map<String, dynamic> macroData = {
  "parameter1": "wert1",
  "parameter2": 123,
  "objekte": ["oid1", "oid2"]
};

http.Response response = await api.v1.integrations.postExecuteInterfaceMacro(
  "MeinCustomMakro",
  body: macroData,
);

if (response.statusCode == 200) {
  Map<String, dynamic> result = jsonDecode(response.body);
  print("Makro erfolgreich ausgeführt: $result");
}

Hinweis zur neuen API: Führt ein Interface-Makro aus (POST v1/execute/{macroName}) und liefert die rohe http.Response zurück; body wird nur bei Nicht-null gesendet.

Hinweis: Der Legacy-Manager rief NICHT _synchronizedRefreshSession() vorab auf (anders als postPrintMacrosExecute); das Session-Handling erfolgt hier über die reaktive Session-Policy der Runtime.

Implementation

Future<http.Response> postExecuteInterfaceMacro(
  String macroName, {
  Map<String, dynamic>? body,
}) {
  return _runtime.execute(
    ApiRequest<http.Response>(
      method: ApiHttpMethod.post,
      version: ApiVersion.v1,
      path: '/execute/$macroName',
      body: body != null ? jsonEncode(body) : null,
      authentication: AuthenticationPolicy.session,
      responsePolicy: _rawResponsePolicy,
      operationId: 'v1.integrations.postExecuteInterfaceMacro',
    ),
  );
}