Oracle Application Express

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Oracle Application Express
software
Siglă
Tip
Dezvoltator Oracle Corporation
Data primei versiuni 2004
Ultima versiune 4.2.5 (9 aprilie 2014)
Sistem de operare
Limba PL / SQL
Licență licență de proprietate
( licența nu este gratuită )
Site-ul web apex.oracle.com/

Oracle Application Express (APEX) este un cadru dezvoltat de Oracle, conceput pentru dezvoltarea de site-uri web orientate spre date și bazate pe infrastructura furnizată de baza de date Oracle.

Salesforce APEX este tot ceea ce urmează: un limbaj OOP (programare orientată obiect) este foarte similar cu Java pentru dezvoltarea rapidă a aplicațiilor web .

Descriere

Tehnologia Apex din Salesforce este o tehnologie care permite construirea de aplicații web foarte rapid. Limba și API - ul sunt furnizate nativ în platforma CRM Salesforce PaaS (Platform as a Service) numită Force.com. Platforma Force.com este inclusă org Salesforce și permite implementarea codului Apex se află într-un dev (mediu de dezvoltare) numit Consola de dezvoltare inclus sau separat într-un IDE (mediu de dezvoltare integrat) precum Eclipse , cod Visual Studio și altele prin adăugarea plugin Force.com IDE . Abordarea de dezvoltare se numește RAD (Rapid Application Development), pentru a face o comparație cu paginile web construite care mediază tehnologiile JAVA EE , vezi JSF sau JSP .

Codul Apex este complet stocat, compilat și rulat în cloud, astfel încât nu necesită resurse locale ca cadru etc. Codul rulează pe platforma Force.com sau Lightning în funcție de tehnologia utilizată. Sintaxa Apex JAVA este suficientă pentru a o considera un derivat al Oracle Java, deși există multe diferențe și beneficiază, fără îndoială, de adăugarea Apex la utilizarea completă în Cloud , cu siguranță un mod de a efectua gestionarea datelor în obiectele bazei de date este cu siguranță mult mai eficient decât orice altă tehnologie datorită API - ului furnizat de limbă. În practică, maparea ORM, care cu alte tehnologii, este realizabilă prin intermediul unor cadre precum Hibernate și eclipseLink pentru Java, cu mai multe linii de cod logic de aplicație aici în Apex, este aproape imediată și realizată cu instrucțiuni simple ca și cum tabelele și obiectele bazei de date gestionate de mediul de dezvoltare au fost deja cartografiate.

Caracteristici

  • complet pe cloud pe măsură ce codul este salvat, compilat și executat pe serverul salesforce;
  • suport pentru programarea OOP cu interfețe, clase și moștenire;
  • Multi utilizator;
  • Integrat cu baza de date Salesforce;
  • Ușor de utilizat (are sintaxă ca Java);
  • Ușor de testat;
  • Suportă versiunea API ;

Platforma Lightning este un cadru bazat pe server care permite compilarea, stocarea și executarea codului Apex.

Caracteristicile limbajului

  • Blob: colecție de date binare salvate într-un singur obiect. Puteți transforma acest tip în șir și invers.
  • Boolean: valoare adevărată sau falsă pe un singur bit care descrie o condiție booleană.
  • Zecimal: număr zecimal punctat.
  • Dublu: un număr de virgulă pe 64 de biți.
  • Id: fiecare set de caractere de lungime 18, dacă lungimea este mai mică, este adus la 18.
  • Întreg: întreg pe 32 de biți.
  • Lung: întreg pe 64 de biți.
  • Data: formatul datei.
  • Datetime: formatul datei și orei.
  • Obiect.
  • Şir
  • sObject.

Matrice

Limbajul ne oferă matrici care sunt vectori care conțin atât elemente de tip primitiv, cât și obiecte, dar fiecare matrice reprezintă întotdeauna o listă de tipuri omogene.

Exemplul așa cum vedem mai jos pot declara o serie de șiruri și adăuga altele noi, dar nu pot adăuga un alt tip decât șirul.

 String [] arrayString; //declaraţie
arrayString = new String [] ();
// dacă știu deja dimensiunea conținutului, îl pot inițializa în faza de instanțiere în felul următor.
arrayString = new String [4] { 'look', 'as an instance', 'this array', 'String'};

