Main Page | Modules | Files | Functions | Code Elements | Data Structures | Deprecated

User Exits


Detailed Description

Teamcenter provides user exits to allow you to customize the Teamcenter applications to best fit your business needs. For example, user exits provide a means to customize Teamcenter for the way you generate your Item identifiers.

You can replace the Teamcenter provided user exits by using the C routines in this section.

Note:
You are required to have version 7.0 or above of Exceed and MS Visual Studio 98 or above, for User Exits to function.
User Exits on UNIX

In $TC_ROOT/sample, use the link_user_exits script to build a new shareable library. The source files used to build the user_exits shared library must be compiled with -pic or -PIC.

The link_user_exits script requires that all of the user exit object files reside in the current directory. They can be extracted from the user_exits library with the command:

ar x $TC_LIBRARY/libuser_exits.a

You can then replace any of the User exit modules by making the appropriate changes in template user exit functions. See the sample directory for the template files. These files contain the default behavior that comes with Teamcenter.

Make a backup copy of the original shareable library (libuser_exits.so.1.1 for SUN and libuser_exits.sl for the HP). Once you've created a back up copy of the original shareable library, copy the new shareable library back to the $TC_LIBRARY.

User Exits on Windows NT

This example uses User Defined Attributes (UDA) user exits as an example.

  1. Create a sub-directory for the user exit library in your HOME directory.

    mkdir %HOME%/userexit

  2. Set your TC_USER_LIB environment variable.

    set TC_USER_LIB=%HOME%/userexit

  3. Copy the original user exit library to your directory.

    copy %TC_ROOT%/dll/user_exits.a %HOME%/userexit/.

  4. Extract objects from the library in your userexit directory. (If your MSDEV_HOME is not set, set it before running the extract script).

    %TC_ROOT%/sample/extract_objects user_exits.a

    There is sample UDA code that uses USER_exit_module and USER_register_properties in %TC_ROOT%/sample/properties/smp_props.c. This sample code shows you how to customize Teamcenter properties.

  5. Copy this file to your userexit directory (or you can create your own).

    copy %TC_ROOT%/sample/properties/smp_props.c

  6. Compile this (or your) C program.

    %TC_ROOT%/sample/compile smp_props.c

  7. Once the smp_props.o (or your) object is created, remove the original user_init.o from your userexit directory since your new object also contains the user exit ITK calls. Then build the new library. As a result of the following call, libuser_exits.dll is created.

    %TC_ROOT%/sample/link_user_exits

  8. Start Teamcenter.

    You should see your customizations.

Modules

Data Structures

User Exits for File Names

User Exits for Archive and Restore

Part number generation routines

User Exits for Items and Item Revisions

User Exits for Non Master Handling During Save As

Teamcenter User Exits (default implementations).

User Exits for UIF

Item creation & copy

User Exits for BOM Compare

User Exits for BOMViews and BOMView Revisions

User Exits for Appearances

User Exits for Folders and Forms

The User Exits feature controls the names of folders and forms during a Revise operation.

User exits for Global Teamcenter

User Exits for CM

Report Writer user_exits

Validation object user_exits

CAE Batch Meshing user_exits

Deprecated:
This function is deprecated and will be removed from Tc12. In Tc10 onwards, please use USER_get_batch_meshing_nr_name2

CAE Batch Meshing user_exits

Defines

Typedefs

Enumerations

Functions


Define Documentation

#define USER_DATASET_always_copy   0

Definition at line 155 of file user_exits.h.

#define USER_DATASET_never_copy   1

Definition at line 156 of file user_exits.h.

#define USER_DATASET_user_chooses   2

Definition at line 157 of file user_exits.h.

#define USER_EXIT   (EMH_UE_error_base + 1)

Definition at line 108 of file user_exits.h.


Typedef Documentation

typedef enum IDValid_t IDValid_e

typedef enum IVFType IVFType_e

Definition at line 121 of file user_exits.h.

typedef enum IVFType * IVFType_ep

Definition at line 121 of file user_exits.h.

Definition at line 176 of file user_exits.h.


Enumeration Type Documentation

Enumerated types to define the class of id to be defined by the user exit functions USER_ask_for_new_item and USER_ask_for_new_version_id

Enumerator:
ID_BAD_CLASS 
ID_WORKING 
ID_OFFICIAL 

Definition at line 127 of file user_exits.h.

Indicates whether the requested number is for a copy (saveAs), a create, or a freeze action in the workspace.

Enumerator:
ID_BAD_FUNC 
ID_SAVEAS 
ID_CREATE 
ID_FREEZE 

Definition at line 137 of file user_exits.h.

enum IDValid_t

Returned by USER_validate_item_rev_id() to describe the status of the item_rev ID passed to it.

Enumerator:
USER_valid_id 
USER_invalid_id 
USER_modified_id 
USER_override_id 
USER_duplicate_id 

Definition at line 147 of file user_exits.h.

enum IVFType

The following type is defined here for compatability with V2.x code; IVFType is an obsolete concept and its value will be ignored when passed to v3.x USER functions.

Enumerator:
IVF_BAD_TYPE 
IVF_PRODUCT 
IVF_STRUCTURE_GROUP 
IVF_COMPONENT 

Definition at line 114 of file user_exits.h.


Function Documentation

USER_EXITS_API void NOTE_ask_extension ( char *  file_name,
char *  extension 
)

USER_EXITS_API int PEC_Log_Handler ( const TcSubscriptionActionMsg_t subscriptionActionMsg,
int  nHandlerArgs,
char **  handlerArgs,
va_list  otherArgs 
)

Log Handler for audit manager

USER_EXITS_API int TCHANDLER_proxy_link ( void *  subMsg,
int  nRecipients,
char **  recipientList 
)

USER_EXITS_API int USER_add_canned_methods ( void   ) 

This USER EXIT will be used to add site based canned methods. If a site wants to add custom methods as canned methods so as to make these canned methods available for configuration from the Business Rules Application, then the function to add canned methods need to be called from within this USER EXIT. The function to add the canned methods is METHOD_CM_add_method().

USER_EXITS_API int USER_appr_item_is_above_ERCT ( tag_t  appr_context,
tag_t  item_tag,
logical is_above_erct 
)

