zksforce单上传

时间:2012-10-16 12:29:38

标签: iphone ios ipad salesforce

我正在使用ZKSForce库将数据上传到CLOUD数据库。

在salesforce中,可以选择在单个调用中上载父表和子表。 salesforce - create

是否在ZkSForce中允许此功能。如何将子对象引用传递给父表。

1 个答案:

答案 0 :(得分:2)

是的,在ZKSforce中创建的工作方式与底层SOAP API完全相同,您传入要创建的ZKSObject数组。

// pass an array of ZKSObject's to create in salesforce, returns a matching array of ZKSaveResults
- (NSArray *)create:(NSArray *)objects;

如果要链接的文档提及是否要创建彼此相关的记录,那么父记录将需要为其声明外部Id字段,并且您的子记录将需要使用要声明父母,例如如果您想插入一个具有相关联系人的帐户,并且帐户上的accMaster__c字段是externalId,您可以这样做。

ZKSObject *acc = [[ZKSObject alloc] initWithType:@"Account"];
[acc setFieldValue:@"New Account" field:@"Name"];
[acc setFieldValue:@"ACC_1234" field:@"accMaster__C"];

ZKSObject *contact = [[ZKSObject alloc] initWithType:@"Contact"];
[contact setFieldValue:@"Simon" field:@"FirstName"];
[contact setFieldValue:@"Fell" field:@"LastName"];

// per the externalId docs, create a account structure that just contains the externalId value we want to resolve the account relationship for
ZKSObject *accRel = [[ZKSObject alloc] initWithType:@"Account"];
[accRel setFieldValue:@"ACC_1234" field:@"accMaster__C"];
[contact setFieldValue:accRel field:@"Account"];

NSArray *res = [sforce create:[NSArray arrayWithObjects:acc, contact, nil]];
NSLog(@"results are %@", res);

运行此操作并在浏览器中打开新的联系人记录后,您可以看到它将父帐户关系设置为我们刚刚创建的新帐户记录。

enter image description here

如果您的父记录上没有自然的externalId字段,那么您可以做的一件事是创建一个并使用客户端的GUID作为新插入记录的externalId值,这将让您联系到记录在一起创建调用而无需使用某些外部系统维护externalIds-> salesforce映射。