Package ms_ews_util_pkg

Variables, constants

const g_true

g_true constant varchar2(10):='true'

const g_false

g_false constant varchar2(10):='false'

const g_folder_id_root

g_folder_id_root constant varchar2(255):='root'

"Distinguished Folders", folders that can be referenced by name, see http://msdn.microsoft.com/en-us/library/aa580808(v=exchg.140).aspx for other folders, use find_folders to get folder id NOTE: when adding to this list, make sure to update the internal function is_distinguished_folder_id ()

const g_folder_id_message_root

g_folder_id_message_root constant varchar2(255):='msgfolderroot'

const g_folder_id_inbox

g_folder_id_inbox constant varchar2(255):='inbox'

const g_folder_id_sent_items

g_folder_id_sent_items constant varchar2(255):='sentitems'

const g_folder_id_deleted_items

g_folder_id_deleted_items constant varchar2(255):='deleteditems'

const g_folder_id_outbox

g_folder_id_outbox constant varchar2(255):='outbox'

const g_folder_id_junk_email

g_folder_id_junk_email constant varchar2(255):='junkemail'

const g_folder_id_drafts

g_folder_id_drafts constant varchar2(255):='drafts'

const g_folder_id_calendar

g_folder_id_calendar constant varchar2(255):='calendar'

const g_item_class_unknown

g_item_class_unknown constant varchar2(255):='IPM'

item classes, see http://msdn.microsoft.com/en-us/library/ff861573.aspx

const g_item_class_appointment

g_item_class_appointment constant varchar2(255):='IPM.Appointment'

const g_item_class_contact

g_item_class_contact constant varchar2(255):='IPM.Contact'

const g_item_class_message

g_item_class_message constant varchar2(255):='IPM.Note'

const g_item_class_task

g_item_class_task constant varchar2(255):='IPM.Task'

const g_item_class_meeting_request

g_item_class_meeting_request constant varchar2(255):='IPM.Schedule.Meeting.Request'

const g_body_type_best

g_body_type_best constant varchar2(255):='Best'

Body Type, see http://msdn.microsoft.com/en-us/library/aa565622(v=exchg.140).aspx

const g_body_type_html

g_body_type_html constant varchar2(255):='HTML'

const g_body_type_text

g_body_type_text constant varchar2(255):='Text'

const g_delete_type_hard_delete

g_delete_type_hard_delete constant varchar2(255):='HardDelete'

Delete Type, see http://msdn.microsoft.com/en-us/library/ff406163(v=exchg.140).aspx

const g_delete_type_move_to_d_items

g_delete_type_move_to_d_items constant varchar2(255):='MoveToDeletedItems'

const g_delete_type_soft_delete

g_delete_type_soft_delete constant varchar2(255):='SoftDelete'

const g_message_disp_save_only

g_message_disp_save_only constant varchar2(255):='SaveOnly'

Message Disposition attribute, see http://msdn.microsoft.com/en-us/library/aa565209(v=exchg.140).aspx

const g_message_disp_send_only

g_message_disp_send_only constant varchar2(255):='SendOnly'

const g_message_disp_send_and_save

g_message_disp_send_and_save constant varchar2(255):='SendAndSaveCopy'

const g_meeting_inv_send_to_none

g_meeting_inv_send_to_none constant varchar2(255):='SendToNone'

Send Meeting Invitations attribute, see http://msdn.microsoft.com/en-us/library/aa565209(v=exchg.140).aspx

const g_meeting_inv_send_only_to_all

g_meeting_inv_send_only_to_all constant varchar2(255):='SendOnlyToAll'

const g_meeting_inv_send_to_all_save

g_meeting_inv_send_to_all_save constant varchar2(255):='SendToAllAndSaveCopy'

const g_free_busy_status_free

g_free_busy_status_free constant varchar2(255):='Free'

Legacy Free Busy Status, see http://msdn.microsoft.com/en-us/library/aa566143(v=exchg.140).aspx

const g_free_busy_status_tentative

g_free_busy_status_tentative constant varchar2(255):='Tentative'

const g_free_busy_status_busy

g_free_busy_status_busy constant varchar2(255):='Busy'

const g_free_busy_status_out_of_off

g_free_busy_status_out_of_off constant varchar2(255):='OOF'

const g_free_busy_status_no_data

g_free_busy_status_no_data constant varchar2(255):='NoData'

