2015-01-19 9 views
2

그래, XML-RPC와 PHP를 사용하여 판매 주문 라인을 가진 Odoo 판매 주문을 전달하려고합니다. 내가Odoo/OpenERP XML-RPC를 통해 Sales_ Order Line Product_ID 추가 PHP

그래서이 작동하는 PRODUCT_ID를 전달할 수 없습니다 제외 이

 $lines[] = new xmlrpcval(
           array(
             new xmlrpcval(0, 'int'), 
             new xmlrpcval(0, 'int'), 
             new xmlrpcval(
             array(
               'name'   => new xmlrpcval('Product Name', 'string'), 
               'product_uom_qty' => new xmlrpcval(5, 'int'), 
               'price_unit'  => new xmlrpcval(10.00, 'double'), 
               'sub_total'  => new xmlrpcval(50.00, 'double'), 
             ), 
             "struct" 
           ) 
         ), 
       "array" 
     ); 
     $arr = array(
     'partner_id'   => new xmlrpcval(236,"int"), 
     'partner_invoice_id' => new xmlrpcval(236,"int"), 
     'partner_shipping_id' => new xmlrpcval(236,"int"), 
     'client_order_ref' => new xmlrpcval($this->id,"int"), 
     'order_line'   => new xmlrpcval($lines, "array"), 
    ); 
var_dump($arr); 
     $client = new xmlrpc_client($this->server."object"); 
     $client->return_type = 'phpvals'; 
     // ['execute','userid','password','module.name',{values....}] 
     $msg = new xmlrpcmsg('execute'); 
     $msg->addParam(new xmlrpcval($this->database, "string")); //* database name */ 
     $msg->addParam(new xmlrpcval($this->uid, "int")); /* useid */ 
     $msg->addParam(new xmlrpcval($this->password, "string"));/** password */ 
     $msg->addParam(new xmlrpcval("sale.order", "string"));/** model name where operation will held * */ 
     $msg->addParam(new xmlrpcval("create", "string"));/** method which u like to execute */ 
     $msg->addParam(new xmlrpcval($arr, "struct"));/** parameters of the methods with values.... */ 
     $resp = $client->send($msg); 
     if ($resp->faultCode()){ 
     echo 'failed'; 
     var_dump($resp); 
      return -1; /* if the record is not created */ 
     }else{ 
     echo 'success'; 
     var_dump($resp); 
      return $resp->value(); /* return new generated id of record */ 
    } 

이 그래서 필요합니다 (openerp/odoo 데이터베이스에 제품을 일치) 올바르게 제품을 연결하는 ... ... 완벽하게 작동 제품 ID ... 나 배열의 다음 행에 추가한다면

를 통과 ...

'product_id' => new xmlrpcval(38, 'int'),

다음과 같은 오류가 나타납니다.

warning -- MissingError 

One of the documents you are trying to access has been deleted, please try again after refreshing. 

내가 잘못하고있는 것이 확실하지 않지만 이것이 제 정신이 아닙니다. 그리고 해당 제품 ID 38이 있는지 확인했습니다!

많은 사람들이 많이 감사드립니다.

+0

intval에. –

답변

1

귀하의 product_id가 잘못되었습니다. 제품을 CSV로 내 보낸 다음 설정 -> 외부 식별자 & 시퀀스에서 확인하십시오. 제품 레코드 ID가 무엇인지 확인하십시오.

+0

감사합니다. 1 년 전이 문제를 해결했다고 생각합니다. 더 이상 필요가 없습니다. 다른 사람이 도움이 될 수 있습니다. –

0

는 랩 당신의 어쩌면 당신은 제품 ID가 좋은 ID이며, DB에 존재 확인하기 위해 XML-RPC와 제품을 검색 할 product_id