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

Announcements
See why IDC MarketScape names Qlik a 2025 Leader! Read more
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

How to update tmap after source/target column changes

I have a simple job that moves data from a database table to salesforce via tmap.  I modified the source table to add a new column, how do i get tmap to recognize and present the new column?  when i retrieve the table changes, it asks to "propagate" the changes, but the newly added column is never added to my tmap.  is there a way to refresh the tmap component such that it will see the new columns?  this is really frustrating as the only way i have found to work around this is to create a new job and remap everything.  there must be an easy way to do this.  any help would be greatly appreciated.  thanks!!

Labels (3)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

You need to sort your missing Jar issue. Just click on the Jar icon and search your machine for that Jar. If you cannot find a version of it, then just download it.

However you do not need to do it this way. The reason you are getting nothing is because nothing is being sent from your database component. You might have the column in your SQL but there is no column in the schema for it. In your DB component, go to the "Component" tab and click on the ellipsis button next to "Edit Schema". This will bring up the schema that you DB component is using. You need to add your new column there. It should then ask if you want to propagate your schema (although since you've already created it in you tMap, it may not). Every component (well, most) has a schema that must be set. The SQL query and the schema are not the same thing here.

View solution in original post

15 Replies
Anonymous
Not applicable
Author

Can you post a screenshot of your tMap (the mapping screen) and let us know what is missing. I suspect that this will be very easy to help you resolve, but we need to know precisely what is going on first. 

It might also be good to see the schema of the component that is passing data to the tMap.


Also, do you have the table schema saved in the repository. Are you attempting to use this?

TRF
Champion II
Champion II

Hi,

If you change something before the tMap and decide to propagate changes, only the input part of the tMap (the left side) will be change (new column added). For the output part (the right side), you need to add it by yourself and map it manually with corresponding input field. Then answer yes to propagate question. If the next component is a tSalforceOutputXxx, the change will be propated automatically.
Anonymous
Not applicable
Author

I attached 2 pictures, the first is of the source.  here is the sequence of events:

  1. create metadata to db table (account_load)
  2. create metadata to salesforce (account)
  3. create job to move data from db to salesforce
  4. add new column to db_table (account_load)

Now i want to use that new column in my job.  when i go to the job, the column is not in the source query, so i added it.  when i go to the tmap component, i want to now map that new column, but its not available.  see first arrow in the pic.  i have tried at the bottom of the tmap source, to add the new column - second arrow.  i can add a column here and map it, but when i run job, the data in the new column is not being used, meaning it is always null/blank in the target/salesforce.  

 

To get around this for now, i create a brand new job and remap everything, this works fine.  but the mapping is tedious and i assume that this is a basic operation for all etl developers.  Again, i dont know talend very well, but I would hope that there was a way to "refresh" the jobs after metadata has changed to include those changes.  appreciate your help.

 

Thanks!!

 

0683p000009Ltu6.jpg0683p000009Ltv9.jpg

Anonymous
Not applicable
Author

Note first pic is the source, arrow points to the new column that i added to the query. if i hit guess query it doesnt find the new column. the 2nd pic is the tmap which shows the missing attribute.
Anonymous
Not applicable
Author

OK, the issue here is because your tMSSqlInput component is using a BuiltIn schema. This in itself isn't bad, but if you change your DB schema you MUST manually update it when you change the SQL (or click the "Guess Schema" button).

Anonymous
Not applicable
Author

not sure i understand, if i change it to repository, it wants me to install sql jdbc driver.  but the metadata has the new columns, so why cant the input module see these?  

Anonymous
Not applicable
Author

You don't need to set it to use a repository schema (although that would be better), all you need to do is set your query correctly (as you have done) and then click the "Guess Schema" button. You said you were clicking the "Guess Query" button. The "Guess Schema" button derives the schema from the SQL you have used. If that doesn't work then you can just set your columns by configuring the schema yourself. 

Anonymous
Not applicable
Author

when i "guess schema" it prompts me to install a jdbc driver for sql server.  this has to be available already as i am reading/writing to/from sql server.

Anonymous
Not applicable
Author

0683p000009LtpV.png