Auch wieder SQL:

d MyNumDate 8P 0
d myDate 10
d SqlWeekday 5I 0
d SqlWeek 10I 0

myDate=%editw(MyNumDate,'____.__.__');

exec sql set : SqlWeekday = weekday(date(: myDate));
exec sql set : SqlWeek = week_iso(date(: MyDate));

Es gibt sicherlich wieder mal elegantere Lösungen.

Beachte bitte bei Wochen 1 und 53, dass hier ggf. das Vor- oder Folgejahr gemeint sein kann.