From 66228b8b20839dc00a07109d2c898083039f7319 Mon Sep 17 00:00:00 2001 From: Muhammad Sameer Amin <35958006+sameeramin@users.noreply.github.com> Date: Fri, 13 Sep 2024 23:16:15 +0500 Subject: [PATCH] feat: add logging to debug SAP SF transmission issues --- CHANGELOG.rst | 4 ++ enterprise/__init__.py | 2 +- .../exporters/learner_data.py | 42 +++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a5296117b8..4a60f4d661 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -17,6 +17,10 @@ Unreleased ---------- * nothing unreleased +[4.25.13] +---------- +* feat: add logging to debug SAP SuccessFactors transmission issues + [4.25.12] ---------- * feat: add username query to enterprise customer user query diff --git a/enterprise/__init__.py b/enterprise/__init__.py index d3dc97873b..e5d4c5cab2 100644 --- a/enterprise/__init__.py +++ b/enterprise/__init__.py @@ -2,4 +2,4 @@ Your project description goes here. """ -__version__ = "4.25.12" +__version__ = "4.25.13" diff --git a/integrated_channels/integrated_channel/exporters/learner_data.py b/integrated_channels/integrated_channel/exporters/learner_data.py index 04385833ea..67a09d51ec 100644 --- a/integrated_channels/integrated_channel/exporters/learner_data.py +++ b/integrated_channels/integrated_channel/exporters/learner_data.py @@ -45,6 +45,8 @@ LOGGER = getLogger(__name__) User = auth.get_user_model() +SAPSF_CUST_UUID = 'bb39ffc3-3ab1-41aa-87bb-9814c9de6f82' + class LearnerExporter(ChannelSettingsMixin, Exporter): """ @@ -124,6 +126,16 @@ def bulk_assessment_level_export(self): # Create a record of each subsection from every enterprise enrollment for enterprise_enrollment in enrollment_queryset: if not LearnerExporter.has_data_sharing_consent(enterprise_enrollment): + # Adding logging to debug the issue we are having with a customer using SAPSF channel + if self.enterprise_customer.uuid == SAPSF_CUST_UUID: + LOGGER.info(generate_formatted_log( + self.enterprise_configuration.channel_code(), + self.enterprise_configuration.enterprise_customer.uuid, + None, + None, + f'[SAPSF] Transmission skipped for {enterprise_enrollment.enterprise_customer_user.user_id}' + 'due to missing data sharing consent.' + )) continue assessment_grade_data = self._collect_assessment_grades_data(enterprise_enrollment) @@ -192,6 +204,17 @@ def single_assessment_level_export(self, **kwargs): detect_grade_updated=self.INCLUDE_GRADE_FOR_COMPLETION_AUDIT_CHECK, ) + # Adding logging to debug the issue we are having with a customer using SAPSF channel + if self.enterprise_customer.uuid == SAPSF_CUST_UUID: + LOGGER.info(generate_formatted_log( + self.enterprise_configuration.channel_code(), + self.enterprise_configuration.enterprise_customer.uuid, + None, + None, + f'[SAPSF] Transmission already sent for {enterprise_enrollment.enterprise_customer_user.user_id}' + f'is_already_transmitted returned {already_transmitted}' + )) + if not (TransmissionAudit and already_transmitted) and LearnerExporter.has_data_sharing_consent( enterprise_enrollment): @@ -202,6 +225,15 @@ def single_assessment_level_export(self, **kwargs): assessment_grade_data=assessment_grade_data, ) if records: + # Adding logging to debug the issue we are having with a customer using SAPSF channel + if self.enterprise_customer.uuid == SAPSF_CUST_UUID: + LOGGER.info(generate_formatted_log( + self.enterprise_configuration.channel_code(), + self.enterprise_configuration.enterprise_customer.uuid, + None, + None, + f'[SAPSF] Transmission sent for {enterprise_enrollment.enterprise_customer_user.user_id}' + )) # There are some cases where we won't receive a record from the above # method; right now, that should only happen if we have an Enterprise-linked # user for the integrated channel, and transmission of that user's @@ -497,6 +529,16 @@ def _filter_out_pre_transmitted_enrollments( grade, detect_grade_updated=self.INCLUDE_GRADE_FOR_COMPLETION_AUDIT_CHECK, ): + # Adding logging to debug the issue we are having with a customer using SAPSF channel + if self.enterprise_customer.uuid == SAPSF_CUST_UUID: + LOGGER.info(generate_formatted_log( + self.enterprise_configuration.channel_code(), + self.enterprise_configuration.enterprise_customer.uuid, + None, + None, + f'[SAPSF] Transmission skipped for {enterprise_enrollment.enterprise_customer_user.user_id}' + 'transmission_audit and already_transmitted returned True.' + )) # We've already sent a completion status for this enrollment LOGGER.info(generate_formatted_log( channel_name, enterprise_customer_uuid, lms_user_id, course_id,