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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

How to add a variable to pass date parameters in tRESTClient component

Hi,
I am using Talend open studio for data integration 5.4 for my data integration needs. I am testing to get data from api service using tRESTclient component. For webservice parameters, I can pass static dates. But if I want to automate this job on daily basis, I want to use a variable which will get the today's date and can be passed as parameter to webservice. I am trying to figure out how can I use a variable to pass date parameters to tRESTClient component. Can anyone please help me?

Thanks,
Gowri
Labels (3)
6 Replies
Anonymous
Not applicable
Author

Hi
You can specify the parameter in the Query parameters table, see my screenshot, I use the built-in function TalendDate.getCurrentDate() to the current date as the value of mydate parameter.
Shong
0683p000009MCnl.png
Anonymous
Not applicable
Author

Thanks Shong for the reply. This really works. I also a need to pass output of one the tRESTClient as a query parameter to next tRESTClient. How do you do that?
In my example, I make a call to get job id. Then I need to pass that job id to second tRESTClient as a query parameter. How can I replicate this one?
Thanks,
Gowri
Anonymous
Not applicable
Author

Hi
tRestClient returs a document, link the response to a tXMLMap to extract the value you want from the document, and pass it to another tRestClient, the job design looks like:
tRestClient_1--Response-->tXMLMap---main(row1)---tFlowToIterate---tRestClient_2
on tRestClient_2, set the query parameter with the value such as (String)globalMap.get("row1.jobId")
Shong
Anonymous
Not applicable
Author

Hi Shong,
I tried to create a workflow like you mentioned. I am not able to connect tFlowtoIterate - Iterate to tRestClient_2. I don't see tFlowToIterate - Main to connect to tRestClient.
Anonymous
Not applicable
Author

Hi
It was a wrong job design, tRestClient don't accept an iterate link as input flow. The solution is to store the value returned by tRestClient_1 to a context variable or global variable for use later; In the next subjob, tRestClient use the context variable or global variable as the parameter value.
tRestClient_1--Response-->tXMLMap---main--tJavaRow
|
onsubjobok
|
tRestClient_2
on tJavaRow, store the value to a context variable, for example:
context.jobId=input_row.jobId;
Shong
Anonymous
Not applicable
Author

Hi,
I have a PHP script which does HTTP post request to get data from external API service . I am trying to migrate that script to Talend using tRestClient to do a http post request with content type as JSON. Script has following callobject
$callobj = array(
'method' => $method_name,
'params' => array( 'partner_id' => $partner_id,
'tms' => $tms,
'sig' => $sig,
'date' => 'yyyy-mm-dd', // Only one date allowed per api call
'attribution' => 'conversion', // 'conversion' or 'click', determines whether to filter date by view/click or by conversion
'timezone' => 'UTC',
'fields' => array( 'site_id', 'type', 'name', 'conversion_datetime', 'action_type','client_user_id'),
)
);
In tRestClient component I have set up following based on above code snippet
I have given the url, HTTP Method - POST, Content Type -> JSON, Accept_type -> JSON
In query parameters
"method" - "method_name"
"params" -"partner_id=X$partner_id,tms=$tms,sig=$sig,date=yyyy-mm-dd,attribution=click,timezone=PST,fields=site_id,metrics=fbspend"
But it is not working. Is this kind of POST request supported in Talend? Is there way to pass this parameters? Can you please help me?
Thanks,
Gowri