Seite 1 von 1

ungültiges Lesefeld-Skript gefunden!

Verfasst: Donnerstag 30. Oktober 2014, 09:41
von kmeyster
Hallo allerseits,
ich laboriere mit einem ungültigen Lesefeldskript für "juristische Personen" rum. Wenn ich eine Firma mit Ansprechpartner anlege wird offenbar der Versand von emails durch ein ungültiges Lesefeld-Skript unterbunden.

Mein verwendetes Skript ist die persönliche Anrede:
Anrede - Liebe, Lieber, Hallo
String r = "";
if(mitglied_geschlecht.equals("w"))
r = "Liebe " + mitglied_vorname;
else if(mitglied_geschlecht.equals("m"))
r = "Lieber " + mitglied_vorname;
else
r = "Hallo " + mitglied_vorname;
r += ",";
return r;

Offenbar hat Jverein aber ein Problem damit, dass ja bei einer Firma kein Geschlecht abgefragt wird:

Fehler beim Auswerten des Skriptes: "Sourced file: inline evaluation of: ``String r = ""; if(mitglied_geschlecht.equals("w")) r = "Liebe " + mitglied_vor . . . ''".
java.lang.NullPointerException: Null Pointer in Method Invocation

Was kann ich denn da tun?
Das Anlegen eines zweiten statischen "Skriptes" ("Sehr geehrte....") hilft auch nicht weiter

Vielen Dank für die Hilfe, Grüße, matthias

Re: ungültiges Lesefeld-Skript gefunden!

Verfasst: Donnerstag 30. Oktober 2014, 10:37
von heiner
Ohne es ausprobiert zu haben: if (mitglied.geschlecht != null)

Heiner

Re: ungültiges Lesefeld-Skript gefunden!

Verfasst: Donnerstag 30. Oktober 2014, 21:14
von kmeyster
Hallo Heiner, leider nein:
Skript-Fehler:
Sourced file: inline evaluation of: ``String r = ""; if (mitglied_geschlecht != null) r = "Sehr geehrte Damen und He . . . ''


Skript:
String r = "";
if (mitglied_geschlecht != null)
r = "Sehr geehrte Damen und Herren";
else if(mitglied_geschlecht.equals("w"))
r = "Liebe " + mitglied_vorname;
else if(mitglied_geschlecht.equals("m"))
r = "Lieber " + mitglied_vorname;
else
r += ",";
return r;


Ich werde daraus nicht schlau!
Grüße, Matthias

Re: ungültiges Lesefeld-Skript gefunden!

Verfasst: Freitag 31. Oktober 2014, 18:07
von heiner
Hallo Matthias,

jetzt mal eine getestete Version:

Code: Alles auswählen

String r = "";
if (mitglied_geschlecht != null)
{ 
if(mitglied_geschlecht.equals("w"))
r = "Liebe " + mitglied_vorname;
else if(mitglied_geschlecht.equals("m"))
r = "Lieber " + mitglied_vorname;
else
r = "Hallo " + mitglied_vorname;
r += ",";
}
else
{
r = "Sehr geehrte Damen und Herren,";
}
return r;
Bei leerem Geschlecht kommt "Sehr geehrte Damen und Herren," raus. Ansonsten so, wie du es vorher schon geschrieben hast.

Heiner

Re: ungültiges Lesefeld-Skript gefunden!

Verfasst: Dienstag 2. Dezember 2014, 10:42
von Heart
Hallo Heiner,

ich habe das hier eben mal getestet.
Bei leerem Geschlecht kommt "Sehr geehrte Damen und Herren," raus. Ansonsten so, wie du es vorher schon geschrieben hast.
Meine Mitglieder hatten bisher alle "Bitte auswählen" drin (vom Import her noch alle ohne Geschlecht denke ich).
Selbst bei dieser Konstellation "Bitte auswählen" erhalte ich "Hallo ...," als Anrede.
Ist "ohne Angabe" ausgewählt erhalte ich ebenfalls "Hallo ...," als Anrede.

Bei welcher Konstellation kommt dann überhaupt das "Sehr geehrte Damen und Herren," raus :?:

...müsste die anfängliche Prüfung evtl. auf einen leeren String anstatt null sein?

Code: Alles auswählen

if (mitglied_geschlecht != "")

Re: ungültiges Lesefeld-Skript gefunden!

Verfasst: Mittwoch 3. Dezember 2014, 18:06
von heiner
Hallo Matthias,

prüfe doch mal direkt auf der Datenbank, welche Werte eingetragen sind. Ist null eingetragen, ist die Abfrage korrekt. Ist ein Leerstring eingetragen, fragst du Leerstring ab. Ist entweder das eine oder das andere eingetragen, fragst du beide Werte mit oder ab. Den Wert "ohne Angabe" hast du in deinem Code nicht abgefragt. Wenn er bei dir vorkommt, nehme die Abfrage auf.

Heiner