OTK Störung - IONOS als Mailserver®
Alle Hinweise und Informationen finden Sie unter folgendem Link.

KEINE Freigabe der macOS Version Sequoia für tomedo®
Alle Hinweise und Informationen finden Sie unter folgendem Link.

Warum bekomme ich bei diesem Skript einen Fehler? "Das Skript ist Fehlgeschlagen?"

returnvalue = 0

pruefziffer = '03221H'

leistungen = kvleistungen

leistungen = select(leistungen, startQuartal=heuteQuartal-0.25, endQuartal=heuteQuartal)

for leistung in leistungen:
 	if leistung['code'] == pruefziffer:
       		returnvalue = 1
	else
		returnvalue = 0

 

Gefragt von (3.7k Punkte)
0 Punkte

2 Antworten

Weil hinter "else" der Doppelpunkt fehlt.

 

Abgesehen davon wird das Skript aber nicht das machen, was Sie erwarten: In der For-Schleife setzen Sie für jede leistung in leistungen den returnvalue neu. Es gewinnt also die letzte leistung. Was Sie aber eigentlich wollen (vermutlich) ist herrausfinden ob die pruefziffer in den leistungen mindestens einmal vorhanden ist. Das lässt sich so erreichen:

returnvalue = 0

pruefziffer = '03221H'

leistungen = kvleistungen

leistungen = select(leistungen, startQuartal=heuteQuartal-0.25, endQuartal=heuteQuartal)

for leistung in leistungen:
 	if leistung['code'] == pruefziffer:
       		returnvalue = 1

 

Noch ein Nachtrag: Etwas verständlicher (zumindest nach meinem Empfinden), wäre auf die For-Schleife zu verzichten:

returnvalue = 0

pruefziffer = '03221H'

leistungen = kvleistungen

leistungen = select(leistungen, startQuartal=heuteQuartal-0.25, endQuartal=heuteQuartal)

leistungsziffern = [leistung['code'] for leistung in leistungen]

if pruefziffer in leistungsziffern:
    returnvalue = 1
Beantwortet von (2.7k Punkte)
Bearbeitet von
0 Punkte

geht leider immer noch nicht

returnvalue = 0

pruefziffer = '03221H'

leistungen = kvleistungen

leistungen = select(leistungen, startQuartal=heuteQuartal-0.25, endQuartal=heuteQuartal)

for leistung in leistungen:
 	if leistung['code'] == pruefziffer:
       		returnvalue = 1
	else:
		returnvalue = 0

 

Sie müssen außerdem in den erweiterten Modus wechseln und dort testen, da das Skript kein Einzeiler ist. Siehe außerdem meine bearbeitete Antwort oben zum Inhalt des Skriptes im Allgemeinen.
Sorry geht nicht! wir können gerne einen TV Session machen
Könnten Sie das fertige Script dann bitte posten?
Beantwortet von (21.2k Punkte)
0 Punkte
Das oben vom mir gepostete Skript sollte funktionieren. Der Fehler bezog sich auf ein anderes Skript, Da beim Testen immer alle Skripte getestet werden, kam es zu Verwirrung.
18,000 Beiträge
26,232 Antworten
46,926 Kommentare
24,912 Nutzer