@@ -58,6 +58,7 @@ public class RemoteTKController {
58
58
@remoteAction
59
59
public static String create (String objtype , String fields ) {
60
60
Schema .SObjectType targetType = Schema .getGlobalDescribe ().get (objtype );
61
+ Map <String , Schema .sObjectField > targetFields = targetType .getDescribe ().fields .getMap ();
61
62
if (targetType == null ) {
62
63
return ' [{"message":"The requested resource does not exist","errorCode":"NOT_FOUND"}]' ;
63
64
}
@@ -73,7 +74,18 @@ public class RemoteTKController {
73
74
74
75
try {
75
76
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
+ }
77
89
}
78
90
} catch (SObjectException soe ) {
79
91
return ' [{"message":"' + soe .getMessage ()+ ' ","errorCode":"INVALID_FIELD"}]' ;
0 commit comments