0

bapi を使用して SAP のパスワードをリセットしようとしていますが、「パスワードはフィールド入力のタイプではありません」というエラーが表示されます。

以下にコードを掲載しています。

ここgetRandomString()にユーザー定義関数があります。このコードをインターネットからコピーしましたが、これについては知りません。

String newPassword = getRandomString();

try{
      JCO.Function bapiUserChange = repository.getFunctionTemplate("BAPI_USER_CHANGE").getFunction();
      if(bapiUserChange != null){
           JCO.ParameterList userChangeInput = bapiUserChange.getImportParameterList();

           JCO.Structure sPassword = userChangeInput.getStructure("PASSWORD");

           //sPassword.setValue(newPassword, ????) //what do I assign it to?

           userChangeInput.setValue(userId, "USERNAME");
           userChangeInput.setValue(newPassword, "PASSWORD");  // this gives an error
           userChangeInput.setValue("X","PASSWORDX"); //I know "X" is true, this will give an error too I believe

           mConnection.execute(bapiUserChange);

           //send E-mail
           boolean emailSent = sendEmail(userId, newPassword, "XXX200");
           msgMgr.reportSuccess("Password Reset Done");     

           if(mConnection != null){
                mConnection.disconnect();
           }

      }
}catch(Exception e){
     msgMgr.reportException("Could not change password " + e.getMessage(),true);
}

しかし、String newPassword = getRandomString();ここでgetRandomString()はユーザー定義関数であり、私はこれについて認識していないため、エラーが発生しています。パスワードのリセット中にこれの役割はありますか、または直接使用できますString newpassword=" ";

4

2 に答える 2

1

PASSWORD の代わりに BAPIPWD または PASSWORD-BAPIPWD を使用してみてください。念のため、パスワードがすべて大文字であることを確認してください。

于 2014-03-20T10:57:04.407 に答える