Thursday, December 27, 2012

Inbound

PO Inbound(UTL_FILE):


create or replace procedure cb9_po_pur_ord_in
(errbuf out varchar2,
retcode out varchar2
)
is

v_file      utl_file.file_type;
v_data      varchar2(1000);
v_first     number;
v_second    number;
v_third     number;
v_fourth    number;

v_vendor_number varchar2(100);
v_vendor_name   varchar2(100);
v_PO_number     varchar2(100);
v_PO_type       varchar2(100);
v_amount        number;

v_count         number:=0;
begin
   v_file := utl_file.fopen('XX_CUS1','CB9_PO_PUR_DET.sql','r');
   loop
      begin
      v_count := v_count+1;
         utl_file.get_line(v_file,v_data);
         if v_count > 1
         then
           -- fnd_file.put_line(fnd_file.output,v_data);
            v_first  := instr(v_data,'~',1);
            v_second := instr(v_data,'~',1,2);
            v_third  := instr(v_data,'~',1,3);
            v_fourth := instr(v_data,'~',1,4);

            v_vendor_number := substr(v_data,1,v_first-1);
            v_vendor_name   := substr(v_data,v_first+1,v_second-v_first-1);
            v_PO_number     := substr(v_data,v_second+1,v_third-v_second-1);
            v_PO_type       := substr(v_data,v_third+1,v_fourth-v_third-1);
            v_amount        := substr(v_data,v_fourth+1);

            insert into cb9_po_data
            values(v_vendor_number,v_vendor_name,v_PO_number,v_PO_type,v_amount);
         end if;
      exception
         when no_data_found then
            exit;
      end;
   end loop;
  v_file := utl_file.fopen('XX_CUS1','CB9_PO_PUR_DET2.sql','r');
   v_count := 0;
   loop
      begin
      v_count := v_count+1;
         utl_file.get_line(v_file,v_data);
         if v_count > 1
         then
           -- fnd_file.put_line(fnd_file.output,v_data);
            v_first  := instr(v_data,'~',1);
            v_second := instr(v_data,'~',1,2);
            v_third  := instr(v_data,'~',1,3);
            v_fourth := instr(v_data,'~',1,4);

            v_vendor_number := substr(v_data,1,v_first-1);
            v_vendor_name   := substr(v_data,v_first+1,v_second-v_first-1);
            v_PO_number     := substr(v_data,v_second+1,v_third-v_second-1);
            v_PO_type       := substr(v_data,v_third+1,v_fourth-v_third-1);
            v_amount        := substr(v_data,v_fourth+1);

            insert into cb9_po_data
            values(v_vendor_number,v_vendor_name,v_PO_number,v_PO_type,v_amount);
         end if;
      exception
         when no_data_found then
            exit;
      end;
   end loop;

   utl_file.fclose_all;
end;

No comments:

Post a Comment