Used by the Appearance (APPR) module, for appearance sets that are configured by a mixture of unit effectivity and release date. Such structures are considered to contain a (ragged) line running across this structure, called the Effectivity-Release Configuration Transition (ERCT). Above this line items are configured by unit effectivity; below it they are configured by date. Whether a given item lies above or below the line is deemed to be a property of the item, and possibly of the particular appearance set (context), however the specific decision is a matter for the customer's business process, hence this function is provided as a user exit for the user to implement. The default behavior for this exit as supplied with base Teamcenter is to always return true, so that all items will be treated as 'above ERCT' and configured by unit effectivity.

Parameters:
appr_context  (I)
item_tag  (I)
is_above_erct  (O)

USER_EXITS_API int USER_appr_update_end_item_search_results ( tag_t  configuration_rule,
int  num_input_search_results,
tag_t input_search_results,
int *  num_output_search_results,
tag_t **  output_search_results 
)

Appearance end-item search results update user exit

Parameters:
configuration_rule  (I)
num_input_search_results  (I)
input_search_results  (I)
num_output_search_results  (O)
output_search_results  (O)

USER_EXITS_API int USER_ask_display_revisions ( tag_t  item_tag,
int *  count,
tag_t **  revisions 
)

We invented a new property for an item called "configured_revisions", and this method will be called while invoking this property method call. So, users may customize this method to get their interested revisions, otherwise it returns null tag.

Parameters:
item_tag  (I)
count  (O)
revisions  (OF) count

USER_EXITS_API char* USER_ask_for_new_sequence_no ( tag_t  parent_bom_revision  ) 

Allocate a sequence number for a prospective occurrence

Parameters:
parent_bom_revision  (I)

USER_EXITS_API int USER_ask_new_seqno ( tag_t  parent_bom_rev,
tag_t  item,
char **  seqno 
)

Returns a find number as a string in SM space, to be used for a new occurrence of item in parent_bom_rev. This function is called:

  • When the Paste... and Add... dialog boxes are displayed to give a default find number
  • For each item or item revision being pasted in the Paste command
The find number returned depends on the PS_new_seqno_mode preference which can take one of three values:

new Each item added to the BOM revision is allocated a new number. This is the default action.
existingIf the item to be added already exists in the BOM, then the existing find number for that item is returned.
none No number (i.e., an empty string) is returned allowing the user to add numbers in later.

This function replaces USER_ask_for_new_sequence_no. For the case of new the old function is called to provide the find number. In the case of existing if the item does not already exist in the BOM revision then the old function is called again. It is also called if item is NULLTAG.

Any programs that call the old function will still work and the old user exit is still called, but programmers should update any code that uses or overrides USER_ask_for_new_sequence_no to the new function so as to take account of the new preference.

In the case of none, an empty string is always returned.

The default functionality provided behaves as follows. The function returns the next multiple of ten above the largest current find number provided all the find numbers in the parent have numeric values. If no find numbers have yet been created, it returns 10. If there are non-numeric find numbers then these are ignored. Find numbers need not be unique.

Note:
On error seqno will be NULL, and an ifail error may be returned.
Parameters:
parent_bom_rev  (I)
item  (I) Tag of the item or item revision being pasted
seqno  (OF)

USER_EXITS_API int USER_ask_seq_numbers ( tag_t  parent_bvr,
int  count,
tag_t child,
char ***  seqnos 
)

This new version is written specifically for CLONING

Parameters:
parent_bvr  (I)
count  (I)
child  (I)
seqnos  (OF)

USER_EXITS_API int USER_baseline_dryrun_validator ( const char *  baseRevListFullFileName  ) 

Parameters:
baseRevListFullFileName  (I)

USER_EXITS_API int USER_bom_cmp_end_report ( logical  changes  ) 

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is called at the end of a compare, even if no differences exist.

This user exit allows some tidying up and footer output to be performed.

Parameters:
changes  (I) Set to true if changes exist, otherwise false

USER_EXITS_API int USER_bom_cmp_enter_report ( tag_t  line1,
tag_t  line2,
int  mode,
int  output 
)

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is called at the start of a compare, only if differences exist. This function is called after USER_bom_cmp_start_report.

This user exit allows some report initialization and header output to be performed.

Parameters:
line1  (I) Tag of the first BOM line being compared
line2  (I) Tag of the second BOM line being compared
mode  (I) Compare mode being used. May be one of the following:
BOM_compare_singlelevel
BOM_compare_lowestlevel
BOM_compare_multilevel
output  (I) Output mechanism being used. Constructed by adding the following values as required:
BOM_compare_output_bomline
BOM_compare_output_userexit
BOM_compare_output_report

USER_EXITS_API int USER_bom_cmp_exit_report (  ) 

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is called at the end of a compare, only if differences exist. This function is called before USER_bom_cmp_end_report.

This user exit allows some tidying up and footer output to be performed.

USER_EXITS_API int USER_bom_cmp_item_report ( tag_t  cmp_item,
int  depth 
)

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is called once for every different item which the BOM compare finds.

This user exit allows details of a single item which has changed to be output to a report. The BOM compare ITK functions can be used to extract information about the exact nature of the changes.

Note:
The compare item supplied as an input parameter to this function is not the same as a Teamcenter item. This tag should only be used with the BOM compare ITK functions.
Parameters:
cmp_item  (I) Tag of a compare item
depth  (I) Depth of the compare item below the item selected to be compared. This is only relevant in multi-level compares.

USER_EXITS_API int USER_bom_cmp_parent_report ( tag_t  bom_line,
int  depth 
)

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is only called in multi-level mode. It is called once for every BOM line which is an ancestor of a changed item.

Note:
This function is not called for the root of the compare, or any of its ancestors.
This user exit allows details of a changed item's ancestry to be output to a report. This function and USER_bom_cmp_item_report are called in the correct order to allow a report to be output as an indented bill.
Parameters:
bom_line  (I) Tag of the parent BOM line
depth  (I) Depth of the BOM line below the item selected to be compared

USER_EXITS_API int USER_bom_cmp_start_report ( tag_t  line1,
tag_t  line2,
int  mode,
int  output 
)

This user exit is called by the PSE driven compare and (optionally) the ITK compare function. It is called at the start of a compare, even if no differences exist.

This user exit allows some report initialization and header output to be performed. In the supplied compare user exit code it is used to suppress the calling of the other user exit functions.

Parameters:
line1  (I) Tag of the first BOM line being compared
line2  (I) Tag of the second BOM line being compared
mode  (I) Compare mode being used. May be one of the following:
BOM_compare_singlelevel
BOM_compare_lowestlevel
BOM_compare_multilevel
output  (I) Output mechanism being used. Constructed by adding the following values as required:
BOM_compare_output_bomline
BOM_compare_output_userexit
BOM_compare_output_report

