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.
174 lines
7.2 KiB
174 lines
7.2 KiB
// Copyright 2020 Siemens Digital Industries Software
|
|
// ==================================================
|
|
// Copyright 2013.
|
|
// Siemens Product Lifecycle Management Software Inc.
|
|
// All Rights Reserved.
|
|
// ==================================================
|
|
// Copyright 2020 Siemens Digital Industries Software
|
|
|
|
/**
|
|
@file
|
|
|
|
This file contains the function signatures for traversing from source object
|
|
for specified relation or reference to get the destination objects
|
|
*/
|
|
|
|
#ifndef TRAVERSAL_H
|
|
#define TRAVERSAL_H
|
|
|
|
#include <unidefs.h>
|
|
#include <tccore/libtccore_exports.h>
|
|
|
|
/**
|
|
@defgroup TRAVERSAL_RULES Traversal Rules
|
|
@ingroup TC
|
|
|
|
Teamcenter has implemented traversal functions that allow users to traverse Teamcenter data.
|
|
|
|
|
|
Detailed information is supplied for the following aspects of traversal rule related functions:
|
|
<ul>
|
|
<li>Traversal of data by property directly or indirectly.
|
|
<li>Traversal of Teamcenter data by relation directly or indirectly.
|
|
</ul>
|
|
|
|
Teamcenter makes use of this mechanism itself, and it also provides ITK level functions for programmers
|
|
to make use of the same traversal.
|
|
|
|
|
|
@note Teamcenter may alter or obsolete traversal related functions defined here as the product evolves.
|
|
These changes will be documented in the Release Notes.
|
|
|
|
The ITK traversal rule functions include:
|
|
<ul>
|
|
<li>Functions to retrieve objects related by a relation.
|
|
<li>Functions to retrieve objects related by a reference.
|
|
</ul>
|
|
|
|
To use these functions, include traversal.h.
|
|
@{
|
|
*/
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
|
|
/**
|
|
Retrieves destination objects of a given destination object type which contain references to the source object.
|
|
|
|
<br>Valid values for the "source_object" could be any business object tag.
|
|
<br>Valid values for the "destination_obj_type" any business object type tag.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_unknown_type, if invalid type.
|
|
</ul>
|
|
*/
|
|
extern TCCORE_API int TRAVERSAL_get_destination_objects_where_reference (
|
|
tag_t source_object, /**< (I) Tag of the source object */
|
|
tag_t destination_obj_type, /**< (I) Object type to filter the destination object list */
|
|
int* count, /**< (O) Final count of destination objects after filtering. If no destination objects found, the count is zero. */
|
|
tag_t** destination_object_list /**< (OF) count Array of destination objects after filtering */
|
|
);
|
|
|
|
/**
|
|
Retrieves the destination objects for given source object using where reference for a given property on the destination object.
|
|
|
|
<br>Valid values for the "source_object" could be any business object tag.
|
|
<br>Valid values for the "destination_obj_type" any business object type tag.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_unknown_type, if invalid type.
|
|
<li>#PROP_not_found, if property cannot be found.
|
|
</ul>
|
|
*/
|
|
extern TCCORE_API int TRAVERSAL_get_destination_objects_where_reference_property (
|
|
tag_t source_object, /**< (I) Tag of the source object */
|
|
const char* prop_name, /**< (I) Property name which references the destination object */
|
|
tag_t destination_obj_type, /**< (I) Object type to filter the destination object list */
|
|
int* count, /**< (O) Final count of destination objects after filtering. If no destination objects found, the count is zero */
|
|
tag_t** destination_object_list /**< (OF) count Array of destination objects after filtering */
|
|
);
|
|
|
|
/**
|
|
Retrieves the destination objects for given source object using the property refering to the destination object.
|
|
|
|
<br>Valid values for the "source_object" could be any business object tag.
|
|
<br>Valid values for the "prop_name" valid property on source object.
|
|
<br>Valid values for the "destination_obj_type" any business object type tag.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_unknown_type, if invalid type.
|
|
<li>#PROP_not_found, if property cannot be found.
|
|
</ul>
|
|
*/
|
|
extern TCCORE_API int TRAVERSAL_get_destination_objects_for_reference_property (
|
|
tag_t source_object, /**< (I) Tag of the source object */
|
|
const char* prop_name, /**< (I) Property name which references the destination object */
|
|
tag_t destination_obj_type, /**< (I) Object type to filter the destination object list */
|
|
int* count, /**< (O) Final count of destination objects after filtering. If no destination objects found, the count is zero */
|
|
tag_t** destination_object_list /**< (OF) count Array of destination objects after filtering */
|
|
);
|
|
|
|
/**
|
|
Retrieves the destination objects for given source object using relation.
|
|
|
|
<br>Valid values for the "source_object" could be any business object tag.
|
|
<br>Valid values for the "relation_type" valid relation type.
|
|
<br>Valid values for the "destination_obj_type" any business object type tag.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_unknown_type, if invalid type.
|
|
<li>#GRM_undefined_relation_type, if the relation type does not exist.
|
|
<li>#GRM_invalid_primary_object, if the source object type is invalid.
|
|
<li>#GRM_invalid_secondary_object, if the destination object type is invalid.
|
|
</ul>
|
|
*/
|
|
extern TCCORE_API int TRAVERSAL_get_destination_objects_for_relation (
|
|
tag_t source_object, /**< (I) Tag of the source object */
|
|
tag_t relation_type, /**< (I) Tag of relation */
|
|
tag_t destination_obj_type, /**< (I) Object type to filter the destination object list */
|
|
int* count, /**< (O) Final count of destination objects after filtering. If no destination objects found, the count is zero */
|
|
tag_t** destination_object_list /**< (OF) count Array of destination objects after filtering */
|
|
);
|
|
|
|
/**
|
|
Retrieves the destination objects for given source object using reverse relation.
|
|
|
|
<br>Valid values for the "source_object" could be any business object tag.
|
|
<br>Valid values for the "relation_type" valid relation type.
|
|
<br>Valid values for the "destination_obj_type" any business object type tag.
|
|
<br>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success
|
|
<li>#TYPE_unknown_type, if invalid type.
|
|
<li>#GRM_undefined_relation_type, if the relation type does not exist.
|
|
<li>#GRM_invalid_primary_object, if the source object type is invalid.
|
|
<li>#GRM_invalid_secondary_object, if the destination object type is invalid.
|
|
</ul>
|
|
*/
|
|
extern TCCORE_API int TRAVERSAL_get_destination_objects_for_relation_reverse (
|
|
tag_t source_object, /**< (I) Tag of the source object */
|
|
tag_t relation_type, /**< (I) Tag of relation */
|
|
tag_t destination_obj_type, /**< (I) Object type to filter the destination object list */
|
|
int* count, /**< (O) Final count of destination objects after filtering. If no destination objects found, the count is zero */
|
|
tag_t** destination_object_list /**< (OF) count Array of destination objects after filtering */
|
|
);
|
|
|
|
/** @} */
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#include <tccore/libtccore_undef.h>
|
|
#endif
|