Как получить доступ к методам OPENERP из PHP? - PullRequest
0 голосов
/ 14 февраля 2012

Мне нужно интегрировать модуль open erp hr с сайтом php. Для этого я попытался использовать XML-RPC. Но я не получил, как получить доступ к его методу. Мне нужно использовать отпуск, табель и расчет заработной платы из open erp.

Ответы [ 3 ]

1 голос
/ 18 февраля 2012
0 голосов
/ 19 января 2016

Вы можете попробовать и использовать веб-сервисы, используя

Python, Ruby, PHP и язык программирования Java

просто нужно перейти по ссылке ниже

https://www.odoo.com/documentation/8.0/api_integration.html

Я надеюсь, что мой ответ может быть полезным для вас:)

0 голосов
/ 09 декабря 2013

Вы можете получить доступ к методу в openerp так же, как и к другим методам CRUD.Это не описано в документации openerp, но есть возможность доступа к методам, определенным в моделях.

Добавьте приведенный ниже код в файл openerp_models.php из ttps: //doc.openerp.com/6.1/developer/12_api/# XML-RPC веб-сервисов.Загрузите php lib, предоставленный

<?php

public function call_openerp_func($model, $function, $ids) {

    $client = new xmlrpc_client($this->server . "object");

    $id_val = array();
    $count = 0;
    foreach ($ids as $id) {
        $id_val[$count++] = new xmlrpcval($id, "int");
    }



    $this->msg = new xmlrpcmsg('execute');
    $this->msg->addParam(new xmlrpcval($this->database, "string"));
    $this->msg->addParam(new xmlrpcval($this->id, "int"));
    $this->msg->addParam(new xmlrpcval($this->password, "string"));
    $this->msg->addParam(new xmlrpcval($model, "string"));
    $this->msg->addParam(new xmlrpcval($function, "string"));
    $this->msg->addParam(new xmlrpcval($id_val, "array"));
    //////         
     */
    // Functions return values
    $this->res = &$this->client->send($this->msg);
    if ($this->res->faultCode()) {
        return 'Error: ' . $resp->faultString();
    } else {
        $res = $this->res->value();
        return $res;
    }
}
 ?>

И вот как вы вызываете вышеуказанную функцию

<?php
  // sample for calling function to validate invoice payment
   $validate_voucher_payment = $kengen_model->call_function_func('account.voucher', 
      'button_proforma_voucher', array(8));  
?>

Надеюсь, это решит вашу проблему

...