def write_overall(self, portfolio_id=None, **config):
        """write_overall method will process the overall Score for a company."""
        chk_point_name = ""
        try:
            scores = self.__company.get_overall_score(**config)
        except NoDataError as err:
            logging.warn("SecurityScorecard Connector: Data : {}".format(err))
            self.save_checkpoint(portfolio_id, **config)
            return
        except SSOverallScoreException as err:
            logging.error("SecurityScorecard Connector: Error occurred {}".format(err))
            raise err
        else:
            new_from_date = ""
            if not scores:
                return
            override = (
                config.get("diff_override_portfolio_overall")
                if config.get("portfolioId") and config.get("portfolioName")
                else config.get("diff_override_own_overall")
            )
            try:
                industry_name = self.__company.get_industry_name()
            except SSOverallScoreException as e:
                logging.error("SecurityScorecard Connector: {}".format(e))

            data_to_post = []
            max_date = '0001-01-01T00:00:00.000Z'
            for score in scores:
                if score["dateToday"] > max_date:
                    max_date = score["dateToday"]
                score["industry"] = industry_name
                if score.get("diff") != 0 or override == "true":
                    score.pop("diff", None)
                    score["severity"] = config.get("level_overall_change", "NA")
                    score["portfolioId"] = config.get("portfolioId", "NA")
                    score["portfolioName"] = config.get("portfolioName", "NA")
                    data_to_post.append(score)
            data = json.dumps(data_to_post, indent=4)
            self.azuresentinel.post_data(
                customer_id, data, SECURITY_SCORECARD_OVERALL_TABLE_NAME
            )

            try:
                chk_point_name = self.__company.domain
                from_date = max_date[:10]
                from_date_data = str(
                    (
                        datetime.datetime.strptime(from_date, "%Y-%m-%d")
                        + datetime.timedelta(days=1)
                    ).date()
                )
                todays_date = str(datetime.datetime.now().date())
                new_from_date = "%s|%s" % (from_date_data, todays_date)
            except SSOverallScoreException as err:
                logging.error("SecurityScorecard Connector: {}".format(err))
                return

            check_point_data_all_companies = self.state_manager_object.get()
            check_point_data_all_companies = json.loads(check_point_data_all_companies)
            if portfolio_id is None:
                check_point_data_all_companies[chk_point_name] = new_from_date
            else:
                check_point_data_all_companies[portfolio_id]["companies"][
                    chk_point_name
                ] = new_from_date
            self.state_manager_object.post(json.dumps(check_point_data_all_companies))
            logging.info(
                "SecurityScorecard Connector: checkpoint is saved with {} name and {} date".format(
                    chk_point_name, new_from_date
                )
            )
write_overall method will process the overall Score for a company.
Solutions/SecurityScorecard Cybersecurity Ratings/Data Connectors/SecurityScorecardRatings/SecurityScorecardRatingsSentinelConnector/writers.py