create or replace procedure Receive_Order ( p_order in varchar2 )


  -- For a complete test, the URL corrsponding to this procedure should
  -- be password protected using the Basic scheme - ie such that just
  -- a username and password are rquired.

is

  v_verified_order  varchar2(32767);
  v_your_ref        integer;
  v_customer_id     integer;
  v_scu             integer;
  v_quantity        integer;
begin

  v_verified_order := Parse_Message.Verify_Format ( p_order, Tags.ordr );

  v_customer_id := To_Number (
    Parse_Message.Extract_Value ( v_verified_order, Tags.customer_id )
    );
  v_your_ref := To_Number (
    Parse_Message.Extract_Value ( v_verified_order, Tags.our_ref )

    );
  v_scu := To_Number (
    Parse_Message.Extract_Value ( v_verified_order, Tags.scu )
    );
  v_quantity := To_Number (
    Parse_Message.Extract_Value ( v_verified_order, Tags.quantity )
    );


  insert into vendor_orders
    ( order_ref,  customer_id,   scu,   quantity,   order_date, status )
     values
    ( v_your_ref, v_customer_id, v_scu, v_quantity, SYSDATE,    'new' );

  Owa_Util.Mime_Header ( ccontent_type => 'text/xml' );

  Htp.Print (
    Tags.confirmation

||  Tags.your_ref      || To_Char ( v_your_ref ) || Tags.Close ( Tags.your_ref )
||  Tags.date_received || To_Char ( SYSDATE, 'hh:mi:ss::DD-Mon-YYYY' )
||  Tags.Close ( Tags.date_received )
||  Tags.Close ( Tags.confirmation )
  );
  commit;
 
exception
  when Parse_Message.Bad_Format then
    rollback; Htp.Print ( 'Parse_Message.Bad_Format: ' || SQLERRM );

  when others then
    rollback; Htp.Print ( SQLERRM );
end Receive_Order;
/
Show Errors