Dear BaseX-Team,
I encountered some unexpected behavour, maybe a bug?
I declare a collection of function-signatures.
Then I iterate over the collection inside a copy/modify-construct. Each function adds a node to the database.
This works as expected:
declare variable $_:abschlussqueries := (_:f1#2 , _:f2#2);
declare %updating
%rest:path('treez/ab4')
function _:abschluss4() as element() {
<Postabschluss>{ (
try{
let $db := doc('FGfax')/Dateien/Datei
for $d in $db
return (
copy $c := $d
modify (
for $funct at $counter in $_:abschlussqueries
return (
(: prof:dump("bla: " || $counter) , :)
prof:void(""),
$funct($c, $counter)
)
)
return (
$c
)
)
} catch * {
let $db := doc('FGfax')/Dateien
return
error(xs:QName("dieter:norights10"), "Error: "|| $err:code || ': ' || $err:description , 418 )
}
) }</Postabschluss>
};
declare %updating function _:f1($c, $counter ) {
try {(
filepath:copy-to("C:\Users\Win7ProUser\Documents\FGscan_ScanDocs\bla.xml","C:\Users\Win7ProUser\Documents\FGscan_ScanDocs\bla1.xml"),
insert node <f1>function1 </f1> as last into $c
)} catch * {
insert node <f1>{"Error: "|| $err:code || ': ' || $err:description}</f1> as last into $c
}
};
declare %updating function _:f2($c, $counter ) {
try {(
filepath:copy-to("C:\Users\Win7ProUser\Documents\FGscan_ScanDocs\bla.xml","C:\Users\Win7ProUser\Documents\FGscan_ScanDocs\bla1.xml"),
insert node <f2>function2 </f2> as last into $c
)} catch * {
insert node <f2>{"Error: "|| $err:code || ': ' || $err:description}</f2> as last into $c
}
};
—————————————
Result:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Postabschluss>
<>
<Datei uuid="8ad03f50-4b9c-461a-b818-1a97dc5735e9">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061002-154925-00498171251x1800.pdf</sortedPath>
<f1> <>function1 </f1>
<f2> <>function2 </f2>
</Datei>
<Datei uuid="26a3aee7-a0d8-4b8d-acd4-90554c8ab28c">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061003-154928-0049242344x1801.pdf</sortedPath>
<f1> <>function1 </f1>
<f2> <>function2 </f2>
</Datei>
<Datei uuid="af0548aa-08cf-464a-839d-421363f452ce">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061220-154966-004999429025.pdf</sortedPath>
<f1> <>function1 </f1>
<f2> <>function2 </f2>
</Datei>
——————
But if remove the line: prof:void("“),
the result is:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Postabschluss>
<>
<Datei uuid="8ad03f50-4b9c-461a-b818-1a97dc5735e9">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061002-154925-00498171251x1800.pdf</sortedPath>
</Datei>
<Datei uuid="26a3aee7-a0d8-4b8d-acd4-90554c8ab28c">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061003-154928-0049242344x1801.pdf</sortedPath>
</Datei>
<Datei uuid="af0548aa-08cf-464a-839d-421363f452ce">
<>
<sortedPath znen=""> <>@SMB10.211.55.6/netzlaufwerktestF/sortierter_Posteingang/OHNE/#Fax_OHNE_AZ--201803061220-154966-004999429025.pdf</sortedPath>
</Datei>
</Postabschluss>
Do you have any explanation for this behavour?
Some other updating expression instead of prof:void(„“) works as well. But if my only call is to the functions, it does not work.
Sincerely
Dieter Zanzinger