# Order-candiates-rest-controller Beispiel

**URL:** <https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844>\
**Category:** Setup\
**Tags:** deutsch\
**Created:** [May 29, 2020, 10:33am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844 "2020-05-29T10:33:42Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [May 29, 2020, 10:33am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/1 "2020-05-29T10:33:42Z")

</div>

Hallo,  
Wir wollen die API benutzen um unser Metasfresh mit Daten aus unserem Webshop zu füttern. Aktuell scheitern wir beim Erstellen eines funktionsfähigen Request am order-candidates-rest-controller Endpoint. Das angegebene Beispiel unter [https://docs.metasfresh.org/rest\_api\_collection/EN/order-candidates-rest-controller-impl.html](https://docs.metasfresh.org/rest_api_collection/EN/order-candidates-rest-controller-impl.html) führt bei uns nur zu einem Bad Request. Anscheinend haben sich ein paar Felder geändert.  
Könnte uns jemand sagen welche Felder wirklich erforderlich sind, da in unserer Swagger UI nur 5 Felder markiert sind, scheinbar aber mehr benötigt werden.  
Oder noch besser hat jemand ein funktionierendes Beispiel für uns?  
Vorab vielen Dank und besten Gruß

---

<div class="post-metadata">

**Author:** ![metasnw](https://forum.metasfresh.org/user_avatar/forum.metasfresh.org/metasnw/32/23_2.png) [@metasnw](https://forum.metasfresh.org/u/metasnw)\
**Post date:** [June 5, 2020, 4:26pm UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/2 "2020-06-05T16:26:45Z")

</div>

hi @SF_Team

habt ihr den OC endpunkt über swagger getestet oder via postman oder ähnlich ?  
Wenn ja, welche URL habt ihr verwendet?  
Außerdem wäre das JSON interessant.

Wir nutzen die Doku auch für unsere eigenen Tests daher wäre ich neugierig an welcher Stelle es für euch nicht passt.

VG  
norbert

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [June 7, 2020, 1:30pm UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/3 "2020-06-07T13:30:06Z")

</div>

hi @metasnw

bisher haben wir über die swagger ui getestet, ServerIP:8282/swagger-ui.html  
Über “Try it out” und dort das Beispiel von der oben verlinkten Docu reinkopiert. (Fehlermeldung reiche ich nach). Ich habe auch versucht das Beispiel, so wie es von Swagger direkt angezeigt wird mit Daten zu füllen, leider aber ohne Erfolg

Gruß

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [June 15, 2020, 11:41am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/4 "2020-06-15T11:41:14Z")

</div>

Wir hatten ein paar Probleme mit der Hostmaschine, daher die Verzögerung.  
Hier die Fehlermeldung  
“exception”: “org.springframework.http.converter.HttpMessageNotReadableException”,  
“message”: “Could not read JSON document: Unexpected character (’”’ (code 34)): was expecting comma to separate Object entries\n at [Source: (PushbackInputStream); line: 83, column: 4]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (’"’ (code 34)): was expecting comma to separate Object entries\n at [Source: (PushbackInputStream); line: 83, column: 4]",  
“path”: “/api/sales/order/candidates”

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [June 15, 2020, 1:43pm UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/5 "2020-06-15T13:43:33Z")

</div>

Ich habe hier mal angefangen ein JSON zusammenzubasteln:  
{  
“billBPartner”: {  
“bpartner”: {  
“active”: true,  
“externalId”: “1156425”,  
“code”: “Test001”,  
“name”: “Tester”,  
“name2”: “Vorname”,  
“name3”: “nachname”,  
“language”: “de\_DE”,  
“group”: “Standard”,  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“dataDest”: “int-DEST.de.metas.ordercandidate”,  
“dataSource”: “int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl”,  
“discount”: 0.0,  
“externalHeaderId”: “extHead-101”,  
“externalLineId”: “extLine-101”,  
“orderDocType”: “SalesOrder”,  
“paymentRule”: “Paypal”,  
“product”: {  
“externalId”: {123456},  
“name”: “TestDruck”,  
“type”: “ITEM”,  
“uomCode”: “PCE”,  
“price”: 2.0,  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“qty”: 1.0  
}

Aktuell bekomme ich noch Error 422. Hier die Antwort vom Server:  
can’t parse JSON. Raw result:

{“errors”:[{“message”:“Could not read JSON document: Unexpected character (‘1’ (code 49)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 31, column: 19] (through reference chain: de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateRequest[“product”]-\>de.metas.rest\_api.ordercandidates.request.JsonProductInfo[“externalId”]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (‘1’ (code 49)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 31, column: 19] (through reference chain: de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateRequest[“product”]-\>de.metas.rest\_api.ordercandidates.request.JsonProductInfo[“externalId”])”,“stackTrace”:" \<~~~ UserAuthTokenFilter.lambda$doFilter$1:75 \<- UserAuthTokenService.lambda$run$0:57 \<- UserAuthTokenService.call:79 \<- UserAuthTokenService.run:56 \<- UserAuthTokenFilter.doFilter:73",“parameters”:{},“throwable”:{“cause”:{“cause”:{“cause”:null,“stackTrace”:[{“methodName”:"\_constructError",“fileName”:“JsonParser.java”,“lineNumber”:1804,“className”:“com.fasterxml.jackson.core.JsonParser”,“nativeMethod”:false},{“methodName”:"\_reportError",“fileName”:“ParserMinimalBase.java”,“lineNumber”:693,“className”:“com.fasterxml.jackson.core.base.ParserMinimalBase”,“nativeMethod”:false},{“methodName”:"\_reportUnexpectedChar",“fileName”:“ParserMinimalBase.java”,“lineNumber”:591,“className”:“com.fasterxml.jackson.core.base.ParserMinimalBase”,“nativeMethod”:false},{“methodName”:"\_handleOddName",“fileName”:“UTF8StreamJsonParser.java”,“lineNumber”:1996,“className”:“com.fasterxml.jackson.core.json.UTF8StreamJsonParser”,“nativeMethod”:false},{“methodName”:"\_parseName",“fileName”:“UTF8StreamJsonParser.java”,“lineNumber”:1647,“className”:“com.fasterxml.jackson.core.json.UTF8StreamJsonParser”,“nativeMethod”:false},{“methodName”:“nextToken”,“fileName”:“UTF8StreamJsonParser.java”,“lineNumber”:733,“className”:“com.fasterxml.jackson.core.json.UTF8StreamJsonParser”,“nativeMethod”:false},{“methodName”:“deserialize”,“fileName”:“BeanDeserializer.java”,“lineNumber”:155,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserialize”,“fileName”:“SettableBeanProperty.java”,“lineNumber”:530,“className”:“com.fasterxml.jackson.databind.deser.SettableBeanProperty”,“nativeMethod”:false},{“methodName”:"\_deserializeWithErrorWrapping",“fileName”:“BeanDeserializer.java”,“lineNumber”:528,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:"\_deserializeUsingPropertyBased",“fileName”:“BeanDeserializer.java”,“lineNumber”:417,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserializeFromObjectUsingNonDefault”,“fileName”:“BeanDeserializerBase.java”,“lineNumber”:1287,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializerBase”,“nativeMethod”:false},{“methodName”:“deserializeFromObject”,“fileName”:“BeanDeserializer.java”,“lineNumber”:326,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserialize”,“fileName”:“BeanDeserializer.java”,“lineNumber”:159,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserialize”,“fileName”:“SettableBeanProperty.java”,“lineNumber”:530,“className”:“com.fasterxml.jackson.databind.deser.SettableBeanProperty”,“nativeMethod”:false},{“methodName”:"\_deserializeWithErrorWrapping",“fileName”:“BeanDeserializer.java”,“lineNumber”:528,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:"\_deserializeUsingPropertyBased",“fileName”:“BeanDeserializer.java”,“lineNumber”:417,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserializeFromObjectUsingNonDefault”,“fileName”:“BeanDeserializerBase.java”,“lineNumber”:1287,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializerBase”,“nativeMethod”:false},{“methodName”:“deserializeFromObject”,“fileName”:“BeanDeserializer.java”,“lineNumber”:326,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:“deserialize”,“fileName”:“BeanDeserializer.java”,“lineNumber”:159,“className”:“com.fasterxml.jackson.databind.deser.BeanDeserializer”,“nativeMethod”:false},{“methodName”:"\_readMapAndClose",“fileName”:“ObjectMapper.java”,“lineNumber”:4013,“className”:“com.fasterxml.jackson.databind.ObjectMapper”,“nativeMethod”:false},{“methodName”:“readValue”,“fileName”:“ObjectMapper.java”,“lineNumber”:3084,“className”:“com.fasterxml.jackson.databind.ObjectMapper”,“nativeMethod”:false},{“methodName”:“readJavaType”,“fileName”:“AbstractJackson2HttpMessageConverter.java”,“lineNumber”:231,“className”:“org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter”,“nativeMethod”:false},{“methodName”:“read”,“fileName”:“AbstractJackson2HttpMessageConverter.java”,“lineNumber”:219,“className”:“org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter”,“nativeMethod”:false},{“methodName”:“readWithMessageConverters”,“fileName”:“AbstractMessageConverterMethodArgumentResolver.java”,“lineNumber”:201,“className”:“org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver”,“nativeMethod”:false},{“methodName”:“readWithMessageConverters”,“fileName”:“RequestResponseBodyMethodProcessor.java”,“lineNumber”:150,“className”:“org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor”,“nativeMethod”:false},{“methodName”:“resolveArgument”,“fileName”:“RequestResponseBodyMethodProcessor.java”,“lineNumber”:128,“className”:“org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor”,“nativeMethod”:false},{“methodName”:“resolveArgument”,“fileName”:“HandlerMethodArgumentResolverComposite.java”,“lineNumber”:121,“className”:“org.springframework.web.method.support.HandlerMethodArgumentResolverComposite”,“nativeMethod”:false},{“methodName”:“getMethodArgumentValues”,“fileName”:“InvocableHandlerMethod.java”,“lineNumber”:158,“className”:“org.springframework.web.method.support.InvocableHandlerMethod”,“nativeMethod”:false},{“methodName”:“invokeForRequest”,“fileName”:“InvocableHandlerMethod.java”,“lineNumber”:128,“className”:“org.springframework.web.method.support.InvocableHandlerMethod”,“nativeMethod”:false},{“methodName”:“invokeAndHandle”,“fileName”:“ServletInvocableHandlerMethod.java”,“lineNumber”:97,“className”:“org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod”,“nativeMethod”:false},{“methodName”:“invokeHandlerMethod”,“fileName”:“RequestMappingHandlerAdapter.java”,“lineNumber”:827,“className”:“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”,“nativeMethod”:false},{“methodName”:“handleInternal”,“fileName”:“RequestMappingHandlerAdapter.java”,“lineNumber”:738,“className”:“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”,“nativeMethod”:false},{“methodName”:“handle”,“fileName”:“AbstractHandlerMethodAdapter.java”,“lineNumber”:85,“className”:“org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter”,“nativeMethod”:false},{“methodName”:“doDispatch”,“fileName”:“DispatcherServlet.java”,“lineNumber”:963,“className”:“org.springframework.web.servlet.DispatcherServlet”,“nativeMethod”:false},{“methodName”:“doService”,“fileName”:“DispatcherServlet.java”,“lineNumber”:897,“className”:“org.springframework.web.servlet.DispatcherServlet”,“nativeMethod”:false},{“methodName”:“processRequest”,“fileName”:“FrameworkServlet.java”,“lineNumber”:970,“className”:“org.springframework.web.servlet.FrameworkServlet”,“nativeMethod”:false},{“methodName”:“doPost”,“fileName”:“FrameworkServlet.java”,“lineNumber”:872,“className”:“org.springframework.web.servlet.FrameworkServlet”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“HttpServlet.java”,“lineNumber”:707,“className”:“javax.servlet.http.HttpServlet”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“FrameworkServlet.java”,“lineNumber”:846,“className”:“org.springframework.web.servlet.FrameworkServlet”,“nativeMethod”:false},{“methodName”:“service”,“fileName”:“HttpServlet.java”,“lineNumber”:790,“className”:“javax.servlet.http.HttpServlet”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:231,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“WsFilter.java”,“lineNumber”:52,“className”:“org.apache.tomcat.websocket.server.WsFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“ApplicationContextHeaderFilter.java”,“lineNumber”:55,“className”:“org.springframework.boot.web.filter.ApplicationContextHeaderFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“lambda$doFilter$1”,“fileName”:“UserAuthTokenFilter.java”,“lineNumber”:75,“className”:“de.metas.util.web.security.UserAuthTokenFilter”,“nativeMethod”:false},{“methodName”:“lambda$run$0”,“fileName”:“UserAuthTokenService.java”,“lineNumber”:57,“className”:“de.metas.util.web.security.UserAuthTokenService”,“nativeMethod”:false},{“methodName”:“call”,“fileName”:“UserAuthTokenService.java”,“lineNumber”:79,“className”:“de.metas.util.web.security.UserAuthTokenService”,“nativeMethod”:false},{“methodName”:“run”,“fileName”:“UserAuthTokenService.java”,“lineNumber”:56,“className”:“de.metas.util.web.security.UserAuthTokenService”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“UserAuthTokenFilter.java”,“lineNumber”:73,“className”:“de.metas.util.web.security.UserAuthTokenFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“WebRequestTraceFilter.java”,“lineNumber”:110,“className”:“org.springframework.boot.actuate.trace.WebRequestTraceFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“RequestContextFilter.java”,“lineNumber”:99,“className”:“org.springframework.web.filter.RequestContextFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“HttpPutFormContentFilter.java”,“lineNumber”:105,“className”:“org.springframework.web.filter.HttpPutFormContentFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“HiddenHttpMethodFilter.java”,“lineNumber”:81,“className”:“org.springframework.web.filter.HiddenHttpMethodFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“CharacterEncodingFilter.java”,“lineNumber”:197,“className”:“org.springframework.web.filter.CharacterEncodingFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilterInternal”,“fileName”:“MetricsFilter.java”,“lineNumber”:106,“className”:“org.springframework.boot.actuate.autoconfigure.MetricsFilter”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“OncePerRequestFilter.java”,“lineNumber”:107,“className”:“org.springframework.web.filter.OncePerRequestFilter”,“nativeMethod”:false},{“methodName”:“internalDoFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:193,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“doFilter”,“fileName”:“ApplicationFilterChain.java”,“lineNumber”:166,“className”:“org.apache.catalina.core.ApplicationFilterChain”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardWrapperValve.java”,“lineNumber”:198,“className”:“org.apache.catalina.core.StandardWrapperValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardContextValve.java”,“lineNumber”:96,“className”:“org.apache.catalina.core.StandardContextValve”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“AuthenticatorBase.java”,“lineNumber”:478,“className”:“org.apache.catalina.authenticator.AuthenticatorBase”,“nativeMethod”:false},{“methodName”:“invoke”,“fileName”:“StandardHostValve.java”,“lineNumber”:140,“className”:“org.apache.catalina.core.StandardHostValve”,"{“timestamp”:“2020-06-15T12:30:41.167+0000”,“status”:422,“error”:“Unprocessable Entity”,“exception”:“org.springframework.http.converter.HttpMessageNotReadableException”,“message”:“Could not read JSON document: Unexpected character (‘1’ (code 49)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 31, column: 19] (through reference chain: de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateRequest[“product”]-\>de.metas.rest\_api.ordercandidates.request.JsonProductInfo[“externalId”]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected character (‘1’ (code 49)): was expecting double-quote to start field name\n at [Source: (PushbackInputStream); line: 31, column: 19] (through reference chain: de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateRequest[“product”]-\>de.metas.rest\_api.ordercandidates.request.JsonProductInfo[“externalId”])”,“path”:"/api/sales/order/candidates"}

Hat jemand schonmal eine ähnliche Fehlermeldung gehabt, bzw weiß jemand was in meinem JSON noch falsch ist?  
Vielen Dank schonmal

---

<div class="post-metadata">

**Author:** ![metasnw](https://forum.metasfresh.org/user_avatar/forum.metasfresh.org/metasnw/32/23_2.png) [@metasnw](https://forum.metasfresh.org/u/metasnw)\
**Post date:** [June 18, 2020, 5:56am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/6 "2020-06-18T05:56:15Z")

</div>

hi,

kannst du noch die version von metasfresh posten die ihr einsetzt?

VG  
Norbert

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [June 18, 2020, 8:50am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/7 "2020-06-18T08:50:26Z")

</div>

Hi,

wir benutzen soweit ich das sehen kann Version 5.144

VG

---

<div class="post-metadata">

**Author:** ![metasnw](https://forum.metasfresh.org/user_avatar/forum.metasfresh.org/metasnw/32/23_2.png) [@metasnw](https://forum.metasfresh.org/u/metasnw)\
**Post date:** [June 29, 2020, 4:46pm UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/8 "2020-06-29T16:46:39Z")

</div>

> [@SF\_Team](#):
>
> “externalId”: {123456},

Fehlermeldung sagt ja Zeile 31:  
laut Doku sollte dort keine externalid sein ([order-candidates-rest-controller-impl (sales order candidates/disposition)](https://docs.metasfresh.org/rest_api_collection/EN/order-candidates-rest-controller-impl.html)).  
Selbst wenn macht die geschweifte Klammer dort auch keinen Sinn.

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [July 1, 2020, 6:42am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/9 "2020-07-01T06:42:14Z")

</div>

Hallo und vielen Dank für den Tip,  
die “poReference”: hat auch noch gefehlt. Hier jetzt das akutelle JSON:  
{  
“billBPartner”: {  
“bpartner”: {  
“active”: true,  
“externalId”: “1156425”,  
“code”: “Test001”,  
“name”: “Tester”,  
“name2”: “Vorname”,  
“name3”: “nachname”,  
“language”: “de\_DE”,  
“group”: “Standard”,  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“dataDest”: “int-DEST.de.metas.ordercandidate”,  
“dataSource”: “int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl”,  
“discount”: 0.0,  
“externalHeaderId”: “extHead-101”,  
“externalLineId”: “extLine-101”,  
“orderDocType”: “SalesOrder”,  
“paymentRule”: “Paypal”,  
“product”: {  
“name”: “TestDruck”,  
“type”: “ITEM”,  
“uomCode”: “PCE”,  
“price”: 2.0,  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
},  
“poReference”: “SEO\_768-04”,  
“qty”: 1.0  
}

**Und hier die neue Fehlermeldung:**  
{  
“errors”: [  
{  
“message”: “Ihr Test hat einen bisher unentdeckten Fehler offengelegt.\r\nBitte leiten Sie diese Meldung an metas weiter:\n\nAssumption failure: bpartner may not be null; this=JsonOLCandCreateRequest(org=null, externalLineId=extLine-101, externalHeaderId=extHead-101, dataSource=int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl, dataDest=int-DEST.de.metas.ordercandidate, bpartner=null, billBPartner=JsonRequestBPartnerLocationAndContact(bpartner=JsonRequestBPartner(externalId=JsonExternalId(value=1156425), code=Test001, active=true, name=Tester, name2=Vorname, name3=nachname, companyName=null, vendor=null, customer=null, parentId=null, phone=null, language=de\_DE, invoiceRule=null, url=null, url2=null, url3=null, group=Standard, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), location=null, contact=null, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), dropShipBPartner=null, handOverBPartner=null, dateOrdered=null, dateRequired=null, flatrateConditionsId=0, product=JsonProductInfo(code=null, externalId=null, name=TestDruck, type=ITEM, uomCode=PCE, priceStd=2.0, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), productDescription=null, qty=1.0, uomCode=null, packingMaterialId=null, pricingSystemCode=null, price=null, currencyCode=null, discount=0.0, poReference=SEO\_768-04, warehouseDestCode=null, invoiceDocType=null, presetDateInvoiced=null, presetDateShipped=null, orderDocType=SalesOrder, paymentRule=Paypal, salesPartnerCode=null, shipper=null)”,  
“stackTrace”: " \< ~~~Check.mkEx:119 \<- Check.throwOrLogEx:134 \<- Check.assume:186 \<- Check.assumeNotNull:276 \<- Check.assumeNotNull:266 \<- JsonOLCandCreateRequest.validate:299 \<- JsonOLCandCreateBulkRequest.validate:65 \<- OrderCandidatesRestControllerImpl.createOrderLineCandidates:143 \<- OrderCandidatesRestControllerImpl.createOrderLineCandidate:134 \<~~~ UserAuthTokenFilter.lambda$doFilter$1:75 \<- UserAuthTokenService.lambda$run$0:57 \<- UserAuthTokenService.call:79 \<- UserAuthTokenService.run:56 \<- UserAuthTokenFilter.doFilter:73",  
“parameters”: {},  
“throwable”: {  
“cause”: null,  
“stackTrace”: [  
{  
“methodName”: “newInstance0”,  
“fileName”: “NativeConstructorAccessorImpl.java”,  
“lineNumber”: -2,  
“className”: “sun.reflect.NativeConstructorAccessorImpl”,  
“nativeMethod”: true  
},  
{  
“methodName”: “newInstance”,  
“fileName”: “NativeConstructorAccessorImpl.java”,  
“lineNumber”: 62,  
“className”: “sun.reflect.NativeConstructorAccessorImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “newInstance”,  
“fileName”: “DelegatingConstructorAccessorImpl.java”,  
“lineNumber”: 45,  
“className”: “sun.reflect.DelegatingConstructorAccessorImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “newInstance”,  
“fileName”: “Constructor.java”,  
“lineNumber”: 423,  
“className”: “java.lang.reflect.Constructor”,  
“nativeMethod”: false  
},  
{  
“methodName”: “mkEx”,  
“fileName”: “Check.java”,  
“lineNumber”: 119,  
“className”: “de.metas.util.Check”,  
“nativeMethod”: false  
},  
{  
“methodName”: “throwOrLogEx”,  
“fileName”: “Check.java”,  
“lineNumber”: 134,  
“className”: “de.metas.util.Check”,  
“nativeMethod”: false  
},  
{  
“methodName”: “assume”,  
“fileName”: “Check.java”,  
“lineNumber”: 186,  
“className”: “de.metas.util.Check”,  
“nativeMethod”: false  
},  
{  
“methodName”: “assumeNotNull”,  
“fileName”: “Check.java”,  
“lineNumber”: 276,  
“className”: “de.metas.util.Check”,  
“nativeMethod”: false  
},  
{  
“methodName”: “assumeNotNull”,  
“fileName”: “Check.java”,  
“lineNumber”: 266,  
“className”: “de.metas.util.Check”,  
“nativeMethod”: false  
},  
{  
“methodName”: “validate”,  
“fileName”: “JsonOLCandCreateRequest.java”,  
“lineNumber”: 299,  
“className”: “de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateRequest”,  
“nativeMethod”: false  
},  
{  
“methodName”: “validate”,  
“fileName”: “JsonOLCandCreateBulkRequest.java”,  
“lineNumber”: 65,  
“className”: “de.metas.rest\_api.ordercandidates.request.JsonOLCandCreateBulkRequest”,  
“nativeMethod”: false  
},  
{  
“methodName”: “createOrderLineCandidates”,  
“fileName”: “OrderCandidatesRestControllerImpl.java”,  
“lineNumber”: 143,  
“className”: “de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “createOrderLineCandidate”,  
“fileName”: “OrderCandidatesRestControllerImpl.java”,  
“lineNumber”: 134,  
“className”: “de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke0”,  
“fileName”: “NativeMethodAccessorImpl.java”,  
“lineNumber”: -2,  
“className”: “sun.reflect.NativeMethodAccessorImpl”,  
“nativeMethod”: true  
},  
{  
“methodName”: “invoke”,  
“fileName”: “NativeMethodAccessorImpl.java”,  
“lineNumber”: 62,  
“className”: “sun.reflect.NativeMethodAccessorImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “DelegatingMethodAccessorImpl.java”,  
“lineNumber”: 43,  
“className”: “sun.reflect.DelegatingMethodAccessorImpl”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “Method.java”,  
“lineNumber”: 498,  
“className”: “java.lang.reflect.Method”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doInvoke”,  
“fileName”: “InvocableHandlerMethod.java”,  
“lineNumber”: 205,  
“className”: “org.springframework.web.method.support.InvocableHandlerMethod”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invokeForRequest”,  
“fileName”: “InvocableHandlerMethod.java”,  
“lineNumber”: 133,  
“className”: “org.springframework.web.method.support.InvocableHandlerMethod”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invokeAndHandle”,  
“fileName”: “ServletInvocableHandlerMethod.java”,  
“lineNumber”: 97,  
“className”: “org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invokeHandlerMethod”,  
“fileName”: “RequestMappingHandlerAdapter.java”,  
“lineNumber”: 827,  
“className”: “org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “handleInternal”,  
“fileName”: “RequestMappingHandlerAdapter.java”,  
“lineNumber”: 738,  
“className”: “org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “handle”,  
“fileName”: “AbstractHandlerMethodAdapter.java”,  
“lineNumber”: 85,  
“className”: “org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doDispatch”,  
“fileName”: “DispatcherServlet.java”,  
“lineNumber”: 963,  
“className”: “org.springframework.web.servlet.DispatcherServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doService”,  
“fileName”: “DispatcherServlet.java”,  
“lineNumber”: 897,  
“className”: “org.springframework.web.servlet.DispatcherServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “processRequest”,  
“fileName”: “FrameworkServlet.java”,  
“lineNumber”: 970,  
“className”: “org.springframework.web.servlet.FrameworkServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doPost”,  
“fileName”: “FrameworkServlet.java”,  
“lineNumber”: 872,  
“className”: “org.springframework.web.servlet.FrameworkServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “service”,  
“fileName”: “HttpServlet.java”,  
“lineNumber”: 707,  
“className”: “javax.servlet.http.HttpServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “service”,  
“fileName”: “FrameworkServlet.java”,  
“lineNumber”: 846,  
“className”: “org.springframework.web.servlet.FrameworkServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “service”,  
“fileName”: “HttpServlet.java”,  
“lineNumber”: 790,  
“className”: “javax.servlet.http.HttpServlet”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 231,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “WsFilter.java”,  
“lineNumber”: 52,  
“className”: “org.apache.tomcat.websocket.server.WsFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “ApplicationContextHeaderFilter.java”,  
“lineNumber”: 55,  
“className”: “org.springframework.boot.web.filter.ApplicationContextHeaderFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “lambda$doFilter$1”,  
“fileName”: “UserAuthTokenFilter.java”,  
“lineNumber”: 75,  
“className”: “de.metas.util.web.security.UserAuthTokenFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “lambda$run$0”,  
“fileName”: “UserAuthTokenService.java”,  
“lineNumber”: 57,  
“className”: “de.metas.util.web.security.UserAuthTokenService”,  
“nativeMethod”: false  
},  
{  
“methodName”: “call”,  
“fileName”: “UserAuthTokenService.java”,  
“lineNumber”: 79,  
“className”: “de.metas.util.web.security.UserAuthTokenService”,  
“nativeMethod”: false  
},  
{  
“methodName”: “run”,  
“fileName”: “UserAuthTokenService.java”,  
“lineNumber”: 56,  
“className”: “de.metas.util.web.security.UserAuthTokenService”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “UserAuthTokenFilter.java”,  
“lineNumber”: 73,  
“className”: “de.metas.util.web.security.UserAuthTokenFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “WebRequestTraceFilter.java”,  
“lineNumber”: 110,  
“className”: “org.springframework.boot.actuate.trace.WebRequestTraceFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “RequestContextFilter.java”,  
“lineNumber”: 99,  
“className”: “org.springframework.web.filter.RequestContextFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “HttpPutFormContentFilter.java”,  
“lineNumber”: 105,  
“className”: “org.springframework.web.filter.HttpPutFormContentFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “HiddenHttpMethodFilter.java”,  
“lineNumber”: 81,  
“className”: “org.springframework.web.filter.HiddenHttpMethodFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “CharacterEncodingFilter.java”,  
“lineNumber”: 197,  
“className”: “org.springframework.web.filter.CharacterEncodingFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilterInternal”,  
“fileName”: “MetricsFilter.java”,  
“lineNumber”: 106,  
“className”: “org.springframework.boot.actuate.autoconfigure.MetricsFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “OncePerRequestFilter.java”,  
“lineNumber”: 107,  
“className”: “org.springframework.web.filter.OncePerRequestFilter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “internalDoFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 193,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doFilter”,  
“fileName”: “ApplicationFilterChain.java”,  
“lineNumber”: 166,  
“className”: “org.apache.catalina.core.ApplicationFilterChain”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “StandardWrapperValve.java”,  
“lineNumber”: 198,  
“className”: “org.apache.catalina.core.StandardWrapperValve”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “StandardContextValve.java”,  
“lineNumber”: 96,  
“className”: “org.apache.catalina.core.StandardContextValve”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “AuthenticatorBase.java”,  
“lineNumber”: 478,  
“className”: “org.apache.catalina.authenticator.AuthenticatorBase”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “StandardHostValve.java”,  
“lineNumber”: 140,  
“className”: “org.apache.catalina.core.StandardHostValve”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “ErrorReportValve.java”,  
“lineNumber”: 80,  
“className”: “org.apache.catalina.valves.ErrorReportValve”,  
“nativeMethod”: false  
},  
{  
“methodName”: “invoke”,  
“fileName”: “StandardEngineValve.java”,  
“lineNumber”: 87,  
“className”: “org.apache.catalina.core.StandardEngineValve”,  
“nativeMethod”: false  
},  
{  
“methodName”: “service”,  
“fileName”: “CoyoteAdapter.java”,  
“lineNumber”: 342,  
“className”: “org.apache.catalina.connector.CoyoteAdapter”,  
“nativeMethod”: false  
},  
{  
“methodName”: “service”,  
“fileName”: “Http11Processor.java”,  
“lineNumber”: 799,  
“className”: “org.apache.coyote.http11.Http11Processor”,  
“nativeMethod”: false  
},  
{  
“methodName”: “process”,  
“fileName”: “AbstractProcessorLight.java”,  
“lineNumber”: 66,  
“className”: “org.apache.coyote.AbstractProcessorLight”,  
“nativeMethod”: false  
},  
{  
“methodName”: “process”,  
“fileName”: “AbstractProtocol.java”,  
“lineNumber”: 861,  
“className”: “org.apache.coyote.AbstractProtocol$ConnectionHandler”,  
“nativeMethod”: false  
},  
{  
“methodName”: “doRun”,  
“fileName”: “NioEndpoint.java”,  
“lineNumber”: 1455,  
“className”: “org.apache.tomcat.util.net.NioEndpoint$SocketProcessor”,  
“nativeMethod”: false  
},  
{  
“methodName”: “run”,  
“fileName”: “SocketProcessorBase.java”,  
“lineNumber”: 49,  
“className”: “org.apache.tomcat.util.net.SocketProcessorBase”,  
“nativeMethod”: false  
},  
{  
“methodName”: “runWorker”,  
“fileName”: “ThreadPoolExecutor.java”,  
“lineNumber”: 1149,  
“className”: “java.util.concurrent.ThreadPoolExecutor”,  
“nativeMethod”: false  
},  
{  
“methodName”: “run”,  
“fileName”: “ThreadPoolExecutor.java”,  
“lineNumber”: 624,  
“className”: “java.util.concurrent.ThreadPoolExecutor$Worker”,  
“nativeMethod”: false  
},  
{  
“methodName”: “run”,  
“fileName”: “TaskThread.java”,  
“lineNumber”: 61,  
“className”: “org.apache.tomcat.util.threads.TaskThread$WrappingRunnable”,  
“nativeMethod”: false  
},  
{  
“methodName”: “run”,  
“fileName”: “Thread.java”,  
“lineNumber”: 748,  
“className”: “java.lang.Thread”,  
“nativeMethod”: false  
}  
],  
“adIssueId”: null,  
“userNotified”: false,  
“userValidationError”: false,  
“parameters”: {},  
“issueReported”: false,  
“message”: “Ihr Test hat einen bisher unentdeckten Fehler offengelegt.\r\nBitte leiten Sie diese Meldung an metas weiter:\n\nAssumption failure: bpartner may not be null; this=JsonOLCandCreateRequest(org=null, externalLineId=extLine-101, externalHeaderId=extHead-101, dataSource=int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl, dataDest=int-DEST.de.metas.ordercandidate, bpartner=null, billBPartner=JsonRequestBPartnerLocationAndContact(bpartner=JsonRequestBPartner(externalId=JsonExternalId(value=1156425), code=Test001, active=true, name=Tester, name2=Vorname, name3=nachname, companyName=null, vendor=null, customer=null, parentId=null, phone=null, language=de\_DE, invoiceRule=null, url=null, url2=null, url3=null, group=Standard, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), location=null, contact=null, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), dropShipBPartner=null, handOverBPartner=null, dateOrdered=null, dateRequired=null, flatrateConditionsId=0, product=JsonProductInfo(code=null, externalId=null, name=TestDruck, type=ITEM, uomCode=PCE, priceStd=2.0, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), productDescription=null, qty=1.0, uomCode=null, packingMaterialId=null, pricingSystemCode=null, price=null, currencyCode=null, discount=0.0, poReference=SEO\_768-04, warehouseDestCode=null, invoiceDocType=null, presetDateInvoiced=null, presetDateShipped=null, orderDocType=SalesOrder, paymentRule=Paypal, salesPartnerCode=null, shipper=null)”,  
“localizedMessage”: “Ihr Test hat einen bisher unentdeckten Fehler offengelegt.\r\nBitte leiten Sie diese Meldung an metas weiter:\n\nAssumption failure: bpartner may not be null; this=JsonOLCandCreateRequest(org=null, externalLineId=extLine-101, externalHeaderId=extHead-101, dataSource=int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl, dataDest=int-DEST.de.metas.ordercandidate, bpartner=null, billBPartner=JsonRequestBPartnerLocationAndContact(bpartner=JsonRequestBPartner(externalId=JsonExternalId(value=1156425), code=Test001, active=true, name=Tester, name2=Vorname, name3=nachname, companyName=null, vendor=null, customer=null, parentId=null, phone=null, language=de\_DE, invoiceRule=null, url=null, url2=null, url3=null, group=Standard, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), location=null, contact=null, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), dropShipBPartner=null, handOverBPartner=null, dateOrdered=null, dateRequired=null, flatrateConditionsId=0, product=JsonProductInfo(code=null, externalId=null, name=TestDruck, type=ITEM, uomCode=PCE, priceStd=2.0, syncAdvise=SyncAdvise(ifNotExists=CREATE, ifExists=UPDATE\_MERGE)), productDescription=null, qty=1.0, uomCode=null, packingMaterialId=null, pricingSystemCode=null, price=null, currencyCode=null, discount=0.0, poReference=SEO\_768-04, warehouseDestCode=null, invoiceDocType=null, presetDateInvoiced=null, presetDateShipped=null, orderDocType=SalesOrder, paymentRule=Paypal, salesPartnerCode=null, shipper=null)”,  
“suppressed”: []  
}  
}  
]  
}

---

<div class="post-metadata">

**Author:** ![SF\_Team](https://forum.metasfresh.org/letter_avatar_proxy/v4/letter/s/e56c9b/32.png) [@SF\_Team](https://forum.metasfresh.org/u/SF_Team)\
**Post date:** [September 8, 2020, 7:43am UTC](https://forum.metasfresh.org/t/order-candiates-rest-controller-beispiel/1844/10 "2020-09-08T07:43:50Z")

</div>

Ich habe ein Beispiel gefunden, dass bei uns so, ohne vorher abgelegte Daten funktioniert.  
{  
“bpartner”: {  
“bpartner”: {  
“active”: true,  
“code”: “G0001”,  
“name”: “Test Kunde 1”,  
“companyName”: “Testkunde Kunde 1”,  
“parentId”: 0,  
“language”: “de\_DE”,  
“syncAdvise”: {  
“ifExists”: “UPDATE\_MERGE”,  
“ifNotExists”: “CREATE”  
}  
}  
},  
“product”: {  
“code”: “Coco\_2468”,  
“name”: “Coconuts”,  
“type”: “ITEM”,  
“priceStd”: 6.90,  
“uomCode”: “PCE”,  
“syncAdvise”: {  
“ifExists”: “DONT\_UPDATE”,  
“ifNotExists”: “CREATE”  
}  
},  
“externalHeaderId”: “extHead-101”,  
“externalLineId”: “extLine-101”,  
“poReference”: “SEO\_768-04”,  
“dateRequired”: “2020-09-23”,  
“dataSource”: “int-SOURCE.de.metas.rest\_api.ordercandidates.impl.OrderCandidatesRestControllerImpl”,  
“dataDest”: “int-DEST.de.metas.ordercandidate”,  
“qty”: 1  
}
