BAPI_USER_CHANGE funktioniert nicht?!

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

BAPI_USER_CHANGE funktioniert nicht?!

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Hallo,

ich habe mir aus mehreren Tabellen eine neue Tabelle zusammengestellt und wollte nun alle darin enthaltenen Benutzer mit dem FuBa BAPI_USER_CHANGE ändern.
Meinen Funktion hab ich im groben so aufgebaut:

Code: Alles auswählen.

loop at itab into wa.
BAPI_USER_CHANGE
endloop at itab.
Ich habe danach mal das loop entfernt und Festwerte eingetragen z.B. für den Benutzer X soll der Nachname auf Test geändert werden aber es passiert nichts ?!

Vielen Dank für eure Hilfe.

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


Re: BAPI_USER_CHANGE funktioniert nicht?!

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) »
Hallo jp2008,

mit welchen Parametern hast Du das BAPI denn aufgerufen? Wichtig ist hier, dass Du immer zwei zusammengehörende Parameter füllst. Wenn Du bspw. die Adresse ändern willst, dann musst Du die korrekte Adresse an den Parameter "ADDRESS" übergeben und zusätzlich dem Parameter "ADDRESSX" ein "X" übergeben. Nur wenn zusätzlich der passende X-Parameter gefüllt ist, wird die Änderung auch durchgeführt. Bzw. wenn das nicht das Problem war, dann schau Dir mal an was Du als "RETURN" zurückbekommst... vielleicht findest Du dort noch einen Hinweis auf das Problem.

Bzw. schau Dir mal die Doku zum BAPI an und versuch es fürs erste mal mit dem dort genannten Beispiel.

Gruß
Chris

Re: BAPI_USER_CHANGE funktioniert nicht?!

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Hallo,
also das mit dem X-Wert übergeben hab ich schonmal nicht beachtet ;) Wie befülle ich denn das Feld Adress? Kann ich einfach so Lastname = Lastname und Firstname = Firstname hinschreiben oder muss ich auf etwas besonderes achten?

Ich habe jetzt mal den X Wert mit übergeben, jedoch bekomme ich den Fehler: "Der Typ von ADDRESSX stimmt nur die länge nicht" obwohl ich l_addressx mit char(1) angegeben habe.

Code: Alles auswählen.

l_addressx = 'x'. 
CALL FUNCTION 'BAPI_USER_CHANGE'
  EXPORTING
    username                = 'jp2008'
*   LOGONDATA               =
*   LOGONDATAX              =
*   DEFAULTS                =
*   DEFAULTSX               =
*   ADDRESS                 =
    Lastname                = 'TEST'
    ADDRESSX                = l_addressx

Re: BAPI_USER_CHANGE funktioniert nicht?!

Beitrag von JHM (Top Expert / 1189 / 1 / 195 ) »
jp2008 hat geschrieben: Ich habe jetzt mal den X Wert mit übergeben, jedoch bekomme ich den Fehler: "Der Typ von ADDRESSX stimmt nur die länge nicht" obwohl ich l_addressx mit char(1) angegeben habe.
ADDRESSX ist eine Strucktur vom type BAPIADDR3X. Diese hat viele Felder. Alle Felder die du ändern möchtest mußt du ankreuzen.
Den Lastname mußt du über die Strucktur ADDRESS übergeben, nicht als einzelnen Parameter.

Ein Bapi gibt Fehler über die Returntabelle RETURN zurück. Diese solltest du auf jedenfall auswerten.

Damit die Änderungen wirksam werden mußt du noch ein Commit Work einbauen. Dafür gibt es das BAPI: BAPI_TRANSACTION_COMMIT.

kleiner Hinwei: SAP ist CaseSensitive. Der Username ist m.W. immer mit Großbuchstaben in den Tabellenabgelegt, deshalb sollte man ihn auf großgeschrieben übergeben.

Schau dir auch mal die Hilfe zu dem BAPI an. Dieser ist gut dokumentiert.

Code: Alles auswählen.

DATA ls_address TYPE BAPIADDR3X.
DATA ls_address TYPE BAPIADDR.
DATA lt_return TYPE TABLE OF BAPIRET2.
DATA ls_return TYPE BAPIRET2.


ls_adsress-lastname  = TEST'.
ls_addressx-lastname = 'x'. 

CALL FUNCTION 'BAPI_USER_CHANGE'
  EXPORTING
    username                = 'JP2008'
    ADDRESS                 = ls_address
    ADDRESSX                = ls_addressx
  TABLES
  RETURN = LT_RETURN.

IF lt_return IS INITIAL.
  CALL FUNCTION BAPI_TRANSACTION_COMMIT.
ELSE.
  LOOP AT lt_return INTO ls_return.
    * Fehlerhandling ist von dir hinzuzufügen.
  ENDLOOP.
ENDIF.
Gruß Hendrik

Re: BAPI_USER_CHANGE funktioniert nicht?!

Beitrag von jp2008 (ForumUser / 12 / 0 / 0 ) »
Vielen Dank, das hat mir sehr geholfen komme meinen Ziel jetzt endlich richtig nahe ;)

Gruß
Marco

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1960
Views
Change DIS
von Icke0801 » 05.04.2017 16:12 • Verfasst in ABAP® Core
1
Antw.
2397
Views
Password change via RFC
von Daniela » 06.02.2006 10:55 • Verfasst in ABAP® Core
2
Antw.
3415
Views
IW 38 - Change Layout
von xhuljano » 18.02.2015 16:12 • Verfasst in ABAP® für Anfänger
12
Antw.
6061
Views
ON CHANGE OF - HILFE
von Nici » 31.05.2005 11:14 • Verfasst in ABAP® für Anfänger
1
Antw.
2331
Views
per BAPI-Control über Visual Basic ein BAPI aufrufen
von Kaiwalker » 25.07.2005 15:22 • Verfasst in ABAP® Core

Über diesen Beitrag


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.