Zeitliche Abfrage mit Bedingung

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
39 Beiträge • Seite 1 von 3 (current) Nächste
39 Beiträge Seite 1 von 3 (current) Nächste

Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
Moin,

ich möchte eine IF Abfrage erstellen:

Die Idee ist, die Anzahl mausklicks hintereinander zu limitieren sodass der User nicht zigdutzend mal pro sekunde klicken darf.

aber so einfach ist das wohl nicht, da ich ein Modulo Statement nicht in die Bedingung stecken kann.

Ich möchte dass eine Funktion maximal einmal pro sekunde ausgeführt werden kann.
also in etwa sowas:

data time type zcb_float.
time = sy-uzeit

if time mod 1000 ge 0.
aktion()
else.
message 'Cooldown nicht vorrüber' type 'I'.
endif.

mir ist klar dass diese Logik hier nicht funktionieren kann, ich wollte nur meinen Gedankengang erklären.
hat jemand eine Idee?
Zuletzt geändert von Abaphalbsocke am 22.05.2018 13:43, insgesamt 1-mal geändert.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten



Re: Zeitliche Abfrage mit Bedingung

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
ich glaube fast, du bist auf der Suche nach dem Sperrkonzept:
https://help.sap.com/saphelp_nwmobile71 ... ameset.htm

wenn du deine Objekte sperrst, die irgendetwas machen, kann der User so viel klicken wie er will.
<:: XING-Gruppe Tricktresor::>

Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
Das Sperrkonzept passt da nicht ganz rein da ich in diesem Fall nicht mit Tabellen arbeite sondern mit einer Struktur, aber trotzdem danke!

Wozu das ganze?
Ich möchte mit dem Klick eines Buttons eine Variable inkrementieren, aber die Klickzahl pro sekunde limitieren, sodass man diesen Button nur einmal pro Sekunde drücken kann, bzw die eigentliche Funktion dahinter maximal nur einmal pro Sekunde aufgerufen werden kann.

Re: Zeitliche Abfrage mit Bedingung

Beitrag von ewx (Top Expert / 4843 / 311 / 638 ) »
Und warum eine Sekunde?
Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...

Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
ewx hat geschrieben:Und warum eine Sekunde?
Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...
weil ich lokal arbeite und bei mir alles sofort fertig ist. eine sekunde weil ich beschlossen habe es nur einmal pro sekunde zu ermöglichen.
hast du überhaupt die Absicht mir zu helfen, oder was soll das hier gerade?

Re: Zeitliche Abfrage mit Bedingung

Beitrag von ewx (Top Expert / 4843 / 311 / 638 ) »
Nein, habe ich nicht. Ich verschwende generell gerne meine Zeit damit, Leuten bei Ihren Problemen noch mehr Probleme zu machen... :evil: :roll:

Es gibt im SAP - so wie überall - Sachen, die macht man und Sachen, die macht man nicht.
Und wenn im übertragenden Sinne jemand kommt und sagt, dass er die Anhängerkupplung vorne montieren möchte, dann frage ich nach, was wohl der Grund dafür sein könnte. Denn normalerweise gibt es keinen Grund dafür, bzw. ist das Problem eigentlich ein anderes.

Zudem habe ich dir geholfen:
ewx hat geschrieben:Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
DeathAndPain


Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
ewx hat geschrieben:Nein, habe ich nicht. Ich verschwende generell gerne meine Zeit damit, Leuten bei Ihren Problemen noch mehr Probleme zu machen... :evil: :roll:

Es gibt im SAP - so wie überall - Sachen, die macht man und Sachen, die macht man nicht.
Und wenn im übertragenden Sinne jemand kommt und sagt, dass er die Anhängerkupplung vorne montieren möchte, dann frage ich nach, was wohl der Grund dafür sein könnte. Denn normalerweise gibt es keinen Grund dafür, bzw. ist das Problem eigentlich ein anderes.

Zudem habe ich dir geholfen:
ewx hat geschrieben:Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...
Nein du hast mir nicht weitergeholfen.
Und eine Anhängerkupplung nach vorne Montieren ist nicht vergleichbar hiermit. Ich montiere im übertragenen Sinne keine Anhängerkupplung vorne nur weil ich eine aktion zeitlich limitieren will. es ist völlig legitim.

und nur mal als randinfo für dich in Sachen Kommunikation, wenn man dich nach hilfe fragt, und du dann nur mit Gegenfragen kommst, die niemandem etwas bringen, nicht mal dir, dann könnte dein gegenüber eventuell den eindruck gewinnen, dass du nicht besonders viel lust hast zu helfen. Eine Gegenfrage zum Verständnis ist ok, aber bei der zweiten Gegenfrage (ohne den geringsten nutzen) kommt man sich schon leicht veralbert vor.

Re: Zeitliche Abfrage mit Bedingung

Beitrag von ewx (Top Expert / 4843 / 311 / 638 ) »
Jetzt hast du tatsächlich Recht:
Ich habe keine Lust mehr, dir zu helfen.
Viel Erfolg bei deinem Problem!

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
DeathAndPain


