C API Structures


Overview

New C types in the API

Multipurpose structures

Submission structures

Retrieval structures


Overview

This document lists the C API structures of the following types:


New C types in the API

There are two C types defined for use in the C API: TRI_BOOL and STRING_ARRAY. TRI_BOOL is an enumerated type that acts as a boolean but can be set to an undefined value. TRI_BOOL values are:

STRING_ARRAY is a name for char** that makes pointer manipulation easier.

Note: These types appear in submission and retrieval structures.


Multipurpose structures

EXTENDED_DATA

struct sEXTENDED_DATA {
char* pszName;
char* pszValue;

sEXTENDED_DATA* next;
};


Submission structures

The following are structures used to call the API. All the submission structures have a corresponding Init function defined for them in the API. For example, SCIM_KEY structures can be initialized by a call to InitSCIMKey. Structures must be initialized by the appropriate function before they can be passed to an API call; otherwise, an error occurs.

Init functions do the following:

SCIM_KEY

struct sSCIM_KEY {
char* system;
char* component;
char* item;

char checksum[9]; /* set by API initialization functions */
};

REQUEST_CONTEXT

struct sREQUEST_CONTEXT {
long parent_id;
char* system;
char* component;
char* item;
char* module;
char* description;
char* location;
TRI_BOOL is_secure;

char checksum[9]; /* set by API initialization functions */
};

PROBLEM_CLOSURE

struct sPROBLEM_CLOSURE {
long transaction_type;
TRI_BOOL create_call;
TRI_BOOL create_problem;
TRI_BOOL close_problem;
TRI_BOOL pickup_dispatch;
TRI_BOOL transfer_user;
TRI_BOOL do_notification;
TRI_BOOL explode_group;
long solution_method;
char* call_id;
long session_id;
long dispatch_id;
char* begin_date; /* Any combination up to MM/DD/YYYY */
char* begin_time; /* 00:00:00 format */
char* end_date;
char* end_time;
char* location_id;
char* caller_id;
char* caller_name;
char* caller_phone;
char* user_id;
char* call_code;
long severity;
char* problem_code;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
char* description;
char* serial_number;
char* inventory_id;
char* problem_result;
long time_spent;
long diag_node;
char* flx_cal_vchr1;
char* flx_cal_vchr2;
char* flx_cal_vchr3;
char* flx_cal_vchr4;
long flx_cal_int1;
long flx_cal_int2;
long flx_cal_int3;
long flx_cal_int4;
char* flx_cal_date1; /* Any combination up to MM/DD/YYYY */
char* flx_cal_date2; /* Any combination up to MM/DD/YYYY */
char* flx_cal_time1; /* 00:00:00 format */
char* flx_cal_time2; /* 00:00:00 format */
char* flx_pro_vchr1;
char* flx_pro_vchr2;
char* flx_pro_vchr3;
char* flx_pro_vchr4;
long flx_pro_int1;
long flx_pro_int2;
long flx_pro_int3;
long flx_pro_int4;
char* flx_pro_date1; /* Any combination up to MM/DD/YYYY */
char* flx_pro_date2; /* Any combination up to MM/DD/YYYY */
char* flx_pro_time1; /* 00:00:00 format */
char* flx_pro_time2; /* 00:00:00 format */
char* rcv_group_id;
char* rcv_user_id;
char* line_number;
char* notification_type;
char* solution;
TRI_BOOL active;
long solution_id;
char* aid_type;
char* annotation_file;
long control_time;
long people_id;
char* organization_id;
char* rcv_site_id;
char* creator_app_id;
TRI_BOOL notify_contact;

char checksum[9]; /* set by API initialization functions */
};

PROBLEM_FILTER

struct sPROBLEM_FILTER {
char* problem_id;
char* problem_code;
char* location_id;
char* contact_id;
char* system;
char* component;
char* item;
char* module;
char* begin_date_range; /* Any combination up to MM/DD/YYYY */
char* end_date_range; /* Any combination up to MM/DD/YYYY */
long first_people_id;
char* organization_id;
char* originating_site;
char* current_site;

char checksum[9]; /* set by API initialization functions */
};