USER_EXITS_API int USER_bomline_is_preferred_ancestor ( tag_t  bomline_or_appearance,
logical  is_bomline,
logical is_preferred_ancestor 
)

BOMLine preferred ancestor user exit

Parameters:
bomline_or_appearance  (I)
is_bomline  (I)
is_preferred_ancestor  (O)

USER_EXITS_API int USER_build_notify_message ( const TcSubscriptionActionMsg_t theSubscriptionMsg,
char **  messageSubject,
int *  nMessageLines,
char ***  messageLines 
)

User exits for the notification handler. Used in notifyhandler.cxx

Parameters:
theSubscriptionMsg  (I)
messageSubject  (O)
nMessageLines  (O)
messageLines  (O)

USER_EXITS_API int USER_build_notify_message_with_locale ( const TcSubscriptionActionMsg_t theSubscriptionMsg,
const char *  localeStr,
char **  messageSubject,
int *  nMessageLines,
char ***  messageLines 
)

User exits for the notification handler. Used in notifyhandler.cxx

Parameters:
theSubscriptionMsg  (I)
localeStr  (I)
messageSubject  (O)
nMessageLines  (O)
messageLines  (O)

USER_EXITS_API int USER_classification_autocompute_attr (  ) 

USER_EXITS_API int USER_compute_effectivity ( tag_t  blTag,
logical  intersectConfigEff,
logical occEffExists,
logical isConfigured,
int *  effyCount,
WSOM_effectivity_info_t ***  effectivityInfo 
)

USER_EXITS_API int USER_copied_dataset_name ( tag_t  old_owner,
tag_t  old_dataset,
tag_t  relation_type,
tag_t  new_owner,
char **  dataset_name,
logical modifiable 
)

Generates a name for a dataset when it is copied. This user exit is called when the Dataset Save As dialog box appears.

This function is required to use whatever inputs it is given to generate a sensible name for the copied dataset.

Note:
We cannot use this function for the new NX save-as non-master code, as it requires that the new revision exists already, which will not be the case
Original Default Implementation

If the old dataset tag is given, set the new name to be equal to that of the original dataset. If it has not been given, and the new revision has, then set the name to be the new revision id string. If neither the old dataset nor the new revision tag is given, then set the name to be a null pointer. In all cases, return modifiable = true.

New Default Implementation

Assuming all the tags are given, this function should match the original name onto the pattern SP1 and return the new dataset name with the replacements made for item and revision ids. If either the old revision tag, the old dataset tag, or the new revision tag are missing, then we cannot perform the match onto the pattern. In this case, we should maintain the original behaviour. Return modifiable = SP2 (allow_name_modification). The new implementation preserves the original behavior with the default settings of the Teamcenter site preferences SP1 and SP2.

Parameters:
old_owner  (I) Tag of the old revision
old_dataset  (I) Tag of the old dataset
relation_type  (I) Tag of the relation type between parent and old dataset
new_owner  (I) Tag of the new parent object, if this is known. Set to NULLTAG otherwise.
dataset_name  (OF) Pointer to a string containing the generated dataset name
modifiable  (O) A Boolean flag indicating whether the generated name may be overridden subsequently

USER_EXITS_API int USER_copied_datasets_details ( tag_t  old_revision,
const char *  new_item_id,
const char *  new_revision_id,
const char *  new_item_type,
int  dataset_count,
tag_t  dataset_list[],
USER_DATASET_details_t **  details,
logical allow_duplicates 
)

This function is used to determine how a set of datasets should be copied via a save-as operation.

Default Implementation

Generate the new names and whether or not the names can be modified by the user. Use SP4 (always/never_copy) which determines which types must always/never be copied to determine the copy state for each. Set the validation requirement based on SP3 (force_name_validation). Set the owner return values based on SP5 (owner). allow_duplicates is returned according to the site preference.

Parameters:
old_revision  (I) Tag of the old revision
new_item_id  (I) ItemID for the new item (has not necessarily been created yet)
new_revision_id  (I) RevisionID for the new revision (has not necessarily been created yet)
new_item_type  (I) Item type for the new item (has not necessarily been created yet)
dataset_count  (I) Number of datasets in array
dataset_list  (I) Array of tags of datasets to query
details  (OF) Pointer to an array of "details" structures, described below. Each structure refers to one of the non-master names.
allow_duplicates  (O) Whether or not duplicate non-master names should be allowed

USER_EXITS_API int USER_copy_revision ( const char *  rev_id,
tag_t  source_rev 
)

Called before we do the action; returning non-zero ifail will abort the operation

Parameters:
rev_id  (I)
source_rev  (I)

USER_EXITS_API int USER_create_id_counter ( char *  counter  ) 

Parameters:
counter  (I)

USER_EXITS_API void USER_create_instance_item_next_id ( void   ) 

USER_EXITS_API int USER_create_item ( const char *  item_id,
const char *  name,
const char *  type,
const char *  rev_id 
)

Parameters:
item_id  (I)
name  (I)
type  (I)
rev_id  (I)

USER_EXITS_API int USER_create_revision ( tag_t  item_tag,
const char *  rev_id 
)

Parameters:
item_tag  (I)
rev_id  (I)

USER_EXITS_API char* USER_default_archive_filename ( void   ) 

Method to generate a default filename for the archive metafile. The format of the filename is:

archive_<date><time>

Where <date> is an eight-character date stamp in year/month/date format and <time> is a six-character time stamp in hours/minutes/seconds format.

USER_EXITS_API char* USER_default_archive_tape_label ( void   ) 

Method to generate a default tape label for tape archive media. The format of the tape label is:

AR<date><time>

Where <date> is an eight-character date stamp in year/month/date format and <time> is a six-character time stamp in hours/minutes/seconds format.

USER_EXITS_API int USER_define_bom_compare_modes (  ) 

Called by BOM Compare immediately after it has defined all the standard internal BOM compare modes. This is the user exit in which users should define their own modes, or adjust the standard ones.

USER_EXITS_API int USER_define_compare_descs (  ) 

Called by Generic Compare Engine immediately after it has defined all the standard internal compare descriptors. This is the user exit in which users should define their own descriptors, or adjust the standard ones.

USER_EXITS_API void USER_define_tc_next_id ( void   ) 

USER_EXITS_API int USER_ecm_define_never_used_relations ( tag_t  ec_rev_tag,
tag_t  parent_ir_tag,
tag_t  aff_bvr_tag,
tag_t  pro_bvr_tag 
)

