2.2.5. PUT

Notă: formatul JSON este suportat doar începând cu versiunea 13.07!


Descriere

Prin metoda PUT se pot insera/modifica/șterge date în/din tabelele publicate. Valorile se trimit în format XML sau JSON în zona DATA al requestului HTTP.
  • parametru de cale: se scrie imediat după .../sdeiRESTWs/resources/rfDataExchangeInterface/ și specifică formatul utilizat pentru trimiterea de date (XML sau JSON)
  • parametrii de query: se scriu după parametrul de cale iar primul caracter este ? (.../sdeiRESTWs/resources/rfDataExchangeInterface/XML?param1=valoare&param2=valoare...)
  1. clientID: reprezintă ID-ul titularului - obligatoriu
  2. roleID: reprezintă ID-ul rolului cu care se acceseaza datele
  3. userName: nume utilizator pentru autentificare
  4. password: parola utilizator pentru autentificare
  5. publishName: numele de publicare pentru tabelă - obligatoriu

Formatul XML pentru trimiterea de date are structura:

<?xml version="1.0"?>
<webRowSet>
<metadata>
<column-name>Nume publicare coloană 1</column-name>
..........
<column-name>Nume publicare coloană N</column-name>
</metadata>
<data>
<columnValue>Valoare coloană 1</columnValue>
..........
<columnValue>Valoare coloană N</columnValue>
</data>
</webRowSet>

Formatul JSON pentru trimiterea de date are structura:
{
  "<Nume coloana 1>":<Valoare coloana 1>,
  "<Nume coloana 2>":<Valoare coloana 2>,
  ....
  "<Nume coloana N>":<Valoare coloana N>
}

  • Formatul datelor:
    • Date numerice cu zecimale: parte_întreagă[.parte_fracțională]. Fără separator de mii și punct la separatorul de zecimală
    • Date de tip Dată + Timp: DD-MM-YYYY[ HH:MI:SS]. În cazul în care se dorește folosirea datei/orei curente se poate scrie CURRENT
    • Datele de tip String in JSON: se pun intre ghilimele

Important: În cadrul unui fișier se poate trimite DOAR O SINGURĂ înregistrare. În cazul în care trebuie trimise mail multe înregistrări, ecestea se trimit în fișiere distincte!
Observație 1 Nu toate coloanele publicate trebuie specificate la transmiterea de date. Coloanele care primesc valori automate se pot ignora (de ex. coloanele de tip Număr Document - DocumentNo, Activ /IsActive, etc.)
Observație 2: Valorile pentru coloanele de tip Created, CreatedBy, Updated, UpdatedBy sunt ignorate chiar dacă sunt transmise. Aceste coloane primesc valori în mod automat.


Ștergerea unei înregistrări existente

În acest caz coloana de ID în fișierul XML trebuie să aibă valoarea înregistrării care se dorește ștearsă, dar cu semnul minus în față (<-ID>).

Procesarea documentelor

Procesarea (finalizare, anulare, pregătire, etc.) documentelor

În acest caz coloana de ID trebuie să aibă valoarea înregistrării care se dorește procesată iar coloana DocAction trebuie să aibă una dintre următoarele valori:

  • CO = Complete
  • AP = Approve
  • RJ = Reject
  • VO = Void
  • CL = Close
  • RC = Reverse Correct
  • RA = Reverse Accrual
  • PR = Prepare

Inserarea unei înregistrări noi

Pentru a introduce înregistrări noi în SocrateCloud, coloana de ID trebuie să aibă valoarea 0 (zero). 
Mai jos este un exemplu de asemenea fișier, care introduce o înregistrare în tabela de unități de măsură.

Format XML:

<?xml version="1.0"?>
<webRowSet>
<metadata>
<column-name>AD_Client_ID</column-name>
<column-name>AD_Org_ID</column-name>
<column-name>Uom_ID</column-name>
<column-name>Symbol</column-name>
<column-name>Name</column-name>
<column-name>Description</column-name>
<column-name>CostingPrecision</column-name>
<column-name>StdPrecision</column-name>
<column-name>Cod X12DE355</column-name>
</metadata>
<data>
<columnValue>11</columnValue>
<columnValue>0</columnValue>

<!-- valoare zero pentru coloana Uom_ID -» înregistrare noua--->
<columnValue>0</columnValue>

<columnValue>DOC</columnValue>
<columnValue>Document</columnValue>
<columnValue>Unitate de masura pentru documente</columnValue>
<columnValue>0</columnValue>
<columnValue>0</columnValue>
<columnValue>DOC</columnValue>
</data>
</webRowSet>

Format JSON:

{
    "AD_Client_ID":11,
    "AD_Org_ID":0,
    "Uom_ID":0,
    "Symbol":"DOC",
    "Name":"Document",
    "Description":"Unitate de masura pentru documente",
    "CostingPrecision":0,
    "StdPrecision":0,
    "Cod X12DE355":"DOC"
}

În cazul introducerilor de înregistrări noi valoarea coloanei DocAction este ignoarată chiar dacă se transmite în fișierul XML. Procesarea documentelor se face DOAR pentru înregistrări existente (vezi mai jos).
Rezultatul (răspunsul) metodei:
  • în caz de salvare cu succes: ID-ul înregistrării
  • în caz de eroare: mesaj de eroare precedat de cuvântul ERROR
  • null în caz de excepție

Modificarea unei înregistrări existente

In acest caz coloana de ID în fișierul XML trebuie să aibă valoarea înregistrarii care se dorește modificată.
Mai jos este un exemplu de asemenea fișier, care modifică descrierea unei înregistrări din tabela de unități de măsură.

Format XML:

<?xml version="1.0"?>
<webRowSet>
<metadata>
<column-name>AD_Client_ID</column-name>
<column-name>AD_Org_ID</column-name>
<column-name>Uom_ID</column-name>
<column-name>Description</column-name>
</metadata>
<data>
<columnValue>11</columnValue>
<columnValue>0</columnValue>

<!-- valoare existentă pentru coloana Uom_ID -» modificare înregistrare--->
<columnValue>1000033</columnValue>

<!-- Se modifică descrierea--->
<columnValue>UM pentru articole de tip document</columnValue>
</data>
</webRowSet>

Format JSON:
{ "AD_Client_ID":11, "AD_Org_ID":0, "Uom_ID"1000033:, "Description":"UM pentru articole de tip document" }
Rezultatul (răspunsul) metodei:
  • în caz de salvare cu succes: șir vid
  • în caz de eroare: mesaj de eroare precedat de cuvântul ERROR
  • null în caz de excepție