Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
gpinumalla
Creator
Creator

Oracle to salesforce

Hi,

I am trying to populate data from oracle to salesforce using upsert.  I have some modules like prd, opp which are dependent on Acc module columns like Acc_c in salesforce .what is better way to build way a job using 

1. try to lookup with acc module with the oracle table ( inner join with acc module on id) and using tmap to map the id of acc module to the target column Acc_c. 

2. or try  using  relationship mapping for upsert , if this is optimal way what parameters should I pass for the column name , lookup field name , lookup relationship field name , module name , External id name ? 

 

Please let me know, I am struck on roadblock with this issue? 

 

Labels (3)
1 Solution

Accepted Solutions
TRF
Champion II
Champion II

I suppose the field name for the Talend schema is Acc_c. This must correspond to an External id for the Account object on salesforce side. Select this one from drop down list.
Then for the Lookup field name, enter "Acc_c" (name of the Lookup field for Product. For Opportunity it should be the standard field AccountId).
For Lookup relationship name, enter "Acc__r" (or Account for Opportunity if using standard relationship).
For Module name, enter "Account" (name of the parent object).
For External id, enter the External id API field name of the parent object (Acc_ExternalId__c for example).
Should work.

View solution in original post

4 Replies
Anonymous
Not applicable

Hi,

 

    If you could share job detail screen shots it will be easy to understand the use case.

 

   Personally I would try to restrict the result at the beginning of the flow and try to find the relationships from DB itself if possible. That way, we can reduce the load on Salesforce. You can even join both tables from DB itself and within single tOracleInput, you can use a Left outer join to understand whether you have a matching column or not.

 

Warm Regards,
Nikhil Thampi

Please appreciate our Talend community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved

 

 

TRF
Champion II
Champion II

2nd option is much more better for most cases as soon as you don't have to query thé parent object to establish thé relationship.
If you have salesforce ids in your oracle DB, a SQL join is the 2nd choice. tMap join comes after.
gpinumalla
Creator
Creator
Author

We do not have any ids in oracle db because the ids are created in salesforce. What parameters should be passed for the Relationship mapping for upsert for all parameters for Column name of Talend Schema, Lookup field name,Lookup relationship field name ,Module name , External id name .  if I want to poplate the product or opportunity module and I have Acc_r in both the modules and this is id field  that should be looked up from account module. let me know the parmaters to pass? 

 

TRF
Champion II
Champion II

I suppose the field name for the Talend schema is Acc_c. This must correspond to an External id for the Account object on salesforce side. Select this one from drop down list.
Then for the Lookup field name, enter "Acc_c" (name of the Lookup field for Product. For Opportunity it should be the standard field AccountId).
For Lookup relationship name, enter "Acc__r" (or Account for Opportunity if using standard relationship).
For Module name, enter "Account" (name of the parent object).
For External id, enter the External id API field name of the parent object (Acc_ExternalId__c for example).
Should work.