User exit to allow custom code to create never used relation between the end item and a part, which has a BOM Change associated with it, in the assembly. "ECM_never_used" is used as the relation name. This relation is used to determine the never used parts in a genealogy trail.

Parameters:
ec_rev_tag  (I) Tag of the Change Revision
parent_ir_tag  (I) Tag of the Problem Item Revision
aff_bvr_tag  (I) Tag of the Affected Bom View Revision
pro_bvr_tag  (I) Tag of the Problem Bom View Revision

USER_EXITS_API int USER_ecm_get_base_revision_rules ( tag_t  ec_rev_tag,
tag_t  affected_bvr_tag,
tag_t  problem_bvr_tag,
logical is_set,
tag_t affected_rule_tag,
tag_t problem_rule_tag 
)

User exit to allow custom code to set dynamic revision rules for the affected and the problem assemblies. Using this method, the user can supply the revision rules to be used while saving BOM change objects and also while displaying PSE Supersedure window in i-man Portal. By default core CM revision logic will be applied.

Parameters:
ec_rev_tag  (I) Tag of the Change Revision
affected_bvr_tag  (I) Tag of the Affected Bom View Revision
problem_bvr_tag  (I) Tag of the Problem Bom View Revision
is_set  (O) Indicates whether the Revision Rules have been set
affected_rule_tag  (O) Tag of the Revision Rule for the Affected assembly
problem_rule_tag  (O) Tag of the Revision Rule for the Problem assembly

USER_EXITS_API int USER_ecm_get_prev_bvr ( tag_t  ec_rev_tag,
tag_t  bvr_tag,
tag_t prev_bvr_tag 
)

User exit to allow custom code to change the affected Item to Problem Item relationship from default that has been supplied by i-man. Default relation name is the Problem pseudo-folder name that is mentioned in the site preference ECM_prev_structure_relation. This relation is created when the creator of the EC revision pastes the problem Item Revisions in that folder.

Parameters:
ec_rev_tag  (I) Tag of the Change Revision
bvr_tag  (I) Tag of the Affected Bom View Revision
prev_bvr_tag  (O) Tag of the Problem Bom View Revision

USER_EXITS_API int USER_ecm_get_process_name ( tag_t  change_rev_tag,
int  n_targets,
tag_t targets,
char **  process_name 
)

User exit to allow custom code to get process name for multiple processes. Using this function the user can generate a process name based on the targets that have been provided as input. This process name is used when multiple processes are to be initiated for the targets from the multiple processes dialog.

Parameters:
change_rev_tag  (I) Tag of the Change Revision
n_targets  (I) Number of targets of the EPM process
targets  (I) Tags of the targets of the EPM process
process_name  (OF) Name of the EPM Process

USER_EXITS_API int USER_end_import_of_item ( tag_t  item_tag  ) 

Parameters:
item_tag  (I)

USER_EXITS_API int USER_end_local_import ( tag_t  main_object_tag,
logical  is_transferring_ownership,
const char *  export_directory 
)

This user exit USER_end_local_import runs when a replication is performed at the importing site. It enables a site to perform custom actions, for example, when an Item Revision is being replicated into the database. (For example: perform validations on certain attributes, release status, etc).

Parameters:
main_object_tag  (I)
is_transferring_ownership  (I)
export_directory  (I)

USER_EXITS_API int USER_evaluate_compound_result ( char *  validation_name,
int  validation_status,
logical validation_result 
)

Parameters:
validation_name  (I)
validation_status  (I)
validation_result  (O)

USER_EXITS_API int USER_execute_saved_query ( const char *  name,
int  num_args,
char **  keys,
char **  values,
int *  num_found,
tag_t **  found 
)

Allows a custom-programmer to replace the query mechanism while keeping the display mechanism. This means the query must return displayable TC objects, but can run arbitrary code and hence do queries too complicated to express in SQL. (see TC_ROOT\sample\examples\user_query.c)

Parameters:
name  (I)
num_args  (I)
keys  (I)
values  (I)
num_found  (O)
found  (OF) num_found

USER_EXITS_API int USER_exit_module ( void   ) 

USER_EXITS_API int USER_get_batch_meshing_nr_name ( const char *  meshFileName,
const char *  meshSize,
const char *  meshFileExt,
char  namedRefName[IMF_filename_size_c+1] 
)

USER_EXITS_API int USER_get_batch_meshing_nr_name2 ( const char *  meshFileName,
const char *  meshSize,
const char *  meshFileExt,
char **  namedRefName 
)

USER_EXITS_API int USER_get_keyword_search_client ( const char *  name,
int  num_args,
char **  names,
char **  values,
char **  search_client 
)

Full Text Keyword Search "PLUG-n-PLAY" feature.

Parameters:
name  (I)
num_args  (I)
names  (I)
values  (I)
search_client  (OF) search client

USER_EXITS_API int USER_gs_shell_init_module ( void   ) 

User can register an editor for editing SS_TEXT text file Demonstrate how to encapsulate an application

USER_EXITS_API int USER_idsm_end_remote_import ( tag_t  main_object_tag,
int  is_transferring_ownership,
const char *  export_directory 
)

Parameters:
main_object_tag  (I)
is_transferring_ownership  (I)
export_directory  (I)

USER_EXITS_API int USER_idsm_start_remote_export ( tag_t  main_object_tag,
int  is_transferring_ownership,
int  ie_options,
int  remote_site_id,
const char *  remote_user_id,
const char *  remote_group_name,
const char *  remote_role_name 
)

Parameters:
main_object_tag  (I)
is_transferring_ownership  (I)
ie_options  (I)
remote_site_id  (I)
remote_user_id  (I)
remote_group_name  (I)
remote_role_name  (I)

USER_EXITS_API int USER_init_module ( void   ) 

USER_EXITS_API void USER_invoke_pdm_server ( int  input_code,
char *  input_string,
int *  output_code,
char **  output_string 
)

Invoke pdm server

USER_EXITS_API int USER_invoke_user_code_string ( int  input_code,
const char *  input_string,
int *  output_code,
char **  output_string 
)

Invoke user code from web

Parameters:
input_code  (I)
input_string  (I)
output_code  (O)
output_string  (OF)

USER_EXITS_API int USER_invoke_user_code_taglist ( int  input_code,
const char *  input_string,
tag_t  input_tag,
tag_t output_tag,
char **  output_string,
int *  output_count,
tag_t **  output_taglist 
)

Parameters:
input_code  (I)
input_string  (I)
input_tag  (I)
output_tag  (O)
output_string  (OF)
output_count  (O)
output_taglist  (OF) output_count

