簡體   English   中英

如何修復“ JCO_ERROR_CONVERSION:無法將值從類型java.lang.String轉換為STRUCTURE”

[英]How to fix 'JCO_ERROR_CONVERSION: Cannot convert a value from type java.lang.String to STRUCTURE'

我們在SAP中實現的功能之一無法正常運行。 在SAP中,所有函數都可以正常工作並返回正確的值,但是,在Java JCo中調用時,客戶端需要的是結構而不是字符串或整數。 從Parameter中提取結構時,它會提供一個結構,該結構具有兩個未命名的列,每個列均不填充字節長度。

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:無法將com.sap.conn.jco.rt.AbstractRecord的字段I_REZEPT的值'1'從java.lang.String類型轉換為STRUCTURE。 com.sap.conn.jco.rt.AbstractRecord.createConversionException(AbstractRecord.java:436)com.sap.conn.jco.rt.AbstractRecord.setValue(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 org.eclipse.paho.client.mqttv3.internal.edu.hsalbsig.intellifarm.connector.mqtt.IntellifarmMqttClient.messageArrived(IntellifarmMqttClient.java:98)上的.sap.IntellifarmSapFunction.execute(IntellifarmSapFunction.java:61)。 (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|
|------------------|
|                  |
|------------------|

如果不從ABAP方面了解您的功能接口定義,那么在這里很難提供幫助。 但是如果input.getStructure("I_REZEPT"); 該導入參數I_REZEPT似乎有效。 因此,您無法調用input.setValue("I_REZEPT", (String)id); 嘗試為它設置一個字符串,這就是異常顯示的內容。 I_REZEPT是IMPORT參數,類型為STRUCTURE,不是STRING或CHAR類型的參數。 它包含其他各種字段-至少一個。

取而代之的是,我想您可以調用in.setValue(0, id); 用於設置此結構的第一個字段或in.setValue("FIELDNAME", id); 在結構中使用正確的字段名稱。

如何修復“價值

[英]How to fix "Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject" error in Android?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM