/* Copyright 2020 Siemens Digital Industries Software ================================================== Copyright 2014. Siemens Product Lifecycle Management Software Inc. All Rights Reserved. ================================================== Copyright 2020 Siemens Digital Industries Software */ /** @file This header file declares all data types and constants to be used by clients of Fnd0Qualification module. The ITK fnd0qualification functions include: To use these functions, include fnd0qualification.h. */ #ifndef TEAMCENTER_FND0QUALIFICATION_H #define TEAMCENTER_FND0QUALIFICATION_H #include #include #include /** object_name property on Fnd0Qualification */ #define OBJECTNAME_ATTR "object_name" /** object_desc property on Fnd0Qualification */ #define OBJECTDESCRIPTION_ATTR "object_desc" /** fnd0IsExpiryDateRequired property on Fnd0Qualification. This indicates whenther expiration date needs to be defined while assigning Fnd0Qualification to User */ #define FND0ISEXPIRYDATEREQUIRED_ATTR "fnd0IsExpiryDateRequired" /** fnd0Levels property on Fnd0Qualification. This represents ordered list of levels */ #define FND0LEVELS_ATTR "fnd0Levels" /** primary_object property on ImanRelation. */ #define PRIMARYOBJECT_ATTR "primary_object" /** secondary_object property on ImanRelation. */ #define SECONDARYOBJECT_ATTR "secondary_object" /** secondary_object property on ImanRelation. */ #define RELATIONTYPE_ATTR "relation_type" /** fnd0LevelAchieved property on Fnd0UserHasQual. */ #define FND0LEVELACHIEVED_ATTR "fnd0LevelAchieved" /** fnd0QualAchievedDate property on Fnd0UserHasQual*/ #define FND0QUALACHIEVEDDATE_ATTR "fnd0QualAchievedDate" /** fnd0QualExpirationDate property on Fnd0UserHasQual*/ #define FND0QUALEXPIRATIONDATE_ATTR "fnd0QualExpirationDate" /** Relation type name through which User is assigned to Fnd0Qualification. */ #define FND0USERHASQUAL_REL "Fnd0UserHasQual" /** Relation type name through which Job Activity is related to Fnd0Qualification. */ #define FND0REQDQUAL_REL "Fnd0ReqdQual" /** The condition name which is used to validate create access. */ #define FND0CREATEQUALIFICATION_CONDITION "Fnd0CanCreateQualification" /** fnd0LevelReqd property on Fnd0ReqdQual Relation. */ #define FND0LEVELREQD_ATTR "fnd0LevelReqd" #ifdef __cplusplus extern "C"{ #endif /** Structure that holds information to create or update qualification */ typedef struct { char * qualification_name; /**< The qualification name */ char * description; /**< The qualification description */ logical is_expiration_date_required; /**< If expiration date is required or not */ int n_qualification_levels; /**< Number of qualification levels */ char** qualification_levels; /**< Ordered array of string as levels */ } FND0QUALIFICATION_manage_qualification_info_t; /** Structure that holds information to assign a qualification to a user */ typedef struct { tag_t user_tag; /**< The user tag which needs to be related to qualification */ tag_t qualification_tag; /**< The qualification tag which needs to be related to user */ char * qualification_level; /**< The level of the qualification */ date_t effective_date; /**< The effective date of qualification */ date_t expiration_date; /**< The expiration date of qualification */ } FND0QUALIFICATION_assign_qualification_info_t; /** Structure that holds information to remove a qualification from a user */ typedef struct { tag_t user_tag; /**< The user tag from which the qualification needs to be removed */ tag_t qualification_tag; /**< The qualification tag which is assigned to user */ } FND0QUALIFICATION_remove_qualification_info_t; /* */ /** @deprecated #FND0QUALIFICATION_init_module deprecated in Teamcenter 11.2. Initializes the Fnd0Qualification module. You must call this function before calling any other FND0QUALIFICATION functions. */ TC_DEPRECATED_NO_REPLACEMENT("11.2","FND0QUALIFICATION_init_module") extern FND0QUALIFICATION_API int FND0QUALIFICATION_init_module(); /** Creates a Qualification object. @return
  • #ITK_ok on success.
  • #FND0QUALIFICATION_create_permission_fail error if user is not privileged to create qualification.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_create_qualification ( const FND0QUALIFICATION_manage_qualification_info_t* manage_qualification_info, /**< (I) Information to create a Qualification object.*/ tag_t* created_qualification /**< (O) Tag of the created Qualification object.*/ ); /** Assigns a qualification to a user with the specified qualification level. @return
  • #ITK_ok on success.
  • #FND0QUALIFICATION_assign_user_qualfication_permission_fail error if user is not privileged to assign user qualification.
  • #FND0QUALIFICATION_invalid_effective_or_expiration_date_fail error if invalid expiration or effective date is provided.
  • #FND0QUALIFICATION_effective_date_greater_fail error if expiration date is less than effective date.
  • #FND0QUALIFICATION_level_already_exists_fail error if qualification with same level is already assigned to user.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_assign_user_qualification ( const FND0QUALIFICATION_assign_qualification_info_t* assign_user_qualification_info, /**< (I) Information to assign a qualification to a user.*/ tag_t* added_user_qualification_relation /**< (O) Tag of the relation object created on assigning the qualification to the user.*/ ); /** Removes a qualification from the user. @return
  • #ITK_ok on success.
  • #FND0QUALIFICATION_remove_user_qualfication_privilege_fail error if user is not privileged to remove user qualification.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_remove_user_qualification ( const FND0QUALIFICATION_remove_qualification_info_t* remove_user_qualification_info, /**< (I) Information to remove a qualification from a user*/ tag_t* removed_user_qualification_relation /**< (O) Tag of the deleted relation object on removing the qualification from the user.*/ ); /** Appends a level to the qualification object. @returns
  • #ITK_ok on success.
  • #FND0QUALIFICATION_level_already_exists_fail error if same level is already in qualification.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_append_qualification_level ( tag_t qualification_tag, /**< (I) Tag of the Qualification object to append new level*/ const char * const qualification_level /**< (I) The new level that needs to be appended to the Qualification's list of levels */ ); /** Removes a level from the qualification object. @returns
  • #ITK_ok on success.
  • #FND0QUALIFICATION_qualification_level_referenced_fail error if level is assigned to users.
  • #FND0QUALIFICATION_level_not_exist_fail error if qualification level is not present.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_remove_qualification_level ( tag_t qualification_tag, /**< (I) Tag of the Qualification object to remove the level */ const char * const qualification_level /**< (I) The level that needs to be removed from the Qualification's list of levels */ ); /** Updates the qualification object based on the given information. @returns
  • #ITK_ok on success.
  • #FND0QUALIFICATION_update_qualification_privilege_fail error if user is not privileged to modify qualification.
  • #FND0QUALIFICATION_qualification_level_referenced_fail error if level to be removed is assigned to users or tasks.
  • #FND0QUALIFICATION_cannot_change_exp_date_requirement_fail error if expiration date requirement cannot be changed because the qualification has been assigned to users.
*/ extern FND0QUALIFICATION_API int FND0QUALIFICATION_update_qualification ( tag_t qualification_tag, /**< (I) Tag of the Qualification object to update. */ const FND0QUALIFICATION_manage_qualification_info_t* qualification_info /**< (I) Information to update the Qualification object. */ ); #ifdef __cplusplus } #endif #include #endif