2011-06-01 2 views
1

J'essaie de créer des champs personnalisés à partir de flex, mais j'ai du mal à trouver la bonne syntaxe.Création de champs personnalisés à partir de Flex (Salesforce)

Ci-dessous le morceau de code que j'utilise et c'est traduit par erreur « sf: INVALID_TYPE INVALID_TYPE: objets nuls non autorisés dans créer/mettre à jour la demande »

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)); 

Essayé ci-dessous autre façon (comme suggéré par Simon), qui entraîne aussi une erreur

"soapenv: Element client {http://soap.sforce.com/2006/04/metadata}type invalide à cet endroit"

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)); 

`

Répondre

1

Pour créer des champs que vous passeriez une instance CustomField aux métadonnées api créer appel (son pas clair à partir du code que con est), en plus des champs que vous avez défini, vous devez définir le nom complet (par exemple Account.ProductionId__c dans ce cas)

+0

con est instance de connexion –

+0

@superfell s'il vous plaît vérifier ci-dessus après, j'ai essayé la façon dont vous avez suggéré et il semble que je manque quelque chose ... car cela aussi entraîne une erreur. Merci! –

+0

Pouvez-vous publier le message de savon généré réel. – superfell

Questions connexes