BAPI_USER_GET_DETAIL aufrufen

Getting started ... Alles für einen gelungenen Start.

BAPI_USER_GET_DETAIL aufrufen

Postby Jamie619 » Sat Oct 28, 2006 4:02 pm

Hallo!

Wie kann ich den FuBa "BAPI_USER_GET_DETAIL"
so aufrufen, dass ich ein vernünftiges Ergebnis
bekomme. Ich fürchte ich habe bei der
Parameterübergabe ein Fehler gemacht.
Die Tabelle Return ist nicht optional d.h ich
muss eine Tabelle mitgeben.
Muss hierbei alle Felder der Struktur BAPIRET2 berücksichtigen.


Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT  ZILKPROG  .
  2. data itab like table of BAPIRET2.
  3. data adresse type BAPIADDR3.
  4.  
  5. CALL FUNCTION 'BAPI_USER_GET_DETAIL'
  6.   EXPORTING
  7.     USERNAME             = 'DDIC'
  8. * IMPORTING
  9. *   LOGONDATA            =
  10. *   DEFAULTS             =
  11.     ADDRESS              = adresse
  12. *   COMPANY              =
  13. *   SNC                  =
  14. *   PARAMETER            =
  15. *   PROFILES             =
  16. *   ACTIVITYGROUPS       =
  17.     RETURN               = itab
  18. *   ADDTEL               =
  19. *   ADDFAX               =
  20. *   ADDTTX               =
  21. *   ADDTLX               =
  22. *   ADDSMTP              =
  23. *   ADDRML               =
  24. *   ADDX400              =
  25. *   ADDRFC               =
  26. *   ADDPRT               =
  27. *   ADDSSF               =
  28. *   ADDURI               =
  29. *   ADDPAG               =
  30. *   ADDCOMREM            = .
GeSHi ©
Jamie619
...
...
 
Posts: 438
Joined: Wed Jul 21, 2004 10:52 pm

Postby Laureen5398 » Sat Oct 28, 2006 7:05 pm

so viel ich weiß arbeiten die meisten BAPI's mit dieser Rückgabetabelle. Wenn ich mich nicht irre, ist diese Tabelle nach dem Aufruf des Bapi leer, wenn keine Fehler aufgetreten sind.

Sieh dir doch mal die Struktur von RETURN an. Und auch die Doku von BAPI_USER_GET_DETAIL (glaube dieser ist einer der glücklichen Fubas, die dokumentiert sind) ;-)
Laureen5398
...
...
 
Posts: 335
Joined: Thu Jul 31, 2003 10:47 am

Postby Jamie619 » Sat Oct 28, 2006 7:17 pm

Hi,

könntest du mir bitte an einem kleinen Bsp. zeigen wie man
diesen FuBa aufruft. Ich bekomme zu einem vorhandenen User
z.B keine Werte. Wozu gibt es diesen FuBa wenn er nicht funktioniert?

Grüße
bohne
Jamie619
...
...
 
Posts: 438
Joined: Wed Jul 21, 2004 10:52 pm

Postby Jasmina3697 » Sun Oct 29, 2006 12:18 am

Hi,

wenn ich obiges Codingbeispiel sehe, so fällt mir spontan auf, dass Du IMPORTING auch noch aussternen solltest, sonst gibts auch nix zurück, da sollte aber der Syntaxchecker auch schon gemeckert haben.

Ansonsten kann ich morgen oder Montag auch noch ein kleines Beispiel einstellen, komm gerade an kein System ran.

Viele Grüße,

Peter
Jasmina3697
..
..
 
Posts: 52
Joined: Mon Sep 11, 2006 12:19 am

Postby Lasse815 » Sun Oct 29, 2006 3:40 pm

Hallo,