pentru acces distructiv de citire sau scriere, atunci folosiți una dintre buclele pe care vi le voi arăta mai târziu.

Clase

Acum să vedem un exemplu pentru a înțelege mai bine conceptele simple văzute mai sus:

 // sintaxa declarației de clasă
{public class myFirstClassApex
    Greutate dublă = 84,90;
    Vârsta întregi = 37;
    Boolean căsătorit = fals;
    String name = "Generoso";
    Număr întreg idPearson = 123;
}

Colecții

Găsim în Apex următoarele colecții de obiecte:

Listă (colecție)

 List <Integer> distance = new List <Integer> ();
// operațiile de bază adaugă, obține, setează, accesul clar are loc cu indexul ...

Exemplu:

 distanţă. se adaugă (100);
distanţă. get (0);
distanţă. set (0, 200);

// șterge totul
distanţă. clar ();

// sortare
distanţă. sort ();

Set (Colecție)

 Set <Double> setdistance = new Set <Double> ();
// nu permite duplicate, operațiile sunt adăugate, eliminate etc.

Exemplu:

setdistance.add(20);

setdistance.add(200);

setdistance.add(100);

setdistance.remove(20);

setdistance.size();

setdistance.clear();

setdistance.contains(20);

Hartă (colecție)

 Hartă <Id, șir> harta mea = hartă nouă <Id, șir> ();
// este o pereche cheie-valoare

Harta poate fi inițializată după cum urmează:

 Map <String, String> myMap = new Map <String, String> { "name" => "Generos", "Matter" => " Programare Apex "}

Operațiunile principale sunt get și put ca în exemplul următor:

 myMap. put ( „loc de muncă”, „angajat”);
myMap. obține ( „job”);

Construcții condiționate

Construcțiile decizionale sunt:

 {if-else}, {switch}.

if (condiția booleană este adevărată) {
    executarea unei liste de declarații;
}
altceva { 
    încă listă de acțiuni;
}

De exemplu, dacă soția mea este însărcinată, vreau să sărbătoresc altfel, vreau doar să beau lapte:

 //_stata_sotiei mele este un sir.
if (my_wife_state == 'gravidă') {
    cuvânt = "ura Să mergem la cârciuma mea preferată!" ;
}
altceva {
    cuvânt = "Nu naiba beau o sticlă de lapte!" ;
}

Sistem . depanare (cuvânt);

Construcții iterative

Pentru a ne dezvolta în limbaj, avem nevoie de construcțiile iterative care sunt:

  • in timp ce
  • Face în timp ce
  • Pentru

Exemplu pentru:

 for ( contor int = 0; contor <distanță. mărime (); contor ++)
Sistem . depanare (distanță. obține (contor));

// sau din nou pentru

