@@ -58,6 +58,7 @@ public class RemoteTKController {
5858 @remoteAction
5959 public static String create (String objtype , String fields ) {
6060 Schema .SObjectType targetType = Schema .getGlobalDescribe ().get (objtype );
61+ Map <String , Schema .sObjectField > targetFields = targetType .getDescribe ().fields .getMap ();
6162 if (targetType == null ) {
6263 return ' [{"message":"The requested resource does not exist","errorCode":"NOT_FOUND"}]' ;
6364 }
@@ -73,7 +74,18 @@ public class RemoteTKController {
7374
7475 try {
7576 for (String key : fieldMap .keySet ()) {
76- obj .put (key , fieldMap .get (key ));
77+ if (targetFields .get (key ).getDescribe ().getType () == Schema .DisplayType .Date ) {
78+ obj .put (key , Date .valueOf ((String )fieldMap .get (key )));
79+ } else if (targetFields .get (key ).getDescribe ().getType () == Schema .DisplayType .Percent ||
80+ targetFields .get (key ).getDescribe ().getType () == Schema .DisplayType .Currency ) {
81+ obj .put (key , String .valueOf (fieldMap .get (key )) == ' ' ? null : Decimal .valueOf ((String )fieldMap .get (key )));
82+ } else if (targetFields .get (key ).getDescribe ().getType () == Schema .DisplayType .Double ) {
83+ obj .put (key , String .valueOf (fieldMap .get (key )) == ' ' ? null : Double .valueOf (fieldMap .get (key )));
84+ } else if (targetFields .get (key ).getDescribe ().getType () == Schema .DisplayType .Integer ) {
85+ obj .put (key , Integer .valueOf (fieldMap .get (key )));
86+ } else {
87+ obj .put (key , fieldMap .get (key ));
88+ }
7789 }
7890 } catch (SObjectException soe ) {
7991 return ' [{"message":"' + soe .getMessage ()+ ' ","errorCode":"INVALID_FIELD"}]' ;
0 commit comments