/* Copyright 2020 Siemens Digital Industries Software ================================================== Copyright 2015 Siemens Product Lifecycle Management Software Inc. All Rights Reserved. ================================================== Copyright 2020 Siemens Digital Industries Software */ /** @file This file contains the ANSI C interface to Teamcenter Engineering propagation related functions. */ #ifndef PROPAGATIONRULE_H #define PROPAGATIONRULE_H #include #include /** @defgroup PROPAGATION_RULES Propagation Rules @ingroup TC Teamcenter has implemented propagation rule functions that allows users to customize the operating environment. Detailed information is supplied for the following aspects of propagation rule related functions: Teamcenter makes use of this mechanism itself, and it also provides ITK level functions for programmers to make use of the same propagation rule mechanism.
Programmers can read existing Teamcenter propagation rules defined on a given type. If you intend to add new propagation rule, we suggest that you define those rules in BMIDE.. @note Teamcenter may alter or obsolete propagation rule styles as the product evolves. These changes will be documented in the Release Notes. The ITK propagation rule functions include: To use these functions, include propagationrule.h. @{ */ /** Merge value for propagation style. */ #define PROPAGATIONRULE_merge_style "Merge" /** Ordered value for propagation style. */ #define PROPAGATIONRULE_ordered_style "Ordered" /** Overwrite value for propagation style. */ #define PROPAGATIONRULE_fill_style "Fill" /** Overwrite value for propagation style. */ #define PROPAGATIONRULE_overwrite_style "Overwrite" /** Propagation rule propagation style types */ typedef enum PROPAGATIONRULE_propagation_style_e { PROPAGATIONRULE_merge = 0, /**Valid values for the "style" parameters are #PROPAGATIONRULE_overwrite_style,#PROPAGATIONRULE_merge_style and #PROPAGATIONRULE_ordered_style.
@returns
  • #ITK_ok on success
  • #TCCORE_propagationrule_unsupported_style, if the style is invalid.
*/ extern TCCORE_API int PROPAGATIONRULE_get_styletype( const char* style, /**< (I) Valid propagation style name. */ PROPAGATIONRULE_propagation_style_t *style_type /**< (O) The associated propagation style type. */ ); /** Retrieves a valid "Fnd0PropagationRule" object from the provided source type and operation type.
Valid values for the "tag_source_type" could be any business object
@returns
  • #ITK_ok on success
  • #TYPE_invalid_type_name, if invalid type.
*/ extern TCCORE_API int PROPAGATIONRULE_get_applicable_rules_by_type_tag( tag_t source_type_tag, /**< (I) Valid type tag, can be null. */ TRAVERSALRULE_operation_type_t operation_type, /**< (I) Valid Operation Type. */ int* count_defined_rules, /**< (O) The number of associated propapagtion rules. If no Propagation rule objects found, the count is zero.*/ tag_t** defined_rules_tags /**< (OF) The associated propagation rules. */ ); /** Retrieves a valid "Fnd0PropagationRule" object from the provided source type and operation type.
Valid values for the "source_type" could be any business object name
@returns
  • #ITK_ok on success
  • #TYPE_invalid_type_name, if invalid type.
*/ extern TCCORE_API int PROPAGATIONRULE_get_applicable_rules_by_type_name( const char* source_type, /**< (I) Valid type name, can be null. */ TRAVERSALRULE_operation_type_t operation_type, /**< (I) Valid Operation Type. */ int* count_defined_rules, /**< (O) The number of associated propapagtion rules. If no Propagation rule objects found, the count is zero. */ tag_t** defined_rules_tags /**< (OF) The associated propagation rules. */ ); /** Retrieves a list of applicable Propagation Rules ("Fnd0PropagationRule") from the provided source type, propagation group and operation type.
Valid values for the "source_type" could be any business object type.

Valid values for the "propagation_group_name" could be any of the propagation groups defined in propagation rules.
@returns
  • #ITK_ok on success
  • ##TYPE_invalid_type_name if @p source_type is not NULLTAG and not a valid type.
  • ##BMIDE_propagationrule_invalid_propagation_group if @p propagation_group_name is empty or not a valid group name.
*/ extern TCCORE_API int PROPAGATIONRULE_get_applicable_rules_by_type_group_and_operation( tag_t source_type, /**< (I) The type of a Business Object on which the Propagation Rule would apply.
It can be #NULLTAG. */ const char * propagation_group_name, /**< (I) The name of the Propagation Group that contains the rule. */ TRAVERSALRULE_operation_type_t operation_type, /**< (I) The Operation type on which the Propagation Rule would apply. */ int* num_defined_rules, /**< (O) The number of found Propapation Rules. */ tag_t** propagation_rules /**< (OF) num_defined_rules The found Propagation Rules. */ ); /** @} */ #ifdef __cplusplus } #endif #include #endif