Oracle Forms + API REST + JSON - Tutoriel Pas à Pas
Objectif
Créer un formulaire Oracle Forms ([Link]) qui :
- Saisit un ID client
- Appelle une API REST et récupère un JSON
- Affiche le JSON dans un champ texte
- Affiche les champs nom, email et ville à partir du JSON
Étape 1 : Créer un bloc manuel
1. Ouvrir Oracle Forms Builder > File > New > Form
2. Data Block Wizard > Build a new data block manually > Nommer : CLIENTS > Terminer
Étape 2 : Ajouter les items
Dans le bloc CLIENTS, créer les champs suivants :
- ID_CLIENT (Number)
- JSON_REPONSE (Text Area, Multilignes)
- NOM_CLIENT (Text)
- EMAIL_CLIENT (Text)
- VILLE_CLIENT (Text)
- BTN_RECHERCHER (Push Button)
Étape 3 : Disposition
Dans le Layout Editor, disposer les champs comme suit :
[ID_CLIENT ] [BTN_RECHERCHER]
[NOM_CLIENT ]
[EMAIL_CLIENT ]
[VILLE_CLIENT ]
[JSON_REPONSE ] (multiligne)
Étape 4 : Code PL/SQL sur le bouton
Clic droit > PL/SQL Editor sur BTN_RECHERCHER :
DECLARE
v_json CLOB;
v_nom VARCHAR2(100);
v_email VARCHAR2(100);
v_ville VARCHAR2(100);
BEGIN
GET_CLIENT_REST(:CLIENTS.ID_CLIENT, v_json);
:CLIENTS.JSON_REPONSE := v_json;
PARSE_CLIENT_JSON(v_json, v_nom, v_email, v_ville);
:CLIENTS.NOM_CLIENT := v_nom;
:CLIENTS.EMAIL_CLIENT := v_email;
Oracle Forms + API REST + JSON - Tutoriel Pas à Pas
:CLIENTS.VILLE_CLIENT := v_ville;
END;
Étape 5 : Configuration ACL (Oracle)
Depuis SQL*Plus :
BEGIN
DBMS_NETWORK_ACL_ADMIN.append_host_ace(
host => '[Link]',
lower_port => 443,
upper_port => 443,
ace => xs$ace_type(
privilege_list => xs$name_list('connect'),
principal_name => 'TON_UTILISATEUR_ORACLE',
principal_type => xs_acl.ptype_db)
);
END;
/
Étape 6 : Test final
Compiler > Run Form
- Entrer un ID client (ex : 1)
- Cliquer sur Rechercher
- Le JSON et les champs se remplissent automatiquement
Résultat attendu
ID_CLIENT [1] [Rechercher]
NOM_CLIENT Dupont
EMAIL_CLIENT dupont@[Link]
VILLE_CLIENT Toulouse
JSON_REPONSE {
"nom":"Dupont",
"email":"dupont@[Link]",
"ville":"Toulouse"
}