generische Typisierung

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
25 Beiträge • Vorherige Seite 2 von 2 (current)
25 Beiträge Vorherige Seite 2 von 2 (current)

gar nicht gut!

Beitrag von gse (ForumUser / 97 / 0 / 1 ) » 10.01.2003 15:29
hi frank,

wenn Du das sagst wird das schon stimmen. :oops:
Ich dachte ich koennte mir hierdurch Erleichterung fuer kuenftige Programme schaffen, indem ich diesen FuBa einfach immer nur mit den richtigen Parametern fuettere und so meine DB-Aktionen realisiere.

Vielleicht hilfst Du mir noch zu verstehen, was an dieser Idee nicht gut ist.
Danke im Voraus! gse


Beitrag von Steff (Site Admin / 386 / 0 / 1 ) » 10.01.2003 15:53
Hi gse,

nur mal so aus Neugier: Wenn Du das realisierst, dann aber nicht für jedes x-beliebige DDIC-Objekt sondern DDIC-Objekt im Sinne einer DB-Tabelle, oder verstehe ich Dich falsch?!

Gruß,
Steff

dynamischer select

Beitrag von gse (ForumUser / 97 / 0 / 1 ) » 10.01.2003 15:54
hallo liebe leutz,

angenommen ich will jetzt meinen SELECT komplett dynamisch aufbauen, also in einem weiteren import-parameter ein feld benennen, was dann als kriterium in der WHERE-klausel anwendung findet.

beispiel:

Code: Alles auswählen.

SELECT * 
    INTO TABLE l_it_tabname 
    FROM (lv_tabtype)                 "dynam. DDIC-Objekt! 
    WHERE bukrs = '0050' . 
dynamisch sollen dann quasi auch die Felder des DDIC-Objektes mit übergeben werden. also so was aehnliches wie:

Code: Alles auswählen.

SELECT * 
    INTO TABLE l_it_tabname 
    FROM (lv_tabtype)                 "dynam. DDIC-Objekt! 
    WHERE lv_tabtype-schluessel = lv_field. 
lv_tabtype-schluessel waere demnach komponente von lv_tabtype und lv_field ebenfalls importparameter bzw. selektionskriterium.

gruss gse

bingo!

Beitrag von gse (ForumUser / 97 / 0 / 1 ) » 10.01.2003 15:56
hi steff,

aeeeehhhh......... ja! klar, so hab ich das gemeint!

ahhhh...... Du verstehst mich!;)

gse

dynamische WHERE-Bedingung

Beitrag von gse (ForumUser / 97 / 0 / 1 ) » 10.01.2003 16:22
wahnsinn,
da hab ich doch glatt mal was selbst gefunden! :o
an dieser stelle mal ein sorry an diejenigen, die ich mit meiner fragerei endlos nerve!

und fuer all die anderen interessierten:

Code: Alles auswählen.


DATA: cond(72) TYPE c,
          itab LIKE TABLE OF cond.

PARAMETERS: city1(10) TYPE c, city2(10) TYPE c.

DATA wa TYPE spfli-cityfrom.

