I'm trying to solve a particular issue for internal reporting, and I'm having difficulty determing which API command(s) I could use to get the information I'm looking for. I thought I'd pose the question here to potentially be pointed in the right (or a different) direction.
Basically, I need to find the date by which an enrollment (active or deleted) reached a certain level of completion by the student. We are determining this completion level by using "Gradable" and "CompletedGradable" metrics. By using the ListEnrollments command, I can find the metrics and metrics history information for each enrollment in a domain. I've found that by using the versioned history information, I can extrapolate the date when an Enrollment reached our given threshold.
The issue I'm encountering, however, is that by requesting ALL of the enrollments for a particular domain PLUS all the Metrics History for each enrollment, it often makes the data set prohibitively large as to cause a 502 Gateway Timeout error from the API. I imagine this is simply due to it trying to provide several hundred metrics history records per enrollment for potentially thousands of enrollments in a domain!
I've looked at some of the other commands involving Gradebooks and such, but I'm not sure they offer the information I'd be looking for in terms of historical enrollments.
Does anyone have any advice on what I might be able to do to get the information I need consistently? I don't necessarily want to use GetEnrollment3 over several thousands of enrollmentID's (which may not even work for deleted enrollments), but I'm not sure what other options I might have.
Thanks in advance for any pointers anyone might have.