USER_EXITS_API int USER_invoke_user_create_objs ( tag_t  input_tag,
char *  input_formName,
char *  input_num_of_cost_elem,
const char *  input_plant,
char *  input_currency,
char *  input_lead_time,
char *  input_supplier,
char *  input_percentage,
char *  input_titles,
char *  input_element_vals,
char *  input_ar_number,
char *  input_sender_psp,
char *  input_receiver_psp,
char *  input_sap_index,
char *  input_sap_date,
char *  input_sap_amount,
char *  input_purchase_req,
char *  input_comments,
char *  input_deleted_index,
char *  input_ignored_index,
char *  input_modified_index,
char *  input_added_index 
)

USER_EXITS_API int USER_is_allocation_complete ( tag_t  allocation_tag,
tag_t  allocation_window_tag,
logical is_complete 
)

Defines what it means for an Allocation to be Complete

Note:
See $TC_ROOT/sample/examples/user_is_allocation_complete.c.
Parameters:
allocation_tag  (I) Tag that provides the allocation object
allocation_window_tag  (I) Tag that provides the Allocation Window to which the allocation belongs to. This can be NULLTAG
is_complete  (O) Return a boolean value - True or False

USER_EXITS_API int USER_is_allocation_configured ( tag_t  rev_rule,
logical is_configured 
)

Defines what it means for an Allocation to be Configured

Note:
See $TC_ROOT/sample/examples/user_is_allocation_configured.c.
Parameters:
rev_rule  (I) Tag that provides the Revision Rule
is_configured  (O) Return a boolean value -True or False

USER_EXITS_API int USER_is_allocation_correct ( tag_t  allocation_tag,
tag_t  allocation_window_tag,
logical is_correct 
)

Defines what it means an Allocation to be Correct

Note:
See $TC_ROOT/sample/examples/user_is_allocation_correct.c.
Parameters:
allocation_tag  (I) Tag that provides the allocation object
allocation_window_tag  (I) Tag that provides the Allocation Window to which the allocation belongs to. This can be NULLTAG
is_correct  (O) Return a boolean value - True or False

USER_EXITS_API int USER_is_dataset_exportable ( tag_t  dataset_tag,
int  n_target_sites,
tag_t target_sites,
logical  is_transferring_ownership,
logical  modified_objects_only,
logical isExportable 
)

To check if dataset should be allowed to export based on it's classification type

Parameters:
dataset_tag  (I) tag of dataset object
n_target_sites  (I) number of target sites
target_sites  (I) target sites list
is_transferring_ownership  (I) logical indicating if multisite transfer will transfer ownership
modified_objects_only  (I) logical indicating if multisite transfer is transferring only modified objects or otherwise
isExportable  (O) decision, if this dataset tag should be multisite exported or not

USER_EXITS_API int USER_is_item_rev_mature ( tag_t  item_rev_tag,
logical mature 
)

This function is used to determine if the Item Revision is mature or not. By default, the status on the ItemRevision Object is compared to the value specified on the group level preference <ItemRevision Type Name>_Maturity_Level If the value in the preference matches to any of the status objects on the ItemRevision the TRUE is returned. If the preference doesnot exist then the default value to compare with against is 'Released'.

Parameters:
item_rev_tag  (I)
mature  (O)

USER_EXITS_API int USER_item_create_cancelled ( const char *  item_id,
const char *  revision_id 
)

Deprecated:
This function is deprecated and will be removed from Tc12.
This USER EXIT ITK provides a hook point for customers to plug the customization codes into the cancellation of item creation. It is called at the end of operation when the item creation is cancelled.
Parameters:
item_id  (I) Id of the item whose creation being cancelled
revision_id  (I) Revision id of the item whose creation being cancelled

USER_EXITS_API int USER_item_created ( const char *  item_id,
const char *  revision_id 
)

This USER EXIT ITK provides a hook point for customers to plug the customization codes into the item creation. It is called at the end of successful item creation.

Parameters:
item_id  (I) Id assigned to the newly created item
revision_id  (I) Revision id assigned to the newly created item revision

USER_EXITS_API int USER_make_design_rev_primary_precond ( tag_t  part_rev,
tag_t  design_rev,
logical isDesignRevEligible 
)

Parameters:
part_rev  (I)
design_rev  (I)
isDesignRevEligible  (O)

USER_EXITS_API int USER_markup_pre_action_handler ( METHOD_message_t msg,
va_list  args 
)

DMI register markup pre-action handler which is used to build a customize stack file for the markup tool.

USER_EXITS_API int USER_new_allocation_name ( tag_t  allocation_map_rev,
tag_t  alloc_type,
char **  new_allocation_name 
)

Generates an Allocation name for the user.

Note:
See $TC_ROOT/sample/examples/user_alloc_name.c.
Parameters:
allocation_map_rev  (I) Tag that provides the allocation map revision context for the allocation
alloc_type  (I) Tag that provides the type of the allocation for which the name is to be generated
new_allocation_name  (OF) Pointer to the new allocation name

USER_EXITS_API int USER_new_alt_id ( tag_t  idcontext_tag,
const char *  preferred_pattern,
tag_t  altid_type_tag,
tag_t  parent_altid_tag,
char **  new_id 
)

This function provides a hook point for customers, and gets called with following different parameters:

1. Brand new item creation (assign button selected)
  • Item alternate id:
    idcontext_tag (cannot be null)
    altid_type = alt identifier type for item alternateid
    parent_altid_tag = NULLTAG
  • Item Revision alt id:
    idcontext_tag (cannot be null)
    altid_type = alt identifier type for itemrevision alternateid
    parent_altid_tag = NULLTAG
2. From save function if it was not already assigned
  • Item alternate id:
    idcontext_tag
    altid_type = alt identifier type for item alternateid
    parent_altid_tag = NULLTAG
  • Item Revision alt id:
    idcontext_tag
    altid_type = alt revision identifier type
    parent_altid_tag = tag to alt identifier for item alternateid
3. From revise alternate creation (assign button selected)
idcontext_tag or NULLTAG
altid_type = alt revision identifier type or NULLTAG
parent_altid_tag = tag to alt identifier for item alternateid

Parameters:
idcontext_tag  (I) Tag of IdContext
preferred_pattern  (I) Pattern string
altid_type_tag  (I) Tag of alt identifier type
parent_altid_tag  (I) Tag of parent alt identifier type
new_id  (OF) New Item alternate id

USER_EXITS_API int USER_new_current_group ( tag_t  group_tag,
tag_t  role_tag 
)

