SOAP-Fehler beim Hinzufügen von Issues mit Custom Fields zu Mantis

Die Fehlerdatenbank („Bug tracker“) Mantis hat auch eine SOAP-Schnittstelle.

Diese verwende ich um Issues aus unserem Test Management Tool nach Mantis zu schreiben.

Das funktioniert seit Jahren gut und zuverlässig.

Fehler

Jetzt hat ein Kunde einen Fehler gemeldet und ich konnte ihn lokal in meiner Testumgebung nachvollziehen.

Und zwar schlug das Hinzufügen von neuen Issues, die benutzerdefinierte Felder enthalten, mit folgender SOAP-Fehlermeldung fehl:

Additional information: Error Type: SYSTEM NOTICE,

Error Description: Undefined index: field

Auf dem Server stand im PHP-Fehlerprotokoll u.a. folgendes:

[mantisconnect.php] Error Type: SYSTEM NOTICE,
Error Description: Undefined index: field
Stack Trace:
mc_issue_api.php L758

Die entsprechende Fehlerzeile im erwähnten Quelltext (mc_issue_api.php) enthielt:

$t_set_custom_field_error = 
    mci_issue_set_custom_fields( 
        $t_issue_id, 
        $p_issue['custom_fields'], 
        false );

Und das hat mich dann auf die Spur gebracht:

Ursache

Die Ursache war im Endeffekt, dass ich das Issue zu einem Projekt hinzufügen wollte, für das das benutzerdefinierte Feld („Custom Field“) nicht zugeordnet war.

D.h. das custom Field existierte und es war einigen Projekten zugeordnet, nur eben nicht dem Projekt, für das ich das neue Issue via SOAP-API hinzufügen wollte.

Lösung

Die Lösung war ganz einfach:

  1. An Mantis im Webbrowser anmelden.
  2. Auf Verwaltung klicken.
  3. Auf Benutzerdefinierte Felder klicken.
  4. Das entsprechende Feld anklicken um es zu bearbeiten.
  5. Im Feld Projekte die entsprechenden Projekte auswählen.
  6. Schaltfläche Benutzerdefiniertes Feld zuordnen anklicken.

Anschließend konnte ich erfolgreich via SOAP-API ein neues Issue mit benutzerdefiniertem Feld hinzufügen.