HISTORY_ATTACHMENT

struct sHISTORY_ATTACHMENT {
char* user_id;
char* date; /* Any combination up to MM/DD/YYYY */
char* time; /* 00:00:00 format */
char* end_date; /* Any combination up to MM/DD/YYYY */
char* end_time; /* 00:00:00 format */
char* entry_type;
char* description;
char* overflow;
char* entry_value;

char checksum[9]; /* set by API initialization functions */
};

NOTIFICATION

struct sNOTIFICATION {
char* rcv_user_id;
char* rcv_group_id;
char* snd_user_id;
char* notification_date;
char* notification_time;
char* title;
char* text;
long people_id;

char checksum[9]; /* set by API initialization functions */
};

LOCATION_FILTER

struct sLOCATION_FILTER {
char* location_id;
char* location_name;
char* phone_number;
char* fax_number;
char* address;
char* city;
char* state;
char* zip;
char* timezone_id;
TRI_BOOL visible;
char* flx_loc_vchr1;
char* flx_loc_vchr2;
char* flx_loc_vchr3;
char* flx_loc_vchr4;
long flx_loc_int1;
long flx_loc_int2;
long flx_loc_int3;
long flx_loc_int4;
char* flx_loc_date1; /* Any combination up to MM/DD/YYYY */
char* flx_loc_date2; /* Any combination up to MM/DD/YYYY */
char* flx_loc_time1; /* 00:00:00 format */
char* flx_loc_time2; /* 00:00:00 format */

char checksum[9]; /* set by API initialization functions */
};

CONTACT_FILTER

struct sCONTACT_FILTER {
long people_id;
char* last_name;
char* first_name;
char* middle_name;
char* employee_no;
char* phone;
char* fax;
char* alternate_phone;
char* user_id;
char* login_id;
TRI_BOOL active_person;
TRI_BOOL active_contact;
char* contact_id;
char* access_id;
char* access_password;
TRI_BOOL active_access;
TRI_BOOL reviewed;
char* flx_peo_vchr1;
char* flx_peo_vchr2;
char* flx_peo_vchr3;
char* flx_peo_vchr4;
char* flx_peo_vchr5;
char* flx_peo_vchr6;
long flx_peo_int1;
long flx_peo_int2;
long flx_peo_int3;
long flx_peo_int4;
char* flx1_peo_date; /* Any combination up to MM/DD/YYYY */
char* flx2_peo_date; /* Any combination up to MM/DD/YYYY */
char* flx1_peo_time; /* 00:00:00 format */
char* flx2_peo_time; /* 00:00:00 format */

char checksum[9]; /* set by API initialization functions */
};

PROBVIEW_FILTER

struct sPROBVIEW_FILTER {
char* problem_id;
long severity;
char* user_id;
char* group_id;
char* problem_code;
char* problem_result;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
char* close_date;
char* close_time;
long time_spent;
char* active_with;
char* call_id;
char* first_location_id;
char* first_contact_id;
char* location_id;
char* caller_id;
char* caller_phone;
char* caller_name;
long session_id;
char* session_begin_date;
char* session_begin_time;
char* session_end_date;
char* session_end_time;
char* call_code;
long session_severity;
char* session_user_id;
char* description;
char* location_name;
long solution_id;
char* open_date;
char* open_time;
char* node_name;
char* contact_name;
char* timezone_id;
long diag_node;
long first_session_id;
char* inventory_id;
char* flx_pro_vchr1;
char* flx_pro_vchr2;
char* flx_pro_vchr3;
char* flx_pro_vchr4;
long flx_pro_int1;
long flx_pro_int2;
long flx_pro_int3;
long flx_pro_int4;
char* flx_pro_date1;
char* flx_pro_date2;
char* flx_pro_time1;
char* flx_pro_time2;
char* flx_cal_vchr1;
char* flx_cal_vchr2;
char* flx_cal_vchr3;
char* flx_cal_vchr4;
long flx_cal_int1;
long flx_cal_int2;
long flx_cal_int3;
long flx_cal_int4;
char* flx_cal_date1;
char* flx_cal_date2;
char* flx_cal_time1;
char* flx_cal_time2;
char* flx_con_vchr1;
char* flx_con_vchr2;
char* flx_con_vchr3;
char* flx_con_vchr4;
long flx_con_int1;
long flx_con_int2;
long flx_con_int3;
long flx_con_int4;
char* flx_con_date1;
char* flx_con_date2;
char* flx_con_time1;
char* flx_con_time2;
char* flx_loc_vchr1;
char* flx_loc_vchr2;
char* flx_loc_vchr3;
char* flx_loc_vchr4;
long flx_loc_int1;
long flx_loc_int2;
long flx_loc_int3;
long flx_loc_int4;
char* flx_loc_date1;
char* flx_loc_date2;
char* flx_loc_time1;
char* flx_loc_time2;
long first_people_id;
char* last_name;
char* first_name;
char* middle_name;
char* organization_id;
char* originating_site;
char* current_site;

char checksum[9]; /* set by API initialization functions */
};

