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