Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Hast du Probleme oder Fragen bei der Einrichtung bestimmter Plugins ? Diese kannst du hier loswerden.
Antworten
Benutzeravatar
fiwad
Beiträge: 46
Registriert: 17. Okt 2013, 14:04

Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von fiwad »

Hallo,

ich verwende Admidio und das Modul Mitgliedsbeitrag mit zwei Organisationen. Nach einem Update der Dateien gemäß Anleitung in lesen.txt auf V3.3.4 funktioniert das Modul nicht mehr:

In der einen Organisation sind nach Aufruf des Moduls aus Admidio alle Felder bis auf das Feld Sequenztyp vorhanden. Wenn ich dann auf Weiter klicke, erscheint folgende Fehlermeldung:

Code: Alles auswählen

S Q L - E R R O R

CODE: 1062
Duplicate entry 'SEQUENCETYPE2' for key 'IDX_USF_NAME_INTERN'

B A C K T R A C E

FILE: adm_program/system/db/db_mysql.php
LINE: 62
CALL: DBCommon->db_error()

FILE: adm_program/system/db/db_mysql.php
LINE: 172
CALL: DBMySQL->db_error()

FILE: adm_plugins/mitgliedsbeitrag/install.php
LINE: 220
CALL: DBMySQL->query()
Wenn ich mich bei der anderen Organisation einlogge, erhalte ich beim Aufruf des Moduls den Hinweis, dass die Felder Mitgliedsnummer und Sequenztyp fehlen. Die Fehlermeldung lautet hier:

Code: Alles auswählen

S Q L - E R R O R

CODE: 1062
Duplicate entry 'MEMBERNUMBER' for key 'IDX_USF_NAME_INTERN'

B A C K T R A C E

FILE: adm_program/system/db/db_mysql.php
LINE: 62
CALL: DBCommon->db_error()

FILE: adm_program/system/db/db_mysql.php
LINE: 172
CALL: DBMySQL->db_error()

FILE: adm_plugins/mitgliedsbeitrag/install.php
LINE: 125
CALL: DBMySQL->query()
Was kann ich tun? Soll ich alle von Mitgliedsbeitrag verwendeten Felder in der Benutzerverwaltung löschen und nochmal versuchen?

Viele Grüße,
fiwad
rmb
Plugin-Developer
Beiträge: 632
Registriert: 10. Mai 2011, 19:56
Wohnort: 86856

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von rmb »

Hallo fiwad,

welche Version von Mitgliedsbeitrag hattest Du vorher eingesetzt.

rmb
Benutzeravatar
fiwad
Beiträge: 46
Registriert: 17. Okt 2013, 14:04

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von fiwad »

Hallo rmb,

die vorherige Version war 3.3.3.

Mir ist noch etwas eingefallen, das vielleicht eine Rolle spielen könnte: Mit der Version 3.3.3 hatte ich bei der ersten Organisation den Bugfix aus diesem Beitrag umgesetzt. Die zweite Organisation hatte den Bug-Fix noch nicht. Heute habe ich zufällig gesehen, dass es eine neue Version gibt und habe daher aktualisiert. Also ohne vorher die beiden Organisationen bug-fix-mäßig gleichzuziehen.

Viele Grüße,
fiwad
Benutzeravatar
fiwad
Beiträge: 46
Registriert: 17. Okt 2013, 14:04

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von fiwad »

Hallo,

also an der Version 3.3.4 scheint es nicht zu liegen:

Ich habe alle Werte in der Tabelle "plugin_preferences", die mit "PMB" beginnen, gelöscht und per FTP die 3.3.3-Dateinen wieder restauriert. Beim erstmaligen Start des Plugins werden die PMB-Einträge erwartungsgemäß wieder hergestellt. Das Verhalten ist aber leider das gleiche, also die gleichen Fehlermeldungen.

Irgendetwas scheint an der Struktur passiert zu sein, das dem Plugin nicht gefällt. Ich suche mal weiter.

Gruß,
fiwad
Benutzeravatar
fiwad
Beiträge: 46
Registriert: 17. Okt 2013, 14:04

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von fiwad »

Hallo,

also jetzt die endgültige Entwarnung: Mit einem (leider etwas älteren) Backup funktioniert Mitgliedsbeitrag 3.3.4 ohne Probleme. :D Und benötigt (erwartungsgemäß) auch nicht mehr den Bugfix, der für 3.3.3 noch notwendig war.

Ursache der SQL-Fehlermeldungen sind offenbar irgendwelche, von mir durchgeführten Änderungen an den Profilfeldern zwischen dem o. g. Backup und dem heutigen Zustand der Datenbank. Ich werde noch versuchen, den Fehler näher einzukreisen.

