# HG changeset patch
# Parent 58d76d9e22cebc99e5ce4a704d0ede01e082a7c1
fixes 16611 - Add check in DefaultJsonDataService for id set on target property & retreive single object when that is set

diff --git a/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java b/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
--- a/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
+++ b/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
@@ -77,7 +77,13 @@
       final JSONObject jsonResult = new JSONObject();
       final JSONObject jsonResponse = new JSONObject();
       List<BaseOBObject> bobs;
-      final String id = parameters.get(JsonConstants.ID);
+      String id = parameters.get(JsonConstants.ID);
+      if( id == null && parameters.containsKey(JsonConstants.TARGET_PROPERTY)) {
+        final String targetId = parameters.get(JsonConstants.TARGET_PROPERTY) + "." + JsonConstants.ID;
+        if(parameters.containsKey(targetId)) {
+          id = parameters.get(targetId);
+        }
+      }
       // if the id is set that's a special case of one object being requested
       if (id != null) {
         bobs = new ArrayList<BaseOBObject>();
diff --git a/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java b/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
--- a/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
+++ b/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
@@ -105,6 +105,7 @@
   public static final String ACTIVE = "active";
   public static final String DATA = "data";
   public static final String NEW_INDICATOR = "_new";
+  public static final String TARGET_PROPERTY = "targetProperty";
 
   public static final String IN_PARAMETER_SEPARATOR = "__;__";
 
