Reports
The UNICOM Intelligence Interviewer Interviewing activity creates reports from the sample and history tables. It is important that all records are returned with the correct return code, start time, and duration, thus ensuring that reports are accurate.
The history record is typically written by calling ISampleManagementProvider.Return, which releases the record, causing a history record to be written. The SampleRecordXml should contain a UserID field that is used to write the UserID for the record and an ActivityStartTime that is used as the StartTime. These values are automatically initialized but you may need to overwrite them. You may need to update the UserID, for example from a specific interviewer to “__AutoDial” if the record was dialed for the group. You may also need to update the ActivityStartTime if the record was not dialed immediately after retrieval.
For reports, it is particularly important that the Duration is correct. The Duration is calculated as the current time minus ActivityStartTime. The ActivityStartTime is initialized during Get and represents the time that the record was retrieved from the sample table. Dialers that do not immediately dial the record must update the ActivityStartTime to match the time that the record was actually dialed.
Problems can arise when the ActivityStartTime is set on a different computer than the one that returns the record (and therefore causes the Duration to be calculated). If ActivityStartTime is set on a different computer, and the times are not perfectly synchronized between computers, the calculated Duration can be too short or too long. The UNICOM Intelligence Dialer implementation of the dialing provider sometimes resets the ActivityStartTime based on a duration passed from another computer. This means that the dialing provide relies on the times being synchronized, but in some cases it instead resets the ActivityStartTime to the current time minus the specified duration. You may want to use the same method if your dialing provider needs to reset the ActivityStartTime based on a time that the dialer actually dialed the record. Retrieve the duration from the dialer and calculate the ActivityStartTime rather than using a dialer provided start time.
Monitoring and reporting on autodialer projects provides a diagram that lists the written history records and when the records are written by the UNICOM Intelligence Dialer dialing provider. The skeleton code covers this functionality and can typically be used for your dialing provider (with the exception of the issues mentioned above). The skeleton code is at:
[INSTALL_FOLDER]\IBM\SPSS\DataCollection\<version>\DDL\ThirdPartyDialer\Skeleton
See also