Nach erfolgreicher Proxy-Generierung, Verbindung steht etc. habe ich mal versucht einen Update in das System zu bekommen. Die Return-Tabelle liefert mir lapidar, dass der User bereits existiert, dass tut er jedoch mitnichten.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- private void setUpChangeProxy()
- {
- _changeProxy = new UserChangeProxy_PortType();
- _changeProxy.messageSpecifier.setJcoClient(_client);
- }
- public void changeUser(String userName)
- {
- this.setUpChangeProxy();
- Bapi_User_Change_Input in = new Bapi_User_Change_Input();
- in.setUsername(userName);
- // setzen geänderter Adresse
- Bapiaddr3Type addr = new Bapiaddr3Type();
- addr.setAddr_No("1");
- addr.setCity("Orlando");
- addr.setCountry("US");
- addr.setDepartment("Magical Affairs");
- addr.setFirstname("Peter");
- addr.setFunction("Protagonist");
- addr.setLastname("PAN");
- in.setAddress(addr);
- {
- Bapi_User_Change_Output out = _changeProxy.bapi_User_Change(in);
- this.showReturn(out.get_as_listReturn());
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- finally
- {
- _cm.releaseConnection(_client);
- }
- }
- GeSHi ©
Anmerkung: _cm ist eine Instanz eines ConnectionManagers, welcher den Pool verwaltet, funktioniert auch.
Generell stellt sich mir die Frage, wann überhaupt das BAPI aufgerufen wird; ist dieses implizit durch den Aufruf der Methode bapi_user_change(in) ???
Wie ist das eigentlich mit Transaktionen in diesem Modell ?? Gesetzt den Fall, ich will zwei BAPI's aufrufen und im Fehlerfalle eines BAPI's BEIDE rückgängig machen, wie funktioniert denn das ? JTA ist ja wohl kaum die Lösung, oder ??
Danke und Gruß
Seneca