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.
180 lines
8.9 KiB
180 lines
8.9 KiB
/*
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
==================================================
|
|
Copyright 2018.
|
|
Siemens Product Lifecycle Management Software Inc.
|
|
All Rights Reserved.
|
|
==================================================
|
|
Copyright 2020 Siemens Digital Industries Software
|
|
*/
|
|
/**
|
|
@file
|
|
Teamcenter has implemented Participant functionality to allow addition/removal of participants (users) in different category
|
|
to the Workspace object which can be later be helpful while assigning different tasks to the participants through action-handlers.
|
|
*/
|
|
|
|
|
|
#ifndef TEAMCENTER_PARTICIPANT_H
|
|
#define TEAMCENTER_PARTICIPANT_H
|
|
|
|
#include <unidefs.h>
|
|
#include <Fnd0Participant/libFnd0Participant_exports.h>
|
|
|
|
/**
|
|
@defgroup PARTICIPANT Participant
|
|
@ingroup TC
|
|
@{
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/**
|
|
Adds a single participant to a Workspace object.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
<li>#PARTICIPANT_invalid_participant if @p participant is not a valid object and/or not of type of Participant.
|
|
<li>#PARTICIPANT_is_not_allowable if @p participant is of participant type not supported for @p wso.
|
|
<li>#PARTICIPANT_is_not_assignable if @p bypass_assignable_check is false and current logged in user doesn't have access to assign @p participant of participant type to @p wso.
|
|
<li>#PARTICIPANT_single_participant_allowed if @p wso already has one participant as @p participant is of single user participant type.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_add_participant(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participant needs to be added. */
|
|
const logical bypass_assignable_check, /**< (I) Flag to decide whether bypass assignable type check. */
|
|
const tag_t participant /**< (I) The participant to add. */
|
|
);
|
|
|
|
/**
|
|
Adds multiple participants to a Workspace object.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not a type of WorkspaceObject.
|
|
<li>#PARTICIPANT_invalid_assignee if @p assignee_list contains invalid objects and/or are not a valid assignees (i.e. not of type GroupMember nor ResourcePool).
|
|
<li>#PARTICIPANT_invalid_participant_type if @p participant_types_list contains NULLTAG.
|
|
<li>#PARTICIPANT_is_not_allowable if @p participant_types_list contains object of type not supported for @p wso.
|
|
<li>#PARTICIPANT_is_not_assignable if @p bypass_assignable_check is false and current logged in user doesn't have access to assign @p participant_types_list to @p wso.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_add_participants(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participants needs to be added. */
|
|
const logical bypass_assignable_check, /**< (I) Flag to decide whether bypass assignable type check. */
|
|
const int n_assignees, /**< (I) Number of assignees (Group member). */
|
|
const tag_t* assignee_list, /**< (I) n_assignees List of assignees (Group member). */
|
|
const tag_t* participant_types_list, /**< (I) n_assignees List of participant type. */
|
|
tag_t** participant_list /**< (OF) n_assignees List of added participants to a WorkspaceObject. */
|
|
);
|
|
|
|
/**
|
|
Removes a single participant from a Workspace object.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success, or if @p participant is not a valid object or is not present in @p wso.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_remove_participant(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participant needs to be removed. */
|
|
const tag_t participant /**< (I) The participant to remove. */
|
|
);
|
|
|
|
/**
|
|
Removes multiple participants from a Workspace object.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success, or if @p participant_list are not valid objects or are not present in @p wso.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_remove_participants(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participants needs to be removed. */
|
|
const int n_participants, /**< (I) Number of participants to remove. */
|
|
const tag_t* participant_list /**< (I) n_participants List of participants to remove. */
|
|
);
|
|
|
|
/**
|
|
Updates multiple participants to a Workspace object.
|
|
<br/>It removes the exisiting participants from the WorkspaceObject and adds new participants.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not a type of WorkspaceObject.
|
|
<li>#PARTICIPANT_invalid_assignee if @p assignee_list contains invalid objects and/or are not a valid assignees (i.e. not of type GroupMember nor ResourcePool).
|
|
<li>#PARTICIPANT_invalid_participant_type if @p participant_types_list contains NULLTAG.
|
|
<li>#PARTICIPANT_is_not_allowable if @p participant_types_list contains object of type not supported for @p wso.
|
|
<li>#PARTICIPANT_is_not_assignable if @p bypass_assignable_check is false and current logged in user doesn't have access to assign @p participant_types_list to @p wso.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_update_participants(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participants needs to be updated. */
|
|
const logical bypass_assignable_check, /**< (I) Flag to decide whether bypass assignable type check. */
|
|
const int n_assignees, /**< (I) Number of assignees (Group member). */
|
|
const tag_t* assignee_list, /**< (I) n_assignees List of assignees (Group member). */
|
|
const tag_t* participant_types_list, /**< (I) n_assignees List of participant types. */
|
|
tag_t** participant_list /**< (OF) n_assignees List of updated participants to a WorkspaceObject. */
|
|
);
|
|
|
|
/**
|
|
Sets multiple participants to a Workspace object.
|
|
<br/>It removes the exisiting participants from the WorkspaceObject and adds new participants.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#TYPE_unknown_type if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
<li>#TYPE_unknown_type if @p participant_list contains invalid objects and/or are not of type of Participant.
|
|
</ul>
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
<li>#PARTICIPANT_invalid_participant if @p participant_list contains invalid object and/or not of type of Participant.
|
|
<li>#PARTICIPANT_is_not_allowable if @p participant_list contains object of participant type not supported for @p wso.
|
|
<li>#PARTICIPANT_is_not_assignable if @p bypass_assignable_check is false and current logged in user doesn't have access to assign @p participant_list contains object of participant type to @p wso.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_set_participants(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participants needs to be set. */
|
|
const logical bypass_assignable_check, /**< (I) Flag to decide whether bypass assignable type check. */
|
|
const int n_participants, /**< (I) Number of participants to set. */
|
|
const tag_t* participant_list /**< (I) n_participants List of participants to set. */
|
|
);
|
|
|
|
/**
|
|
Asks participants of a Workspace object.
|
|
|
|
@returns
|
|
<ul>
|
|
<li>#ITK_ok on success.
|
|
<li>#PARTICIPANT_invalid_wso if @p wso is not a valid object and/or not of type of WorkspaceObject.
|
|
<li>#TYPE_unknown_type if @p participant_type contains invalid objects and/or are not of type of Participant.
|
|
</ul>
|
|
*/
|
|
extern PARTICIPANT_API int PARTICIPANT_ask_participants(
|
|
const tag_t wso, /**< (I) The Workspace Object for which the participants needs to be asked. */
|
|
const tag_t participant_type, /**< (I) Type of participant to retrieve.<br/>It should be a subtype of the Participant class
|
|
(e.g. "ProposedResponsibleParty", "ProposedReviewer"). */
|
|
int* n_participants, /**< (O) Number of participants. */
|
|
tag_t** participant_list /**< (OF) n_participants List of participants of a WorkspaceObject. */
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/**
|
|
@}
|
|
*/
|
|
#include <Fnd0Participant/libFnd0Participant_undef.h>
|
|
#endif
|