Use of apoc.merge.node

Hi all,
today i was trying to use apoc.merge.node in one of my query.

with row,a,b,c,d
CALL apoc.do.when(row.COD='S','
CALL apoc.merge.node(
["ADF"],
{BS000_id:row.ID},
{BS010_no:row.NO,
BS900:a,
BS901:b,
BS902:a,
BS903:b,
BS904:a,
BS905:tostring(date())},
{BS010:row.NO,
BS902:a,
BS903:b})Yield node
Set
node.BS906:a,
node.BS907:tostring(date())
SET row.P='S'
return node
','',{row:row, a: a, b: b}) YIELD value as Value return value

but i am facing a error like
Invalid input 'ADF': expected
"!="
"%"
")"
"*"
"+"
","
"-"
"/"
"::"
"<"
"<="
"<>"
"="
"=~"
">"
">="
"AND"
"CONTAINS"
"ENDS"
"IN"
"IS"
"OR"
"STARTS"
"XOR"
"^"
"||" (line 18, column 5 (offset: 743))
" ["ADF"],"

can anyone suggest me whats going wrong in the input?

I think you were not consistent with what you used for outer and inner quotes, switching between single and double quotes. Does this work?

with row,a,b,c,d
CALL apoc.do.when(row.COD='S','
CALL apoc.merge.node(
["ADF"],
{BS000_id:row.ID},
{BS010_no:row.NO,
BS900:a,
BS901:b,
BS902:a,
BS903:b,
BS904:a,
BS905:tostring(date())},
{BS010:row.NO,
BS902:a,
BS903:b})Yield node
Set
node.BS906:a,
node.BS907:tostring(date())
SET row.P=ā€œSā€
return node
','',{row:row, a: a, b: b}) YIELD value as Value return value