You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
8.3 KiB
214 lines
8.3 KiB
/* 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 <tccore/traversalrule.h>
|
|
|
|
#include <tccore/libtccore_exports.h>
|
|
|
|
/**
|
|
@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:
|
|
<ul>
|
|
<li>Propagation styles and the codes associated with each style.
|
|
<li>Propagation related functions to obtain propagation rules defined for a given type.
|
|
</ul>
|
|
|
|
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.
|
|
|
|
<br>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:
|
|
<ul>
|
|
<li>Functions to retrieve specified propagation style code
|
|
<li>A function to inquire on the number of propagation rules defined for a specified type
|
|
</ul>
|
|
|
|
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, /**<Merge value */
|
|
PROPAGATIONRULE_ordered, /**<Ordered value */
|
|
PROPAGATIONRULE_fill, /**<Fill value */
|
|
PROPAGATIONRULE_overwrite /**<Overwrite value */
|
|
} PROPAGATIONRULE_propagation_style_t;
|
|
|
|
/**
|
|
Callback type to create propagation check in custom traversal rule
|
|
*/
|
|
#define PROPAGATION_CHECKIN_CUSTOM_TRAVERSAL "Propagation_CheckIn_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation check out custom traversal rule
|
|
*/
|
|
#define PROPAGATION_CHECKOUT_CUSTOM_TRAVERSAL "Propagation_CheckOut_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation create custom traversal rule
|
|
*/
|
|
#define PROPAGATION_CREATE_CUSTOM_TRAVERSAL "Propagation_Create_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation delete custom traversal rule
|
|
*/
|
|
#define PROPAGATION_DELETE_CUSTOM_TRAVERSAL "Propagation_Delete_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation export custom traversal rule
|
|
*/
|
|
#define PROPAGATION_EXPORT_CUSTOM_TRAVERSAL "Propagation_Export_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation import custom traversal rule
|
|
*/
|
|
#define PROPAGATION_IMPORT_CUSTOM_TRAVERSAL "Propagation_Import_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation revise custom traversal rule
|
|
*/
|
|
#define PROPAGATION_REVISE_CUSTOM_TRAVERSAL "Propagation_Revise_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation save custom traversal rule
|
|
*/
|
|
#define PROPAGATION_SAVE_CUSTOM_TRAVERSAL "Propagation_Save_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation save as custom traversal rule
|
|
*/
|
|
#define PROPAGATION_SAVEAS_CUSTOM_TRAVERSAL "Propagation_SaveAs_CustomTraversal"
|
|
|
|
/**
|
|
Callback type to create propagation all operations custom traversal rule
|
|
*/
|
|
#define PROPAGATION_ALLOPERATIONS_CUSTOM_TRAVERSAL "Propagation_AllOperations_CustomTraversal"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/**
|
|
Retrieves a valid #PROPAGATIONRULE_propagation_style_t object from the provided string style.
|
|
|
|
<br>Valid values for the "style" parameters are #PROPAGATIONRULE_overwrite_style,#PROPAGATIONRULE_merge_style and #PROPAGATIONRULE_ordered_style.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TCCORE_propagationrule_unsupported_style, if the style is invalid.
|
|
</ul>
|
|
*/
|
|
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.
|
|
|
|
<br>Valid values for the "tag_source_type" could be any business object
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_invalid_type_name, if invalid type.
|
|
</ul>
|
|
*/
|
|
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.
|
|
|
|
<br>Valid values for the "source_type" could be any business object name
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_invalid_type_name, if invalid type.
|
|
</ul>
|
|
*/
|
|
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.
|
|
|
|
<br>Valid values for the "source_type" could be any business object type.
|
|
<br>
|
|
<br>Valid values for the "propagation_group_name" could be any of the propagation groups defined in propagation rules.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>##TYPE_invalid_type_name if @p source_type is not NULLTAG and not a valid type.
|
|
<li>##BMIDE_propagationrule_invalid_propagation_group if @p propagation_group_name is empty or not a valid group name.
|
|
</ul>
|
|
*/
|
|
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. <br/>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 <tccore/libtccore_undef.h>
|
|
#endif
|