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.

295 lines
14 KiB

/*==============================================================================
Copyright (c) 2008 Siemens PLM Software
Unpublished - All Rights Reserved
==============================================================================*/
/**
@file
This header file declares all data types and constants to be used by clients of
MRO module.
*/
#ifndef ASBUILT_H
#define ASBUILT_H
#include <mrocore/mrocore.h>
#include <asbuilt/libasbuilt_exports.h>
#ifdef __cplusplus
extern "C"{
#endif
/**
@defgroup ASBUILT As-Built
The As-Built (AsBuilt) module implements the As-Built Structure management behaviour.
@{
*/
/**
Initializes the asbuilt module. You must call this function before calling any other ASBUILT functions.
*/
extern ASBUILT_API int ASBUILT_init_module();
/**
ITK function to get Child Lines for selected Physical BOM Line
*/
extern ASBUILT_API int ASBUILT_line_ask_all_child_lines(
tag_t bom_line, /**< (I) Tag of BOM Line */
int* count, /**< (O) Count */
tag_t** children /**< (OF) Tags of Child BOM Lines */
);
/**
ITK function to set top AsBuilt BOM Line in MRO BOM Window
*/
extern ASBUILT_API int ASBUILT_line_set_window_top(
tag_t window, /**< (I) Tag of MRO BOM Window */
tag_t physicalPart, /**< (I) Tag of Physical Part */
tag_t physicalPartRevision, /**< (I) Tag of Physical Part Revision */
tag_t* topBOMLine /**< (O) Tag of top BOM Line */
);
/**
ITK function to generate AsBuilt Structure
*/
extern ASBUILT_API int ASBUILT_gen_phystruc(
tag_t inLine, /**< (I) Parent BOM line whose children are wanted */
GenerateStructureParams* inParam, /**< (I) Parent BOM line whose children are wanted */
tag_t* phys_rev /**< (O) count Returned lines */
);
/**
ITK function to get all open usage values
*/
extern ASBUILT_API int ASBUILT_get_all_open_usages(
tag_t inLine, /**< (I) Selected AsBuiltBOMLine */
tag_t physicalPartRevision, /**< (I) Copied Physical Part Revision */
char*** openUsages, /**< (O) List of Occurrence Name */
int* count, /**< (O) Count of Occurrence Name */
tag_t** childBOMLine /**< (O) Child AsBuiltBOMLine */
);
/**
ITK function to get all open usage values
*/
extern ASBUILT_API int ASBUILT_get_all_open_usages_2(
tag_t parentPhysPart, /**< (I) Parent Physical Part */
tag_t physicalPartRevision, /**< (I) Copied Physical Part Revision */
char*** openUsages, /**< (O) List of Occurrence Name */
int* count, /**< (O) Count of Occurrence Name */
tag_t** childBOMLine /**< (O) Child AsBuiltBOMLine */
);
/**
ITK function to install AsBuilt Physical Part Revision in AsBuilt Structure
*/
extern ASBUILT_API int ASBUILT_install_asbuilt_part_revision(
tag_t inLine, /**< (I) Selected AsBuiltBOMLine on which installation happens*/
tag_t physicalPartRevision, /**< (I) Child Physical Part Revision which needs to be installed*/
tag_t selectedBOMLineImpl, /**< (I) BOMLine with a PSOccurrence - Position on which the installation happens*/
InstallPartParams *inParams, /**< (I) Dialog Input*/
tag_t* asbuiltStructure, /**< (O) Create AsBuiltStructure relation */
tag_t* installedLineTag /**< (O) Installed AsBuiltBOMLine */
);
/**
ITK function to install AsBuilt Physical Part Revision in AsBuilt Structure
*/
extern ASBUILT_API int ASBUILT_install_asbuilt_part_revision_2(
tag_t inLine, /**< (I) Selected AsBuiltBOMLine on which installation happens*/
tag_t inParentPhysicalPartRev, /**< (I) Parent Physical Part Revision */
tag_t physicalPartRevision, /**< (I) Child Physical Part Revision which needs to be installed*/
tag_t selectedBOMLineImpl, /**< (I) BOMLine with a PSOccurrence - Position on which the installation happens*/
InstallPartParams *inParams, /**< (I) Dialog Input*/
tag_t* asbuiltStructure, /**< (O) Create AsBuiltStructure relation */
tag_t* installedLineTag /**< (O) Installed AsBuiltBOMLine */
);
/**
ITK function to create compare descriptor for BOM Compare
*/
extern ASBUILT_API int ASBUILT_create_compare_desc();
/**
ITK function for AsBuilt BOM Compare using AbsOcc ID
*/
extern ASBUILT_API int ASBUILT_bom_compare(
tag_t* srcLines, /**< (I) List of lines from source window. Structures rooted by each of them will be checked. */
int srcLineCount, /**< (I) Number of source lines. */
tag_t* tarLines, /**< (I) List of lines from target widnow. Checked will be done over the structures under these lines only. */
int tarLineCount, /**< (I) Number of target lines. */
int options, /**< (I) Options of accountability check. Expected to be any combination of the following:
add 1 - For source lines with "stop" marks, if to check their children.
add 2 - If to check source lines at the lowest level only, as opposed to at all levels.
add 4 - If to search all contextes in target, as opposed to the current active context.
add 8 - If to search by absolute occurrence ID's only, as opposed to strictly by absolute
occurrence objects.
add 16 - If to compare a pre-define list of additional properties during the check.
add 32 - If to search for target lines connected via PublishLink
*/
tag_t assyCtxtLineTag, /**< (I) Tag of context line */
tag_t bomCtxtLineTag, /**< (I) Tag of BOM Context Line */
int* srcRetCount, /**< (O) Number of source lines checked. */
tag_t** srcRetTags, /**< (OF) List of source lines checked. If not interested in this output, let *srcRetCount = -1 before calling. */
int* matRetCount, /**< (O) Number of matched target lines */
tag_t** matRetTags /**< (OF) List of matched target lines. If not interested in this output, let *matRetCount = -1 before calling.*/
);
/**
ITK function for AsBuilt BOM Compare
*/
extern ASBUILT_API int ASBUILT_bom_compare_no_context(
tag_t srcLine, /**< (I) Tag of Source Line */
tag_t tarLine, /**< (I) Tag of Target Line */
const char *mode_name, /**< (I) BOM Comapre Mode */
int output_to, /**< (I) Output to */
int *srcRetCount, /**< (O) Number of source lines checked. */
tag_t **srcRetTags, /**< (OF) List of source lines checked. */
int *matRetCount, /**< (O) Number of matched target lines */
tag_t **matRetTags, /**< (OF) List of matched target lines. */
int *reportLength, /**< (O) Number of report lines*/
char ***report_lines /**< (O) Report lines */
);
/**
ITK function to create missing part AsBuilt structure
*/
extern ASBUILT_API int ASBUILT_create_missing_part_structure(
tag_t selectedLineTag, /**< (I) Tag of selected AsBuilt BOM Line */
tag_t * replacedLineTag /**< (I) Tag of replaced AsBuilt BOM Line */
);
/**
ITK function to replace Physical Part in an AsBuilt structure
*/
extern ASBUILT_API int ASBUILT_replace_physical_part(
tag_t selectedAsbuiltBOMLline, /**< (I) Selected AsBuiltBOMLine on which replace happens*/
tag_t copiedPhysPartRevision, /**< (I) Copied Physical Part Revision */
InstallPartParams *params, /**< (I) Dialog Input*/
tag_t *replacerAsbuiltBOMLine /**< (O) Replaced AsBuiltBOMLine */
);
/**
ITK function to revise As-Built Physical Part Revision
*/
extern ASBUILT_API int ASBUILT_build_physical_part_revision(
tag_t old_physical_part_revision, /**< (I) Tag of Physical Part Revision to be revised */
date_t effective_from_date, /**< (I) Effective From Date of new Revision */
tag_t* new_physical_part_revision /**< (O) Tag of new Physical Element Revision */
);
/**
Structure used search installable physical part revisions.
This structure will be used to store all valid preferred,
alternate, substitute and deviated physical part revision
and each valid count.
*/
typedef struct ASBUILT_API SearchInstallableAsbPhysPartParams
{
int preferredCount; /**< Number of preferred installable physical part revision objects.*/
tag_t* prefPhysPartRevs; /**< List of preferred installable physical part revision objects.*/
int alternateCount; /**< Number of alternate installable physical part revision objects. */
tag_t* altPhysPartRevs; /**< List of alternate installable physical part revision objects.*/
int substituteCount; /**< Number of substitute installable physical part revision objects. */
tag_t* subPhysPartRevs; /**< List of substitute installable physical part revision objects.*/
int deviatedCount; /**< Number of deviated installable physical part revision objects. */
tag_t* devPhysPartRevs; /**< List of deviated installable physical part revision objects.*/
}SearchInstallableAsbPhysPartParams;
/**
ITK function to search installable physical part revisions
*/
extern ASBUILT_API int ASBUILT_search_installable_physical_part_revisions(
tag_t selParentPhysBOMLine, /**< (I) Selected parent physical BOM line. */
tag_t selectedBOMLineImpl, /**< (I) UsageBOMLine - PSOccurrence - Position on which the installation happens. */
int attrCount, /**< (I) Total number of attributes on which search will be performed. */
char** attributeNames, /**< (I) Attribute names for which search will be performed. */
char** attributeValues, /**< (I) Attribute values for which search will be performed. */
SearchInstallableAsbPhysPartParams* outParams /**< (O) Output structure with all preferred/deviated/substiture/ alternamte physical part revision and respective count. */
);
/**
ITK function to rebuild AsBuilt Structure
*/
extern ASBUILT_API int ASBUILT_rebuild_asbuilt_structure(
tag_t inLine, /**< (I) Selected BOM line for rebuild */
date_t rebuildDate, /**< (I) Rebuild date for asbuilt structure */
tag_t* newPhysPartRev /**< (O) Created AsBuilt Physical Part Revision */
);
/**
Converts UIDs into the matching BOM Lines.
@note If any error has occurred, a #NULLTAG value will be provided for the matching offending UIDs.
@returns
<ul>
<li>#ITK_ok on success
<li>#ASBUILT_invalid_uid if any input UID is invalid.
<li>Possibly other errors
</ul>
*/
extern ASBUILT_API int ASBUILT_convert_uids_into_bom_lines(
int count, /**< (I) Number of UIDs. */
const char** bom_line_uids, /**< (I) BOM Line UIDs */
tag_t** bom_lines /**< (OF) count The BOM Lines deducted from the provided UIDs.
<br/>If an invalid UID is passed, the matching tag will be #NULLTAG. */
);
/**
Generates a recipe for an ASBUILT BOM Line.
<br>A recipe provides the properties required to make a Permanent ID for a runtime object unique.
@returns
<ul>
<li>#ITK_ok on success
<li>#CXPOM_invalid_tag if the BOM Line tag is invalid.
<li>Possibly other errors
</ul>
*/
extern ASBUILT_API int ASBUILT_generate_recipe(
tag_t asbuilt_bom_line, /**< (I) Input ASBUILT BOM Line. */
char** recipe /**< (OF) Recipe for input BOM Line. */
);
/**
Converts UIDs into the matching BOM Lines with the untraced parts visibility on or off.
@note If any error has occurred for an entry, a #NULLTAG value is provided for the matching offending UIDs and the other entries are processed.
@returns
<ul>
<li>#ITK_ok on success
<li>#POM_invalid_tag if any input UID is invalid.
<li>Possibly other errors
</ul>
*/
extern ASBUILT_API int ASBUILT_convert_uids_into_bom_lines_with_flag(
int count, /**< (I) Number of UIDs. */
const char** bom_line_uids, /**< (I) BOM Line UIDs */
logical show_untraced_parts, /**< (I) Untraced Parts Visibility*/
tag_t** bom_lines /**< (OF) count The BOM Lines deducted from the provided UIDs.
<br/>If a invalid UID is passed, the matching tag will be #NULLTAG. */
);
/** @} */
#ifdef __cplusplus
}
#endif
#include <asbuilt/libasbuilt_undef.h>
#endif