2017-02-13 6 views
0

다음 코드를 실행하면찾기 엔티티는 오류 MSG를 제공

<entity-find entity-name="mantle.order.OrderHeaderPartFacilityStatus" list="orderPartList"> 
       <econdition field-name="facilityId" from = "facilityId"/> 
       <econdition field-name="statusId" operator="in" value="OrderPlaced,"/> 

       <!-- <select-field field-name="orderId, "/> --> 
       <!-- <select-field field-name="orderName"/> --> 
       <!-- <select-field field-name="placedDate"/> --> 
       <!-- <select-field field-name="grandTotal"/> --> 
       <!-- <select-field field-name="orderPartSeqId"/> --> 
       <!-- <select-field field-name="facilityId"/> --> 
       <!-- <select-field field-name="facilityName"/> --> 
       <!-- <select-field field-name="partStatusId"/> --> 
       <!-- <order-by field-name="orderPartSeqId"/> --> 
     </entity-find> 

내가 가진 :

"orderPartList": [ 
    { 
     "enteredByPartyId": null, 
     "salesChannelEnumId": null, 
     "recurrenceInfoId": null, 
     "customerRoleTypeId": "Manager", 
     "billingAccountId": null, 
     "placedDate": "2016-01-01T00:00:00+0000", 
     "telecomContactMechId": null, 
     "postalContactMechId": null, 
     "vendorRoleTypeId": null, 
     "visitId": null, 
     "lastOrderedDate": null, 
     "remainingSubTotal": null, 
     "trackingNumber": null, 
     "otherPartyOrderId": null, 
     "statusId": "OrderPlaced", 
     "giftMessage": null, 
     "entryDate": null, 
     "shippingInstructions": null, 
     "autoCancelDate": null, 
     "estimatedDeliveryDate": null, 
     "customerPartyId": "EX_JOHN_DOE", 
     "validThruDate": null, 
     "carrierPartyId": null, 
     "partTotal": 5.1E+2, 
     "facilityId": "FWorkshopnanneihuan", 
     "syncStatusId": null, 
     "estimatedShipDate": null, 
     "validFromDate": null, 
     "estimatedPickUpDate": null, 
     "externalRevision": null, 
     "orderPartSeqId": "01", 
     "terminalId": null, 
     "shipmentMethodEnumId": null, 
     "shipBeforeDate": null, 
     "parentOrderId": null, 
     "isGift": null, 
     "productStoreId": null, 
     "orderRevision": 26, 
     "dontCancelSetDate": null, 
     "pseudoId": "FWorkshopnanneihuan", 
     "dontCancelSetUserId": null, 
     "systemMessageRemoteId": null, 
     "maySplit": null, 
     "externalId": null, 
     "parentPartSeqId": null, 
     "facilityName": "\u5357\u5185\u73af\u8f66\u95f4", 
     "orderId": "FOJohndoePassat", 
     "vendorPartyId": null, 
     "shipAfterDate": null, 
     "currencyUomId": null, 
     "orderName": "John_doe order 1", 
     "grandTotal": 5.1E+2, 
     "partStatusId": "OrderOpen", 
     "partName": "\u7b2c\u4e00\u90e8\u5206 John doe", 
     "statusDescription": "Placed" 
    } 
], 

을하지만을 나는 다음과 같이 선택 필드 태그를 주석 처리 할 때 :

0,123,516 :
<entity-find entity-name="mantle.order.OrderHeaderPartFacilityStatus" list="orderPartList"> 
       <econdition field-name="facilityId" from = "facilityId"/> 
       <econdition field-name="statusId" operator="in" value="OrderPlaced,"/> 

       <select-field field-name="orderId, "/> 
       <!-- <select-field field-name="orderName"/> --> 
       <!-- <select-field field-name="placedDate"/> --> 
       <!-- <select-field field-name="grandTotal"/> --> 
       <!-- <select-field field-name="orderPartSeqId"/> --> 
       <!-- <select-field field-name="facilityId"/> --> 
       <!-- <select-field field-name="facilityName"/> --> 
       <!-- <select-field field-name="partStatusId"/> --> 
       <!-- <order-by field-name="orderPartSeqId"/> --> 
     </entity-find> 

나는 다음 선택 SQL이 작동하지 않는 것입니다 수있는 다음과 같은 오류 MSG를 얻었다
{"errorCode":500,"errors":"java.lang.IllegalArgumentException: Maps with null keys can't be converted to JSON"} 

문제가 있습니까? 사용자 지정 데이터로 MoquiDemo-2.0.0을 실행 중입니다. 버그 일 수 있습니까? 누군가가 단서를 가지고 있습니까?

답변

0

필드 이름 "orderId"가 유효하지 않습니다. 쉼표는 여러 필드 이름을 분리하여 "orderId"및 ""목록으로 변환하고 빈 문자열은 유효한 필드 이름이 아니도록 사용됩니다.

statusId의 econdition에서와 마찬가지로 @value 속성의 끝에는 쉼표가 있습니다. null 상태 ID가있는 레코드를 포함시키려는 경우 econdition. or or null 특성을 사용하십시오. 그것이 당신이 찾고있는 것이 아닌 경우보다 효율적인 질의를 위해서, 쉼표를 없애고 equals 연산자를 사용하십시오 (기본값이므로 연산자 속성은 필요 없습니다).

일반적으로이 코드는 잘못되었습니다. Moqui는 우스운 일에 관대하고 최선을 다하지만 잘못된 필드 이름 등은 여전히 ​​유효하지 않으며 오류가 발생합니다. 서버 측 로그에 더 많은 오류나 경고가있을 수도 있습니다. 이는 일반적으로 무언가가 올바르게 작동하지 않는 경우를 찾는 첫 번째 장소입니다.

+0

감사합니다. 값 튜플에 더 많은 값을 추가 할 것이라는 사실을 알리기 위해 쉼표 만 사용합니다. 나는 Moqui가 튜플의 빈 요소를 없앨 것이라고 생각했다. 빈칸을 없애지 않으면 상당한 가치가 있습니다. 때로는 사람들이 유효한 값으로 빈칸을 필요로하기 때문입니다. 당신이 말했듯이, 나는 쉼표를 제거하고 리턴 값은 선택된 필드를 제외하고 널값 세트를 가진 다른 모든 필드를 얻는다. 선택한 필드의 값만 가져오고 선택한 필드 만 표시해야합니까? – jizhi