00001
00002
00003
00004
00005
00013
00014
00015 #ifndef TCTYPE_H
00016 #define TCTYPE_H
00017
00018 #include <property/prop.h>
00019 #include <tccore/tctype_msg.h>
00020 #include <user_exits/user_exits.h>
00021 #include <tccore/libtccore_exports.h>
00022
00047 #define TC_set_id_msg "IMAN_set_id"
00048 #define TC_set_name_msg "IMAN_set_name"
00049 #define TC_set_description_msg "IMAN_set_description"
00050 #define TC_set_type_msg "IMAN_set_type"
00051 #define TC_set_type_directly_msg "IMAN_set_type_directly"
00052
00060 #define TCTYPE_name_size_c 32
00061 #define TCTYPE_class_name_size_c 27
00062
00070 #define TCTYPE_DISABLE_UPDATE_LIST 0
00071 #define TCTYPE_ENABLE_UPDATE_LIST 1
00072 #define TCTYPE_SUSPEND_UPDATE_LIST 2
00073 #define TCTYPE_RESUME_UPDATE_LIST 3
00074
00078 #define TCTYPE_UPDATE_ALL_PROPS "_update_all_"
00079
00080 typedef enum TCTYPE_display_e {
00081 TCTYPE_DISPLAYABLE=0,
00082 TCTYPE_HIDDEN_AT_SYSTEM_LEVEL,
00083 TCTYPE_HIDDEN_AT_SITE_LEVEL,
00084 TCTYPE_HIDDEN_AT_PARENT_LEVEL,
00085 TCTYPE_HIDDEN_AT_CURRENT_LEVEL
00086 } TCTYPE_display_t;
00087
00088 typedef struct TCTYPE_availablerel_s
00089 {
00090 char* actualName;
00091 char* displayName;
00092 } TCTYPE_availablerel_t;
00093
00097 typedef enum TCTYPE_compounding_ctxt_e
00098 {
00099 TCTYPE_compounding_ctxt_unknown,
00100 TCTYPE_compounding_ctxt_relation,
00101 TCTYPE_compounding_ctxt_secondary
00102 } TCTYPE_compounding_ctxt_t;
00103
00104 typedef enum TCTYPE_operation_input_e
00105 {
00106 TCTYPE_OPERATIONINPUT_CREATE,
00107 TCTYPE_OPEARTIONINPUT_REVISE,
00108 TCTYPE_OPERATIONINPUT_SAVEAS,
00109 TCTYPE_OPERATIONINPUT_ANY
00110 } TCTYPE_operation_input_t;
00111
00116 typedef enum TCTYPE_save_operation_context_e
00117 {
00118 TCTYPE_save_on_create,
00119 TCTYPE_save_on_saveas,
00120 TCTYPE_save_on_revise,
00121 TCTYPE_save_on_update,
00122 TCTYPE_unknown_operation_context
00123 } TCTYPE_save_operation_context_t;
00124
00125 #ifdef __cplusplus
00126 extern "C"{
00127 #endif
00128
00135 extern TCCORE_API int TCTYPE_init_module();
00136
00137 extern TCCORE_API int TCTYPE_exit_module();
00138
00142 extern TCCORE_API int TCTYPE_refresh(
00143 tag_t type_tag,
00144 logical lock_or_not
00145 );
00146
00153 extern TCCORE_API int TCTYPE_ask_name(
00154 tag_t type_tag,
00155 char type_name[TCTYPE_name_size_c+1]
00156 );
00157
00161 extern TCCORE_API int TCTYPE_ask_name2(
00162 tag_t type_tag,
00163 char **type_name
00164 );
00165
00169 extern TCCORE_API int TCTYPE_ask_display_name(
00170 tag_t type_tag,
00171 char** display_type_name
00172 );
00173
00180 extern TCCORE_API int TCTYPE_ask_class_name(
00181 tag_t type_tag,
00182 char type_class[TCTYPE_class_name_size_c+1]
00183 );
00184
00188 extern TCCORE_API int TCTYPE_ask_class_name2(
00189 tag_t type_tag,
00190 char **type_class
00191 );
00192
00196 extern TCCORE_API int TCTYPE_ask_object_type(
00197 tag_t obj_tag,
00198 tag_t* type_tag
00199 );
00200
00205 extern TCCORE_API int TCTYPE_ask_object_type_with_stubs(
00206 tag_t obj_tag,
00207 tag_t* type_tag
00208 );
00209
00210
00216 extern TCCORE_API int TCTYPE_find_type(
00217 const char* type_name,
00218 const char* class_name,
00219 tag_t* type_tag
00220 );
00221
00225 extern TCCORE_API int TCTYPE_find_types_for_class(
00226 const char* class_name,
00227 int* number_of_types,
00228 tag_t** type_tags
00229 );
00230
00236 extern TCCORE_API int TCTYPE_find_displayable_types_for_class(
00237 const char* class_name,
00238 logical include_subclasses,
00242 int* number_of_types,
00243 tag_t** type_tags
00244 );
00245
00252 extern TCCORE_API int TCTYPE_UIF_find_displayable_types_for_class(
00253 const char* class_name,
00254 logical include_subclasses,
00258 int* number_of_types,
00259 tag_t** type_tags,
00260 char*** type_names,
00261 char*** display_type_names
00262 );
00263
00270 extern TCCORE_API int TCTYPE_find_displayable_types_for_class_and_accessor(
00271 const char* class_name,
00272 tag_t accessor_tag,
00273 logical include_subclasses,
00277 int* number_of_types,
00278 tag_t** type_tags
00279 );
00280
00288 extern TCCORE_API int TCTYPE_find_hidden_types_for_class_and_accessor(
00289 const char* class_name,
00290 tag_t accessor_tag,
00291 logical include_subclasses,
00295 int* number_of_types,
00296 tag_t** type_tags,
00297 TCTYPE_display_t** details
00300 );
00301
00302 extern TCCORE_API int TCTYPE_find_alltypes_for_class(
00303 const char* class_name,
00304 int* number_of_types,
00305 tag_t** type_tags
00306 );
00307
00311 extern TCCORE_API logical TCTYPE_is_extent_already_called();
00312
00313
00314
00315 extern TCCORE_API int TCTYPE_extent(
00316 int* number_of_types,
00317 tag_t** type_tags
00318 );
00319
00320
00325 extern TCCORE_API int TCTYPE_list_properties(
00326 tag_t type_tag,
00327 int* num,
00328 tag_t** pd_tags
00329 );
00330
00334 extern TCCORE_API int TCTYPE_ask_property_by_name(
00335 tag_t type_tag,
00336 const char* prop_name,
00337 tag_t* pd_tag
00338 );
00339
00352 extern TCCORE_API int TCTYPE_property_exists(
00353 tag_t type_tag,
00354 const char* prop_name,
00355 logical* verdict
00356 );
00357
00362 extern TCCORE_API int TCTYPE_ask_property_by_display_name(
00363 tag_t type_tag,
00364 const char* disp_name,
00365 tag_t* pd_tag
00366 );
00367
00376 extern TCCORE_API int TCTYPE_add_runtime_property(
00377 tag_t type_tag,
00378 const char* prop_name,
00384 PROP_value_type_t valuetype,
00387 int maxstrlen,
00389 tag_t* pd_tag
00390 );
00391
00401 extern TCCORE_API int TCTYPE_add_runtime_array_property(
00402 tag_t type_tag,
00403 const char* prop_name,
00409 PROP_value_type_t valuetype,
00412 int maxstrlen,
00414 int maxnumelements,
00416 tag_t* pd_tag
00417 );
00418
00426 extern TCCORE_API int TCTYPE_add_relation_property(
00427 tag_t type_tag,
00428 const char* prop_name,
00434 tag_t rel_type,
00435 tag_t* pd_tag
00436 );
00437
00447 extern TCCORE_API int TCTYPE_list_primary_rtypes(
00448 tag_t primary_type,
00449 int* n_rtypes,
00450 tag_t** rtypes
00451 );
00452
00463 extern TCCORE_API int TCTYPE_register_properties(
00464 USER_prop_init_entry_t* user_types_methods,
00468 int array_size
00469 );
00470
00474 extern TCCORE_API int TCTYPE_list_displayable_properties(
00475 tag_t type_tag,
00476 int* num,
00477 tag_t** pd_tags
00478 );
00479
00480 extern TCCORE_API int TCTYPE_ask_available_relations(
00481 tag_t type_tag,
00482 int* relationCount,
00483 TCTYPE_availablerel_t** relationNames
00484 );
00485
00486 extern TCCORE_API int TCTYPE_ask_available_relation_names(
00487 tag_t type_tag,
00488 int* relationNameCount,
00489 char*** relationDisplayNames,
00490 char*** relationActualNames
00491 );
00492
00496 extern TCCORE_API int TCTYPE_ask_parent_type(
00497 tag_t type_tag,
00498 tag_t *parent_type_tag
00499 );
00500
00504 extern TCCORE_API int TCTYPE_is_type_of (
00505 tag_t type_tag,
00506 tag_t another_type_tag,
00507 logical * answer
00508 );
00509
00518 extern TCCORE_API int TCTYPE_ask_subtypes(
00519 tag_t type_tag,
00520 logical forSameClassOnly,
00521 int * numOfSubtypes,
00522 tag_t ** listOfSubtypes
00523 );
00524
00536 extern TCCORE_API int TCTYPE_ask_subtypes_with_exclusions(
00537 tag_t type_tag,
00538 logical for_same_class_only,
00539 int n_exclusion_bo_names,
00540 const char** exclusion_bo_names,
00541 int * num_of_sub_types,
00542 tag_t ** list_of_sub_types
00543 );
00544
00555 extern TCCORE_API int TCTYPE_ask_child_types(
00556 tag_t type_tag,
00557 logical forSameClassOnly,
00558 int * numOfChildTypes,
00559 tag_t ** listOfChildTypes
00560 );
00561
00566 extern TCCORE_API int TCTYPE_ask_child_primary_types (
00567 tag_t type_tag,
00568 int * numOfChildTypes,
00569 tag_t ** listOfChildTypes
00570 );
00571
00575 extern TCCORE_API int TCTYPE_load_all_delayed_types() ;
00576
00580 extern TCCORE_API int TCTYPE_ask_create_descriptor(
00581 tag_t boTypeTag,
00582 tag_t* createDescTag
00583 );
00584
00585
00589 extern TCCORE_API int TCTYPE_ask_saveas_descriptor(
00590 tag_t objectTypeTag,
00591 tag_t* saveAsDescTag
00592 );
00593
00597 extern TCCORE_API int TCTYPE_ask_target_deepcopydata(
00598 tag_t objectTag,
00599 int *numAttachedObjs,
00600 tag_t** deepCopyDataTags
00601 );
00602
00606 extern TCCORE_API int TCTYPE_ask_create_prop_descriptors(
00607 tag_t createDescTag,
00608 int* n_propDescTags,
00609 tag_t** propDescTags,
00610 int* n_secPropNames,
00611 char*** secPropNames,
00612 tag_t** secBOTypeTags,
00613 logical** isRequired,
00614 logical** isArray,
00615 int** compoundingCtxts,
00616 tag_t** secCreateDescTags
00617 );
00618
00622 extern TCCORE_API int TCTYPE_ask_saveas_prop_descriptors(
00623 tag_t saveasDescTag,
00624 int* n_propDescTags,
00625 tag_t** propDescTags
00626 );
00627
00628
00633 extern TCCORE_API int TCTYPE_construct_create_input(
00634 tag_t boTypeTag,
00635 tag_t* createInputTag
00636 );
00637
00642 extern TCCORE_API int TCTYPE_construct_saveasinput(
00643 tag_t boTypeTag,
00644 tag_t* saveAsInputTag
00645 );
00646
00651 extern TCCORE_API int TCTYPE_construct_operationinput(
00652 tag_t targetObjTypeTag,
00653 TCTYPE_operation_input_t opvar,
00654 tag_t* targetSaveAsInputTag
00655 );
00660 extern TCCORE_API int TCTYPE_free_deepcopydata(
00661 int numDeepCopyData,
00662 tag_t* deepCopyDataTags
00663 );
00664
00681 extern TCCORE_API int TCTYPE_saveas_object(
00682 tag_t targetObjectTag,
00683 tag_t saveAsInputTag,
00684 int numAttachedObjects,
00685 tag_t* deepCopyDataTags,
00686 tag_t* targetCopyTag
00687 );
00688
00692 extern TCCORE_API int TCTYPE_ask_revise_descriptor(
00693 tag_t object_type_tag,
00694 tag_t* revise_desc_tag
00695 );
00696
00701 extern TCCORE_API int TCTYPE_ask_deepcopydata(
00702 tag_t object_tag,
00703 TCTYPE_operation_input_t opvar,
00704 int *num_attached_objs,
00705 tag_t** deepcopydata_tags
00706 );
00707
00722 extern TCCORE_API int TCTYPE_revise_objects(
00723 int num_target_objs,
00724 tag_t* target_object_tags,
00725 tag_t* revise_input_tags,
00726 int* num_attached_objs,
00727 tag_t* deepcopydata_tags,
00728 tag_t** target_copy_tags,
00729 int** ifails
00730 );
00731
00735 extern TCCORE_API int TCTYPE_create_object(
00736 tag_t creInputTag,
00737 tag_t* boTag
00738 );
00739
00746 extern TCCORE_API int TCTYPE_create_objects(
00747 int n_bulks,
00748 int* quantities,
00749 tag_t* creInputTags,
00750 int* n_objTags,
00751 tag_t** objTags
00752 );
00753
00757 extern TCCORE_API int TCTYPE_set_create_display_value(
00758 tag_t creInputTag,
00759 char* propName,
00760 int n_dispValues,
00761 const char** dispValues
00764 );
00765
00769 extern TCCORE_API int TCTYPE_set_OperationInput_DisplayValue(
00770 tag_t topSvaIInputTag,
00771 char* propName,
00772 const char** dispValues
00774 );
00775
00779 extern TCCORE_API int TCTYPE_find_displayable_business_objects(
00780 const char* boName,
00781 int n_exclusionBONames,
00782 const char** exclusionBONames,
00783 int* n_displayableTypeTags,
00784 tag_t** displayableTypeTags
00785 );
00786
00791 extern TCCORE_API int TCTYPE_UIF_find_displayable_business_objects(
00792 const char* boName,
00793 int n_exclusionBONames,
00794 const char** exclusionBONames,
00795 int* n_displayableTypeTags,
00796 tag_t** displayableTypeTags,
00797 char*** typeNames,
00798 char*** displayTypeNames
00799 );
00800
00809 extern TCCORE_API int TCTYPE_UIF_find_generically_creatable_business_objects(
00810 const char* bo_name,
00811 int n_exclusion_bo_names,
00812 const char** exclusion_bo_names,
00813 int* n_displayable_type_tags,
00814 tag_t** displayable_type_tags,
00815 char*** type_names,
00816 char*** display_type_names
00817 );
00818
00823 extern TCCORE_API int TCTYPE_ask_name_rule_patterns(
00824 const char* boName,
00825 int* n_propNames,
00826 char*** propNames,
00827 int** patternCountArray,
00828 int* n_patterns,
00829 char*** patterns
00830 );
00831
00835 extern TCCORE_API int TCTYPE_ask_save_operation_context(
00836 TCTYPE_save_operation_context_t* opEnmSvOprnCtxt
00837 );
00838
00839
00840
00841 #ifdef __cplusplus
00842 }
00843 #endif
00844
00847 #include <tccore/libtccore_undef.h>
00848
00849 #endif