/// =========================================================================== /// PIB DDS ITEM DEFINITIONS /// =========================================================================== /// /// File: pib_dds_item.idl /// /// Copyright � 2013 and beyond by Consequor Consulting AG, Germany. /// All rights reserved. /// /// DO NOT COPY, USE, DISTRIBUTE IN ANY FORM WITHOUT WRITTEN /// PERMISSION BY CONSEQUOR CONSULTING AG. /// /// --------------------------------------------------------------------------- /// /// Usable with RTI's rtiddsgen. For more information on rtiddsgen see /// /// --------------------------------------------------------------------------- /// $Header$ /// /// $Log$ /// --------------------------------------------------------------------------- #if !defined( __PIB_DDS_ITEM_IDL__ ) #define __PIB_DDS_ITEM_IDL__ #include "pib_dds_idl_version_info.idl" #include "pib_dds_base.idl" #include "pib_dds_lifecycle.idl" #include "pib_dds_uom.idl" #include "pib_dds_usagecontext.idl" module pib_dds { struct item_designation { wstring designator; usage_context usage_context; }; const unsigned long ITEM_MAX_NR_ITEM_DESIGNATIONS = 1024; const unsigned long ITEM_MAX_NR_SUPPLIERS = 1024; const unsigned long ITEM_MAX_NR_MANUFACTURERS = 1024; const unsigned long ITEM_MAX_NR_REPLACEMENT_FOR = 1024; const unsigned long ITEM_MAX_NR_SPARE_PART_INFO = 1024; const unsigned long ITEM_MAX_NR_USAGE_CONTEXTS = 1024; const unsigned long ITEM_MAX_NR_PLANT_SPECIFIC_INFO = 1024; struct item_supplier_specific_info { uuid supplier_uuid; // relation wstring item_nr; version_info version_info; multi_lang_text title; multi_lang_text configuration_specification; multi_lang_text ordering_specification; }; struct item_manufacturer_specific_info { uuid manufacturer_uuid; // relation wstring item_nr; version_info version_info; multi_lang_text title; multi_lang_text configuration_specification; multi_lang_text manufacturing_specification; }; struct item_spare_part_info { wstring label; multi_lang_text description; usage_context usage_context; }; const unsigned long ITEM_MAX_NR_ITEM_SPARE_PART_INFO = 1024; struct item_wear_part_info { wstring label; multi_lang_text description; usage_context usage_context; }; const unsigned long ITEM_MAX_NR_ITEM_WEAR_PART_INFO = 1024; struct item_plant_specific_info { uuid plant_uuid; // relation // Core attributes multi_lang_text comment; // product lifecyce related attributes status status; // Manufacturing related attributes quantity finished_weight; // Weight after finishing manufacturing process quantity finished_height; // ... etc. quantity finished_width; quantity finished_length; // Supply chain related attributes wstring make_or_buy_info; // usage independent - there is a plant specific value, too. sequence< item_supplier_specific_info, ITEM_MAX_NR_SUPPLIERS > supplier_info; sequence< item_manufacturer_specific_info, ITEM_MAX_NR_MANUFACTURERS > manufacturer_info; sequence< uuid, ITEM_MAX_NR_REPLACEMENT_FOR > replacement_for; // relation uuid replaced_by; // relation // Substance and material related attributes multi_lang_text substance; multi_lang_text surface_specification; // Classification related attributes sequence< item_spare_part_info, ITEM_MAX_NR_SPARE_PART_INFO > spare_part_info; sequence< item_wear_part_info, ITEM_MAX_NR_SPARE_PART_INFO > wear_part_info; wstring material_group; // "Warengruppe" wstring eclass_classification; // eCl@ss wstring category; // Creation related attributes uuid application_uuid; // relation: actor // Electrical, fluid, hydraulic attributes sequence< item_designation, ITEM_MAX_NR_ITEM_DESIGNATIONS > item_designations; // Context sequence< usage_context, ITEM_MAX_NR_USAGE_CONTEXTS > usage_contexts; }; const unsigned long ITEM_MAX_ITEM_NR_LEN = 128; const unsigned long ITEM_MAX_VARIANT_ID_LEN = 128; const unsigned long ITEM_MAX_MAKE_OR_BUY_INFO_LEN = 128; struct item { object_header header; //@key // Core attributes wstring< ITEM_MAX_ITEM_NR_LEN > item_nr; version_info version_info; wstring< ITEM_MAX_VARIANT_ID_LEN > variant_id; multi_lang_text designation; unit base_uom; multi_lang_text comment; // Geometry related attributes quantity weight; quantity height; quantity width; quantity length; // product lifecyce related attributes status status; lifecycle_state lifecycle_state; // Manufacturing related attributes (global) quantity finished_weight; // Weight after finishing manufacturing process quantity finished_height; // ... etc. quantity finished_width; quantity finished_length; // Supply chain related attributes wstring< ITEM_MAX_MAKE_OR_BUY_INFO_LEN > make_or_buy_info; // usage independent - there is a plant specific value, too. sequence< item_supplier_specific_info, ITEM_MAX_NR_SUPPLIERS > supplier_info; sequence< item_manufacturer_specific_info, ITEM_MAX_NR_MANUFACTURERS > manufacturer_info; sequence< uuid, ITEM_MAX_NR_REPLACEMENT_FOR > replacement_for; // relation uuid replaced_by; // relation // Substance and material related attributes multi_lang_text substance; multi_lang_text surface_specification; // Plant specific info sequence< item_plant_specific_info, ITEM_MAX_NR_PLANT_SPECIFIC_INFO > plant_specific_info; // Classification related attributes sequence< item_spare_part_info, ITEM_MAX_NR_SPARE_PART_INFO > spare_part_info; sequence< item_wear_part_info, ITEM_MAX_NR_SPARE_PART_INFO > wear_part_info; wstring material_group; // "Warengruppe" wstring eclass_classification; // eCl@ss wstring category; // Creation related attributes uuid application_uuid; // relation: actor // Electrical, fluid, hydraulic attributes sequence< item_designation, ITEM_MAX_NR_ITEM_DESIGNATIONS > item_designations; // Context usage_context usage_context; }; }; #endif