2011-06-01 113 views
1

我想从flex创建自定义字段,但我很难找到正确的语法。从Flex创建自定义字段(Salesforce)

下面是片的,我使用的代码和它导致的错误“SF:INVALID_TYPE INVALID_TYPE:不允许在空对象创建/更新请求

var con:Connection = new Connection(); 
    var lRequest:LoginRequest = new LoginRequest(); 
    lRequest.username = username1.text; 
    lRequest.password = password1.text; 
    lRequest.callback = new mx.rpc.Responder(createFields, loginFault); 
    con.login(lRequest); 

    //CreateFields Method .... 
    var externalIdField:CustomField = new CustomField(); 
    externalIdField.label = 'ProductionId'; 
    externalIdField.type = FieldType.ID; 
    externalIdField._length = 18; 
    externalIdField.externalId = true; 
    externalIdField.unique = true; 

    var customObjectVar:CustomObject = new CustomObject(); 
    customObjectVar["type"] = "Account"; 
    customObjectVar.addField(externalIdField); 

    var objarray:Array = []; 
    objarray[0]=customObjectVar; 
    con.updateObject(objarray,new mx.rpc.Responder(saveresults,sfdcFailure)); 

试过以下另一种方式(由西蒙建议),太会导致错误

“soapenv:Client元素 {http://soap.sforce.com/2006/04/metadata}type 无效在这个位置”

var externalIdField:CustomField = new CustomField(); 
    externalIdField.fullName = 'Account.ProductionId__c'; 
    externalIdField.type = FieldType.STRING; 
    externalIdField._length = 18; 
    externalIdField.externalId = true; 
    externalIdField.unique = true; 

    var objarray:Array = []; 
    objarray[0]=externalIdField; 
    con.updateObject(objarray,new mx.rpc.Responder(saveresults,sfdcFailure)); 

`

回答

1

要创建领域,你会传递的CustomField实例的元数据API创建调用(它不是从你的代码清楚什么con是),除了您设置的领域,你需要设置fullName(例如在这种情况下Account.ProductionId__c)

+0

con是连接实例 – 2011-06-02 08:52:35

+0

@superfell请检查上述帖子,我试着按照你的建议,似乎我失去了一些东西......因为这也导致错误。谢谢! – 2011-06-02 09:06:51

+0

你可以发布实际生成的肥皂消息吗? – superfell 2011-06-02 14:34:27

相关问题