eigentlich sieht Dein Coding ganz gut aus... bis auf den bereits erwähnten Punkt, dass der Stern in der Zeile vor "IMPORTING" entfernt werden sollte. Ich habe das gerade mal kurz getestet und bei mir funktioniert das folgende Coding...
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT  zzz_bapi_user_get_detail.
  2.  
  3.   l_f_uname        TYPE xubname   VALUE 'DDIC',
  4.   l_r_logon        TYPE bapilogond,
  5.   l_r_defaults     TYPE bapidefaul,
  6.   l_r_address      TYPE bapiaddr3,
  7.   l_r_company      TYPE bapiuscomp,
  8.   l_r_snc          TYPE bapisncu,
  9.   l_r_refuser      TYPE bapirefus,
  10.   l_r_alias        TYPE bapialias,
  11.   l_r_uclass       TYPE bapiuclass,
  12.   l_r_lastmod      TYPE bapimoddat,
  13.   l_r_islocked     TYPE bapislockd,
  14.   l_t_return       TYPE TABLE OF bapiret2.
  15.  
  16. CALL FUNCTION 'BAPI_USER_GET_DETAIL'
  17.   EXPORTING
  18.     username             = l_f_uname
  19.   IMPORTING
  20.     logondata            = l_r_logon
  21.     defaults             = l_r_defaults
  22.     address              = l_r_address
  23.     company              = l_r_company
  24.     snc                  = l_r_snc
  25.     ref_user             = l_r_refuser
  26.     alias                = l_r_alias
  27.     uclass               = l_r_uclass
  28.     lastmodified         = l_r_lastmod
  29.     islocked             = l_r_islocked
  30. *   PARAMETER            =
  31. *   PROFILES             =
  32. *   ACTIVITYGROUPS       =
  33.     return               = l_t_return
  34. *   ADDTEL               =
  35. *   ADDFAX               =
  36. *   ADDTTX               =
  37. *   ADDTLX               =
  38. *   ADDSMTP              =
  39. *   ADDRML               =
  40. *   ADDX400              =
  41. *   ADDRFC               =
  42. *   ADDPRT               =
  43. *   ADDSSF               =
  44. *   ADDURI               =
  45. *   ADDPAG               =
  46. *   ADDCOMREM            =
  47. *   PARAMETER1           =
  48. *   GROUPS               =
  49. *   UCLASSSYS            =
  50. *   EXTIDHEAD            =
  51. *   EXTIDPART            =
  52. *   SYSTEMS              =
  53.           .
  54. IF l_t_return IS INITIAL.
  55.   WRITE: / l_r_address-fullname.
GeSHi ©

Getestet unter Release 4.7
Lasse815
....
....
 
Posts: 683
Joined: Wed Nov 23, 2005 12:36 pm

Postby Jasmina3697 » Mon Oct 30, 2006 9:22 am

Hallo,

habs gerade auch noch einmal getestet. Mit dem Importing ausgesternt funktioniert es hier auch, sowohl auf einem 4.6C, als auch einem 4.7 und nem 6.00 und 7.00-System, alle tun was sie sollen...

Viele Grüße,

Peter
Jasmina3697
..
..
 
Posts: 52
Joined: Mon Sep 11, 2006 12:19 am

Postby Jamie619 » Mon Oct 30, 2006 11:03 am

hi,

also es tut mir leid aber bei mir hat das überhaupt nicht funktioniert.
Ich habe MiniSAp 46D-BASIS, WP2.1, KW5
im Einsatz. Woran kann das liegen?

Außerdem habe ich eine Verständnisfrage:
Warum diese Write-Anweisung innerhalb der If-Abfrage?
Warum darf die interne Tabelle "l_t_return" leer bzw. keinen Wert haben?


Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. IF l_t_return IS INITIAL.
  2.   WRITE: / l_r_address-fullname.
GeSHi ©
Jamie619
...
...
 
Posts: 438
Joined: Wed Jul 21, 2004 10:52 pm

Postby Jasmina3697 » Mon Oct 30, 2006 11:10 am

Üblicherweise ist in den Return-Parametern immer nur eine Nachricht falls eine Warnung oder ein Fehler aufgetreten sind. Daher wird hier abgefragt, ob da etwas drin ist. Allerdings würde ich mich da nicht immer darauf verlassen, da durchaus auch Sätze bei einem BAPI geliefert werden können, obwohl Warnungen mitgegeben werden.

