1

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

在 salesforce 中,可以选择在单个调用中同时上传父表和子表。 销售人员 - 创建

确实,ZkSForce 中允许此功能。如何将子对象引用传递给父表。

4

1 回答 1

2

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

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

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

在此处输入图像描述

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

于 2012-10-16T15:22:58.690 回答