Apache flex 从Flex(Salesforce)创建自定义字段

Apache flex 从Flex(Salesforce)创建自定义字段,apache-flex,actionscript-3,metadata,salesforce,Apache Flex,Actionscript 3,Metadata,Salesforce,我试图从flex中创建自定义字段,但很难找到正确的语法 下面是我正在使用的一段代码,它导致错误“sf:INVALID\u TYPE INVALID\u TYPE:null对象不允许在创建/更新请求中使用”” 尝试以下替代方法(如Simon建议的),也会导致错误 “soapenv:客户端元素 {http://soap.sforce.com/2006/04/metadata}类型 “在此位置无效” `要创建字段,您需要将CustomField实例传递给metadata api create调用(代码

我试图从flex中创建自定义字段,但很难找到正确的语法

下面是我正在使用的一段代码,它导致错误“sf:INVALID\u TYPE INVALID\u TYPE:null对象不允许在创建/更新请求中使用”

尝试以下替代方法(如Simon建议的),也会导致错误

“soapenv:客户端元素 {http://soap.sforce.com/2006/04/metadata}类型 “在此位置无效”


`

要创建字段,您需要将CustomField实例传递给metadata api create调用(代码中不清楚什么是
con
),除了设置的字段外,还需要设置全名(例如,在本例中为Account.ProductionId\uu\c)

要创建字段,您需要将CustomField实例传递给metadata api创建调用(您的代码中不清楚什么是
con
),除了您设置的字段外,还需要设置全名(例如,在本例中为Account.ProductionId\uu\c)

@superfell请查看上面的帖子,我尝试了你建议的方式,但似乎我遗漏了一些东西……因为这也导致了错误。谢谢您能发布实际生成的soap消息吗?con是从元数据WSDL生成的吗?元数据API中没有updateObject调用(可能您将企业或合作伙伴API与元数据API混合使用?),我没有使用任何wsdl。我正在使用原生salesforce.com flex工具包。我只是继续创建了一个flex项目,并在项目引用中添加了以下库:f3_common.swc f3_toolkit.swc f3_flex.swcI没有使用该工具包,但是快速扫描文档似乎表明它只实现了元数据API的一个很小的子集。@superfell请查看上面的帖子,我尝试了你建议的方式,但似乎我遗漏了一些东西……因为这也导致了错误。谢谢您能发布实际生成的soap消息吗?con是从元数据WSDL生成的吗?元数据API中没有updateObject调用(可能您将企业或合作伙伴API与元数据API混合使用?),我没有使用任何wsdl。我正在使用原生salesforce.com flex工具包。我只是继续创建了一个flex项目,并在项目引用中添加了以下库:f3_common.swc f3_toolkit.swc f3_flex.swcI没有使用该工具包,但是快速扫描文档似乎表明它只实现了元数据API的一小部分。
    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));
    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));