rmb, ich würde mich freuen, wenn du die folgenden Fragen kurz beantworten könntest:
  1. - Ist es erlaubt, von Mitgliedsbeitrag verwendete Profilfelder bzw. Profilfelder-Kategorien umzubenennen? (Der interne Name bleibt doch unverändert...)
  2. - Oder von Mitgliedsbeitrag verwendete Profilfelder in andere Kategorien zu verschieben?
  3. - Oder sollte man das besser sein lassen?
Ich kann mir auch nicht ganz erklären, weshalb Mitgliedsbeitrag in der einen Organisation nur das Feld "Sequenztyp" vermisst und in der anderen Organisation die Felder "Sequenztyp" und "Mitgliedsnummer".
Sind denn die Datenfelder nicht für alle Organisationen gleich?

Viele Grüße,
fiwad
rmb
Plugin-Developer
Beiträge: 632
Registriert: 10. Mai 2011, 19:56
Wohnort: 86856

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von rmb »

Hallo fiwad,

aufgrund Deines Problems habe ich mehrfach ein Update von 3.3.3 auf 3.3.4 durchgeführt, mit Einarbeiten des Bug-Fixes und ohne. Den von Dir beschriebenen Fehler konnte ich aber nicht rekonstruieren.
Höchstwahrscheinlich hängt er mit den von Dir durchgeführten Änderungen an der Profilfeldern zusammen.

Zu Deinen Fragen:
Ist es erlaubt, von Mitgliedsbeitrag verwendete Profilfelder bzw. Profilfelder Kategorien umzubenennen?
Alle Namen von Profilfeldern bzw Kategorien, die mit PMB_ beginnen sollten nicht umbenannt werden, da sie durch die Sprachdatei übersetzt werden.
Alle restlichen, noch deutschen Namen könnten geändert werden. Ich würde es aber nicht, da irgendwann in der Zukunft auch diese Namen auf PMB_ umgestellt werden.
-Oder von Mitgliedsbeitrag verwendete Profilfelder in andere Kategorien zu verschieben?
Bei den Profilfeldern muss man unterscheiden ob sie organisationsabhängig sind. Erkennbar ist das, wenn der interne Name mit einer Zahl endet.
Die Zahl bedeutet die ID der Organisation (z.B. SEQUENCETYPE3 -> Das ist das Profilfeld Sequenztyp in der Organisation mit der Org_ID 3).
Profilfelder die organisationsabhängig sind dürfen nicht in eine Kategorie verschoben werden, die für mehrere Organisationen sichtbar ist (z.B. Stammdaten). Das Profilfeld Bankleitzahl könntest du aber z.B. in die Stammdaten verschieben, das sollte funktionieren.
Sind denn die Datenfelder nicht für alle Organisationen gleich?
Nein

Beispiel:
- Das Profilfeld Mitgliedsnummer (=PMB_MEMBERNUMBER, interner Name MEMBERNUMBER) gibt es nur einmal
- Das Profilfeld Sequenztyp (=PMB_SEQUENCETYPE, interner Name z.B. SEQUENCETYPE1 oder SEQUENCETYPE2 usw) gibt es in jeder Organisation


Ich habe heute mal ein paar Versuche durchgeführt bzgl. Profilfelder umbenennen oder in eine andere Kategorie verschieben. Ich konnte auch danach noch Beiträge berechnen und z.B. Mandatsreferenzen erzeugen, aber ob es nach dem nächsten Update (das bestimmt irgendwann kommen wird) noch funktioniert, da möchte ich mich noch nicht festlegen.

Viele Grüße

rmb
Benutzeravatar
fiwad
Beiträge: 46
Registriert: 17. Okt 2013, 14:04

Re: Update auf Mitgliedsbeitrag 3.3.4 funktioniert nicht

Beitrag von fiwad »

Hallo rmb,

vielen Dank für deine sehr ausführliche Antwort. Ich bin wirklich begeistert von Admidio und seinen Möglichkeiten. Und dass sich die Entwickler in diesem Forum so rege beteiligen, setzt dem Ganzen noch eine Krone auf: Super!

Aber zurück zu meinen Problemen mit den SQL-Fehlermeldungen: Ich habe herausgefunden, was die Ursachen sind und wie man sie beheben kann. An einer Stelle bin ich mir nicht sicher, ob es ein Bug im Plugin ist. Daher beschreibe ich nachfolgend, was ich genau gemacht habe.

Ausgangssituation (wie im ersten Beitrag dieses Threads beschrieben):

a) In Organisation 2 (nachfolgend Org2) sind nach Aufruf des Moduls alle Felder bis auf das Feld Sequenztyp vorhanden. Wenn ich dann auf Weiter klicke, erscheint die Fehlermeldung Duplicate entry 'SEQUENCETYPE2' ....

b) In Organisation 1 (nachfolgend Org1) sind nach Aufruf des Moduls alle Felder bis auf die Felder Mitgliedsnummer und Sequenztyp vorhanden. Wenn ich dann auf Weiter klicke, erscheint die Fehlermeldung Duplicate entry 'MEMBERNUMBER' ...


Fehlerbehebung Mitgliedsnummer

