Одна из функций, которые мы реализовали в SAP, работает неправильно.
В SAP все функции работают правильно и возвращают правильные значения, однако при вызове в Java JCo клиенту нужна структура, а не строка или тип 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.CommsCallback.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|
|------------------|
| |
|------------------|