PROBVIEW_FILTER PROBVIEW_FILTER

typedef struct sPROBVIEW_FILTER PROBVIEW_FILTER;

struct sHIERARCHY_FILTER {
char* parent;
char* child;
char* description;
char* id;

char checksum[9]; /* set by API initialization functions */
};


Retrieval structures

SOLUTION_RECORD

struct sSOLUTION_RECORD {
char* description;
long aid_id;
char* aid_title;
long solution_id;
char* solution;
long score;
TRI_BOOL is_group;
char* problem_id;
char* organization_id;

EXTENDED_DATA* pExtendedData;

sSOLUTION_RECORD* next;
};

PROBLEM_RECORD

struct sPROBLEM_RECORD {
char* problem_id;
long severity;
char* user_id;
char* group_id;
char* active_with;
char* problem_code;
char* problem_result;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
long diag_node;
long solution_id;
char* close_date;
char* close_time;
long time_spent;
char* first_contact_id;
char* first_location_id;
long first_session_id;
char* first_call_id;
long modify_datetime;
char* node_name;
char* open_date;
char* open_time;
char* flx_pro_vchr1;
char* flx_pro_vchr2;
char* flx_pro_vchr3;
char* flx_pro_vchr4;
long flx_pro_int1;
long flx_pro_int2;
long flx_pro_int3;
long flx_pro_int4;
char* flx_pro_date1;
char* flx_pro_date2;
char* flx_pro_time1;
char* flx_pro_time2;
long first_people_id;
char* organization_id;
char* originating_site;
char* current_site;
char* creator_app_id;
char* merged_into;

EXTENDED_DATA* pExtendedData;

sPROBLEM_RECORD* next;
};

HISTORY_RECORD

struct sHISTORY_RECORD {
long history_id;
char* problem_id;
char* user_id;
char* date; /* Any combination up to MM/DD/YYYY */
char* time; /* 00:00:00 format */
char* end_date; /* Any combination up to MM/DD/YYYY */
char* end_time; /* 00:00:00 format */
char* entry_type;
char* description;
char* overflow;
char* entry_value;
long modify_datetime;

EXTENDED_DATA* pExtendedData;

sHISTORY_RECORD* next;
};

USER_RECORD

struct sUSER_RECORD {
char* user_id;
char* user_name;
long active_flag;
long security_mask;
long modify_datetime;
char* flx_usr_vchr1;
char* flx_usr_vchr2;
char* flx_usr_vchr3;
char* flx_usr_vchr4;
long flx_usr_int1;
long flx_usr_int2;
long flx_usr_int3;
long flx_usr_int4;
char* flx_usr_date1; /* Any combination up to MM/DD/YYYY */
char* flx_usr_date2; /* Any combination up to MM/DD/YYYY */
char* flx_usr_time1; /* 00:00:00 format */
char* flx_usr_time2; /* 00:00:00 format */
long alarm_poll_period;
long people_id;
char* site_id;

EXTENDED_DATA* pExtendedData;

sUSER_RECORD* next;
};

GROUP_RECORD

struct sGROUP_RECORD {
char* group_id;
char* group_name;
long security_mask;
long modify_datetime;
char* site_id;
long is_ccb;
TRI_BOOL is_prob_trgt;
TRI_BOOL is_dfct_trgt;

EXTENDED_DATA* pExtendedData;

sGROUP_RECORD* next;
};

