DECLARE TYPE result_set_type IS REF CURSOR; l_name VARCHAR2 (100); l_doc_size NUMBER; l_result_set_curr result_set_type; x_access_id NUMBER; x_file_id NUMBER; p_file_name VARCHAR2 (100) := 'G74822LRs.pdf'; PROCEDURE load_file_details (p_name IN VARCHAR2, result_set_curr OUT result_set_type) AS l_error VARCHAR2 (2000); BEGIN INSERT INTO fnd_lobs_document (NAME, mime_type, doc_size, content_type, blob_content) SELECT pl_name, 'application/pdf', DBMS_LOB.getlength (pl_pict), 'BINARY', pl_pict FROM test_files WHERE pl_name = p_name; OPEN result_set_curr FOR SELECT blob_content FROM fnd_lobs_document WHERE NAME = p_name; EXCEPTION WHEN OTHERS THEN NULL; l_error := 'LOAD_FILE_DETAILS - OTHERS' || SUBSTR (SQLERRM, 2000); DBMS_OUTPUT.put_line (l_error); END load_file_details; PROCEDURE upload_file (v_filename IN VARCHAR2, x_access_id OUT NUMBER, x_file_id OUT NUMBER) AS v_access_id NUMBER; v_file_id NUMBER; x_errbuf VARCHAR2 (200); BEGIN v_access_id := fnd_gfm.authorize (NULL); x_access_id := v_access_id; DBMS_OUTPUT.put_line ('Access id :' || v_access_id); -- The function fnd_gfm.confirm_upload return the file id v_file_id := fnd_gfm.confirm_upload (access_id => v_access_id , file_name => v_filename , program_name => 'TEST' , program_tag => 'TEST' , expiration_date => NULL , LANGUAGE => 'US' , wakeup => TRUE ); x_file_id := v_file_id; DBMS_OUTPUT.put_line ('File id :' || x_file_id); EXCEPTION WHEN OTHERS THEN x_errbuf := 'Procedure upload_file errored out with the following error : ' || SQLERRM; DBMS_OUTPUT.put_line (x_errbuf); END upload_file; BEGIN fnd_global.apps_initialize (1318, 20420, 1); load_file_details (p_name => p_file_name, result_set_curr => l_result_set_curr); upload_file (v_filename => p_file_name, x_access_id => x_access_id, x_file_id => x_file_id); COMMIT; END;