Version 6 (modified by jachtelik, 11 years ago)

--

Ustawienie cechy

Definicja parametrów:

<?php

/**
 *  Ustawienie cechy
 *   
 *  @param featid Int    - Identyfikator cechy (features.featid)
 *  @param tblnam String - Identyfikator tekstowy obiektu do jakiego jest przypisana cecha 
 *                          (contacts - Kontakty, types_of_documents_view - Dokumenty, processes - Sprawy, events - Zdarzenia, 
 *                          users - Pracownicy, devices - Urządzenia, depository - Produkty, resources - Zasoby)
 *  @param tbl_id Int    - Identyfikator obiektu, klucz główny wskazany w tblnam, gdzie tblnam to nazwa tabeli czyli dla contacts tbl_id = contid
 *                          wyjątkiem są dokumenty tam tbl_id wskazuje na doc_id z tabeli documents
 *  @param value Mixed   - Wartość cechy. W przypadku cech wyboru definiowanych przez użytkownika (oznaczonych atrybutem multi_ w 
 *                          tabeli features_view) parametr ten musi być tablicą.
 *                          Dodatkowo aby usunąć wartość z cechy value === NULL (nie pusty string a NULL)
 *   
 *  @return int - 1 sukces, 0 w razie niepowodzenia
 *   
 *  @throws Exception - SoapFault
 */
Int setFeatureValue(Int featid, String tblnam, Int tbl_id, Mixed value)

?>

Przykłady wywołań:


// Plik MyService.php umieszczony w apps/edokumenty.
// MyService.php
<?php

define('EDOK_API_LOGIN', 'developer');
define('EDOK_API_PASSWORD', 'developer');
define('DEFAULT_ENTITY_SYMBOL', 'demo');

require_once('./classes/eDokumentyApi/EDokApiClient.inc');

$options = array(
    'location' => 'http://{host}:{port}/eDokumentyApi.php',
    "uri" => "eDokumentyAPI",
    'encoding'=>'UTF-8'
);
        
$client = new EDokApiClient(NULL, $options);
$client->setUser(EDOK_API_LOGIN);
$client->setPass(md5(EDOK_API_PASSWORD));
$header = new SoapHeader('eDokumentyAPI', 'entity_symbol', DEFAULT_ENTITY_SYMBOL);
$client->__setSoapHeaders($header);

$featid = 19;
$tblnam = 'contact';
$tbl_id = 123;
$value = 'Ustawiono za pomocą API';

try {
    $out = $client->setFeatureValue($featid, $tblnam, $tbl_id, $value);
    var_dump($out);
} catch(SoapFault $fault) {   
    var_dump($fault);
    
    if ($fault->faultcode < 100) {
        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    }
}

?>

UWAGA! Jeżeli cecha jest listą wyboru (dane widoczne w features_opt_view) to $value musi być tablicą. Uwaga, należy wprowadzać wartość array(ftopid) z tabeli features_options.