it vergleichen und wenn vorhanden ersetzen.

BusinessServerPages; Erstellung von Webapplikationen.

it vergleichen und wenn vorhanden ersetzen.

Postby Lenia2367 » Thu Apr 17, 2003 12:20 pm

moinsen,

mal wieder eine frage von mir.mit hoffnung auf hilfe:

:arrow:
ich habe eine interne tabelle a und eine tabelle b. tabelle b enthält key(matnr) und einen status ,a diese beiden + weitere infos.

:?:
nun möchte ich schauen, ob der key in b enthalten ist und wenn, dann möchte ich a-status mit dem wert aus b-status aktualisieren.


gruss joern
Lenia2367
..
..
 
Posts: 61
Joined: Wed Mar 05, 2003 11:06 am

Postby Alva1590 » Thu Apr 17, 2003 1:18 pm

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. loop at a into workarea_a.
  2.    read table b into workarea_b with key matnr = workarea_a-matnr.
  3.      if sy-subrc eq 0.
  4.         workarea_a-status = workarea_b-status.
  5.         modify table a from worarea_a.
  6.      endif.
  7.  
GeSHi ©


Nur mal so auf die schnelle hingehackt. Muss möglicherweise noch ein bisschen angepasst werden, aber so in etwa würde ich das machen. (Hab's hoffentlich richtig verstanden :D )
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Lenia2367 » Thu Apr 17, 2003 3:07 pm

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   data: msg_text(80) type c,
  2.         it_artikel_temp type table of zshop_artikel,
  3.         wa_artikel_temp type zshop_artikel,
  4.         it_art_status type table of zshop_art_status,
  5.         wa_art_status type zshop_art_status.
  6.  
  7.  
  8. *Aufruf auf dem cs1
  9. *---------------------------
  10.   call function 'ZSHOP_GET_ARTIKEL'
  11.     DESTINATION 'BACKEND_CS1'
  12.     EXPORTING
  13.       wa_matkl              = wa_matkl
  14.    TABLES
  15.       ARTIKEL               = it_artikel
  16.     .......
  17.     ......
  18.     ...
  19.     .
  20.  
  21. * Aufruf ok ?!
  22. *----------------------------
  23.   if sy-subrc = 0.
  24.  
  25.     loop at it_Artikel into wa_artikel_temp.
  26.  
  27.       loop at it_art_status into wa_art_status.
  28.         if wa_art_status-MATL_MATNR = wa_artikel_temp-MATNR.
  29.           wa_artikel_temp = 1.
  30.           modify it_artikel from wa_artikel_temp.
  31.         else.
  32.  
  33.         endif.
  34.       endloop.
  35.  
  36.     endloop.
  37. .....
  38. ...
  39. ..
GeSHi ©


hi ??!!

bei dem 'read' hat er bei mir gemeckert. ich habs dann n bischen umgebastelt (oben), aber ***?! nix.

Der Vergleich der internen Tab. mit der Tabelle zshop_artikel haut nicht hin....

hat jemand eine idee?? ich denke er greifft gar nicht auf die zshop_artikel zu, kann dass sein??
..

gruss joern
Lenia2367
..
..
 
Posts: 61
Joined: Wed Mar 05, 2003 11:06 am

Postby Alva1590 » Thu Apr 17, 2003 4:34 pm

Was hat er denn bei dem read gemeckert? Kannst Du die Fehlermeldung mal posten?
Um was für Felder (Datentypen) handelt es sich bei MATL_MATNR und MATNR? Du mußt mal nachschauen (Debugging), ob der Vergleich überhaupt funktionieren kann.
Ausserdem ist mir diese Anweisung nicht klar:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. wa_artikel_temp = 1.
  2.  
GeSHi ©

Eigentlich handelt es sich in diesem Fall doch um eine workarea (Struktur) und nicht um eine Variable, oder?! Insofern ist die Anweisung etwas komisch. Es müßte doch eher etwas sein in derart:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. wa_artikel_temp-status = 1.
  2.  
GeSHi ©

Oder?!
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Lenia2367 » Thu Apr 17, 2003 5:00 pm

hi gast,

1) ups, ja. ist richtig mit...-status.
2) die beiden felder sind beide vom typ char18.
...
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. loop at it_Artikel into wa_artikel_temp.
  2.  
  3.       loop at it_art_status into wa_art_status.
  4.         if wa_art_status-MATL_MATNR = wa_artikel_temp-MATNR.
  5.           wa_artikel_temp-status = 1.
  6.           modify it_artikel from wa_artikel_temp.
  7.         else.
  8.  
  9.         endif.
  10.       endloop.
  11.  
  12.     endloop.
GeSHi ©


.. in den ersten loop kommt er rein, in den 2. nicht! da ist meiner meinung auch der fehler, weil ich die tabelle :

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. data: ......
  2.          ......        
  3.          it_art_status type table of zshop_art_status,
  4.         wa_art_status type zshop_art_status.
GeSHi ©


.. ja doch nicht direkt vergleiche, sondern mir wiederrum aus meiner b eine interene bastel, dass kann nicht richtig sein. nur wie loope ich mit der tabelle (zshop_art_status)??
Lenia2367
..
..
 
Posts: 61
Joined: Wed Mar 05, 2003 11:06 am

Postby Walter4536 » Fri Apr 18, 2003 12:03 pm

Hallo Joern,

In den ersten loop kommt er rein, in den 2. nicht


Das kann eigentlich nicht sein, sofern beide interne Tabellen gefüllt sind, denn keiner der beiden loops enthält eine log. Bedingung, die einen Abbruch bedingen könnte (also loop at mytable where ...). Wenn also beide internen Tabelle gefüllt sind, wird nach dem ersten Schleifendurchlauf auf jeden Fall in den 2. loop gesprungen und dieser solange durchlaufen bis alle Einträge der Tabelle abgearbeitet sind. Setz einen breakpoint auf den 2. loop und schau Dir an, wie die Tabelleninhalte aussehen. Das sollte Dich recht schnell auf die Lösung bringen.

Gruß,
Steff
Walter4536
...
...
 
Posts: 315
Joined: Mon Dec 02, 2002 12:09 pm

Postby Lenia2367 » Tue Apr 22, 2003 3:00 pm

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  
  2. loop at it_Artikel into wa_artikel_temp.
  3.    SELECT * FROM zshop_art_status INTO wa WHERE MATL_matnr = wa_artikel_temp-matnr.
  4.       wa_artikel_temp-status = ......
  5.       .......
  6.       ....
  7.       modify it_Artikel from wa_artikel_temp.
  8.     ENDSELECT.
GeSHi ©


hi steff,

so nun, geht´s. es waren nicht 2 interne tabellen, bzw. waren es schon, aber die eine hatte keine daten, da diese in der datenbank geblieben sind .. :wink: .

schoenen dank. joern
Lenia2367
..
..
 
Posts: 61
Joined: Wed Mar 05, 2003 11:06 am


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 8 guests