/*=======================================================================+ | Copyright (c) 1995 Oracle Corporation Redwood Shores, California, USA| | All rights reserved. | +=======================================================================+ | FILENAME | AFWFDMGS.pls | DESCRIPTION | PL/SQL spec for package: FND_DOCUMENT_MANAGEMENT *=======================================================================*/ whenever sqlerror exit failure rollback; set escape '*' set escape '\' set array 1; create or replace package FND_DOCUMENT_MANAGEMENT as /* $Header: AFWFDMGS.pls 26.0 2000/07/05 22:52:23 kma ship $ */ /*=========================================================================== PL*SQL TABLE NAME: fnd_dm_product_parms_type DESCRIPTION: stores the list of parameters for a given function ============================================================================*/ TYPE fnd_dm_product_parms_type IS RECORD ( parameter_name VARCHAR2(80), parameter_syntax VARCHAR2(240) ); TYPE fnd_dm_product_parms_tbl_type IS TABLE OF fnd_document_management.fnd_dm_product_parms_type INDEX BY BINARY_INTEGER; /*=========================================================================== PL*SQL TABLE NAME: fnd_dm_product_parms_type DESCRIPTION: stores the list of parameters for a given function ============================================================================*/ TYPE fnd_document_attributes IS RECORD ( document_identifier VARCHAR2(2000), document_name VARCHAR2(240), document_type VARCHAR2(80), filename VARCHAR2(80), created_by VARCHAR2(80), last_updated_by VARCHAR2(80), last_update_date VARCHAR2(40), locked_by VARCHAR2(80), document_size VARCHAR2(20), document_status VARCHAR2(20), current_version VARCHAR2(10), latest_version VARCHAR2(10) ); /*=========================================================================== Function get_search_document_url Purpose Bring up a search window to allow the user to find a document in their document management system. The function does not take a document system argument because you'll be first asked to choose which document management system to search before given the actual search criteria. The challenge here is to return the DM system id, the document id, and the document name for the document that you've selected during your search process. We'll likely need our DM software partners to add new arguments to their standard URL syntax to allow for extra url links/icons that refer to Oracle Application functions that will allow us to return the selected documents that you wish to attach to your application business objects. The extra arguments would be pushed into the standard HTML templates so you can execute these functions when you've selected the appropriate document. Parameters callback - The URL you would like to envoke after the user has selected the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. display_document_URL - The URL result to search for a specific document ============================================================================*/ PROCEDURE get_search_document_url (username IN Varchar2, callback_function IN Varchar2, html_formatting IN Boolean, search_document_URL OUT Varchar2); /*=========================================================================== Function get_create_document_url Purpose Create a new document in your Document Management System for a local file stored on your file system. The challenge here is to return the DM system name and the document id/name for the document that you've just added to the DM system. If your in the attachments form and you've attached a file, you may wish to add that file to a DM system by clicking on the Create New link. Once you provide all the meta data for that document in the DM system we'll need to push the document information back to the creating application object. We'll likely need our DM software partners to add new arguments to their standard URL syntax to allow for extra url links/icons that refer to Oracle Application functions that will allow us to return the selected document id information once you've created your document. The extra arguments would be pushed into the standard HTML templates so you can execute these functions when you've selected the created the document. Parameters callback - The URL you would like to envoke after the user has created in the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. create_document_URL - The URL result to create the selected document on the selected node ============================================================================*/ PROCEDURE get_create_document_url (username IN Varchar2, callback_function IN Varchar2, html_formatting IN Boolean, create_document_URL OUT Varchar2); /*=========================================================================== Function get_browse_document_url Purpose Browse through a folder hierarchy and choose the document you wish to attach then return that document to the calling application. The challenge here is to return the DM system name and the document id/name for the document that you've selected in the DM system. If your in the attachments form and you've attached a file, you may wish to select a file using the browse feature. Once you select a document in the DM system we'll need to push the document information back to the creating application object. We'll likely need our DM software partners to add new arguments to their standard URL syntax to allow for extra url links/icons that refer to Oracle Application functions that will allow us to return the selected document id information once you've created your document. The extra arguments would be pushed into the standard HTML templates so you can execute these functions when you've selected the created the document. ============================================================================*/ PROCEDURE get_browse_document_url (username IN Varchar2, callback_function IN Varchar2, html_formatting IN Boolean, browse_document_URL OUT Varchar2); /*=========================================================================== Function get_display_document_url Purpose Invoke the appropriate document viewer for the selected document. Most document management systems support a wide range of document formats for viewing. We will rely on the document management system to display the document in it's native format whenever possible. Parameters document_identifier - The dm document Identifier from which your going display the document. show_document_icon - Should the function add an icon along with the document name to represent the document anchor html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. display_document_URL - The URL result to display the selected document from the selected node ============================================================================*/ PROCEDURE get_display_document_url (username IN Varchar2, document_identifier IN Varchar2, show_document_icon IN Boolean, html_formatting IN Boolean, display_document_URL OUT Varchar2); /*=========================================================================== Function get_original_document_url Purpose Invoke the appropriate document viewer for the latest version of the selected document. The default operation of the DM system is to show the version that was attached to the item. We are providing another function here to show the most recent version of the document. Most document management systems support a wide range of document formats for viewing. We will rely on the document management system to display the document in it's native format whenever possible. Parameters document_identifier - The dm document Identifier from which your going display the document. show_document_icon - Should the function add an icon along with the document name to represent the document anchor html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. original_document_URL - The URL result to display the selected document from the selected node ============================================================================*/ PROCEDURE get_original_document_url (username IN Varchar2, document_identifier IN Varchar2, show_document_icon IN Boolean, html_formatting IN Boolean, original_document_URL OUT Varchar2); /*=========================================================================== Function get_fetch_document_url Purpose Fetch a copy of a document from a document management system and place it on the local system. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. fetch_document_URL - The URL result to fetch the selected document from the selected node ============================================================================*/ PROCEDURE get_fetch_document_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, fetch_document_URL OUT Varchar2); /*=========================================================================== Function get_check_out_document_url Purpose Lock the document in the DM system so that no other user can check in a new revision of the document while you hold the lock. This function will also allow you to create a local copy of the document on your file system. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. check_out_document_URL - The URL result to check out the selected document from the selected node ============================================================================*/ PROCEDURE get_check_out_document_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, check_out_document_URL OUT Varchar2); /*=========================================================================== Function get_check_in_document_url Purpose Copy a new version of a file from your local file system back into the document management system. UnLock the document in the DM system so that other users can work on the document. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. check_in_document_URL - The URL result to check in the selected document from the selected node ============================================================================*/ PROCEDURE get_check_in_document_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, check_in_document_URL OUT Varchar2); /*=========================================================================== Function get_lock_document_url Purpose Lock the document in the DM system so that no other user can check in a new revision of the document while you hold the lock. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. lock_document_URL - The URL result to lock the selected document from the selected node ============================================================================*/ PROCEDURE get_lock_document_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, lock_document_URL OUT Varchar2); /*=========================================================================== Function get_unlock_document_url Purpose Unlock the document in the DM system without checking in a new version of the document so that other users can check in new revisions of the document. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. unlock_document_URL - The URL result to unlock the selected document from the selected node ============================================================================*/ PROCEDURE get_unlock_document_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, unlock_document_URL OUT Varchar2); /*=========================================================================== Function get_display_history_url Purpose Display the file history for the document in the Document Management System. Display the document title, type, size, whether the document is locked and if so by who, who has edited the document and when, etc. Parameters document_identifier - The dm document Identifier from which your going display the document. html_formatting - Tells the function whether you want just the URL or the URL with the appropriate icon and prompt name. If you only want the URL then pass FALSE. If you want the URL with a HTML formatted icon and translated function name then pass TRUE. unlock_document_URL - The URL result to unlock the selected document from the selected node ============================================================================*/ PROCEDURE get_display_history_url (username IN Varchar2, document_identifier IN Varchar2, html_formatting IN Boolean, display_history_URL OUT Varchar2); /*=========================================================================== Function get_launch_document_url Purpose Set up the anchor to launch a new window with a frameset with two frames. The upper frame has all the controls. The lower frame displays the document. ============================================================================*/ PROCEDURE get_launch_document_url (username IN Varchar2, document_identifier IN Varchar2, display_icon IN Boolean, launch_document_URL OUT Varchar2); /*=========================================================================== Function create_display_document_url Purpose Launches the toolbar in one frame for the document operations and then creates another frame to display the document. ============================================================================*/ PROCEDURE create_display_document_url (username IN Varchar2, document_identifier IN Varchar2); /*=========================================================================== Function get_open_dm_display_window Purpose Get the javascript function to open a dm window based on a url and a window size. This java script function will be used by all the DM display functions to open the appropriate DM window. This function also gives the current window a name so that the dm window can call back to the javascript functions in the current window. Parameters ============================================================================*/ PROCEDURE get_open_dm_display_window; /*=========================================================================== Function get_open_dm_attach_window Purpose Get the javascript function to open a dm window based on a url and a window size. This java script function will be used by all the DM functions to open the appropriate DM window when attaching a new document to a business object. This function also gives the current window a name so that the dm window can call back to the javascript functions in the current window. Parameters ============================================================================*/ PROCEDURE get_open_dm_attach_window; /*=========================================================================== Function set_document_id_html Purpose Get the javascript function to set the appropriate destination field on your html form from the document management select function. Parameters function_name - The name of the javascript function. This naming allows you to have multiple document fields on the same page. frame_name - The name of the html frame for the current ui that you wish to interact with form_name - The name of the html form for the current ui that you wish to interact with document_id_field_name - The name of the html field that you would like to write the resulting document identifier to: Document identifier is the concatention of the following values: nodeid:documentid:version:document_name document_name_field_name - The name of the html field that you would like to write the resulting document name to. ============================================================================*/ PROCEDURE set_document_id_html ( frame_name IN VARCHAR2, form_name IN VARCHAR2, document_id_field_name IN VARCHAR2, document_name_field_name IN VARCHAR2, callback_url OUT VARCHAR2 ); -- -- PackDocInfo -- Pack together the document components out of a document type -- attribute. -- -- dm_node_id - Id for of the dm system where the document is -- maintained -- -- document_id - Identifier for the document for the particular dm node -- -- version - Version of Document that was selected -- -- document_info - Concatenated string of characters that includes the -- nodeid, document id, version, and -- document name in the following format: -- -- nodeid:documentid:version -- -- procedure PackDocInfo(dm_node_id in number, document_id in varchar2, version in varchar2, document_info out varchar2); -- -- ParseDocInfo -- Parse out the document components out of a document type -- attribute. -- -- document_info - Concatenated string of characters that includes the -- nodeid, document id, version, and -- document name in the following format: -- -- nodeid:documentid:version -- -- dm_node_id - Id for of the dm system where the document is -- maintained -- -- document_id - Identifier for the document for the particular dm node -- -- version - Version of Document that was selected -- -- procedure ParseDocInfo(document_info in varchar2, dm_node_id out number, document_id out varchar2, version out varchar2); /*=========================================================================== Function create_document_toolbar Purpose create the toolbar for checking in/checking out etc. documents based on the document identifier ============================================================================*/ PROCEDURE create_document_toolbar ( username IN Varchar2, document_identifier IN Varchar2 ); /*=========================================================================== Function get_launch_attach_url Purpose Set up the anchor to launch a new window with a frameset with two frames. The upper frame has all the controls. The lower frame displays the document. ============================================================================*/ PROCEDURE get_launch_attach_url (username IN Varchar2, callback_function IN Varchar2, display_icon IN Boolean, launch_attach_URL OUT Varchar2); /*=========================================================================== Function create_display_document_url Purpose Launches the toolbar in one frame for the document operations and then creates another frame to display the document. ============================================================================*/ PROCEDURE create_attach_document_url (username IN Varchar2, callback_function IN Varchar2); /*=========================================================================== Function create_document_toolbar Purpose create the toolbar for checking in/checking out etc. documents based on the document identifier ============================================================================*/ PROCEDURE create_attach_toolbar ( username IN VARCHAR2, callback_function IN VARCHAR2 ); /*=========================================================================== Function get_dm_home Purpose fetch the document management home preference for a given user. If there is no home defined for a user then go check the default. If there is no default defined then get the first dm_node in the list. ============================================================================*/ procedure get_dm_home ( username IN VARCHAR2, dm_node_id OUT VARCHAR2, dm_node_name OUT VARCHAR2); /*=========================================================================== Function set_dm_home Purpose set the document management home preference for a given user. ============================================================================*/ procedure set_dm_home ( username IN VARCHAR2, dm_node_id IN VARCHAR2); /*=========================================================================== Function set_dm_home_html Purpose set the document management home preference for a given user throught the html interface ============================================================================*/ procedure set_dm_home_html ( dm_node_id IN VARCHAR2, username IN VARCHAR2, callback IN VARCHAR2); /*=========================================================================== Function Dm_Nodes_Display Purpose Display the various document management server nodes that the administrator has set up as their enterprise document network ============================================================================*/ procedure Dm_Nodes_Display; /*=========================================================================== Function Dm_Nodes_edit Purpose Edit or add a new node to the enterprise document network ============================================================================*/ procedure Dm_Nodes_Edit ( p_node_id IN VARCHAR2 DEFAULT NULL ); /*=========================================================================== Function Dm_Nodes_Update Purpose Execute the update of the attributes for the document management node. ============================================================================*/ procedure Dm_Nodes_Update ( p_node_id IN VARCHAR2 DEFAULT NULL, p_node_name IN VARCHAR2 DEFAULT NULL, p_node_description IN VARCHAR2 DEFAULT NULL, p_connect_syntax IN VARCHAR2 DEFAULT NULL, p_product_id IN VARCHAR2 DEFAULT NULL, p_product_name IN VARCHAR2 DEFAULT NULL ); /*=========================================================================== Function Dm_Nodes_Confirm_Delete Purpose Delete a currently defined document management node that has been set up by an administrator. There is no check to see if any documents are referencing the document node that is about to be deleted. Deleting a document node that has references will produce warnings when you try to view documents that use this reference. ============================================================================*/ procedure Dm_Nodes_Confirm_Delete ( p_node_id IN VARCHAR2 DEFAULT NULL ); /*=========================================================================== Function Dm_Nodes_Delete Purpose Does the physical delete of a document node after the delete window has been confirmed by the user ============================================================================*/ procedure Dm_Nodes_Delete ( p_node_id IN VARCHAR2 DEFAULT NULL ); /*=========================================================================== Function choose home Purpose Choose your home document management node. You can only search or add to one document management system at a time. This function allows you change which document system you are currently pointing at. ============================================================================*/ procedure choose_home (username IN VARCHAR2 DEFAULT NULL, callback IN VARCHAR2 DEFAULT NULL); procedure Product_LOV (p_titles_only IN VARCHAR2 DEFAULT NULL, p_find_criteria IN VARCHAR2 DEFAULT NULL); /*=========================================================================== Function get_document_attributes Purpose gets the current document meta data ============================================================================*/ PROCEDURE get_document_attributes ( username IN Varchar2, document_identifier in varchar2, document_attributes out fnd_document_management.fnd_document_attributes); /*=========================================================================== Function set_document_form_fields Purpose Copy the document id and name to fields on a form. This function is meant to fix the browser security issue of not being able to call javascript from one window page to another when those two pages are sourced by more than one server. ============================================================================*/ PROCEDURE set_document_form_fields (document_identifier in varchar2); /*=========================================================================== Function get_document_token_value Purpose gets a token attribute from an attribute page based on the requested token that is passed in ============================================================================*/ PROCEDURE get_document_token_value (document_text IN VARCHAR2, requested_token IN VARCHAR2, token_value OUT VARCHAR2); /*=========================================================================== Function show_transport_message Purpose Displays a message in the transport window when a document has been selected and then closes itself and the document management window. ============================================================================*/ PROCEDURE show_transport_message; /*=========================================================================== Function get_ticket Purpose Get the current value of the ticket. If the ticket is not set then create a random number and insert it ============================================================================*/ FUNCTION get_ticket (username IN VARCHAR2) RETURN VARCHAR2; /*=========================================================================== Function validate_ticket Purpose Function for the DM system to validate the current value of the ticket for single signon. We will create the initial value for the ticket. We will then pass that ticket to the functions that the user can execute. The DM vendor will then call us back through a database link or HTTP request to verify the value of the ticket. If the ticket is valid then the DM vendor will create a new value for the ticket and pass it to us. They will keep track of the value in that ticket so don't have to continually call this function to validate the ticket. This function is only available through a sql*net database link since you cannot have OUT parameters for a HTTP request. valid_ticket is returned with a value: 0 = invalid ticket 1 = valid ticket ============================================================================*/ PROCEDURE validate_ticket (username IN VARCHAR2, ticket IN VARCHAR2, valid_ticket OUT NUMBER); /*=========================================================================== Function validate_ticket_http Purpose Function for the DM system to validate the current value of the ticket for single signon. We will create the initial value for the ticket. We will then pass that ticket to the functions that the user can execute. The DM vendor will then call us back through a database link or HTTP request to verify the value of the ticket. If the ticket is valid then the DM vendor will create a new value for the ticket and pass it to us. They will keep track of the value in that ticket so don't have to continually call this function to validate the ticket. This function is only available through a sql*net database link since you cannot have OUT parameters for a HTTP request. valid_ticket is returned with a value: 0 = invalid ticket 1 = valid ticket ============================================================================*/ PROCEDURE validate_ticket_HTTP (username IN VARCHAR2, ticket IN VARCHAR2); /*=========================================================================== Function modulate_ticket Purpose Function for the DM system to update the current value of the ticket for single signon. The DM vendor will create a value of the ticket and pass it to us. They will keep track of the value in that ticket so when we call them with the value they will know what that value is so they do not have to continually revalidate the ticket in our system. If the ticket value is null then we will create a random number and plug it in. ============================================================================*/ PROCEDURE modulate_ticket (username IN VARCHAR2, ticket IN VARCHAR2); PROCEDURE test (stringy IN VARCHAR2); PROCEDURE show_test_message ( document_id IN VARCHAR2, display_type IN VARCHAR2, document IN OUT VARCHAR2, document_type IN OUT VARCHAR2); end FND_DOCUMENT_MANAGEMENT; / -- show errors package FND_DOCUMENT_MANAGEMENT; commit; exit;