pentru (String MyWord: arrayString) { 
    if (myWord. egal cu ( 'look')
        Sistem . debug ( „Aceasta este poziția indexului zero”);
}

// in timp ce

Contor întreg = 0;

while (contor <distanță. mărime ()) {
    Sistem . depanare (distanță. obține (contor));
    contor ++;
}

// face în timp ce

Contor întreg = 0;

face {
    Sistem . depanare (distanță. obține (contor));
    contor ++;
}
while (contor <distanță. mărime ());

În rezumat, în limbajul Apex există clase (tipuri), declanșatoare (una sau mai multe acțiuni generate în urma unui eveniment, de exemplu inserarea unei înregistrări și aceste acțiuni pot fi efectuate înainte sau după inserare, o actualizare sau o anulare, găsim tipurile primitive (întreg, dublu etc ...), interfețele, partajarea sau fără clasele de partajare.

Declanșatoarele

Când vorbim despre declanșatoare, ne referim la un script de cod Apex care poate fi implementat în mai multe moduri de platforma Salesforce, care permite utilizatorului să efectueze acțiuni personalizate înainte sau după apariția evenimentelor, scriptul este autonom și cuvântul amintește, fără îndoială, de declanșatorii utilizați în baze de date (concept similar). Evenimentele care pot declanșa declanșatorul sunt parametrii declanșatorului în sine și sunt enumerați mai jos:

  • înainte de inserare;
  • înainte de actualizare;
  • înainte de ștergere;
  • după inserare;
  • după actualizare;
  • după ștergere;
  • după recuperare;

Pentru a gestiona atributele înregistrărilor obiectului declanșatorului, sunt utilizate variabile speciale numite context, dintre care una este specificată în exemplul următor. Variabilele de context sunt toate în următoarele:

  • isBefore: returnează o valoare booleană egală cu adevărat dacă declanșatorul examinat se declanșează înainte de un eveniment, fals în caz contrar;
  • isAfter: revine adevărat dacă declanșatorul examinat se declanșează după verificarea evenimentului;
  • isInsert: adevărat dacă este o inserare de înregistrare.
  • isUpdate: adevărat dacă înregistrările sunt actualizate;
  • isDelete: adevărat dacă evenimentul este o ștergere a înregistrării;
  • isUndelete: adevărat dacă evenimentul este o resetare a înregistrărilor șterse;
  • isExecution: dacă contextul de execuție este declanșator și nu de exemplu serviciu web;
  • nou: returnează o Listă <recordName> și este utilizat numai pentru inserare, actualizare și recuperare, iar înregistrările returnate pot fi modificate doar înainte;
  • vechi: returnează o listă de tip List <recordName> listName și este utilizat numai pentru declanșare de actualizare și ștergere;
  • newMap: returnează o listă cu ID-urile noilor înregistrări disponibile pentru actualizarea anterioară, după actualizare, după inserare și după declanșări anulate;
  • oldMap: la fel ca înainte, dar unele înregistrări înainte de a avea grijă de eveniment, disponibile pentru actualizare și ștergere declanșator.
  • size: returnează List.size ();

Să aruncăm o privire mai atentă asupra modului în care se dezlănțuie.

 // Cod declanșator
triggerNameIdentificator recordtype trigger on (inserare înainte, inserare după, înainte de actualizare, după actualizare, ștergere înainte, după ștergere) {
    for (recordtype variableSupport: Trigger. Nou) {
        if (variableSupport. fieldName == 'patternChoosedByMe') {
            Sistem . debug (  Dezactivați orice acțiune din acest bloc”);
        }
    }
}

Pentru a defini variabile și constante, avem contextul static legat de clasă și multe altele.

Baza de date Salesforce

Puterea acestui limbaj constă în capacitatea de a compila, salva și rula tot ce se află în cloud pe un server Salesforce pe platforma Lightning, prin urmare nu necesită spațiu de memorie sau instalări software în plus față de marele beneficiu care permite construirea de aplicații cu conexiune nativ la baza de date. Oracle , care ia forma de invocare directă a SOQL sau SOSL script - uri. Fiecare interogare și modificare a modelului de date se face printr-un limbaj DML (Data Manipulation Language) ale cărui afirmații sunt după cum urmează:

  • introduce
  • Actualizați
  • supărat
  • șterge
  • anulați ștergerea

Gestionarea înregistrărilor din baza de date poate avea loc fie numai prin DML, fie prin obiectul Bază de date. Un exemplu foarte simplu de declarație DML lansat fără a utiliza obiectul bazei de date este următorul:

 introduceți un cont nou (Nume = 'numeNume cont');

Interogările sunt efectuate prin intermediul a două limbi de interogare, Salesforce Object Query Language (SOQL) și Salesforce Object Search Language (SOSL). Principalele diferențe constau în faptul că prima este utilizată pentru interogări pe un singur tip de tabel și nu permite interogări prea complexe, cum ar fi unirea, dar este mai utilizată, în timp ce a doua este utilizată pentru a prelua date din mai multe înregistrări simultan și a depăși limitele altele atunci când nu există nicio certitudine cu privire la câmpurile de recuperat și datele sunt tabele multiple. Cu SOQL, comenzile sunt un subset de SQL, dar sunt efectuate numai pentru citirea SELECT, care nu permite simbolul wildcard „*”, în timp ce inserțiile, actualizările și ștergerile sunt realizate numai prin intermediul DML pur. În interogările SOSL sunt FIND-uri care se abat de la sintaxa SQL și sunt utilizate pentru recuperarea (recuperarea) datelor din mai multe tabele în același timp.

De exemplu, interogările Selectați pentru a citi câmpurile din tabelul de persoane din baza de date sunt astfel:

 pearson [] Pearsons = [SELECT * FROM person];
// matrice de obiecte de tip persoană.

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT