[Xquery] If then else et retour multiple
Bonjour, je rencontre un problème avec une requete Xquery sur une requete SOAP.
donc voila mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
let $body :=doc("ModifierRecharge_In.xml")/*:Envelope/*:Body
return
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<tuxedo:appelerTuxedo xmlns:tuxedo="*:com.bouygtel.inthd.tuxedo.ws">
<tuxedo:serviceName>TUXRECHARGE</tuxedo:serviceName>
<FML32>
<TFLD_IDNVTE>{$body/*:modifierRecharge/*:in/*:VenteId/text()}</TFLD_IDNVTE>
<TFLD_ID>{$body/*:modifierRecharge/*:in/*:IdRecharge/text()}</TFLD_ID>
<TFLD_LGNUSR>{$body/*:modifierRecharge/*:in/*:InsertUser/text()}</TFLD_LGNUSR>
<TFLD_CANAL>{$body/*:ConsulterRecharge/*:in/*:Canal/text()}</TFLD_CANAL>
<TFLD_MODE_PAIEMENT>{$body/*:ConsulterRecharge/*:in/*:TypePaiement/text()}</TFLD_MODE_PAIEMENT>
{if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "RIB") then
<TFLD_CODE_PARAM>{$body/*:ConsulterRecharge/*:in/*:CodeRIB/text()}</TFLD_CODE_PARAM>
else ()}
{if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "CB") then
<TFLD_NUMCB>{$body/*:ConsulterRecharge/*:in/*:CardNum/text()}</TFLD_NUMCB>
<TFLD_DAT_EXP>{$body/*:ConsulterRecharge/*:in/*:ExprDate/text()}</TFLD_DAT_EXP>
<TFLD_CVV2>{$body/*:ConsulterRecharge/*:in/*:CryptoCVV2/text()}</TFLD_CVV2>
else ()}
{if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "DAB") then
<TFLD_IDNPTN>{$body/*:ConsulterRecharge/*:in/*:IdPartenaire/text()}</TFLD_IDNPTN>
<TFLD_REFPAI>{$body/*:ConsulterRecharge/*:in/*:RefAutoPaiement/text()}</TFLD_REFPAI>
else ()}
{if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "SC") then
<TFLD_NUMCAR>{$body/*:ConsulterRecharge/*:in/*:ScNum/text()}</TFLD_NUMCAR>
else ()}
{if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "GRATUIT") then
<TFLD_DESC_PARAM>{$body/*:ConsulterRecharge/*:in/*:ComplInfo/text()}</TFLD_DESC_PARAM>
<TFLD_TYP_PARAM>{$body/*:ConsulterRecharge/*:in/*:TypeAttrib/text()}</TFLD_TYP_PARAM>
if($body/*:ConsulterRecharge/*:in/*:TypeAttrib/text() = "GSTCO") then
("<TFLD_UNITE>{$body/*:ConsulterRecharge/*:in/*:NbUnit/text()}</TFLD_UNITE>
<TFLD_DATDEB>{$body/*:ConsulterRecharge/*:in/*:DateDebValid/text()}</TFLD_DATDEB>")
if( count($body/*:ConsulterRecharge/*:in/*:DateFinValid) ) then
<TFLD_DATFIN>{$body/*:ConsulterRecharge/*:in/*:DateFinValid/text()}</TFLD_DATFIN>
else <TFLD_DUREE_PERIODE>{$body/*:ConsulterRecharge/*:in/*:DureeValid/text()}</TFLD_DUREE_PERIODE>
else ()
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:TitrePayeur)) then
<TFLD_CIVCLIENT>{$body/*:ConsulterRecharge/*:in/*:TitrePayeur/text()}</TFLD_CIVCLIENT>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:NomPayeur) ) then
<TFLD_NOMCLIENT>{$body/*:ConsulterRecharge/*:in/*:NomPayeur/text()}</TFLD_NOMCLIENT>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:PrenomPayeur) ) then
<TFLD_PRENOMCLIENT>{$body/*:ConsulterRecharge/*:in/*:PrenomPayeur/text()}</TFLD_PRENOMCLIENT>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:NumeroRuePayeur) ) then
<TFLD_NUMRUE>{$body/*:ConsulterRecharge/*:in/*:NumeroRuePayeur/text()}</TFLD_NUMRUE>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:NomRuePayeur) ) then
<TFLD_NOMRUE>{$body/*:ConsulterRecharge/*:in/*:NomRuePayeur/text()}</TFLD_NOMRUE>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:BoitePostalPayeur) ) then
<TFLD_BP>{$body/*:ConsulterRecharge/*:in/*:BoitePostalPayeur/text()}</TFLD_BP>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:CodePostalPayeur) ) then
<TFLD_CP>{$body/*:ConsulterRecharge/*:in/*:CodePostalPayeur/text()}</TFLD_CP>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:VillePayeur) ) then
<TFLD_VILLE>{$body/*:ConsulterRecharge/*:in/*:VillePayeur/text()}</TFLD_VILLE>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:CmplmtAdressePayeur) ) then
<TFLD_COMPLEMENT>{$body/*:ConsulterRecharge/*:in/*:CmplmtAdressePayeur/text()}</TFLD_COMPLEMENT>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:TelPayeur) ) then
<TFLD_TELDOM>{$body/*:ConsulterRecharge/*:in/*:TelPayeur/text()}</TFLD_TELDOM>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:TelProPayeur) ) then
<TFLD_TELBU>{$body/*:ConsulterRecharge/*:in/*:TelProPayeur/text()}</TFLD_TELBU>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:CodePaysPayeur) ) then
<TFLD_PAYS>{$body/*:ConsulterRecharge/*:in/*:CodePaysPayeur/text()}</TFLD_PAYS>
else ()}
{if( count($body/*:ConsulterRecharge/*:in/*:RaisonSocialPayeur) ) then
<TFLD_RAISONSOC>{$body/*:ConsulterRecharge/*:in/*:RaisonSocialPayeur/text()}</TFLD_RAISONSOC>
else ()}
</FML32>
</tuxedo:appelerTuxedo>
</soapenv:Body> |
lorsque je fais:
Code:
1 2 3 4 5
| {if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "CB") then
<TFLD_NUMCB>{$body/*:ConsulterRecharge/*:in/*:CardNum/text()}</TFLD_NUMCB>
<TFLD_DAT_EXP>{$body/*:ConsulterRecharge/*:in/*:ExprDate/text()}</TFLD_DAT_EXP>
<TFLD_CVV2>{$body/*:ConsulterRecharge/*:in/*:CryptoCVV2/text()}</TFLD_CVV2>
else ()} |
j'ai une erreur du type:
Code:
Query: <P:\xxxxx\ModifierRecharge_PStoBS.xq>, line 17, column 26: [XPST0003] syntax error, unexpected "'>'", expecting "'else'"
alors que si je modifie mon if en
Code:
1 2 3 4
| {if($body/*:ConsulterRecharge/*:in/*:TypePaiement/text() = "CB")
then
<TFLD_NUMCB>{$body/*:ConsulterRecharge/*:in/*:CardNum/text()}</TFLD_NUMCB>
else ()} |
tout marche bien, comment dois-je ecrire ma requete pour que le then puisse renvoyer plusieurs "ligne"?
Merci d'avance