CONCATENATE 'CITYFROM = ''' city1 '''' INTO cond.
APPEND cond TO itab.

LOOP AT itab INTO cond.
  WRITE cond.
ENDLOOP.

SELECT  cityfrom
  INTO  wa
  FROM  spfli
  WHERE (itab).

gruss und weiterhin frohes schaffen!

gse

Beitrag von Steff (Site Admin / 386 / 0 / 1 ) » 10.01.2003 16:52
Hi gse,

wobei Du aber immer noch nicht einen select von einer x-beliebigen Tabelle machen kannst, da Du zur Laufzeit keinen Tabellentyp dynamisch (nur mit Namensbezeichnung) erzeugen kannst (das geht erst ab 610), sondern in Deinem 46B-Release eben nur eine wa. Da hilft nur eins: Upgraden auf 610 ;-)

Gruß,
Steff

Re: gar nicht gut!

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) » 10.01.2003 17:10
gse hat geschrieben: Ich dachte ich koennte mir hierdurch Erleichterung fuer kuenftige Programme schaffen, indem ich diesen FuBa einfach immer nur mit den richtigen Parametern fuettere und so meine DB-Aktionen realisiere.

Vielleicht hilfst Du mir noch zu verstehen, was an dieser Idee nicht gut ist.
Einfach und leicht wird es schon sein. Es ist nur falsch.
Denn wenn Du es richtig machen willst, ist es alles andere als einfach.

Woher weißt Du für eine beliebige Tabelle (dynamisch) zur Laufzeit Deines Programms:
-Welches Sperrobjekt Du verwenden mußt, um zu verhindern, daß nicht 2 Transaktionen gleichzeitig Änderungen vornehmen wollen?
-Welche Abhöngigkeiten es gibt, so daß nicht Inkonsistenzen entstehen, die erst Monate später bemerkt werden,
-welche Berechtigung der User braucht, der bestimmte Änderungen vornehmen will
-wie paßt Du Dein dynamisches Update-Programm an, wenn SAP per OSS-Note oder Support package einen Fehler behebt, zusätzliche Prüfungen einbaut, ...
-Wenn man dann mal einen Fehler suchen muß, weiß man gar nicht mehr, wo man noch suchen soll, weil ja im Verwendungsnachweis für Tabelle MARA Dein Programm gar nicht mit vorkommt.

Wolltest Du alles ignorieren? Ach so. Du wolltest Dir das Leben leichter machen 8)

Klappt

Beitrag von Haubi (Expert / 608 / 13 / 27 ) » 13.01.2003 07:32
Moinz.

@Steff:
da Du zur Laufzeit keinen Tabellentyp dynamisch (nur mit Namensbezeichnung) erzeugen kannst
Natürlich funzt das bei 46x, und zwar mit der Methode cl_alv_table_create=>create_dynamic_table (hatte ich schon früher mal irgendwo hier gepostet).

@gse:
Die dynamische WHERE-Klausel ist schon ganz nett, es gibt aber zwei Einschränkungen:
1. keine Selektion via interner Tabelle ("FOR ALL ENTRIES IN") :(
2. keine Selektion via RANGE-Tabelle ("WHERE field IN range") :?

Unter 610 funzt das dynamische WHERE wieder anders, es kann sein, dass man dann diese Features auch wieder nutzen kann, habe ich aber noch nicht probiert.

Grüezi,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von Azreal (Specialist / 182 / 1 / 0 ) » 13.01.2003 10:55
Servus Leutz,

Da ist man 3 Tage nicht da, und schon ist hier alles vollgestoft mit posts.
Interessanter Thread.
Was ich hier allgemein fragen wollte: Lohnt es sich dynamisch zu programmieren oder leidet darunter zu sehr die performance...

Hat da schon jemand erfahrungen gemacht?

gruss, Azreal

versuch mach kluch

Beitrag von gse (ForumUser / 97 / 0 / 1 ) » 13.01.2003 11:21
RESUMEE

hallo liebe gefaehrten,

als verursacher dieses forenbeitrags ziehe ich meinen virtuellen hut vor den teilnehmern dieser "diskussion". vielen dank fuer die anregenden und wertvollen beitraege zu diesem thema!!!

wollt dies noch schnell loswerden, bevor es in vergessenheit geraet!
vielleicht laesst sich ja der eine oder andere gedanke noch zu einem anderen thema weiter ausbauen. ;)

fuer meine zwecke werde ich jetzt erst mal die ergebnisse zusammenzutragen und versuchen das eine oder andere (sperrkonzept, benutzerberechtigung, dynam. tabelle mittels methode) zusaetzlich zu realisieren.

Euch weiterhin frohes schaffen, einen guten start in die neue woche
und vor allem: ein langes leben, viele kinder!:lol:

Euer gse


Vergleichbare Themen

Typisierung von Formparameter
von RiffRaff » 27.08.2004 09:46
Dynamische Typisierung?
von cortex » 18.03.2014 09:10
Dynamische Typisierung
von Gast » 19.01.2006 10:24
Problem: Unterprogramm und Parameter(typisierung)
von MacLeod » 25.01.2012 16:31
Typisierung bei Select-Options und Methoden-Exportparameter
von cecslucas » 06.08.2019 11:40