Die Mitgliedsnummer ist in Org2 in einer Kategorie eingeordnet, die nur dort sichtbar ist: Option "Eintrag für mehrere Organisationen sichtbar" = abgeschaltet. (Habe ich wohl in Unkenntnis der Zusammenhänge beim Umsortieren der Profilfelder vermurkst... ) In Org1 wird das Profilfeld vom Plugin daher nicht gefunden. Beim Versuch, das Feld anzulegen, kommt es zur Kollision mit dem in Org2 bereits vorhandenen Profilfeld und hieraus resultiert die Fehlermeldung.

Ich habe in Org2 die Mitgliedsnummer in eine Kategorie verschoben, die für alle Organisationen sichtbar ist. Danach wurde sie in Org1 gefunden und die Fehlermeldung von SQL änderte sich in "Duplicate entry 'SEQUENCETYPE1' ...".


Fehlerbehebung Sequenztyp

Die Fehlermeldungen weisen darauf hin, dass es beim Anlegen des Profilfelds "Sequenztyp" durch das Plugin zu einer Kollision kommt. Da es offenbar in Org1 das Profilfeld SEQUENCETYPE1 und in Org2 das Profilfeld SEQUENZTYPE2 (interne Namen) schon gibt. Tatsächlich wird aber in der Ansicht Profilfelder in keiner der beiden Organisationen ein entsprechendes Feld angezeigt!

In der Datenbank findet man dann aber in der Tabelle user_fields tatsächlich zwei Einträge:

Bild

Diese Einträge haben eine Kategorie-ID von 0, sind dadurch offenbar vorhanden, aber nicht sichtbar. Und damit wahrscheinlich Ursache der Kollision. Beide Einträge werden direkt in der Datenbank gelöscht.

Beim Aufruf des Plugins in Org1 kommt erwartungsgemäß der Hinweis, dass das Feld "Sequenztyp" fehlt. Auf Weiter klicken und (überraschenderweise) nochmal die gleiche Anzeige, dass "Sequenztyp" fehlt. Nochmal auf Weiter klicken. Und... wieder die gleiche Fehlermeldung: "Duplicate entry 'SEQUENCETYPE1' ...".

Ein Blick in die Datenbank zeigt, dass dort wieder ein Eintrag, wie oben gezeigt, für SEQUENCETYPE1 angelegt wurde. (Und hier frage ich mich, ob das nicht ein Bug in Mitgliedsbeitrag ist. Also das Anlegen des Profilfelds mit Kategorie-ID 0.) Diesen Eintrag wieder gelöscht.

Nun ein anderer Versuch: In Admidio in Org1 ein neues Profilfeld anlegen:
- Name = "sequencetype1" (der interne Name erhält hierdurch die gleiche Bezeichnung)
- Kategorie = irgendeine Kategorie, die nur für Org1 sichtbar ist
- Datentyp = Text(50)
- Feld nicht für alle Benutzer sichtbar
Danach den Namen nochmal editieren und in PMB_SEQUENCETYPE ändern. Das ganze in Org2 wiederholen und dabei ein neues Profilfeld "sequencetype2" anlegen.

Danach in Org1 das Plugin aufrufen. Diesmal werden alle Felder gefunden. Auf Weiter klicken. Nun wird der zweite Durchgang angezeigt (SOLL-IST-Vergleich). Auf Weiter klicken. Die gleichen Schritte in Org2 durchführen: Plugin aufrufen, alle Felder werden gefunden, auf Weiter klicken, zweiter Durchgang wird angezeigt (SOLL-IST-Vergleich), auf Weiter klicken.

FERTIG! Das Plugin zeigt nun beim Aufruf in beiden Organisationen seine Einstellmöglichkeiten an und stellt z. B. die Versionsnummer dar (alle Versuche wurden übrigens mit 3.3.4 durchgeführt). Weitere Tests habe ich mangels Kenntnis der genauen SEPA-Funktionsweise noch nicht durchgeführt (ich arbeite mit Admidio erst seit ein paar Wochen und war bisher hauptsächlich mit dem Aufbau der Datenbank beschäftigt).

rmb, vielleicht kannst du ja bei Gelegenheit nochmal prüfen, ob meine Beobachtungen dem von dir beabsichtigten Verhalten entsprechen. Speziell beim Erzeugen der Sequenztyp-Felder mit Kategorie-ID 0 bin ich mir nicht so sicher.

Ansonsten ist aber mein anfängliches Problem verstanden und gelöst. Zukünftig werde ich mit Änderungen an Profilfeldern etwas vorsichtiger sein... 8)

Viele Grüße,
fiwad
Dateianhänge
Einträge für Sequenztyp in Tabelle user_fields mit Kategorie-ID 0
Einträge für Sequenztyp in Tabelle user_fields mit Kategorie-ID 0
sequencetype-eintraege.png (10.27 KiB) 5401 mal betrachtet
Antworten