Boa tarde Benedito
Esta procedure que você postou esta em Loop já no primeiro Repeat, e também creio que não esteja compilando, pois tem um Until "Solto" no final.
Fiz uma Função rapidamente aqui para te ajudar. Teste e faça as adaptações que necessitar.
Code:
Function fRetornaProximoDiaUtil DateTime dData Returns DateTime
Repeat
//Testa por final de semana
If (DateGetDayOfWeek(dData)=7) Move (DateAddDay(dData,2)) to dData //Sabado
If (DateGetDayOfWeek(dData)=1) Move (DateAddDay(dData,1)) to dData //Domingo
//Teste de feriado
Clear Feriados
Move dData to Feriados.Data
Find eq Feriados by 1
If (Found) Move (DateAddDay(dData,1)) to dData
Until (FindErr)
Function_Return dData
End_Function
Em sua aplicação, basta colocar:
Code:
DateTime dDataUtil
Get fRetornaProximoDiaUtil <<DataQueQuerTestar>> to dDataUtil
Deve funcionar. Não testei.
Abraço