Talend MDM Update Connector

One Star

Talend MDM Update Connector

Hi Everyone,
I am working Talend 5.4.1 on workflow scenario.
I am trying to do example from training material - AgentCommission Workflow Process.

Check ComCode >=2 no
Evaluate Commission(Input new commission) -----------> CommissionApproval ---------------> Reject Commission


when ----> ComCode < 2 then Commission Approval says --> Yes ---> Approve commission

where I want to update CommissionChangeStatus to Approved from Pending when ComStatus is > 2 or commission approval says Yes.
where I want to update CommissionChangeStatus to Rejected from Pending when ComStatus is >= 2 and commission approval says no.
But, As 541 introduced mdm_context jar newly, i have done Talend MDM Update Connector configuration as
1)
Name : mdm_context.getValue(Agent/CommissionChange/ComChangeStatus); and
Value : mdm_context.setValue("Approved");
It is throwing ERROR as "Caused by: java.lang.IllegalArgumentException: the parameter format must be 'xpath#value'."
2)
When I am changing to
Name : mdm_context.getValue(Agent/CommissionChange/ComChangeStatus); and
Value : mdm_context.setValue("Agent/CommissionChange/ComChangeStatus#Approved");

Throwing another exception : ERROR Exception caught while executing connector (instance=DStar_Agent--1.0--2, process=DStar_Agent--1.0, activityId=Approve_Commission) : org.bonitasoft.connectors.talend.TalendMDMConnector - Exception : null org.talend.mdm.workflow.client.util.MutiRootNameException
at org.talend.mdm.workflow.client.util.XmlFromXpathsBuilder.parse2String(XmlFromXpathsBuilder.java:108)
at org.talend.mdm.workflow.client.TalendMDMItemUpdater.update(TalendMDMItemUpdater.java:135)
And I used different ways in Value. But did not workout for me.
Can anyone help how can we achieve updating the value using Talend MDM Update connector in workflow?
Thanks,
Shilpa

Employee

Re:Talend MDM Update Connector

What connector are you using? TalendMDMConnector or TalendMDMContextConnector?
The first one behaves like previous versions (you have to pass the values from the mdm_context variable to the update map) while the second is holding directly all values within the mdm_context variable.
For more info, see: https://help.talend.com/search/all?query=Working+with+mdm_context&content-lang=en

One Star

Re:Talend MDM Update Connector

Thanks for your reply!

I am doing workflow in two ways:
1. Creating workflow with all the data variables again same as in datamodel on pool. Getting the values using mdm_context in forms Initial Value. Saving to MDM variable. Updating thru Talend MDM Update connector.
2. Creating working without having data variables on pool. Getting the values using by default mdm_context in form

Initital Value: mdm_context.getValue("Entity/Attribute");
Expression: "Entity/Attribute#" textfield.
Save : mdm_context#mdm_context#setValue()
Is this way is correct? Please suggest.
I am following from the below link
https://help.talend.com/search/all?query=Working+with+mdm_context&content-lang=en
But I can see the first process was working fine than second.
Issue that I am facing with second way is - it is not updating all the values to database.
Note: Updating few values one time and other few values for some time.
But not complete record once at a time.

What is the correct way to work on workflow in 5.4.1?
Could you please provide any example with all the steps to work in 541?
Thanks,
Shilpa