const g_task_status_not_started

g_task_status_not_started constant varchar2(255):='NotStarted'

task status, see http://msdn.microsoft.com/en-us/library/aa563980(v=exchg.140).aspx

const g_task_status_in_progress

g_task_status_in_progress constant varchar2(255):='InProgress'

const g_task_status_completed

g_task_status_completed constant varchar2(255):='Completed'

const g_task_status_waiting_on_other

g_task_status_waiting_on_other constant varchar2(255):='WaitingOnOthers'

const g_task_status_deferred

g_task_status_deferred constant varchar2(255):='Deferred'

const g_mailbox_type_mailbox

g_mailbox_type_mailbox constant varchar2(255):='Mailbox'

mailbox type, see http://msdn.microsoft.com/en-us/library/aa563493(v=exchg.140).aspx

const g_mailbox_type_public_dl

g_mailbox_type_public_dl constant varchar2(255):='PublicDL'

const g_mailbox_type_private_dl

g_mailbox_type_private_dl constant varchar2(255):='PrivateDL'

const g_mailbox_type_contact

g_mailbox_type_contact constant varchar2(255):='Contact'

const g_mailbox_type_public_folder

g_mailbox_type_public_folder constant varchar2(255):='PublicFolder'

const g_mailbox_type_unknown

g_mailbox_type_unknown constant varchar2(255):='Unknown'

const g_mailbox_type_one_off

g_mailbox_type_one_off constant varchar2(255):='OneOff'

Functions, procedures

procedure init

procedure init(
    p_service_url in varchar2,
    p_username in varchar2,
    p_password in varchar2,
    p_wallet_path in varchar2:=null,
    p_wallet_password in varchar2:=null
)

initialize settings

function find_folders_as_list

function find_folders_as_list(
    p_parent_folder_id in varchar2:=null
) return t_folder_list

find folders

function find_folders

function find_folders(
    p_parent_folder_id in varchar2:=null
) return t_folder_tab

find folder

function get_folder_id_by_name

function get_folder_id_by_name(
    p_folder_name in varchar2,
    p_parent_folder_id in varchar2:=null
) return varchar2

get folder id by name

function get_folder

function get_folder(
    p_folder_id in varchar2
) return t_folder

get folder

function find_items_as_list

function find_items_as_list(
    p_folder_id in varchar2:=null,
    p_search_string in varchar2:=null,
    p_search_from_date in date:=null,
    p_search_to_date in date:=null,
    p_max_rows in number:=null,
    p_offset in number:=null,
    p_username in varchar2:=null
) return t_item_list

find items

function find_items

function find_items(
    p_folder_id in varchar2:=null,
    p_search_string in varchar2:=null,
    p_search_from_date in date:=null,
    p_search_to_date in date:=null,
    p_max_rows in number:=null,
    p_offset in number:=null,
    p_username in varchar2:=null
) return t_item_tab

find items

function get_item

function get_item(
    p_item_id in varchar2,
    p_body_type in varchar2:=null,
    p_include_mime_content in boolean:=false
) return t_item

get item

procedure move_item

procedure move_item(
    p_item_id in varchar2,
    p_folder_id in varchar2
)

move item

procedure copy_item

procedure copy_item(
    p_item_id in varchar2,
    p_folder_id in varchar2
)

copy item

procedure delete_item

procedure delete_item(
    p_item_id in varchar2,
    p_delete_type in varchar2:=null
)

delete item

procedure send_item

procedure send_item(
    p_item_id in varchar2,
    p_save_item_to_folder in boolean:=true
)

send item

function create_calendar_item

function create_calendar_item(
    p_item in t_item,
    p_send_meeting_invitations in varchar2:=null,
    p_required_attendees in t_str_array:=null
) return varchar2

create calendar item

function create_task_item

function create_task_item(
    p_item in t_item
) return varchar2

create task item

function create_message_item

function create_message_item(
    p_item in t_item,
    p_message_disposition in varchar2:=null,
    p_to_recipients in t_str_array:=null
) return varchar2

create message item

procedure update_item_is_read

procedure update_item_is_read(
    p_item_id in varchar2,
    p_change_key in varchar2,
    p_is_read in boolean
)

TODO: generic update_item () the following is just a proof-of-concept that demonstrates an update

function get_file_attachments_as_list

function get_file_attachments_as_list(
    p_item_id in varchar2,
    p_include_content in boolean:=false
) return t_file_attachment_list

