docs: def configure(self, value):
          """Schedule an offline only SBI with SDP."""
  
          # Only accept new SBIs if the SDP is on.
          if self._sdp_state.current_state != 'on':
              raise RuntimeWarning('Unable to configure SBIs unless SDP is '
                                   '\'on\'.')
  
          # Check that the new SBI is not already registered.
          sbi_config_dict = json.loads(value)
          sbi_list = SchedulingBlockInstanceList()
          LOG.info('SBIs before: %s', sbi_list.active)
          if sbi_config_dict.get('id') in sbi_list.active:
              raise RuntimeWarning('Unable to add SBI with ID {}, an SBI with '
                                   'this ID is already registered with SDP!'
                                   .format(sbi_config_dict.get('id')))
  
          # Add the SBI to the dictionary.
          LOG.info('Scheduling offline SBI! Config:\n%s', value)
          sbi = SchedulingBlockInstance.from_config(sbi_config_dict)
          LOG.info('SBIs after: %s', sbi_list.active)
  
          sbi_pb_ids = sbi.processing_block_ids
          LOG.info('SBI "%s" contains PBs: %s', sbi.id, sbi_pb_ids)
          # pb_list = ProcessingBlockList()
          # LOG.info('Active PBs: %s', pb_list.active)
  
          # Get the list and number of Tango PB devices
          tango_db = Database()
          pb_device_class = "ProcessingBlockDevice"
          pb_device_server_instance = "processing_block_ds/1"
          pb_devices = tango_db.get_device_name(pb_device_server_instance,
                                                pb_device_class)
          LOG.info('Number of PB devices in the pool = %d', len(pb_devices))
  
          # Get a PB device which has not been assigned.
          for pb_id in sbi_pb_ids:
              for pb_device_name in pb_devices:
                  device = DeviceProxy(pb_device_name)
  
                  if not device.pb_id:
                      LOG.info('Assigning PB device = %s to PB id = %s',
                               pb_device_name, pb_id)
                      # Set the device attribute 'pb_id' to the processing block
                      # id it is tracking.
                      device.pb_id = pb_id
                      break