Re: Zeitliche Abfrage mit Bedingung

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Moin Socke,
Abaphalbsocke hat geschrieben:Die Idee ist, die Anzahl mausklicks hintereinander zu limitieren sodass der User nicht zigdutzend mal pro sekunde klicken darf.
[...]
Ich möchte dass eine Funktion maximal einmal pro sekunde ausgeführt werden kann.
Zig Dutzend ( also mindestens 120 mal ) oder einmal sind ja schon ein kleiner Unterschied.
Somit fragt man sich sofort wie genau denn das Zeitfenster getroffen werden muss. Reicht es wenn es durchschnittlich nur 1x pro Sekunde geht aber halt ein paar mal auch weniger oder mehr sein darf oder ist 1 Sekunde die untere Grenze. Oder wenn ich nach 0,51 Sekunden daherkomme ( was ja auf 1 Sekunde gerundet würde ) ist das auch ok? Also hier die Frage nach der Auflösung ( Sekunden, Millisekunden, Femtosekunden). Und je nach Antwort müsste ich danach nach der zugrunde liegenden Hardware fragen auf der das SAP-System läuft.
Abaphalbsocke hat geschrieben:

Code: Alles auswählen.

data time type zcb_float.
time = sy-uzeit

if time mod 1000 ge 0.
   aktion()
      else.
      message 'Cooldown nicht vorrüber' type 'I'.
endif.
mir ist klar dass diese Logik hier nicht funktionieren kann, ich wollte nur meinen Gedankengang erklären.
hat jemand eine Idee?
Wie sollen wir dir helfen, wenn du ein Beispiel bringst was nicht funktionieren kann? Dass der obige Code nicht ganz richtig sondern eher falsch ist, ist ja offensichtlich - aber wo genau liegt denn dein Problem?
Beim ersten Drüberschauen würde ich sagen, dass du sowohl den Modulo-Befehl als auch die internen TIME-Typen nicht verstanden hast --> Lies dir doch mal dazu die F1-Hilfe durch - vielleicht ist das ja schon des Rätsels Lösung.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Abaphalbsocke

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeitliche Abfrage mit Bedingung

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Abaphalbsocke hat geschrieben:Nein du hast mir nicht weitergeholfen.
Und eine Anhängerkupplung nach vorne Montieren ist nicht vergleichbar hiermit. Ich montiere im übertragenen Sinne keine Anhängerkupplung vorne nur weil ich eine aktion zeitlich limitieren will. es ist völlig legitim.

und nur mal als randinfo für dich in Sachen Kommunikation, wenn man dich nach hilfe fragt, und du dann nur mit Gegenfragen kommst, die niemandem etwas bringen, nicht mal dir, dann könnte dein gegenüber eventuell den eindruck gewinnen, dass du nicht besonders viel lust hast zu helfen. Eine Gegenfrage zum Verständnis ist ok, aber bei der zweiten Gegenfrage (ohne den geringsten nutzen) kommt man sich schon leicht veralbert vor.
Gratuliere! Damit hast du es echt geschafft einen unserer besten Experten hier zu vergraulen.
Dabei hat er dir ja eh schon eine mögliche Lösung aufgezeigt:
ewx hat geschrieben:Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...
Du musst also nur die Verarbeitung "künstlich verzögern":
https://help.sap.com/doc/abapdocu_750_i ... _up_to.htm

Aber dass das die "richtige" Lösung ist, wage auch ich zu bezweifeln. Solche Warteschleifen sind für Client-Server-Applikationen alles andere als state-of-the-art und darauf wollte Enno vermutlich mit seiner Fragerei hinaus. Auf das "Warum man soetwas (unnötiges) überhaupt machen möchte".
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
a-dead-trousers hat geschrieben:
Abaphalbsocke hat geschrieben:Nein du hast mir nicht weitergeholfen.
Und eine Anhängerkupplung nach vorne Montieren ist nicht vergleichbar hiermit. Ich montiere im übertragenen Sinne keine Anhängerkupplung vorne nur weil ich eine aktion zeitlich limitieren will. es ist völlig legitim.

und nur mal als randinfo für dich in Sachen Kommunikation, wenn man dich nach hilfe fragt, und du dann nur mit Gegenfragen kommst, die niemandem etwas bringen, nicht mal dir, dann könnte dein gegenüber eventuell den eindruck gewinnen, dass du nicht besonders viel lust hast zu helfen. Eine Gegenfrage zum Verständnis ist ok, aber bei der zweiten Gegenfrage (ohne den geringsten nutzen) kommt man sich schon leicht veralbert vor.
Gratuliere! Damit hast du es echt geschafft einen unserer besten Experten hier zu vergraulen.
Dabei hat er dir ja eh schon eine mögliche Lösung aufgezeigt:
ewx hat geschrieben:Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...
Du musst also nur die Verarbeitung "künstlich verzögern":
https://help.sap.com/doc/abapdocu_750_i ... _up_to.htm

