Direct naar het volgende verzoek na goedkeuren

Dit voorbeeld komt voort uit de wens om, direct na het goedkeuren van een verzoek, in het volgende goed te keuren verzoek (van hetzelfde type), uit te komen. We maken gebruik van een techniek die AJAX heet (het is geen Amsterdamse uitvinding echter😉). Globaal komt het er op neer dat je een waarde van een andere pagina ophaalt. Het concept bestaat uit een aantal onderdelen:
  1. Een EasyList met daarin de link naar het volgende verzoek
  2. Een stukje script dat je in een sectie van de verzoekdefinitie zet. Dit script haalt de url naar het volgende verzoek op uit de EasyList pagina en zet dit in het ‘ReturnTo’ element van het verzoek.
De EasyList is gebaseerd op een query die op basis van een verzoekid, een link opbouwt naar het volgende verzoek. Om deze link op te kunnen halen, formatteren we het veld als html en zetten het in een <a> element (hyperlink). Door het <a> element een id (DeURL) mee te geven, kunnen we het vanuit het script straks makkelijker “aanwijzen”.

De Query in de EasyList

				
					SELECT TOP 1 htmlreturnurl
FROM  (SELECT 1  AS Volgorde,
              '<a id="DeURL" href="WflRequest.aspx?BCAction=1&ID='
              + Cast(nex.requestid AS CHAR(36))
              + '">Onder deze tekst zit de linknaar het volgende verzoek</a>' AS
                     HTMLReturnUrl
       FROM   requesttasks cur(nolock)
              JOIN requesttasks nex (nolock)
                ON nex.empid = cur.empid
                   AND nex.type = cur.type
                   AND nex.action = cur.action
       WHERE  cur.type = 7010
              AND cur.requestid = @P1
              AND nex.requestid <> cur.requestid
       --and 1=3
       UNION ALL
       SELECT 2,
              '<a id="DeURL" href="WflRequests.aspx">Hier is geen volgende</a>')
      x
ORDER  BY volgorde 
				
			

Het script in de verzoeksectie

				
					<script>
$(function() {
var c=$('#RequestID').val();
$.get('CSEasyList.aspx?id={961de84c-5dcf-41d4-aa77-cda1733fa8bf}&js=1&P1='+c,function(result){
var u = $('#DeURL',$(result)).attr("href");
$('#ReturnTo').val(u);
});
});
</script>