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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
ANguyen1685543904
Contributor
Contributor

Pass dynamic value type Date into tSOAP Message

I want to pass a value type date of this format "yyyy-MM-dd" (ex : 2023-09-06) to tSOAP message by using a global variable but not successful. It always give me this value `Wed Sep 06 00:00:00 CEST 2023` instead of this value `2023-09-06`.

Here is my job (test) :

0695b00000nT36aAAC.png

So in this job, I will stock my last date execution of a job in a file csv. Then at the beginning of a job, I will assign this value to a global variable so I could pass it to tSOAP message.

Here is my code in tJavaFlex_1 :

```

// start part of your Java code

System.out.println("Date last update:");

//Déclaration des variables qui stockent la date de dernière update

String str_date_last_update;

Date dat_date_last_update;

//Maintenant on attribue les bonnes valeurs aux variables

str_date_last_update = row8.contenu;

dat_date_last_update = TalendDate.parseDate("yyyy-MM-dd", str_date_last_update);

//Enfin on expose les variables locales commes des variables global pour pouvoir les réutiliser

globalMap.put("dat_date_last_update", dat_date_last_update);

globalMap.put("str_date_last_update", str_date_last_update);

System.out.println("End of file");

System.out.println((String)globalMap.get("str_date_last_update"));

System.out.println((Date)globalMap.get("dat_date_last_update"));

```

So example, for the code `System.out.println((String)globalMap.get("str_date_last_update"));` will give me this value **2023-09-06** while this code `System.out.println((Date)globalMap.get("dat_date_last_update"));` give me this value **Wed Sep 06 00:00:00 CEST 2023** . But I need to pass a value of type Date with this value **2023-09-06**. Because if not, I always receive a bad response.

Here is my tSOAP message (simplifié):

```

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>" +(Date)globalMap.get("dat_date_last_update") + "</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

```

I have tried to pass this code in tSOAP message but it didn't work :

```

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>" + TalendDate.parseDate("yyyy-MM-dd", (String)globalMap.get("str_date_last_update")) + "</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

```

Labels (4)
1 Solution

Accepted Solutions
Anonymous
Not applicable

Does it work if passing a string of date? eg:

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>" +(String)globalMap.get("str_date_last_update")+ "</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

Without global variable, do you get it work with a constant?

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>2023-09-05</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

 

View solution in original post

2 Replies
Anonymous
Not applicable

Does it work if passing a string of date? eg:

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>" +(String)globalMap.get("str_date_last_update")+ "</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

Without global variable, do you get it work with a constant?

"<soap:Envelope ...

        <!--- type date with restriction pattern([0-9]{4}-[0-9]{2}-[0-9]{2}):-->

        <LowerBoundaryDate>2023-09-05</LowerBoundaryDate>

        <UpperBoundaryDate>2023-09-06</UpperBoundaryDate>

      </SelectionByChangedSinceDate>

 ....  

</soap:Envelope>" 

 

ANguyen1685543904
Contributor
Contributor
Author

it works now with String, thank you. I used to pass a string before but maybe there was a problem with global variable.