remplir une table apartir d'un edit
bonjour , je suis sur jdevelopper 11g ilya un template edit ,des service , et sur oracle xe plusieurs bdd des trigger des fonctions soap.
donc voila en ajoutant une donnée a partir du template edit la table naissance n'est pas remplir , il faut UE LE TRIGGER SE DECLENCHE AVANT l'insertion pour obtenir l'url de la commune du pere grace au service web donc voila un bout de code :
Table naissance
Code:
1 2 3 4 5 6
|
NAISSANCEID VARCHAR2(100)
NOM VARCHAR2(40) -
PRENOM VARCHAR2(100)
ADDRID VARCHAR2(40)
COMMUNEID VARCHAR2(5) |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
CREATE OR REPLACE TRIGGER "NAISSANCE_INSERT" BEFORE INSERT ON NAISSANCE
FOR EACH ROW
DECLARE
NAISSANCEID VARCHAR2(35);
COMM varchar2(5);
resp XMLType;
response varchar2(30000);
URL_WILAYA varchar2(100);
URL VARCHAR2(100);
NOM VARCHAR2(100);
DATNAIS_EXCEP EXCEPTION;
COMMUNE_INEXIT_EXCEP EXCEPTION;
ADDRESS_EXCEP EXCEPTION;
BEGIN
dbms_output.put_line('1');
:NEW.COMMUNEID := '27000';
SELECT NAISSANCE_SEQ.NEXTVAL INTO NAISSANCEID FROM DUAL;
:NEW.NAISSANCEID := :NEW.COMMUNEID||NAISSANCEID;
COMM := SUBSTR(:NEW.ID_PERE,1,5);
URL_WILAYA:='127.0.0.1:7101';
response := get_commune(COMM, URL_WILAYA);
resp:= XMLType.createXML(response);
resp:= resp.extract('/url/text()');
URL:=resp.getStringVal();
DBMS_OUTPUT.PUT_LINE('url pere is : '||URL);
if URL is null then raise COMMUNE_INEXIT_EXCEP;
end if;
EXCEPTION
WHEN COMMUNE_INEXIT_EXCEP THEN RAISE_APPLICATION_ERROR(-20501,'Erreur : COMMUNE ' ||TO_CHAR(:NEW.COMMUNEID)||' inexistants'||'verifier aussi le deces id '||TO_CHAR(:NEW.NAISSANCEID)); |
function get_commune :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
create or replace function get_commune(id in varchar2, url in varchar2) return
varchar2 as soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
begin soap_request:= '<?xml version = "1.0" encoding = "UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://wilaya/">
<env:Header/>
<env:Body>
<ns1:getCommuneFindById>
<arg0>'||id||'</arg0>
</ns1:getCommuneFindById>
</env:Body>
</env:Envelope> ';
http_req:= utl_http.begin_request ( 'http://'||url||'/wilaya-wilaya-webapp/wilayaWS' , 'POST' , 'HTTP/1.1' );
utl_http.set_header(http_req, 'Content-Type', 'application/soap+xml'); utl_http.set_header(http_req, 'Content-Length', length(soap_request)); utl_http.set_header(http_req, 'SOAPAction', ''); utl_http.write_text(http_req, soap_request);
-- DBMS_OUTPUT.PUT_LINE ('request is : '||soap_request); http_resp:= utl_http.get_response(http_req);
utl_http.read_text(http_resp, soap_respond); utl_http.end_response(http_resp); resp:= XMLType.createXML(soap_respond);
-- DBMS_OUTPUT.PUT_LINE ('commune is : '||soap_respond); resp:= resp.extract('//ns2:getCommuneFindByIdResponse/return' , 'xmlns:ns2="http://wilaya/"' );
-- dbms_output.put_line('commune : '||resp.getStringVal());
return resp.getStringVal();
end; |
public Commune getCommuneFindById:
Code:
1 2 3 4
| /** <code>select o from Commune o where o.communeid like :id</code> */
public Commune getCommuneFindById(String id) {
return (Commune)em.createNamedQuery("Commune.findById").setParameter("id", id).getSingleResult();
} |
je test tout les service web jelance le template j'inser je click sur envoyais et rien n'est declenché ni émit
quelqu'un pourrait m'aidez svp merci