WHERE ISSUE OCCURS The loop and rowcount function get the rows of the returned data set. If no rows are returned for the FamilyID this will mean that the loop will not run and the @rows variable is only set if the loop runs.
The final set statement: Set @PatientSubKey = Field(@row,"Subscriber Key") exists outside of the mentioned loop below. So if the mentioned loop does not run, the @row variable will not be set, meaning that this function will fail because it is doing a lookup on an @row variable that was never set (null value). How can we set this to be a null value?
Set @GroupRecords = LookupOrderedRows(@DELookUp,0,"AppointmentDateTime","FamilyID",@familyid)
If not empty(@GroupRecords) then
for @i = 1 to Rowcount(@GroupRecords) do
Set @row = Row(@GroupRecords,@i)
Set @FamilyAppt = Field(@row,"AppointmentID")
Set @ApptSubscriberKey = Field(@row,"Subscriber Key")
Set @PatientID = Field(@row,"Subscriber Key")