08-06-2021 03:29 AM
Hi
The json input I get to the pipeline is array of objects. I need iterate each object data and join as a string.
Also I need to append some html code in between.
Ex: input json
“chathist”: [{
“created_by”: “test”,
“created_date”: 1626244986151,
“information_type”: “Request”,
“text”: "Account ",
“content”: “”,
“content_type”: “Question”
}, {
“created_by”: “WsswW”,
“created_date”: 1626244990226,
“information_type”: “Response”,
“text”: "Clicca sulla Società alla quale ",
“content”: “”,
“content_type”: “text”
}, {
“created_by”: “test”,
“created_date”: 1626244998853,
“information_type”: “Request”,
“text”: “example test456”,
“content”: “”,
“content_type”: “srn”
}
]
This input array of objects need to parse and join as string. First I need to check array length > 0
I have similar logic using JSonata. I am trying to achieve this using Expression builder.
{{ $count($Request.Hist ) > 0 ?
$join( [ “[code]
Can we use JSonata in Snaplogic… ? if not how we can achieve this through expression builder. I tried few ways using Array and String function but did not resolve.
Pls suggest.
thanks
arun
08-07-2021 10:25 PM
@bojanvelevski , I tried few ways using expression builder I did not get the formatted msg.
Any suggestions will be helpful.
thanks
arun
08-09-2021 09:45 PM
Any suggestions or help…?
for the requirement I mentioned above…
thanks
arun
08-10-2021 12:41 AM
Hi @arunnp,
You want to make a string of all objects in the array ? Can you share a little bit more info on how did you get that sample output from that sample input data ? I don’t think I understand that. For example, what output do you want this object to give you ?
{
"created_by": "USer1",
"text": "Clicca sulla ttger alla wrtr rtwt l'rewrre er deve ererg la :<b><br><br><ul><li><a role=\"button\" tabindex=\"0\" class=\"mccs-input\">ffdgc!</a>",
"content": "",
"content_type": "text"
}
Something like this ?
User1: Clicca sulla ttger alla wrtr rtwt l'rewrre er deve ererg la :<b><br><br><ul><li><a role=\"button\" tabindex=\"0\" class=\"mccs-input\">ffdgc!</a></li></ul></b>
08-10-2021 01:42 AM
Yes, want to prepare a formatted string by reading the particular field from all objects. The Jsonata expression we are currently using I pasted above.
The sample input
{
"chatHist": [{
"created_by": "Info Person",
"created_date": 1628581678201,
"information_type": "Request",
"text": "demo: I'm unable to create a new sale order",
"content": "",
"content_type": "Question"
},
{
"created_by": "Test",
"created_date": 1628581681109,
"information_type": "Response",
"text": "",
"content": [{
"abstract": "",
"link": "https://.service-now.com//kb_view.do?sys_kb_id=2ec8ccb5900b44dc8783d452773994d3",
"title": "Determine why Some People are Unable to Find or View a Web Page Saved on a File Server"
}],
"content_type": "srn"
},
{
"created_by": "Test",
"created_date": 1628581681967,
"information_type": "Response",
"text": "Please <a role=\"button\" tabindex=\"0\" class=\"create-ticket\"> click confirm <\/a> to create an incident for your query. If you do not wish to create an incident just ask any other question.",
"content": "",
"content_type": "text"
}
]
}
After formatting this the string will be
Virtual assistant chat history:
Info Person:demo: I'm unable to create a new sale order
VA: Please click confirm to create an incident for your query. If you do not wish to create an incident just ask any other question.
here we are adding ‘Virtual assistant chat history:’ as heading of the string.
VA.-> replacement for the “created_by”: “Test”. field value.
I hope I gave details.
thanks
arun
08-10-2021 02:14 AM
I created two solutions for this:
Output a string
Output html string
You can download the pipeline here
ChatHistory_Community_2021_08_10.slp (12.6 KB)
The problem here is what happens with those objects that don’t have the text
field ? What happens when content-type
is something else than text ? For now the pipeline I attached is not omitting those fields with empty text or where content-type is not text, it will simply display it as empty string.
Sample output from pipeline solution 1:
Virtual assistant chat history:
Info Person: demo: I'm unable to create a new sale order
Test:
Test: Please <a role="button" tabindex="0" class="create-ticket"> click confirm </a> to create an incident for your query. If you do not wish to create an incident just ask any other question.
Sample html output from solution 2:
<body><h1>Virtual assistant chat history:</h1><br/><p>Info Person : demo: I'm unable to create a new sale order</p><p>Test : </p><p>Test : Please <a class="create-ticket" role="button" tabindex="0"> click confirm </a> to create an incident for your query. If you do not wish to create an incident just ask any other question.</p></body>
Of course the html output is not formatted here but you can see how it looks on jsfiddle: