def get_id(self, natural_key, enhancement=None):
<EOL>if natural_key in self._map:<EOL><INDENT>return self._map[natural_key]<EOL><DEDENT>self.pre_call_stored_procedure()<EOL>success = False<EOL>try:<EOL><INDENT>key = self.call_stored_procedure(natural_key, enhancement)<EOL>success = True<EOL><DEDENT>finally:<EOL><INDENT>self.post_call_stored_procedure(success)<EOL><DEDENT>self._map[natural_key] = key<EOL>return key<EOL>
Returns the technical ID for a natural key or None if the given natural key is not valid.

:param T natural_key: The natural key.
:param T enhancement: Enhancement data of the dimension row.

:rtype: int|None