Одна из функций, которые мы внедрили в SAP, работает некорректно. В SAP все функции работают правильно и возвращают правильные значения, однако при вызове в Java JCo Клиенту нужна структура, а не String или int. При извлечении структуры из параметра она дает структуру, которая имеет два безымянных столбца, каждый из которых не имеет длины байтов для заполнения.
Metadata:
{[],[]}
0,0
Мы пробовали разные типы данных в SAP для входного параметра «I_REZEPT», например int8 и char12.
private String sollwerte(JSONObject jsonin) throws JSONException, JCoException {
String id = String.valueOf(jsonin.getInt("rezeptid"));
JCoStructure in = input.getStructure("I_REZEPT");
System.out.println("Fieldcount:"+in.getFieldCount());
input.setValue("I_REZEPT", id);
e.printStackTrace();
function.execute(destination);
...
Stacktrace: com.sap.conn.jco.ConversionException: (122) JCO_ERROR_CONVERSION: невозможно преобразовать значение «1» из типа java.lang.String в STRUCTURE в поле I_REZEPT в com.sap.conn.jco.rt.AbstractRecord. createConversionException(AbstractRecord.java:436) в com.sap.conn.jco.rt.AbstractRecord.createConversionException(AbstractRecord.java:430) в com.sap.conn.jco.rt.AbstractRecord.setValue(AbstractRecord.java:2824) на com.sap.conn.jco.rt.AbstractRecord.setValue(AbstractRecord.java:3933) на edu.hsalbsig.intellifarm.connector.sap.IntellifarmSapFunction.sollwerte(IntellifarmSapFunction.java:226) на edu.hsalbsig.intellifarm.connector .sap.IntellifarmSapFunction.execute(IntellifarmSapFunction.java:61) в edu.hsalbsig.intellifarm.connector.mqtt.IntellifarmMqttClient.messageArrived(IntellifarmMqttClient.java:98) в org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage (CommsCallback.java:513) на org.eclipse.paho.client.mqttv3.internal.CommsCallba ck.handleMessage(CommsCallback.java:416) в org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:213) в java.base/java.lang.Thread.run(Thread.java: 834)
При отладке функция из SAP выглядит так
Input:
|--------|
| PARAMETERS 'INPUT'
|--------|
|I_REZEPT|
|--------|
| |
|--------|
|I_REZEPT|
|--------|
ожидалось что-то вроде этого
Input:
|------------------|
| PARAMETERS 'INPUT'
|------------------|
|I_REZEPT |
|------------------|
|012345678901234567|
|------------------|
| |
|------------------|