Skip to main content

Hi Is it possible to tag Terms to the attribute metadata present in one web, while importing the terms in bulk from one desktop?
Ask: Attributes and Tables are already present in one web. Importing business terms from csv file using one desktop.
So while importing the business terms using one desktop is it possible to directly tag those business terms with their corresponding attributes?(The tagging list also i want to provide in a csv file and don’t want to use the automated tagging from ataccama)

Hi ​@RAZORX ,

Yes it should be possible.

An attribute should have a property which is an array embedded, called termInstances. Inside that termInstances array it should contain a target - which is the reference to the term id, and a displayName which should be the name of the term.

You already have the catalog items and the attributes.

  1. You need to create the terms, so you get the term id. (you sound like you’re ok with how to do this part?)
  2. Take that term id and map it to the attribute id or catalog item id you want to tag
  3. Use another metadata writer step to write the termInstance property for the catalog items and/or attributes. target should be the termid, and displayName should be the name of the term.

 

Does this help?

 


Hi ​@may_kwok ,
Thank you for the reply, so as per your suggestion, there will be two metadata writer right? 
First one is for the attribute entity and the second one is for the termInstance property. As i already have created the terms and have the term Id.
But the problem i am facing is in the metadata writer, i am not getting any embedded array termInstance option while choosing for attribute entity, so how will i link the attribute to the termInstance which is a separate entity and only accepts targetId(TermId) and Display name with the already present attributes. If you can help me with any flow diagram of the plan it would be really helpful. 


Hi ​@may_kwok ,
I tried your way and seems like it worked. Thank you again for the help.

 


 

Glad you figured it out before I could come back to this 😁

For the benefit of the forum:

Let’s say I have my term:

And I have my catalog item:

 

I’m using a random record generator to just fake out 1 record, but you’ll likely have a text file or a data feed of some sort to load this in bulk:

 

 

(published state because I’m confident that I’ve got this right and I don’t want to click into each tagged instance to request approval. Your mileage might vary at your organisation with how strict your governance policies are)

This config means, we are writing into the termInstance, which belongs as a child entity to the catalogItem, under the termInstances property.

 

 

Id Column Name is left blank here because I know I just want to create new objects, and I need to let ONE create the ID for me. If I were to want to update that particular tagging instance, then I’d need to query the existing tags beforehand to get the id, then supply it to let ONE know it’s an update.

 

The term instance id, once tagged, will now be supplied under the “Created Id Column Name” output.

 

And once it’s run, voila!

 

You would use a very similar syntax to tag an attribute. Just get the attribute id instead of the catalog item id, and write it into the term instance attached to the attribute, rather than the catalog item:

 

 

 

 

 

After running this, the tagging is now also on the attribute:

 

 

Hope this helps!


Hi ​@may_kwok ,
Thank you very much. Much appreciate it. But one final question, is it possible to export it out like the term relationship with tables or attribute from lower environment to higher?
Like as per my understanding, the Production environment for instance will have a different attribute ids and tables ids same goes for term ids too. So this tagging of ids to each other is a manual work right is there any way to automate it and by automate it i am asking about using the detection rules.


Hi ​@RAZORX , indeed like you say the id's will differ per environement, so ‘promoting’ the relations to a higher environement will not work.

We use the folloowing approach, which you might find useful as well. We apply an import template (csv file) in which we define the relations by entering a term name with the related catalog item atribute name. In the plan the related id's can be looked up via joins. Once you have the plan, you can use it on all environments.

Kind regards,

Albert


Thank you ​@may_kwok and ​@Albert de Ruiter for sharing your approaches and different solutions here! 🙌@RAZORX please mark best answer if you’ve found your solution 🙋‍♀️


Reply