Получение ошибки Поле UCLASS не является членом BAPIUCLASS при обновлении через JCO - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь обновить значение поля UCLASS, используя "BAPI_USER_CHANGE" через JCO, но получаю ошибку ниже:

com.sap.conn.jco.JCoRuntimeException: поле UCLASS не является членом BAPIUCLASS

Вот мой код для установки значения:

JCoStructure license = params.getStructure("UCLASS");
license.setValue("UCLASS", changes.get(0).getCurrent());
JCoStructure licenseX = params.getStructure("UCLASSX");
licenseX.setValue("UCLASS", 'X');

Можете ли вы сказать мне, что входит в какую структуру? пробовал также с "LOGONDATA" и "ADDRESS".

1 Ответ

0 голосов
/ 06 сентября 2018

Войдите в систему с помощью графического пользовательского интерфейса SAP и используйте транзакцию SE37, чтобы отобразить параметры и структуры RFM BAPI_USER_CHANGE. Рабочая среда ABAP предлагает навигацию вперед. Поэтому, если вы хотите посмотреть, как выглядит эта структура UCLASS, перейдите на вкладку Импорт в RFM BAPI_USER_CHANGE и дважды щелкните по связанному типу BAPIUCLASS.

Вы правильно получаете сообщение об ошибке, поскольку в параметре RFM UCLASS (который является JCoStructure) нет поля с именем UCLASS.
Вместо этого, например, license.setValue("LIC_TYPE", "XY"); будет действительным здесь.

Если вы хотите установить другую структуру целиком, вам придется использовать
params.setValue("UCLASS", myJCoStructure);.

...