Yuuvis Tabellendaten mit Sonderzeichen importieren

Hallo zusammen,

ich arbeite aktuell an einem Job der ein Objekt in yuuvis anlegt und anschließend die Positionsdatentabelle mit einem weiteren Job befüllt. Das klappt auch soweit ganz gut, außer wenn in den Positionsdaten Umlaute enthalten sind.

Für den Import verwende ich eine JSON-Datei welche ich per String-Verkettung um den Indexdatennamen erweitere. Anschließend sende ich diesen JSON-String via enaioRedRestCall um die Indexdaten zu schreiben. (PUT „/rest-ws/service/dms/{id}“)

Sobald in den Positionsdaten ein Ä,Ö,Ü,ß oder ähnliches ist stürzt der Import ab.
Wenn der Request mit dem gleichen Body über Postman geschickt wird gibt es keine Probleme.

Gibt es die Möglichkeit das Encoding beim Übertrag zu beeinflussen? Beim Einlesen der Datei habe ich schon ANSI und UTF-8 probiert, das ändert leider nichts am Ergebnis.

Mein JSON sieht wie folgt aus:

{
    "licensemodules": [{
            "discountpercentage": 68.09,
            "quantity": 1,
            "maintprice": 33.96,
            "notes": "# Hämatologisch: \n4 Jahre",
            "serialnumber": "ABC-DEF-GHI",
            "contractend": "2026-03-24",
            "moduledescription": "# Hämatologisch: \nneue SN\nABC-DEF-GHI\nalte SN\n12345-12345-12345\n\n",
            "maintdiscountpercentage": 59.81
        }
    ]
}

Die Fehlermeldung sieht dabei wie folgt aus:

{
    "status": "BAD_REQUEST",
    "statuscode": 400,
    "key": "DMS_METADATA_JSON_INPUT_PARSING_ERROR",
    "message": "The input json can not be parsed. See cause message for more details.",
    "time": "2023-04-06T09:00:53.808Z",
    "reportedtoclient": true,
    "cause": {
        "messages": ["Invalid UTF-8 middle byte 0x6d\n at [Source: (com.os.ecm.ws.monitor.MonitoringInputStream); line: 5, column: 24]"],
        "trace": "com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 middle byte 0x6d\n at [Source: (com.os.ecm.ws.monitor.MonitoringInputStream); line: 5, column: 24]\r\n\tat com.fasterxml.jackson.core.jackson-core@2.12.7....
    }
}

Viele Grüße
Jan

Hallo Jan,

EDIT
Sorry, ich habe gerade gemerkt, dass es sich vermutlich um ein YUUVIS RAD handelt. Den Test mache ich morgen und melde mich dann erneut. Sorry. Ich lasse mal unten trotzdem das Ergebnis stehen.

Ungültiger Test mit Momentum
ich habe es gerade etwas hemdsärmelig versucht nachzustellen.

Hierzu habe ich per Postman einen POST Request auf /api/dms/objects per multipart/formdata den Aufruf gemacht.

Das Ganze hat den Part data mit dem Content-Type application/json und dem Inhalt:

{
  "objects": [
    {
      "properties": {
        "system:objectTypeId": {
          "value": "Event"
        },
        "ID": {
          "value": "id"
        },
        "Key": {
          "value": "Key"
        },
        "Status": {
          "value": "Status"
        },
        "Version": {
          "value": "1"
        },
        "Mode": {
          "value": "Mode"
        },
        "Timestamp": {
          "value": "2023-04-21T15:40:13Z"
        },
        "tenDev:Actions": {
          "value": [
            [ "# Hämatologisch: \n4 Jahre",
              "# Hämatologisch: \nneue SN\nABC-DEF-GHI\nalte SN\n12345-12345-12345\n\n"
            ]
          ]
        }
      }
    }
  ]
}

In Meinem Test hat das Ganze aber problemlos funktioniert.

Mein Schema passt natürlich nicht zu ihrem, daher ist der Test nicht sehr aussagekräftig. Ein Test lief auf einem Momentum Winter 2022.

Entspricht mein Test in etwa ihrem Ansatz?

Hallo Jan,

ich habe den Punkt jetzt mal mit meiner lokalen RAD Version 9.0 getestet.
Leider konnte ich den Fehler nicht nachvollziehen.

Den Test habe ich per Swagger UI durchgeführt:
<server>/rest-ws/swagger.html?urls.primaryName=DmsService#/Endpoints/updateItem

Hast du es schon per Swagger UI getestet?

Gruss
Uli

Hallo Uli,

das Problem tritt nur im Talendjob auf,

per Swagger oder Postman gibt es kein Problem beim Update der Tabelle.

Viele Grüße
Jan

Die Lösung ist es, im Talend den API-Call mit Content-Type „application/json;charset=utf-8“ zu versenden.

1 „Gefällt mir“