From 100a5797033c253897f566f1f185a908cfd88967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 09:51:25 +0100 Subject: [PATCH 01/10] feat: Add BOMItemFieldCalculationEvent and related data model --- csfunctions/events/__init__.py | 5 +++++ csfunctions/events/base.py | 1 + .../events/bom_item_field_calculation.py | 18 ++++++++++++++++++ docs/reference/events.md | 18 ++++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 csfunctions/events/bom_item_field_calculation.py diff --git a/csfunctions/events/__init__.py b/csfunctions/events/__init__.py index d6672ac..a7326a8 100644 --- a/csfunctions/events/__init__.py +++ b/csfunctions/events/__init__.py @@ -2,6 +2,7 @@ from pydantic import Field +from .bom_item_field_calculation import BOMItemFieldCalculationData, BOMItemFieldCalculationEvent from .custom_operations import ( CustomOperationDocumentData, CustomOperationDocumentEvent, @@ -37,6 +38,7 @@ | PartReleasedEvent | PartReleaseCheckEvent | PartFieldCalculationEvent + | BOMItemFieldCalculationEvent | FieldValueCalculationEvent | DummyEvent | EngineeringChangeReleasedEvent @@ -59,6 +61,7 @@ | PartReleasedData | PartReleaseCheckData | PartFieldCalculationData + | BOMItemFieldCalculationData | FieldValueCalculationData | DummyEventData | EngineeringChangeReleasedData @@ -81,6 +84,7 @@ "PartReleasedEvent", "PartReleaseCheckEvent", "PartFieldCalculationEvent", + "BOMItemFieldCalculationEvent", "FieldValueCalculationEvent", "DummyEvent", "EngineeringChangeReleasedEvent", @@ -91,6 +95,7 @@ "DocumentFieldCalculationData", "PartReleasedData", "PartReleaseCheckData", + "BOMItemFieldCalculationData", "FieldValueCalculationData", "DummyEventData", "EngineeringChangeReleasedData", diff --git a/csfunctions/events/base.py b/csfunctions/events/base.py index 1d4f717..7d40a6e 100644 --- a/csfunctions/events/base.py +++ b/csfunctions/events/base.py @@ -11,6 +11,7 @@ class EventNames(str, Enum): PART_RELEASED = "part_released" PART_RELEASE_CHECK = "part_release_check" PART_FIELD_CALCULATION = "part_field_calculation" + BOM_ITEM_FIELD_CALCULATION = "bom_item_field_calculation" ENGINEERING_CHANGE_RELEASED = "engineering_change_released" ENGINEERING_CHANGE_RELEASE_CHECK = "engineering_change_release_check" FIELD_VALUE_CALCULATION = "field_value_calculation" diff --git a/csfunctions/events/bom_item_field_calculation.py b/csfunctions/events/bom_item_field_calculation.py new file mode 100644 index 0000000..adce29e --- /dev/null +++ b/csfunctions/events/bom_item_field_calculation.py @@ -0,0 +1,18 @@ +from typing import Literal + +from pydantic import BaseModel, Field + +from csfunctions.objects import BOMItem, Part + +from .base import BaseEvent, EventNames + + +class BOMItemFieldCalculationData(BaseModel): + bom_item: BOMItem = Field(..., description="Current state of the BOM item") + action: Literal["create", "modify", "copy", "index"] = Field(..., description="Action being performed") + part: Part = Field(..., description="Part of the BOM item") + + +class BOMItemFieldCalculationEvent(BaseEvent): + name: Literal[EventNames.BOM_ITEM_FIELD_CALCULATION] = EventNames.BOM_ITEM_FIELD_CALCULATION + data: BOMItemFieldCalculationData diff --git a/docs/reference/events.md b/docs/reference/events.md index 452e395..e28c467 100644 --- a/docs/reference/events.md +++ b/docs/reference/events.md @@ -265,6 +265,24 @@ The event expects a DataResponse containing a dictionary of field names and thei | documents | list[[Document](objects.md#document)] | List of documents that belong to the part | +## BOMItemFieldCalculationEvent +`csfunctions.events.BOMItemFieldCalculationEvent` + +This event is fired when a BOM item is created, modified, copied or indexed. It is triggered after the field calculations defined in the datasheet editor are performed. + +The event expects a DataResponse containing a dictionary of field names and their new values. Fields that are not mentioned in the response are not updated. + +**BOMItemFieldCalculationEvent.name:** bom_item_field_calculation + +**BOMItemFieldCalculationEvent.data:** + +| Attribute | Type | Description | +| --------- | -------------------------------------------- | ----------------------------- | +| bom_item | [BOMItem](objects.md#bomitem) | Current state of the BOM item | +| action | Literal["create", "modify", "copy", "index"] | Action being performed | +| part | [Part](objects.md#part) | Part of the BOM item | + + ## WorkflowTaskTriggerEvent `csfunctions.events.WorkflowTaskTriggerEvent` From d5003d5d2cc50ba3e2a2d4b8901796e65ab42e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 10:59:13 +0100 Subject: [PATCH 02/10] feat: Add part linking functionality to BOMItem class --- csfunctions/objects/part.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/csfunctions/objects/part.py b/csfunctions/objects/part.py index 9ea78bd..e520ea9 100644 --- a/csfunctions/objects/part.py +++ b/csfunctions/objects/part.py @@ -247,3 +247,12 @@ class BOMItem(BaseObject): mengeneinheit: str | None = Field(None, description="Unit of Measure") teilenummer: str = Field(..., description="part number") t_index: str = Field(..., description="part index") + + part: Part | None = Field(None, description="Part of the BOM item", exclude=True) + + def link_objects(self, data: "EventData"): + parts = get_items_of_type(data, Part) + for part in parts: + if part.teilenummer == self.teilenummer and part.t_index == self.t_index: + self.part = part + break From 1e5adc75d3772eac97f7ce68e41b45c4cd41b891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 11:36:02 +0100 Subject: [PATCH 03/10] fix: Ensure single items of target type are appended in get_items_of_type function --- csfunctions/util.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csfunctions/util.py b/csfunctions/util.py index 50f2d67..bc66f84 100644 --- a/csfunctions/util.py +++ b/csfunctions/util.py @@ -26,4 +26,6 @@ def get_items_of_type(model: BaseModel, target_type: type[T]) -> list[T]: for item in attr: if isinstance(item, target_type): items.append(item) + elif isinstance(attr, target_type): + items.append(attr) return items From d6f253cbb476021219a061b60c23ab7ece96f0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 11:36:11 +0100 Subject: [PATCH 04/10] fix: update json schema --- json_schemas/request.json | 239 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) diff --git a/json_schemas/request.json b/json_schemas/request.json index 3ed5a7d..1243445 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -1,5 +1,240 @@ { "$defs": { + "BOMItem": { + "properties": { + "object_type": { + "const": "bom_item", + "default": "bom_item", + "title": "Object Type", + "type": "string" + }, + "baugruppe": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Assembly", + "title": "Baugruppe" + }, + "b_index": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Assembly Index", + "title": "B Index" + }, + "component_materialnr_erp": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Material Number ERP Component", + "title": "Component Materialnr Erp" + }, + "netto_durchm": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Net. Diameter", + "title": "Netto Durchm" + }, + "netto_hoehe": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Net. Height", + "title": "Netto Hoehe" + }, + "netto_laenge": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Net. Length", + "title": "Netto Laenge" + }, + "netto_breite": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Net. Width", + "title": "Netto Breite" + }, + "position": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Position", + "title": "Position" + }, + "menge": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Quantity", + "title": "Menge" + }, + "stlbemerkung": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Remarks", + "title": "Stlbemerkung" + }, + "mengeneinheit": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Unit of Measure", + "title": "Mengeneinheit" + }, + "teilenummer": { + "description": "part number", + "title": "Teilenummer", + "type": "string" + }, + "t_index": { + "description": "part index", + "title": "T Index", + "type": "string" + }, + "part": { + "anyOf": [ + { + "$ref": "#/$defs/Part" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Part of the BOM item" + } + }, + "required": [ + "teilenummer", + "t_index" + ], + "title": "BOMItem", + "type": "object" + }, + "BOMItemFieldCalculationData": { + "properties": { + "bom_item": { + "$ref": "#/$defs/BOMItem", + "description": "Current state of the BOM item" + }, + "action": { + "description": "Action being performed", + "enum": [ + "create", + "modify", + "copy", + "index" + ], + "title": "Action", + "type": "string" + }, + "part": { + "$ref": "#/$defs/Part", + "description": "Part of the BOM item" + } + }, + "required": [ + "bom_item", + "action", + "part" + ], + "title": "BOMItemFieldCalculationData", + "type": "object" + }, + "BOMItemFieldCalculationEvent": { + "properties": { + "name": { + "const": "bom_item_field_calculation", + "default": "bom_item_field_calculation", + "title": "Name", + "type": "string" + }, + "event_id": { + "description": "unique identifier", + "title": "Event Id", + "type": "string" + }, + "data": { + "$ref": "#/$defs/BOMItemFieldCalculationData" + } + }, + "required": [ + "event_id", + "data" + ], + "title": "BOMItemFieldCalculationEvent", + "type": "object" + }, "Briefcase": { "description": "Briefcases are used by Workflows and can contain parts, documents or engineering changes.", "properties": { @@ -8059,6 +8294,7 @@ "event": { "discriminator": { "mapping": { + "bom_item_field_calculation": "#/$defs/BOMItemFieldCalculationEvent", "custom_operation_document": "#/$defs/CustomOperationDocumentEvent", "custom_operation_part": "#/$defs/CustomOperationPartEvent", "document_create_check": "#/$defs/DocumentCreateCheckEvent", @@ -8100,6 +8336,9 @@ { "$ref": "#/$defs/PartFieldCalculationEvent" }, + { + "$ref": "#/$defs/BOMItemFieldCalculationEvent" + }, { "$ref": "#/$defs/FieldValueCalculationEvent" }, From 172f03c11ea63a79dab86bc2eb5f35cd995b218a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 11:39:32 +0100 Subject: [PATCH 05/10] fix: Add part attribute to BOMItem documentation --- docs/reference/objects.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/objects.md b/docs/reference/objects.md index c8bda9a..324b11f 100644 --- a/docs/reference/objects.md +++ b/docs/reference/objects.md @@ -17,6 +17,7 @@ |mengeneinheit|str \| None|Unit of Measure| |teilenummer|str|part number| |t_index|str|part index| +|part|[Part](objects.md#part) \| None|Part of the BOM item| ## Briefcase `csfunctions.objects.Briefcase` From b866657cce8057fd8e4a5d52ae973bf9c87fecf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 11:40:40 +0100 Subject: [PATCH 06/10] feat: Add documents attribute to BOMItemFieldCalculationData and update documentation --- csfunctions/events/bom_item_field_calculation.py | 2 ++ docs/reference/events.md | 11 ++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/csfunctions/events/bom_item_field_calculation.py b/csfunctions/events/bom_item_field_calculation.py index adce29e..db24c3f 100644 --- a/csfunctions/events/bom_item_field_calculation.py +++ b/csfunctions/events/bom_item_field_calculation.py @@ -3,6 +3,7 @@ from pydantic import BaseModel, Field from csfunctions.objects import BOMItem, Part +from csfunctions.objects.document import Document from .base import BaseEvent, EventNames @@ -11,6 +12,7 @@ class BOMItemFieldCalculationData(BaseModel): bom_item: BOMItem = Field(..., description="Current state of the BOM item") action: Literal["create", "modify", "copy", "index"] = Field(..., description="Action being performed") part: Part = Field(..., description="Part of the BOM item") + documents: list[Document] = Field(..., description="List of documents that are referenced by the part.") class BOMItemFieldCalculationEvent(BaseEvent): diff --git a/docs/reference/events.md b/docs/reference/events.md index e28c467..33856c1 100644 --- a/docs/reference/events.md +++ b/docs/reference/events.md @@ -276,11 +276,12 @@ The event expects a DataResponse containing a dictionary of field names and thei **BOMItemFieldCalculationEvent.data:** -| Attribute | Type | Description | -| --------- | -------------------------------------------- | ----------------------------- | -| bom_item | [BOMItem](objects.md#bomitem) | Current state of the BOM item | -| action | Literal["create", "modify", "copy", "index"] | Action being performed | -| part | [Part](objects.md#part) | Part of the BOM item | +| Attribute | Type | Description | +| --------- | -------------------------------------------- | -------------------------------------------------- | +| bom_item | [BOMItem](objects.md#bomitem) | Current state of the BOM item | +| action | Literal["create", "modify", "copy", "index"] | Action being performed | +| part | [Part](objects.md#part) | Part of the BOM item | +| documents | list[[Document](objects.md#document)] | List of documents that are referenced by the part. | ## WorkflowTaskTriggerEvent From 00c4df6394753259226b4e5b9ea4e4bd39fc9121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 11:41:15 +0100 Subject: [PATCH 07/10] fix: update schema json --- json_schemas/request.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/json_schemas/request.json b/json_schemas/request.json index 1243445..57ef752 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -201,12 +201,21 @@ "part": { "$ref": "#/$defs/Part", "description": "Part of the BOM item" + }, + "documents": { + "description": "List of documents that are referenced by the part.", + "items": { + "$ref": "#/$defs/Document" + }, + "title": "Documents", + "type": "array" } }, "required": [ "bom_item", "action", - "part" + "part", + "documents" ], "title": "BOMItemFieldCalculationData", "type": "object" From 3389542fcaaec8628154c68f68087e9d87eefda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 12:43:24 +0100 Subject: [PATCH 08/10] add custom fields to bom item model --- csfunctions/objects/part.py | 127 +++ docs/reference/objects.md | 120 +++ json_schemas/request.json | 1580 +++++++++++++++++++++++++++++++++++ 3 files changed, 1827 insertions(+) diff --git a/csfunctions/objects/part.py b/csfunctions/objects/part.py index e520ea9..7bbad6f 100644 --- a/csfunctions/objects/part.py +++ b/csfunctions/objects/part.py @@ -248,6 +248,133 @@ class BOMItem(BaseObject): teilenummer: str = Field(..., description="part number") t_index: str = Field(..., description="part index") + # Custom Char Fields + cca_char_bom_item_1: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_2: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_3: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_4: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_5: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_6: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_7: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_8: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_9: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_10: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_11: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_12: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_13: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_14: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_15: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_16: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_17: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_18: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_19: str | None = Field(None, description="Custom Char Field") + cca_char_bom_item_20: str | None = Field(None, description="Custom Char Field") + # Custom BigChar Fields + cca_bigchar_bom_item_1: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_2: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_3: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_4: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_5: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_6: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_7: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_8: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_9: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_10: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_11: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_12: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_13: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_14: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_15: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_16: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_17: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_18: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_19: str | None = Field(None, description="Custom BigChar Field") + cca_bigchar_bom_item_20: str | None = Field(None, description="Custom BigChar Field") + # Custom Integer Fields + cca_integer_bom_item_1: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_2: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_3: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_4: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_5: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_6: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_7: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_8: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_9: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_10: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_11: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_12: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_13: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_14: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_15: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_16: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_17: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_18: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_19: int | None = Field(None, description="Custom Integer Field") + cca_integer_bom_item_20: int | None = Field(None, description="Custom Integer Field") + # Custom Float Fields + cca_float_bom_item_1: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_2: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_3: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_4: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_5: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_6: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_7: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_8: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_9: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_10: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_11: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_12: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_13: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_14: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_15: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_16: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_17: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_18: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_19: float | None = Field(None, description="Custom Float Field") + cca_float_bom_item_20: float | None = Field(None, description="Custom Float Field") + # Custom Boolean Fields + cca_bool_bom_item_1: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_2: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_3: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_4: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_5: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_6: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_7: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_8: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_9: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_10: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_11: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_12: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_13: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_14: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_15: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_16: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_17: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_18: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_19: bool | None = Field(None, description="Custom Boolean Field") + cca_bool_bom_item_20: bool | None = Field(None, description="Custom Boolean Field") + # Custom Date Fields + cca_date_bom_item_1: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_2: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_3: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_4: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_5: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_6: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_7: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_8: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_9: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_10: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_11: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_12: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_13: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_14: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_15: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_16: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_17: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_18: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_19: datetime | None = Field(None, description="Custom Date Field") + cca_date_bom_item_20: datetime | None = Field(None, description="Custom Date Field") + part: Part | None = Field(None, description="Part of the BOM item", exclude=True) def link_objects(self, data: "EventData"): diff --git a/docs/reference/objects.md b/docs/reference/objects.md index 324b11f..20ab890 100644 --- a/docs/reference/objects.md +++ b/docs/reference/objects.md @@ -17,6 +17,126 @@ |mengeneinheit|str \| None|Unit of Measure| |teilenummer|str|part number| |t_index|str|part index| +|cca_char_bom_item_1|str \| None|Custom Char Field| +|cca_char_bom_item_2|str \| None|Custom Char Field| +|cca_char_bom_item_3|str \| None|Custom Char Field| +|cca_char_bom_item_4|str \| None|Custom Char Field| +|cca_char_bom_item_5|str \| None|Custom Char Field| +|cca_char_bom_item_6|str \| None|Custom Char Field| +|cca_char_bom_item_7|str \| None|Custom Char Field| +|cca_char_bom_item_8|str \| None|Custom Char Field| +|cca_char_bom_item_9|str \| None|Custom Char Field| +|cca_char_bom_item_10|str \| None|Custom Char Field| +|cca_char_bom_item_11|str \| None|Custom Char Field| +|cca_char_bom_item_12|str \| None|Custom Char Field| +|cca_char_bom_item_13|str \| None|Custom Char Field| +|cca_char_bom_item_14|str \| None|Custom Char Field| +|cca_char_bom_item_15|str \| None|Custom Char Field| +|cca_char_bom_item_16|str \| None|Custom Char Field| +|cca_char_bom_item_17|str \| None|Custom Char Field| +|cca_char_bom_item_18|str \| None|Custom Char Field| +|cca_char_bom_item_19|str \| None|Custom Char Field| +|cca_char_bom_item_20|str \| None|Custom Char Field| +|cca_bigchar_bom_item_1|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_2|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_3|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_4|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_5|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_6|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_7|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_8|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_9|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_10|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_11|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_12|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_13|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_14|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_15|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_16|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_17|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_18|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_19|str \| None|Custom BigChar Field| +|cca_bigchar_bom_item_20|str \| None|Custom BigChar Field| +|cca_integer_bom_item_1|int \| None|Custom Integer Field| +|cca_integer_bom_item_2|int \| None|Custom Integer Field| +|cca_integer_bom_item_3|int \| None|Custom Integer Field| +|cca_integer_bom_item_4|int \| None|Custom Integer Field| +|cca_integer_bom_item_5|int \| None|Custom Integer Field| +|cca_integer_bom_item_6|int \| None|Custom Integer Field| +|cca_integer_bom_item_7|int \| None|Custom Integer Field| +|cca_integer_bom_item_8|int \| None|Custom Integer Field| +|cca_integer_bom_item_9|int \| None|Custom Integer Field| +|cca_integer_bom_item_10|int \| None|Custom Integer Field| +|cca_integer_bom_item_11|int \| None|Custom Integer Field| +|cca_integer_bom_item_12|int \| None|Custom Integer Field| +|cca_integer_bom_item_13|int \| None|Custom Integer Field| +|cca_integer_bom_item_14|int \| None|Custom Integer Field| +|cca_integer_bom_item_15|int \| None|Custom Integer Field| +|cca_integer_bom_item_16|int \| None|Custom Integer Field| +|cca_integer_bom_item_17|int \| None|Custom Integer Field| +|cca_integer_bom_item_18|int \| None|Custom Integer Field| +|cca_integer_bom_item_19|int \| None|Custom Integer Field| +|cca_integer_bom_item_20|int \| None|Custom Integer Field| +|cca_float_bom_item_1|float \| None|Custom Float Field| +|cca_float_bom_item_2|float \| None|Custom Float Field| +|cca_float_bom_item_3|float \| None|Custom Float Field| +|cca_float_bom_item_4|float \| None|Custom Float Field| +|cca_float_bom_item_5|float \| None|Custom Float Field| +|cca_float_bom_item_6|float \| None|Custom Float Field| +|cca_float_bom_item_7|float \| None|Custom Float Field| +|cca_float_bom_item_8|float \| None|Custom Float Field| +|cca_float_bom_item_9|float \| None|Custom Float Field| +|cca_float_bom_item_10|float \| None|Custom Float Field| +|cca_float_bom_item_11|float \| None|Custom Float Field| +|cca_float_bom_item_12|float \| None|Custom Float Field| +|cca_float_bom_item_13|float \| None|Custom Float Field| +|cca_float_bom_item_14|float \| None|Custom Float Field| +|cca_float_bom_item_15|float \| None|Custom Float Field| +|cca_float_bom_item_16|float \| None|Custom Float Field| +|cca_float_bom_item_17|float \| None|Custom Float Field| +|cca_float_bom_item_18|float \| None|Custom Float Field| +|cca_float_bom_item_19|float \| None|Custom Float Field| +|cca_float_bom_item_20|float \| None|Custom Float Field| +|cca_bool_bom_item_1|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_2|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_3|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_4|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_5|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_6|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_7|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_8|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_9|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_10|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_11|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_12|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_13|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_14|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_15|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_16|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_17|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_18|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_19|bool \| None|Custom Boolean Field| +|cca_bool_bom_item_20|bool \| None|Custom Boolean Field| +|cca_date_bom_item_1|datetime \| None|Custom Date Field| +|cca_date_bom_item_2|datetime \| None|Custom Date Field| +|cca_date_bom_item_3|datetime \| None|Custom Date Field| +|cca_date_bom_item_4|datetime \| None|Custom Date Field| +|cca_date_bom_item_5|datetime \| None|Custom Date Field| +|cca_date_bom_item_6|datetime \| None|Custom Date Field| +|cca_date_bom_item_7|datetime \| None|Custom Date Field| +|cca_date_bom_item_8|datetime \| None|Custom Date Field| +|cca_date_bom_item_9|datetime \| None|Custom Date Field| +|cca_date_bom_item_10|datetime \| None|Custom Date Field| +|cca_date_bom_item_11|datetime \| None|Custom Date Field| +|cca_date_bom_item_12|datetime \| None|Custom Date Field| +|cca_date_bom_item_13|datetime \| None|Custom Date Field| +|cca_date_bom_item_14|datetime \| None|Custom Date Field| +|cca_date_bom_item_15|datetime \| None|Custom Date Field| +|cca_date_bom_item_16|datetime \| None|Custom Date Field| +|cca_date_bom_item_17|datetime \| None|Custom Date Field| +|cca_date_bom_item_18|datetime \| None|Custom Date Field| +|cca_date_bom_item_19|datetime \| None|Custom Date Field| +|cca_date_bom_item_20|datetime \| None|Custom Date Field| |part|[Part](objects.md#part) \| None|Part of the BOM item| ## Briefcase diff --git a/json_schemas/request.json b/json_schemas/request.json index 57ef752..6a37b2f 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -161,6 +161,1586 @@ "title": "T Index", "type": "string" }, + "cca_char_bom_item_1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 1" + }, + "cca_char_bom_item_2": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 2" + }, + "cca_char_bom_item_3": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 3" + }, + "cca_char_bom_item_4": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 4" + }, + "cca_char_bom_item_5": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 5" + }, + "cca_char_bom_item_6": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 6" + }, + "cca_char_bom_item_7": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 7" + }, + "cca_char_bom_item_8": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 8" + }, + "cca_char_bom_item_9": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 9" + }, + "cca_char_bom_item_10": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 10" + }, + "cca_char_bom_item_11": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 11" + }, + "cca_char_bom_item_12": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 12" + }, + "cca_char_bom_item_13": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 13" + }, + "cca_char_bom_item_14": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 14" + }, + "cca_char_bom_item_15": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 15" + }, + "cca_char_bom_item_16": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 16" + }, + "cca_char_bom_item_17": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 17" + }, + "cca_char_bom_item_18": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 18" + }, + "cca_char_bom_item_19": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 19" + }, + "cca_char_bom_item_20": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Char Field", + "title": "Cca Char Bom Item 20" + }, + "cca_bigchar_bom_item_1": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 1" + }, + "cca_bigchar_bom_item_2": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 2" + }, + "cca_bigchar_bom_item_3": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 3" + }, + "cca_bigchar_bom_item_4": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 4" + }, + "cca_bigchar_bom_item_5": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 5" + }, + "cca_bigchar_bom_item_6": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 6" + }, + "cca_bigchar_bom_item_7": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 7" + }, + "cca_bigchar_bom_item_8": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 8" + }, + "cca_bigchar_bom_item_9": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 9" + }, + "cca_bigchar_bom_item_10": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 10" + }, + "cca_bigchar_bom_item_11": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 11" + }, + "cca_bigchar_bom_item_12": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 12" + }, + "cca_bigchar_bom_item_13": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 13" + }, + "cca_bigchar_bom_item_14": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 14" + }, + "cca_bigchar_bom_item_15": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 15" + }, + "cca_bigchar_bom_item_16": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 16" + }, + "cca_bigchar_bom_item_17": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 17" + }, + "cca_bigchar_bom_item_18": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 18" + }, + "cca_bigchar_bom_item_19": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 19" + }, + "cca_bigchar_bom_item_20": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom BigChar Field", + "title": "Cca Bigchar Bom Item 20" + }, + "cca_integer_bom_item_1": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 1" + }, + "cca_integer_bom_item_2": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 2" + }, + "cca_integer_bom_item_3": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 3" + }, + "cca_integer_bom_item_4": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 4" + }, + "cca_integer_bom_item_5": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 5" + }, + "cca_integer_bom_item_6": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 6" + }, + "cca_integer_bom_item_7": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 7" + }, + "cca_integer_bom_item_8": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 8" + }, + "cca_integer_bom_item_9": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 9" + }, + "cca_integer_bom_item_10": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 10" + }, + "cca_integer_bom_item_11": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 11" + }, + "cca_integer_bom_item_12": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 12" + }, + "cca_integer_bom_item_13": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 13" + }, + "cca_integer_bom_item_14": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 14" + }, + "cca_integer_bom_item_15": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 15" + }, + "cca_integer_bom_item_16": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 16" + }, + "cca_integer_bom_item_17": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 17" + }, + "cca_integer_bom_item_18": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 18" + }, + "cca_integer_bom_item_19": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 19" + }, + "cca_integer_bom_item_20": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Integer Field", + "title": "Cca Integer Bom Item 20" + }, + "cca_float_bom_item_1": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 1" + }, + "cca_float_bom_item_2": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 2" + }, + "cca_float_bom_item_3": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 3" + }, + "cca_float_bom_item_4": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 4" + }, + "cca_float_bom_item_5": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 5" + }, + "cca_float_bom_item_6": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 6" + }, + "cca_float_bom_item_7": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 7" + }, + "cca_float_bom_item_8": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 8" + }, + "cca_float_bom_item_9": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 9" + }, + "cca_float_bom_item_10": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 10" + }, + "cca_float_bom_item_11": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 11" + }, + "cca_float_bom_item_12": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 12" + }, + "cca_float_bom_item_13": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 13" + }, + "cca_float_bom_item_14": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 14" + }, + "cca_float_bom_item_15": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 15" + }, + "cca_float_bom_item_16": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 16" + }, + "cca_float_bom_item_17": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 17" + }, + "cca_float_bom_item_18": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 18" + }, + "cca_float_bom_item_19": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 19" + }, + "cca_float_bom_item_20": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Float Field", + "title": "Cca Float Bom Item 20" + }, + "cca_bool_bom_item_1": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 1" + }, + "cca_bool_bom_item_2": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 2" + }, + "cca_bool_bom_item_3": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 3" + }, + "cca_bool_bom_item_4": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 4" + }, + "cca_bool_bom_item_5": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 5" + }, + "cca_bool_bom_item_6": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 6" + }, + "cca_bool_bom_item_7": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 7" + }, + "cca_bool_bom_item_8": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 8" + }, + "cca_bool_bom_item_9": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 9" + }, + "cca_bool_bom_item_10": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 10" + }, + "cca_bool_bom_item_11": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 11" + }, + "cca_bool_bom_item_12": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 12" + }, + "cca_bool_bom_item_13": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 13" + }, + "cca_bool_bom_item_14": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 14" + }, + "cca_bool_bom_item_15": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 15" + }, + "cca_bool_bom_item_16": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 16" + }, + "cca_bool_bom_item_17": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 17" + }, + "cca_bool_bom_item_18": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 18" + }, + "cca_bool_bom_item_19": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 19" + }, + "cca_bool_bom_item_20": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Boolean Field", + "title": "Cca Bool Bom Item 20" + }, + "cca_date_bom_item_1": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 1" + }, + "cca_date_bom_item_2": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 2" + }, + "cca_date_bom_item_3": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 3" + }, + "cca_date_bom_item_4": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 4" + }, + "cca_date_bom_item_5": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 5" + }, + "cca_date_bom_item_6": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 6" + }, + "cca_date_bom_item_7": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 7" + }, + "cca_date_bom_item_8": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 8" + }, + "cca_date_bom_item_9": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 9" + }, + "cca_date_bom_item_10": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 10" + }, + "cca_date_bom_item_11": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 11" + }, + "cca_date_bom_item_12": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 12" + }, + "cca_date_bom_item_13": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 13" + }, + "cca_date_bom_item_14": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 14" + }, + "cca_date_bom_item_15": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 15" + }, + "cca_date_bom_item_16": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 16" + }, + "cca_date_bom_item_17": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 17" + }, + "cca_date_bom_item_18": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 18" + }, + "cca_date_bom_item_19": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 19" + }, + "cca_date_bom_item_20": { + "anyOf": [ + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Custom Date Field", + "title": "Cca Date Bom Item 20" + }, "part": { "anyOf": [ { From 6b337637054b6bace101a4c548b4ca900de7e408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Tue, 16 Dec 2025 14:23:22 +0100 Subject: [PATCH 09/10] feat: Add cdb_object_id field to BOMItem model --- csfunctions/objects/part.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csfunctions/objects/part.py b/csfunctions/objects/part.py index 7bbad6f..29428fe 100644 --- a/csfunctions/objects/part.py +++ b/csfunctions/objects/part.py @@ -234,6 +234,8 @@ class Material(BaseObject): class BOMItem(BaseObject): object_type: Literal[ObjectType.BOM_ITEM] = ObjectType.BOM_ITEM + cdb_object_id: str | None = Field(None, description="Object ID") + baugruppe: str | None = Field(None, description="Assembly") b_index: str | None = Field(None, description="Assembly Index") component_materialnr_erp: str | None = Field(None, description="Material Number ERP Component") From 7e8a1fb0acb748ef9421e03dfd2f1a8cba23a0a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Mon, 5 Jan 2026 13:18:03 +0100 Subject: [PATCH 10/10] update schema --- json_schemas/request.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/json_schemas/request.json b/json_schemas/request.json index 6a37b2f..bc3d6e1 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -8,6 +8,19 @@ "title": "Object Type", "type": "string" }, + "cdb_object_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Object ID", + "title": "Cdb Object Id" + }, "baugruppe": { "anyOf": [ {