Aber dass das die "richtige" Lösung ist, wage auch ich zu bezweifeln. Solche Warteschleifen sind für Client-Server-Applikationen alles andere als state-of-the-art und darauf wollte Enno vermutlich mit seiner Fragerei hinaus. Auf das "Warum man soetwas (unnötiges) überhaupt machen möchte".
Bin ich hier jetzt der böse oder was? Einer eurer "besten experten" schafft es auch user fast zu vergraulen durch seine unfreundliche lustlose art! meine güte! und nein mit dieser aussage hat er mir immer noch nicht weitergeholfen, nicht-im-geringsten. wer verlängert denn künstlich ein Prozess um das ganze Programm währenddessen lahmzulegen??
Zuletzt geändert von Abaphalbsocke am 23.05.2018 09:51, insgesamt 1-mal geändert.

Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
a-dead-trousers hat geschrieben:
Abaphalbsocke hat geschrieben:Nein du hast mir nicht weitergeholfen.
Und eine Anhängerkupplung nach vorne Montieren ist nicht vergleichbar hiermit. Ich montiere im übertragenen Sinne keine Anhängerkupplung vorne nur weil ich eine aktion zeitlich limitieren will. es ist völlig legitim.

und nur mal als randinfo für dich in Sachen Kommunikation, wenn man dich nach hilfe fragt, und du dann nur mit Gegenfragen kommst, die niemandem etwas bringen, nicht mal dir, dann könnte dein gegenüber eventuell den eindruck gewinnen, dass du nicht besonders viel lust hast zu helfen. Eine Gegenfrage zum Verständnis ist ok, aber bei der zweiten Gegenfrage (ohne den geringsten nutzen) kommt man sich schon leicht veralbert vor.
Gratuliere! Damit hast du es echt geschafft einen unserer besten Experten hier zu vergraulen.
Dabei hat er dir ja eh schon eine mögliche Lösung aufgezeigt:
ewx hat geschrieben:Der Anwender kann eh erst wieder klicken, wenn die Verarbeitung abgeschlossen ist...
Du musst also nur die Verarbeitung "künstlich verzögern":
https://help.sap.com/doc/abapdocu_750_i ... _up_to.htm

Aber dass das die "richtige" Lösung ist, wage auch ich zu bezweifeln. Solche Warteschleifen sind für Client-Server-Applikationen alles andere als state-of-the-art und darauf wollte Enno vermutlich mit seiner Fragerei hinaus. Auf das "Warum man soetwas (unnötiges) überhaupt machen möchte".
Bin ich hier jetzt der böse oder was? Einer eurer "besten experten" schafft es auch user fast zu vergraulen durch seine unfreundliche lustlose art! meine güte! und nein mit dieser aussage hat er mir immer noch nicht weitergeholfen, nicht-im-geringsten. wer verlängert denn künstlich ein Prozess um das ganze Programm währenddessen lahmzulegen??

Re: Zeitliche Abfrage mit Bedingung

Beitrag von Abaphalbsocke (ForumUser / 42 / 18 / 0 ) »
Wie auch immer.
ich habe eine Lösung gefunden, für andere die evtl das gleiche Problem haben:


data: gv_first_run TYPE sy-uzeit,
gv_last_run, TYPE sy-uzeit.

gv_first_run = gv_last_run + 1.


IF gv_first_run < sy-uzeit.

*CODEBLOCK

gv_last_run = sy-uzeit.

Re: Zeitliche Abfrage mit Bedingung

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Abaphalbsocke hat geschrieben:Bin ich hier jetzt der böse oder was? Einer eurer "besten experten" schafft es auch user fast zu vergraulen durch seine unfreundliche lustlose art! meine güte! und nein mit dieser aussage hat er mir immer noch nicht weitergeholfen, nicht-im-geringsten. wer verlängert denn künstlich ein Prozess um das ganze Programm währenddessen lahmzulegen??
Hört sich blöd an - aber das macht man in ABAP so. ABAP ist nur bedingt eventbasiert während eines laufenden Prozesses. Meistens tut das Programm was oder es wartet auf Eingaben. Aber es nimmt üblicherweise keine Eingaben während des Laufs entgegen - zumindest nicht so, dass es für Anfänger geeignet wäre. ABAP ist halt keine "Gamersprache".
Versuch doch mal etwas in anderen Programmiersprachen recht Simples: Während eines laufenden Prozesses auf dem Bildschirm irgend eine Art Fortschrittsbalken mitlaufen oder ein Icon von grün auf gelb und rot wechseln zu lassen ohne dass der User eingreift. Und NICHT mit dem SAPGUI_PROGRESS_INDICATOR!!!!

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Abaphalbsocke

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Vergleichbare Themen

18
Antw.
12297
Views
IF-Abfrage / mehrteilige Bedingung
von anfaenger » 24.08.2017 14:50 • Verfasst in ABAP® für Anfänger
7
Antw.
3590
Views
Where-Bedingung
von Fools » 07.06.2005 16:52 • Verfasst in ABAP® für Anfänger
6
Antw.
2293
Views
WHERE Bedingung
von cali » 04.04.2006 12:39 • Verfasst in ABAP® Core
6
Antw.
4035
Views
Join Bedingung
von christof » 17.12.2014 19:00 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 83
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1730
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8334