Sunday, April 1, 2018

Save Blog file from concurrent program to Custom table column


 begin
       
          v_layout     := fnd_request.add_layout('XXCUST',
                                             'XXAR',---template short name
                                             'en',
                                             'US',
                                             'PDF'); 
                                           
         v_request_id :=
      fnd_request.submit_request (
         application   => 'XXCUST',
         program       => 'XXAR',--program short name
         description   => 'Credit/Debit Memo, Invoice Printing New (XEC)',
         start_time    => SYSDATE,
         sub_request   => FALSE,
      argument1     =>p_org_id,
         argument2     => 'TRX_NUMBER',
         argument3     => 'INV',
    argument4     =>V_TRX_NUMBER,
       argument5     =>V_TRX_NUMBER
        ); 
   --
   COMMIT;                                                                  --
   v_call_status :=
      fnd_concurrent.wait_for_request (v_request_id,
                                       INTERVAL     => 10,
                                       max_wait     => 1000,
                                       phase        => v_phase,
                                       status       => v_status,
                                       dev_phase    => v_dev_phase,
                                       dev_status   => v_status,
                                       MESSAGE      => v_message); 

   IF v_request_id = 0
   THEN
      DBMS_OUTPUT.put_line ('Concurrent request failed to submit');
   --p_return_status := 'E';
   ELSE
      DBMS_OUTPUT.put_line ('Successfully Submitted the Concurrent Request');
 

      --p_request_id := l_request_id;
 DECLARE
         src_lob    BFILE
                       := BFILENAME ('CP_OUT_DIR',
                                     'XXAR_' || v_request_id || '_1.PDF');
         dest_lob   BLOB;
      BEGIN
      UPDATE xxpn_custom_table  SET AR_INV_PRINT =EMPTY_BLOB ()  --, REQUEST_ID=v_request_id --, CHLIST_TRX_LINES_ID=P_chlist_trx_lines_id
      WHERE  LINES_ID= P_trx_lines_id
      RETURNING AR_INV_PRINT INTO dest_lob;
     
                 

         DBMS_LOB.open (src_lob, DBMS_LOB.lob_readonly);
           DBMS_LOB.OPEN (dest_lob, DBMS_LOB.lob_readwrite);
         DBMS_LOB.loadfromfile (dest_lob   => dest_lob,
                       src_lob    => src_lob,
                       amount     => DBMS_LOB.getlength (src_lob));
         DBMS_LOB.close (src_lob);
            DBMS_LOB.close (dest_lob);
         --
         COMMIT;
      END;

No comments:

Post a Comment