ich arbeite grade an einer Bücherverwaltung um mich mit BSPs auseinander zu setzen.
Um das ganze jetzt zu testen wollte ich meine angelegte Datenbanktabelle mit Werten füllen, aber geht das nicht anders als im Quellcode ? Sonst müsste ich doch zuerst ein Programm ausführen bevor meine Datenbanktabelle ihre Werte hat.
Interne Tabelle könnte ich ja glaube ich auch machen, aber würde das gerne über eine Datenbanktabelle machen da das in der Praxis vermute ich auch eher so ablaufen würde.
wenn du in der SE11 deine DB-Tabelle öffnest und über Hilfsmittel->Tabellenpflegegenerator eben jenen anlegst, kannst du mit der Transaktion SM30 deine Tabelle mit Werten pflegen.
Transaktion SE16N - falls nicht blockiert oder SM30 wenn ein Pflegedialog vorhanden ist. Da es aber wie ich denke eine eigene Tabelle Ist - solltest du dazu einen Pflegegialog anlegen, dann kannst du mit SM30 die Daten pflegen. Oder ein 3Zeiler schreiben der die Daten von einer Datei (bsp. excel) hochlädt und dann in die DB Tabelle importiert.
Ok danke, aber bei meinem Beispiel will ich z.B. eine Autorenliste füllen und habe die beiden Variable AutorenVorname und AutorenNachname.
Wieso habe ich bei der Pflege jetzt von-wert und bis-wert ? :/
Wenn du se16n machst musst du bei der Selektion nix angeben sondern oben im Kommandofeld für die Transaktionen /h für Debugging.
Dann setzt du die beiden Variablen GD-EDIT und GD-SAPEDIT auf X und lässt den Debugger durchlaufen. Nun kannst du in deiner Tabelle Zeilen editieren und einfügen.
Habe es ein bisschen flott beschrieben falls du irgendwo hängen bleiben solltest frag einfach nochmal nach.
Ok die Einträge kann ich jetzt editieren aber wenn ich es speichern will sagt er mir das ein Datensatz bereits unter diesem Schlüssel besteht. Dazu muss ich vielleicht sagen das ich bereits einen Namen zuvor über ein kleines selbstgeschriebenes Programm eingefügt habe.
Du muss halt darauf achten das der Datansatz eindeutig über die Schlüsselfelder identifizierbar ist.
Also es dürfen keine 2 Datensätze geben welche die Gelichen Schlüssel haben.
Wenn das der Fall ist musst du halt den Alten Datensatz löschen.
Ok. Entschuldige bitte die vielen Fragen grade, aber wie kann ich den Schlüssel ändern und wie kann ich den Datensatz löschen?
Wollte vorhin auch über mein Programm mit "CLEAR Tabellenname." die Tabelle leeren aber er kennt die anscheinend nicht, warum auch immer aktiv ist sie und auch das Einfügen hat funktioniert.
Ok und wie ändere ich den Schlüssel? Habe einen Schlüssel angeben müssen und habe eine Variable "ID" genannt und diese ist mein Schlüssel. Ist vom Typ NUMC und Länge 10.
Ok kann man machen nur leider kann SAP keine Autoincrement das bedeutet er kann nicht automatisch hochzählen wenn ein neuer Datensatz eingepflegt wird das muss mit Hand gemacht werden. Deswegen ist eine ID zu vergeben meist ungünstig.
Leichter wäre es wenn du z.B. die ISBN Nummer hernimmst weil die ist für jedes Buch einzigartig.
Ändern kannst du es nur im Entwicklungssystem und in dem du andere Häkchen setzt. Die Schlüsselfelder müssen immer am Anfang deiner Tabelle stehen.
Ah ok, verstanden. Aber gibts es nicht eine Möglichkeit meinen bestehenden Datensatz irgendwie zu bearbeiten, also beim Beispiel einer Liste aller Autoren, dass ich Autoren hinzufügen oder rauslöschen kann ohne einen neuen Datensatz anzulegen ? Wenn ich auf Speichern gehe will er ja anscheinend direkt einen neuen anlegen.
Jop. Ich ändere etwas in den Spalten bzw. füge beispielweise eine hinzu und speichere. Dann kommt es besteht bereits ein Datensatz mit diesem Schlüssel.
Hä das verstehe ich ned ganz. Wenn du etwas an den Schlüsselfeldern ändern möchtest musst du einen neuen Datensatz anlegen und den alten löschen. Aber wenn du nur etwas an den Spalten änderst müsste das ohne neuen Datensatz gehen.