User exit to allow custom code to be notified whenever the user changes group. For example, this might be used to show or hide buttons on the custom pull-down menu in Workspace, so that users have access to different custom dialog boxes depending on their role.

Parameters:
group_tag  (I) Tag of the user's new current group
role_tag  (I) Tag of the user's new current role

USER_EXITS_API int USER_new_dataset_id ( const tag_t  relatedTag,
const char *  ds_type,
logical mod,
char **  id 
)

Parameters:
relatedTag  (I)
ds_type  (I)
mod  (O)
id  (OF)

USER_EXITS_API int USER_new_dataset_name ( tag_t  owner,
tag_t  dataset_type,
tag_t  relation_type,
const char *  basis_name,
char **  dataset_name,
logical modifiable 
)

Generates a name for a new dataset. This user exit is called when the Dataset Creation dialog box appears.

Parameters:
owner  (I) Tag that provides the Item/Item Revision for which the new dataset is to created. This parameter may be NULLTAG. In case of Direct Model dataset created from NX/Manager interface this will be the tag of dataset for which the Direct Model is being created.

As an example, It would be the tag of the UGMASTER dataset if the DirectModel is created for it

dataset_type  (I) Tag that provides the type of the dataset. This parameter may be NULLTAG.
relation_type  (I) Tag that provides the type of the relationship between the dataset and the Item/Item Revision. This parameter may be NULLTAG.
basis_name  (I) Name that should provide the basis for the dataset name. This parameter will normally be NULL.
dataset_name  (OF) Pointer should be set to point to the new name
modifiable  (O) Should be set to true if the returned value must not be modified by the user

USER_EXITS_API int USER_new_dataset_rev ( const char *  ds_id,
const char *  ds_type,
logical mod,
char **  id 
)

Parameters:
ds_id  (I)
ds_type  (I)
mod  (O)
id  (OF)

USER_EXITS_API char* USER_new_file_name ( const char *  dataset,
const char *  ref,
const char *  ext,
const int  rev 
)

Method to generate a file name for a dataset.

The format of the name is: dname_refname_date.ext

The generated file name should be freed by calling free() rather than MEM_free().

Note:
See $TC_ROOT/sample/user_filenam.c.
Parameters:
dataset  (I) Dataset name
ref  (I) Reference type name
ext  (I) Extension of the file
rev  (I) Revision number of the dataset

USER_EXITS_API int USER_new_folder_name ( tag_t  parent_tag,
char *  parent_type,
char *  parent_name,
char *  basis_name,
char *  folder_type,
logical mod,
char **  new_name 
)

This program returns a new folder name based on the parent values or the basis name. the default action returns the basis_name as the new_name, and mod will be set to true. If the basis name is NULL then the following would be tried until a non-NULL value is found; the parent name, the folder type, or "Folder."

Parameters:
parent_tag  (I) Tag of the intended parent of this folder, use to validate or determine the new folder name. Can be a NULLTAG.
parent_type  (I) Type of the intended parent of this folder, use to validate or determine the new folder name. Can be a NULL.
parent_name  (I) Name of the intended parent of this folder, use to validate or determine the new folder name. Can be a NULL.
basis_name  (I) Possible name for new folder. Can be NULL.
folder_type  (I) Name of folder type. Can be NULL.
mod  (O) Returns whether name field can be modified, default value is true
new_name  (OF) The new folder name

USER_EXITS_API int USER_new_form_name ( tag_t  parent_tag,
char *  parent_type,
char *  parent_name,
char *  basis_name,
char *  form_type,
logical mod,
char **  new_name 
)

Returns a new form name based on the form type and either the parent tag or the basis name. Default action is to return the basis_name as the new_name, and mod will be set to true. If the basis name is NULL then the following would be tried until a non-NULL value is found; the parent name, the form type, or "Form."

Parameters:
parent_tag  (I) Tag of the intended parent of this form, use to validate or determine the new form name. Can be a NULLTAG.
parent_type  (I) Type of the intended parent of this form, use to validate or determine the new form name. Can be a NULL.
parent_name  (I) Name of the intended parent of this form, use to validate or determine the new form name. Can be a NULL.
basis_name  (I) Possible name for new form. Can be NULL.
form_type  (I) Name of form type. Can be NULL.
mod  (O) Returns whether name field can be modified, default value is true.
new_name  (OF) The new form name

USER_EXITS_API int USER_new_item_id ( tag_t  old_item,
tag_t  item_type,
logical mod,
char **  id 
)

Generates a Item ID for a user.

Note:
See $TC_ROOT/sample/examples/user_part_no.c.
Parameters:
old_item  (I) Tag that provides a seed value for Save As. May be a NULLTAG if a new number is requested.
item_type  (I) Tag that provides the type of the item for which the ID is to be generated
mod  (O) Boolean value specifying if the system user has the right to modify (TRUE) the value. Else attempts to change the returned string (FALSE) will be prevented at the user interface.
id  (OF) Pointer to the new ID

USER_EXITS_API int USER_new_item_ids ( tag_t  item_type,
int  quantity,
logical mod,
char ***  ids 
)

Generate item ids in bulk for the specified Item type

Note:
See $TC_ROOT/sample/examples/user_part_no.c.
Parameters:
item_type  (I) Tag that provides the type of the item for which the ID is to be generated
quantity  (I) No of item ids to be generated for the specified Item type.
mod  (O) Boolean value specifying if the system user has the right to modify (TRUE) the value. Else attempts to change the returned string (FALSE) will be prevented at the user interface.
ids  (OF) Pointer to the new ID

USER_EXITS_API int USER_new_revision_id ( tag_t  item_tag,
tag_t  item_type,
logical mod,
char **  id 
)

Generates a item ID for a user.

Note:
See $TC_ROOT/sample/examples/user_part_no.c.
Parameters:
item_tag  (I) Tag that provides the Item for which a new revision ID is to generated
item_type  (I) Tag that provides the type of the item for which the ID is to be generated
mod  (O) Boolean value specifying if the system user has the right to modify (TRUE) the value. Otherwise, attempts to change the returned string (FALSE) will be prevented at the user interface.
id  (OF) Pointer to the new ID

USER_EXITS_API int USER_new_revision_id_from_alt_rule ( char *  rule_suffix,
tag_t  item_tag,
tag_t  item_type,
logical mod,
char **  id 
)

Handles revision ids for preliminary data

Parameters:
rule_suffix  (I)
item_tag  (I)
item_type  (I)
mod  (O)
id  (OF)

