2012-10-16 31 views
1

我正在與ZKSForce庫一起上傳數據到CLOUD數據庫。zksforce單一上傳

在salesforce中,有一個選項可以在單個調用中上傳父表和子表。 salesforce - create

這個功能是否允許在ZkSForce中使用。如何將子對象引用傳遞給父表。

回答

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

如果你沒有對你的父母記錄的自然外部ID字段,然後有一兩件事你可以做的是創造一個和使用的GUID從客戶端爲您的新插入記錄的外部ID值,這讓你在創建調用時將相關記錄集中在一起,而不必讓外部系統維護externalIds-> salesforce映射。