get item file attachments

function get_file_attachments

function get_file_attachments(
    p_item_id in varchar2
) return t_file_attachment_tab

get item file attachments

function get_file_attachment

function get_file_attachment(
    p_attachment_id in varchar2
) return t_file_attachment

get file attachment

function create_file_attachment

function create_file_attachment(
    p_file_attachment in t_file_attachment
) return varchar2

create file attachment

procedure delete_attachment

procedure delete_attachment(
    p_attachment_id in varchar2
)

delete attachment

function resolve_names_as_list

function resolve_names_as_list(
    p_unresolved_entry in varchar2,
    p_return_full_contact_data in boolean:=false
) return t_resolution_list

resolve names

function resolve_names

function resolve_names(
    p_unresolved_entry in varchar2
) return t_mailbox_tab

resolve names

function expand_public_dl_as_list

function expand_public_dl_as_list(
    p_email_address in varchar2
) return t_dl_expansion_list

expand (public) distribution list

function expand_public_dl

function expand_public_dl(
    p_email_address in varchar2
) return t_dl_expansion_tab

expand (public) distribution list

Types

record t_mailbox

type t_mailbox is record(
    name varchar2(2000),
    email_address varchar2(2000),
    routing_type varchar2(255),
    mailbox_type varchar2(255),
    item_id varchar2(2000)
)

see http://msdn.microsoft.com/en-us/library/aa565036(v=exchg.140).aspx

varray t_mailbox_tab

type t_mailbox_tab is varray of t_mailbox

record t_contact

type t_contact is record(
    item_id varchar2(2000)
)

see http://msdn.microsoft.com/en-us/library/aa581315(v=exchg.140).aspx

record t_resolution

type t_resolution is record(
    mailbox t_mailbox,
    contact t_contact
)

see http://msdn.microsoft.com/en-us/library/aa581011(v=exchg.140).aspx

varray t_resolution_list

type t_resolution_list is varray of t_resolution index by binary_integer

see http://msdn.microsoft.com/en-us/library/aa580614(v=exchg.140).aspx

varray t_dl_expansion_list

type t_dl_expansion_list is varray of t_mailbox index by binary_integer

see http://msdn.microsoft.com/en-us/library/aa564322(v=exchg.140).aspx

varray t_dl_expansion_tab

type t_dl_expansion_tab is varray of t_mailbox

record t_folder

type t_folder is record(
    sequence_number number,
    folder_id varchar2(2000),
    display_name varchar2(2000),
    total_count number,
    child_folder_count number,
    unread_count number
)

see http://msdn.microsoft.com/en-us/library/aa581334(v=exchg.140).aspx

varray t_folder_list

type t_folder_list is varray of t_folder index by binary_integer

varray t_folder_tab

type t_folder_tab is varray of t_folder

record t_item

type t_item is record(
    sequence_number number,
    item_id varchar2(2000),
    change_key varchar2(2000),
    parent_folder_id varchar2(2000),
    item_class varchar2(255),
    item_size number,
    subject varchar2(2000),
    sensitivity varchar2(255),
    datetime_created date,
    datetime_sent date,
    datetime_received date,
    has_attachments varchar2(10),
    mime_content clob,
    body clob,
    from_mailbox_name varchar2(2000),
    is_read varchar2(10),
    location varchar2(2000),
    organizer_mailbox_name varchar2(2000),
    start_date date,
    end_date date,
    legacy_free_busy_status varchar2(255),
    reminder_is_set varchar2(10),
    reminder_minutes_before_start number,
    is_all_day_event varchar2(10),
    due_date date,
    status varchar2(255),
    percent_complete number,
    total_work number
)

varray t_item_list

type t_item_list is varray of t_item index by binary_integer

varray t_item_tab

type t_item_tab is varray of t_item

record t_file_attachment

type t_file_attachment is record(
    sequence_number number,
    attachment_id varchar2(2000),
    item_id varchar2(2000),
    name varchar2(2000),
    content_type varchar2(2000),
    content_id varchar2(2000),
    attachment_size number,
    content blob
)

see http://msdn.microsoft.com/en-us/library/aa580492(v=exchg.140).aspx

varray t_file_attachment_list

type t_file_attachment_list is varray of t_file_attachment index by binary_integer

varray t_file_attachment_tab

type t_file_attachment_tab is varray of t_file_attachment