USER_EXITS_API void USER_nx_shell_init_module ( void   ) 

Demonstrate how to encapsulate Unigraphics

USER_EXITS_API int USER_ods_check_pubrec_access ( tag_t  pubrec_tag,
const char *  user_id,
const char *  group_name,
const char *  role_name,
int  client_site_id,
logical has_read_access 
)

Parameters:
pubrec_tag  (I)
user_id  (I)
group_name  (I)
role_name  (I)
client_site_id  (I)
has_read_access  (O)

USER_EXITS_API int USER_ods_client_ask_extra_attributes ( int *  n_attrs,
char ***  pr_pom_attr_names,
char ***  attr_options 
)

USER_EXITS_API int USER_ods_client_publish_extra_attributes ( tag_t  object_to_publish,
int  n_attrs,
char **  pr_pom_attr_names,
char *  attr_values[] 
)

USER_EXITS_API int USER_ods_publish_object ( int  ods_site_id,
tag_t  object_tag 
)

Parameters:
ods_site_id  (I)
object_tag  (I)

USER_EXITS_API int USER_preinit_module ( void   ) 

USER_EXITS_API int USER_process_keyword_search_results ( const char *  name,
FILE *  f_ptr,
int *  num_found,
tag_t **  results 
)

Parameters:
name  (I)
f_ptr  (I)
num_found  (O)
results  (OF) num_found

USER_EXITS_API int USER_ps_default_bom_view_name ( tag_t  item,
tag_t  view_type,
char **  name 
)

Method to generate a name for a new BOMView.

The default implementation of this function calls PS_system_default_bom_view_name.

Parameters:
item  (I) Item of the BOMView
view_type  (I) View type of the BOMView
name  (OF)

USER_EXITS_API int USER_ps_default_bvr_name ( tag_t  item_rev,
tag_t  view_type,
char **  name 
)

Method used to generate a name for a new BOMView Revision.

The default implementation of this function calls PS_system_default_bvr_name.

Parameters:
item_rev  (I) Item Revision of the BOMView Revision
view_type  (I) View type of the BOMView Revision
name  (OF)

USER_EXITS_API int USER_ps_update_appr_attr ( tag_t  appr,
tag_t  parent,
tag_t  occ,
tag_t  mapping 
)

This user exit is called when an appearance requires its mapped attributes to be updated. This is called once for each attribute mapping that has its external flag set. This user exit can then use APPR_ask_attr_mapping to obtain details of the mapping being invoked, and APPR_set_attr_value to set the mapped attribute.

Return Values:

APPR_no_mapping_logic_defined - No mapping code has been implemented for the given mapping.

Parameters:
appr  (I) Appearance that requires its mapped attributes to be updated
parent  (I) Parent BOMViewRevision of Occurrence
occ  (I) Occurrence being mapped to the Appearance
mapping  (I) Attribute Mapping

USER_EXITS_API int USER_query_execute ( const char *  name,
int  num_args,
char **  keys,
char **  values,
int *  n_columns,
char ***  col_names,
QRY_user_query_row_t **  rows 
)

Allows the custom-programmer to replace both the query mechanism and the display mechanism. This means the query can return information which is not necessarialy contained in Tc objects. (see TC_ROOT\sample\examples\user_query.c)

Parameters:
name  (I)
num_args  (I)
keys  (I)
values  (I)
n_columns  (O)
col_names  (OF)
rows  (O)

USER_EXITS_API int USER_query_free_rows ( QRY_user_query_row_t rows,
int  n_columns 
)

Parameters:
rows  (I)
n_columns  (I)

USER_EXITS_API int USER_query_map_row ( const char *  query_name,
const QRY_user_query_row_t row,
tag_t tag 
)

Parameters:
query_name  (I)
row  (I)
tag  (O)

USER_EXITS_API int USER_register_aiws_extensions (  ) 

USER_EXITS_API void USER_register_bomline_attrs ( char *  attr_class  ) 

User can register PSE bomline attributes for display

Parameters:
attr_class  (I)

USER_EXITS_API int USER_register_plmxml_actions (  ) 

USER_EXITS_API int USER_register_plmxml_export_methods (  ) 

USER_EXITS_API int USER_register_plmxml_filters (  ) 

USER_EXITS_API int USER_register_plmxml_import_methods (  ) 

USER_EXITS_API int USER_register_plmxml_schema_mappings (  ) 

USER_EXITS_API int USER_register_properties ( void   ) 

Deprecated:
This function is deprecated and will be removed from Tc10. In Tc8.3 onwards, please register properties from BMIDE.
Registers methods to customize properties on types.

Within this function, the programmer will register a method with message name TCTYPE_init_user_props_msg for each type for which customization is desired.

See smp_user_props.c for sample code.

USER_EXITS_API int USER_register_report_columns ( void   ) 

USER_EXITS_API int USER_register_tcplmxml_actions (  ) 

USER_EXITS_API int USER_register_tcplmxml_filters (  ) 

USER_EXITS_API logical USER_report_include_row ( tag_t  pff_tag,
int  n_tags,
tag_t obj_tags 
)

Parameters:
pff_tag  (I)
n_tags  (I)
obj_tags  (I)

USER_EXITS_API char* USER_rev_file_name ( const char *  old_file_name  ) 

Method to generate a file name for a dataset using a name that was generated using the Teamcenter scheme. The name is parsed and rebuilt using the values found while parsing.

The format of the name is: dname_refname_date.ext

The generated file name should be freed by calling free() rather than MEM_free().

Parameters:
old_file_name  (I) Original File Name

USER_EXITS_API int USER_string_compare ( const char *  s1,
const char *  s2 
)

Parameters:
s1  (I)
s2  (I)

USER_EXITS_API void* user_StringLtoRCreate ( char *  text  ) 

USER_EXITS_API int USER_synchronize_baseline ( const char *  fullFilePathName  ) 

Parameters:
fullFilePathName  (I)

USER_EXITS_API int USER_validate_alt_id ( tag_t  idcontext_tag,
const char *  idfr_type,
const char *  new_id,
const char *  pattern_name,
char **  modified_id,
IDValid_e status 
)

Parameters:
idcontext_tag  (I)
idfr_type  (I)
new_id  (I)
pattern_name  (I)
modified_id  (OF)
status  (O)

USER_EXITS_API int USER_validate_alternate ( tag_t  idcontext_tag,
tag_t  identifiable_tag,
tag_t  altid_type,
tag_t  altid_tag,
logical is_valid 
)

