Skip to content

Commit ea278e3

Browse files
author
I766515
committed
fix(adms): document composite-key rationale for get/delete/mark_default type mapping
The ADM DocumentTypeBusinessObjectTypeMap entity uses a composite key (DocumentTypeID + BusinessObjectNodeTypeUniqueID). The previous single-argument signature used a fabricated DocumentTypeBOTypeMapID that was never accepted by the service (HTTP 400), so this signature change is a bug-fix, not a breaking API change. Added note in docstrings to clarify.
1 parent 5206f23 commit ea278e3

1 file changed

Lines changed: 42 additions & 6 deletions

File tree

src/sap_cloud_sdk/adms/_configuration_api.py

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -244,26 +244,62 @@ def create_type_mapping(
244244

245245
@record_metrics(Module.ADMS, Operation.ADMS_CONFIG_GET_DOCTYPE_BOTYPE_MAP)
246246
def get_type_mapping(
247-
self, document_type_id: str, business_object_node_type_unique_id: str
247+
self,
248+
document_type_id: str,
249+
business_object_node_type_unique_id: str,
248250
) -> DocumentTypeBusinessObjectTypeMap:
249-
"""Fetch a single DocumentType ↔ BusinessObjectNodeType mapping by its composite key."""
251+
"""Fetch a single DocumentType ↔ BusinessObjectNodeType mapping by its composite key.
252+
253+
Args:
254+
document_type_id: The ``DocumentTypeID`` half of the composite key.
255+
business_object_node_type_unique_id: The ``BusinessObjectNodeTypeUniqueID`` half.
256+
257+
Note:
258+
The ADM ``DocumentTypeBusinessObjectTypeMap`` entity uses a **composite key**
259+
(``DocumentTypeID`` + ``BusinessObjectNodeTypeUniqueID``). The previous
260+
single-argument overload used a fabricated ``DocumentTypeBOTypeMapID`` that
261+
was never accepted by the service (HTTP 400), so this change is a bug-fix
262+
rather than a breaking API change.
263+
"""
250264
resp = self._http.get(
251265
build_doctype_botype_map_key_path(document_type_id, business_object_node_type_unique_id),
252266
service_base=_CONFIG_SERVICE_PATH,
253267
)
254268
return DocumentTypeBusinessObjectTypeMap.from_dict(resp.json())
255269

256270
@record_metrics(Module.ADMS, Operation.ADMS_CONFIG_DELETE_DOCTYPE_BOTYPE_MAP)
257-
def delete_type_mapping(self, document_type_id: str, business_object_node_type_unique_id: str) -> None:
258-
"""Delete a DocumentType ↔ BusinessObjectNodeType mapping."""
271+
def delete_type_mapping(
272+
self,
273+
document_type_id: str,
274+
business_object_node_type_unique_id: str,
275+
) -> None:
276+
"""Delete a DocumentType ↔ BusinessObjectNodeType mapping by its composite key.
277+
278+
Args:
279+
document_type_id: The ``DocumentTypeID`` half of the composite key.
280+
business_object_node_type_unique_id: The ``BusinessObjectNodeTypeUniqueID`` half.
281+
282+
Note:
283+
Same composite-key fix as :meth:`get_type_mapping` — the previous single-argument
284+
overload used a non-existent ``DocumentTypeBOTypeMapID`` field.
285+
"""
259286
self._http.delete(
260287
build_doctype_botype_map_key_path(document_type_id, business_object_node_type_unique_id),
261288
service_base=_CONFIG_SERVICE_PATH,
262289
)
263290

264291
@record_metrics(Module.ADMS, Operation.ADMS_CONFIG_MARK_DEFAULT)
265-
def mark_default(self, document_type_id: str, business_object_node_type_unique_id: str) -> None:
266-
"""Mark a DocumentType ↔ BusinessObjectNodeType mapping as the default."""
292+
def mark_default(
293+
self,
294+
document_type_id: str,
295+
business_object_node_type_unique_id: str,
296+
) -> None:
297+
"""Mark a DocumentType ↔ BusinessObjectNodeType mapping as the default.
298+
299+
Args:
300+
document_type_id: The ``DocumentTypeID`` half of the composite key.
301+
business_object_node_type_unique_id: The ``BusinessObjectNodeTypeUniqueID`` half.
302+
"""
267303
self._http.post(
268304
f"{build_doctype_botype_map_key_path(document_type_id, business_object_node_type_unique_id)}/com.sap.adm.ConfigurationService.markDefault",
269305
json={},

0 commit comments

Comments
 (0)