CALL_SESSION

struct sCALL_SESSION {
char* call_id;
char* call_begin_date;
char* call_begin_time;
char* call_end_date;
char* call_end_time;
char* user_id;
char* location_id;
char* caller_id;
char* caller_phone;
long session_id;
char* problem_id;
char* session_begin_date;
char* session_begin_time;
char* session_end_date;
char* session_end_time;
char* call_code;
long severity;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
char* description;
char* location_name;
char* contact_name;
long modify_datetime;
char* inventory_id;
char* flx_cal_vchr1;
char* flx_cal_vchr2;
char* flx_cal_vchr3;
char* flx_cal_vchr4;
long flx_cal_int1;
long flx_cal_int2;
long flx_cal_int3;
long flx_cal_int4;
char* flx_cal_date1; /* Any combination up to MM/DD/YYYY */
char* flx_cal_date2; /* Any combination up to MM/DD/YYYY */
char* flx_cal_time1; /* 00:00:00 format */
char* flx_cal_time2; /* 00:00:00 format */
char* flx_con_vchr1;
char* flx_con_vchr2;
char* flx_con_vchr3;
char* flx_con_vchr4;
long flx_con_int1;
long flx_con_int2;
long flx_con_int3;
long flx_con_int4;
char* flx_con_date1; /* Any combination up to MM/DD/YYYY */
char* flx_con_date2; /* Any combination up to MM/DD/YYYY */
char* flx_con_time1; /* 00:00:00 format */
char* flx_con_time2; /* 00:00:00 format */
char* flx_loc_vchr1;
char* flx_loc_vchr2;
char* flx_loc_vchr3;
char* flx_loc_vchr4;
long flx_loc_int1;
long flx_loc_int2;
long flx_loc_int3;
long flx_loc_int4;
char* flx_loc_date1; /* Any combination up to MM/DD/YYYY */
char* flx_loc_date2; /* Any combination up to MM/DD/YYYY */
char* flx_loc_time1; /* 00:00:00 format */
char* flx_loc_time2; /* 00:00:00 format */
char* last_name;
char* first_name;
char* middle_name;
char* organization_id;
char* originating_site;

EXTENDED_DATA* pExtendedData;

sCALL_SESSION* next;
};

CALL_SESSION

typedef struct sCALL_SESSION CALL_SESSION;

struct sLOCATION_RECORD {
char* location_id;
char* location_name;
char* phone_number;
char* fax_number;
char* address;
char* city;
char* state;
char* zip;
char* timezone_id;
long modify_datetime;
TRI_BOOL visible;
char* flx_loc_vchr1;
char* flx_loc_vchr2;
char* flx_loc_vchr3;
char* flx_loc_vchr4;
long flx_loc_int1;
long flx_loc_int2;
long flx_loc_int3;
long flx_loc_int4;
char* flx_loc_date1;/* Any combination up to MM/DD/YYYY */
char* flx_loc_date2;/* Any combination up to MM/DD/YYYY */
char* flx_loc_time1;/* 00:00:00 format */
char* flx_loc_time2;/* 00:00:00 format */

EXTENDED_DATA* pExtendedData;

sLOCATION_RECORD* next;
};

CONTACT_RECORD

struct sCONTACT_RECORD {
long people_id;
char* last_name;
char* first_name;
char* middle_name;
char* employee_no;
char* phone;
char* fax;
char* alternate_phone;
char* user_id;
char* login_id;
TRI_BOOL active_person;
TRI_BOOL active_contact;
char* contact_id;
char* access_id;
char* access_password;
TRI_BOOL active_access;
long access_profile_id;
TRI_BOOL reviewed;
char* flx_peo_vchr1;
char* flx_peo_vchr2;
char* flx_peo_vchr3;
char* flx_peo_vchr4;
char* flx_peo_vchr5;
char* flx_peo_vchr6;
long flx_peo_int1;
long flx_peo_int2;
long flx_peo_int3;
long flx_peo_int4;
char* flx1_peo_date; /* Any combination up to MM/DD/YYYY */
char* flx2_peo_date; /* Any combination up to MM/DD/YYYY */
char* flx1_peo_time; /* 00:00:00 format */
char* flx2_peo_time; /* 00:00:00 format */
long modify_datetime;

EXTENDED_DATA* pExtendedData;

sCONTACT_RECORD* next;
};

