Я использую сопоставление Xquery в своем проекте OSB. Ниже приведен пример кода, который я использую, который выдает ошибку
let $unitofmeasure :=
if (data($ItemMaster/ns1:Item/ns1:dcunitofmeasure)= 1) then
'CS'
else if (data($ItemMaster/ns1:Item/ns1:dcunitofmeasure) = 2 or
data($ItemMaster/ns1:Item/ns1:dcunitofmeasure) = 3 ) then
'EA'
else if (data($ItemMaster/ns1:Item/ns1:corpwarehouseunitofmeasure) = 2 or
data($ItemMaster/ns1:Item/ns1:corpwarehouseunitofmeasure) = 3 ) then
'EA'
else
'CS'
Позже я использую определенную выше переменную для сопоставления с целевым узлом BaseStorageUOM(String)
{
if ($unitofmeasure != '') then
(
<BaseStorageUOM>{xs:string($unitofmeasure)}</BaseStorageUOM>
)
else
(
<BaseStorageUOM>CS</BaseStorageUOM>
)
}
Когда я запускаю это, возникает ошибка при выполнении преобразования XQuery:
{http://www.w3.org/2005/xqt-errors}FORG0001 : "": недопустимое значение для приведения/конструктора: {http://www.w3.org/2001/XMLSchema}double: error: double: Недопустимое двойное значение:
Я не мог понять проблему с кодом.