Parameters:
idcontext_tag  (I)
identifiable_tag  (I)
altid_type  (I)
altid_tag  (I)
is_valid  (O)

USER_EXITS_API int USER_validate_dataset_name ( tag_t  old_owner,
tag_t  old_dataset,
const char *  new_item_id,
const char *  new_revision_id,
const char *  item_type,
const char *  dataset_name,
logical valid 
)

User exits for saveas project

This function is required to set valid to true or false depending on whether or not dataset_name is a valid dataset name for the given parameters. If customizing, then the test done on the name is entirely up to the site. However, it is sensible to ensure that USER_copied_datasets_details and USER_copied_dataset_name return names which pass this validation test. (An example of the use of this user exit: NX will effectively call this function once a user has entered or modified the dataset name, and will tell the user whether or not it is valid)

Default Implementation

If SP3 (force_name_validation) is true, valid is set to true or false depending on whether or not dataset_name can be matched onto SP1 (pattern) using the parameters given. If SP3 is false, the function returns true for any input.

Note:
It is not possible to report the reason for the failure to the user, as there is no internationalization support in the ITK.
Parameters:
old_owner  (I) Tag of the old revision
old_dataset  (I) Tag of the old dataset
new_item_id  (I) Item ID for the new item (has not necessarily been created yet)
new_revision_id  (I) Revision ID for the new revision (has not necessarily been created yet)
item_type  (I) Item type for the new item (has not necessarily been created yet)
dataset_name  (I) String containing the dataset name to be validated
valid  (O) A logical indicating whether the name specified is valid

USER_EXITS_API int USER_validate_id ( char *  boType,
int  nKey,
char **  keys,
char **  values,
logical isValid 
)

USER_EXITS_API int USER_validate_item_rev_id ( const char *  item_id,
const char *  rev_id,
const char *  item_type,
char **  modified_item_id,
char **  modified_rev_id,
IDValid_e status 
)

This user exit is called when a user chooses OK or Apply in the Item Creation or Save As dialog boxes. It can verify that the IDs meet certain criteria and, if necessary, return modified IDs. If this function returns with status set to invalid, then the user can either accept the modified IDs (if supplied), or cancel the create. If this function returns with status set to modified, then the user can choose whether to use the modified IDs, force the system to use the originally entered IDs, or cancel the create. If this function returns with status set to override, then the modified IDs will be used without informing the user (this is helpful for performing case conversions).

Parameters:
item_id  (I) Item ID entered in the dialog box by the user.
rev_id  (I) Item Revision ID entered in the dialog box by the user.
item_type  (I) Item type entered into the dialog box by the user. This may be NULL.
modified_item_id  (OF) New modified Item ID. Set this to NULL to indicate that no modification has been made.
modified_rev_id  (OF) New, modified Item Revision ID. Set this to NULL to indicate that no modification has been made.
status  (O) Indicates the result of the checks. May be one of the following:
USER_valid_id - IDs are OK.
USER_invalid_id - IDs are not acceptable.
USER_modified_id - IDs are not ideal, but can be used if the user really wants them.
USER_override_id - IDs are not acceptable. Silently use the modified ones instead.

USER_EXITS_API int USER_validate_item_rev_id_2 ( const char *  item_id,
const char *  rev_id,
const char *  item_type,
char **  modified_item_id,
char **  modified_rev_id,
IDValid_e status_item_id,
IDValid_e status_rev_id 
)

Validates the item and item revision identifiers selected for a new item revision. This function may reject the supplied IDs, accept them or modify them. This action is reflected in the value of status.

Compared to the USER_validate_item_rev_id function, this "_2" returns a more granular valid status - separate status for Item id and Revision Id.

Parameters:
item_id  (I) Item ID entered in the dialog box by the user.
rev_id  (I) Item Revision ID entered in the dialog box by the user.
item_type  (I) Item type entered into the dialog box by the user. This may be NULL.
modified_item_id  (OF) New modified Item ID. Set this to NULL to indicate that no modification has been made.
modified_rev_id  (OF) New, modified Item Revision ID. Set this to NULL to indicate that no modification has been made.
status_item_id  (O) Indicates the result of the checks. May be one of the following:
USER_valid_id - IDs are OK.
USER_invalid_id - IDs are not acceptable.
USER_modified_id - IDs are not ideal, but can be used if the user really wants them.
USER_override_id - IDs are not acceptable. Silently use the modified ones instead.
status_rev_id  (O) Indicates the result of the checks. May be one of the following:
USER_valid_id - IDs are OK.
USER_invalid_id - IDs are not acceptable.
USER_modified_id - IDs are not ideal, but can be used if the user really wants them.
USER_override_id - IDs are not acceptable. USER_duplicate_id - ID is duplicate with existing Silently use the modified ones instead.

USER_EXITS_API int USER_validate_item_rev_id_3 ( const char *  item_id,
const char *  rev_id,
const tag_t  item_tag,
const char *  item_type,
char **  modified_item_id,
char **  modified_rev_id,
IDValid_e status_item_id,
IDValid_e status_rev_id 
)

Parameters:
item_id  (I) Item ID entered in the dialog box by the user.
rev_id  (I) Item Revision ID entered in the dialog box by the user.
item_tag  (I) Item tag for Item Revise. For new Item this should be NULLTAG
item_type  (I) Item type entered into the dialog box by the user. This may be NULL.
modified_item_id  (OF) New modified Item ID. Set this to NULL to indicate that no modification has been made.
modified_rev_id  (OF) New, modified Item Revision ID. Set this to NULL to indicate that no modification has been made.
status_item_id  (O) Indicates the result of the checks. May be one of the following:
USER_valid_id - IDs are OK.
USER_invalid_id - IDs are not acceptable.
USER_modified_id - IDs are not ideal, but can be used if the user really wants them.
USER_override_id - IDs are not acceptable. Silently use the modified ones instead.
status_rev_id  (O) Indicates the result of the checks. May be one of the following:
USER_valid_id - IDs are OK.
USER_invalid_id - IDs are not acceptable.
USER_modified_id - IDs are not ideal, but can be used if the user really wants them.
USER_override_id - IDs are not acceptable. USER_duplicate_id - ID is duplicate with existing Silently use the modified ones instead.

USER_EXITS_API int USER_validation_post_action ( tag_t  target,
logical  validation_result,
int  validation_status 
)

USER_EXITS_API int USER_where_used ( char *  boType,
tag_t  boTag,
tag_t  revRuleTag,
int *  nParents,
tag_t **  parentTags,
int **  levels 
)