Das ganze war wohl so eher zu Testzwecken implementiert. Setz mal Dein komplettes Coding hier rein, dann kann auch auch noch einmal draufschauen.

Viele Grüße,

Peter
Jasmina3697
..
..
 
Posts: 52
Joined: Mon Sep 11, 2006 12:19 am

Postby Jamie619 » Mon Oct 30, 2006 11:32 am

Hi Pepedoc
bekomme die Meldung wenn ich u.s. Code prüfe

ist unbekannt
l_r_uclass TYPE bapiuclass,
l_r_lastmod TYPE bapimoddat,
l_r_islocked TYPE bapislockd,
lastmodified = l_r_lastmod
islocked = l_r_islocked

uclass = l_r_uclass
ist unbekannt es existiert aber
Feld mit dem ähnlichen Namen l_r_alias

Und wenn ich all diese Stellen aus dem Code herausnehme dann
bekomme ich garnichts angezeigt weil die If Abfrage nicht true ist

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   l_f_uname        TYPE xubname   VALUE 'DDIC',
  2.   l_r_logon        TYPE bapilogond,
  3.   l_r_defaults     TYPE bapidefaul,
  4.   l_r_address      TYPE bapiaddr3,
  5.   l_r_company      TYPE bapiuscomp,
  6.   l_r_snc          TYPE bapisncu,
  7.   l_r_refuser      TYPE bapirefus,
  8.   l_r_alias        TYPE bapialias,
  9.   l_r_uclass       TYPE bapiuclass,
  10.   l_r_lastmod      TYPE bapimoddat,
  11.   l_r_islocked     TYPE bapislockd,
  12.   l_t_return       TYPE TABLE OF bapiret2.
  13.  
  14. CALL FUNCTION 'BAPI_USER_GET_DETAIL'
  15.   EXPORTING
  16.     username             = l_f_uname
  17.   IMPORTING
  18.     logondata            = l_r_logon
  19.     defaults             = l_r_defaults
  20.     address              = l_r_address
  21.     company              = l_r_company
  22.     snc                  = l_r_snc
  23.     ref_user             = l_r_refuser
  24.     alias                = l_r_alias
  25.     uclass               = l_r_uclass
  26.     lastmodified         = l_r_lastmod
  27.     islocked             = l_r_islocked
  28.   TABLES
  29. *   PARAMETER            =
  30. *   PROFILES             =
  31. *   ACTIVITYGROUPS       =
  32.     return               = l_t_return
  33. *   ADDTEL               =
  34. *   ADDFAX               =
  35. *   ADDTTX               =
  36. *   ADDTLX               =
  37. *   ADDSMTP              =
  38. *   ADDRML               =
  39. *   ADDX400              =
  40. *   ADDRFC               =
  41. *   ADDPRT               =
  42. *   ADDSSF               =
  43. *   ADDURI               =
  44. *   ADDPAG               =
  45. *   ADDCOMREM            =
  46. *   PARAMETER1           =
  47. *   GROUPS               =
  48. *   UCLASSSYS            =
  49. *   EXTIDHEAD            =
  50. *   EXTIDPART            =
  51. *   SYSTEMS              =
  52.           .
  53. IF l_t_return IS INITIAL.
  54.   WRITE: / l_r_address-fullname.
GeSHi ©
Jamie619
...
...
 
Posts: 438
Joined: Wed Jul 21, 2004 10:52 pm

Postby Jasmina3697 » Mon Oct 30, 2006 1:02 pm

Ähm, nutzt Du das Programm auch genau so? Hier ist l_f_uname ja noch initial, d.h. da steht nix drin. Testweise könntest Du hier sy-uname verwenden (also Deinen eigenen User). Entweder Du machst vorher ein MOVE sy-uname to l_f_uname oder Du ersetzt l_f_uname bei der Übergabe durch sy-uname.

Viele Grüße,

Peter
Jasmina3697
..
..
 
Posts: 52
Joined: Mon Sep 11, 2006 12:19 am

Next

Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 2 guests