HYPERTREE_NODE

struct sHYPERTREE_NODE {
long hypernode_id;
char* title;
char* question;
TRI_BOOL solved;
long gotonode_id;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
long most_recent_use;
char* modify_user;
TRI_BOOL node_in_production;
char* action;
char* service;
TRI_BOOL entry_point;
TRI_BOOL unused_node;
char* entry_routine;
char* exit_routine;
long solution_count;
long solution_id;
TRI_BOOL is_root;
long modify_datetime;

EXTENDED_DATA* pExtendedData;

sHYPERTREE_NODE* next;
};

HYPERTREE_RESPONSE

struct sHYPERTREE_RESPONSE {
long child_hypernode;
long hypernode_id;
char* response_text;
long use_count;
long modify_datetime;

EXTENDED_DATA* pExtendedData;

sHYPERTREE_RESPONSE* next;
};

PROBVIEW_RECORD

struct sPROBVIEW_RECORD {
char* problem_id;
long severity;
char* user_id;
char* group_id;
char* problem_code;
char* problem_result;
char* problem_type;
char* system;
char* component;
char* item;
char* module;
char* close_date;
char* close_time;
long time_spent;
char* active_with;
char* call_id;
char* first_location_id;
char* first_contact_id;
char* location_id;
char* caller_id;
char* caller_phone;
char* caller_name;
long session_id;
char* session_begin_date;
char* session_begin_time;
char* session_end_date;
char* session_end_time;
char* call_code;
long session_severity;
char* session_user_id;
char* description;
char* location_name;
long solution_id;
char* open_date;
char* open_time;
char* node_name;
char* contact_name;
char* timezone_id;
long diag_node;
long modify_datetime;
long first_session_id;
TRI_BOOL notify_contact;
char* inventory_id;
char* flx_pro_vchr1;
char* flx_pro_vchr2;
char* flx_pro_vchr3;
char* flx_pro_vchr4;
long flx_pro_int1;
long flx_pro_int2;
long flx_pro_int3;
long flx_pro_int4;
char* flx_pro_date1;
char* flx_pro_date2;
char* flx_pro_time1;
char* flx_pro_time2;
char* flx_cal_vchr1;
char* flx_cal_vchr2;
char* flx_cal_vchr3;
char* flx_cal_vchr4;
long flx_cal_int1;
long flx_cal_int2;
long flx_cal_int3;
long flx_cal_int4;
char* flx_cal_date1;
char* flx_cal_date2;
char* flx_cal_time1;
char* flx_cal_time2;
char* flx_con_vchr1;
char* flx_con_vchr2;
char* flx_con_vchr3;
char* flx_con_vchr4;
long flx_con_int1;
long flx_con_int2;
long flx_con_int3;
long flx_con_int4;
char* flx_con_date1;
char* flx_con_date2;
char* flx_con_time1;
char* flx_con_time2;
char* flx_loc_vchr1;
char* flx_loc_vchr2;
char* flx_loc_vchr3;
char* flx_loc_vchr4;
long flx_loc_int1;
long flx_loc_int2;
long flx_loc_int3;
long flx_loc_int4;
char* flx_loc_date1;
char* flx_loc_date2;
char* flx_loc_time1;
char* flx_loc_time2;
long people_id;
char* last_name;
char* first_name;
char* middle_name;
char* organization_id;
char* originating_site;
char* current_site;

EXTENDED_DATA* pExtendedData;

sPROBVIEW_RECORD* next;
};

PROBVIEW_RECORD PROBVIEW_RECORD

typedef struct sPROBVIEW_RECORD PROBVIEW_RECORD;

struct sHIERARCHY_RECORD {
char* parent;
char* child;
char* description;
char* id;

EXTENDED_DATA* pExtendedData;

sHIERARCHY_RECORD* next;
};