Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

How to communicate a PHP page with openerp using webservice----

By
Odoo
on 5/21/14, 6:43 AM 2,488 views

I have  a php form use and a custom openerp module for storing student details of name and number..

How to communicate this php to openerp for exporting and importing student details from openerp to php form

Here I attached my php code and openerp module ..Pls help...

==================PHP================

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="fname" /><br><br>
Phone: <input type="text" name="phone" /><br><br>
 
<input type="submit" />
</form>
</body>
</html>

 

insert.php

<?php
$con = mysql_connect("localhost","root","siroco");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
 
mysql_select_db("project", $con);
 
$sql="INSERT INTO info (name, phone)
VALUES
('$_POST[fname]','$_POST[lname]')";
 
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
 
 
$res=  mysql_query("SELECT * FROM info");  
if(mysql_query($sql,$con))
{
  echo "<table border='1'><tr><th>Name</th><th>Phone</th></tr>";
while($row = mysql_fetch_array($res))
{
 echo "<tr>";
   echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['phone'] . "</td>";
        echo "</tr>";
   }
   }
 
mysql_close($con)
?>

==============OPENERP===================

__init__.py

import web_service_info

__openerp__.py

{
    "name" : "Web service module",
    "version" : "1.0",
    "author" : "ME ",
    "category" : "Generic Modules for Web service connector",
    "description": """
    Module For Managing Student Name and roll number export and import:
 
    """,
    "depends" : ['base'],
    "init_xml" : [],
    'images': [],

     "update_xml" : [
                    'web_service_view.xml'           
         ],
                   
    'images': [],
    "installable": True,
    "auto_install":False
}

webservice.py

from osv import osv,fields

class student_info(osv.osv):
    
    _name='student.info'
    
    _columns={
               'name':fields.char('name',size=15),
               'phone_number':fields.char('Phonenumber',size=10),
             }
    def import_student(self,cr,uid,ids,context=None):
        print "######################context#######",context
        return "Hi"
    def export_student(self,cr,uid,ids,context=None):
        print "#########3uid#######",ids
        return "Hi"
    
student_info()

.xml======

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
    
    
     <record id="user_info_tree_view" model="ir.ui.view">
          <field name="name">user.info.tree.view</field>
          <field name="model">student.info</field>
          <field name="type">tree</field>
            <field name="arch" type="xml">
             <tree string="user information">
                <field name="name"/>
                <field name="phone_number"/>
              </tree>
       </field>
       </record>
       
        <record id="project_info_form_view" model="ir.ui.view">
            <field name="name">project.info.form.view</field>
            <field name="model">student.info</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
            <form string="Project information" version="7.0" >
                
                <header>
                                        
                    <button name="import_student" string="Import Student"
                 class="oe_highlight" type="object"/>

                    <button name="export_student" string="Export Student"
                 class="oe_highlight" type="object"/>

                </header>        
                
                    <sheet>
                   <group>
                        <field name="name"/>
                     <field name="phone_number"/></group>    
                     </sheet>   
                </form>
                
            </field>
        </record>
        
           <record id="hr_info_action" model="ir.actions.act_window">
               <field name="name">HR Details</field>
               <field name="res_model">student.info</field>
               <field name="view_type">form</field>
               <field name="view_mode">tree,form</field>
       </record>


       <menuitem id="user_module_menu" name="Student Info"/>
       
       <menuitem id="user_module_menu1"  parent="user_module_menu" name="Student Information"/>
       
       <menuitem id="user_module_menu123" action="hr_info_action" parent="user_module_menu1" name="Student Details"/>
       
       
    </data>
</openerp>

 

How to export and import data from openerp to php form ,php ->openerp

 

@@ HOw to import data from openerp to php with xmlrpc(php->openerp,openerp->PHP)

 

 

 

 

 

 

 

 

 

3

Dhinesh - Technical Consultant, Sodexis Inc

--Dhinesh - Technical Consultant, Sodexis Inc--
3577
| 5 4 9
Pondicherry, India
--Dhinesh - Technical Consultant, Sodexis Inc--

Passionate coder in Python/OpenERP. Knows Django/Flask MVC frameworks. Did code in Java, PHP.

Contact me at: dvdhinesh.mail@gmail.com

Dhinesh - Technical Consultant, Sodexis Inc
On 5/21/14, 7:43 AM

Hi, you can use XML-RPC for communication between PHP and OpenERP/Odoo.

Access Open-server using xml-rpc

Download the XML-RPC framework for PHP

windows / linux: download the xml-rpc framework for php from http://phpxmlrpc.sourceforge.net/ The latest stable release is version 2.2.2 released on March 16, 2009.

Setup the XML-RPC for PHP

extract file xmlrpc-2.2.tar.gz and take the file xmlrpc.inc from lib directory place the xmlrpc.inc in the php library folder restart the apache/iis server

Demo script

Login

function connect() {
   var $user = 'admin';
   var $password = 'admin';
   var $dbname = 'db_name';
   var $server_url = 'http://localhost:8069/xmlrpc/';


   if(isset($_COOKIE["user_id"]) == true)  {
       if($_COOKIE["user_id"]>0) {
       return $_COOKIE["user_id"];
       }
   }

   $sock = new xmlrpc_client($server_url.'common');
   $msg = new xmlrpcmsg('login');
   $msg->addParam(new xmlrpcval($dbname, "string"));
   $msg->addParam(new xmlrpcval($user, "string"));
   $msg->addParam(new xmlrpcval($password, "string"));
   $resp =  $sock->send($msg);
   $val = $resp->value();
   $id = $val->scalarval();
   setcookie("user_id",$id,time()+3600);
   if($id > 0) {
       return $id;
   }else{
       return -1;
   }
 }
 

Search

/**
 * $client = xml-rpc handler
 * $relation = name of the relation ex: res.partner
 * $attribute = name of the attribute ex:code
 * $operator = search term operator ex: ilike, =, !=
 * $key=search for
 */

function search($client,$relation,$attribute,$operator,$keys) {
     var $user = 'admin';
     var $password = 'admin';
     var $userId = -1;
     var $dbname = 'db_name';
     var $server_url = 'http://localhost:8069/xmlrpc/';

     $key = array(new xmlrpcval(array(new xmlrpcval($attribute , "string"),
              new xmlrpcval($operator,"string"),
              new xmlrpcval($keys,"string")),"array"),
        );

     if($userId<=0) {
     connect();
     }

     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($dbname, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($password, "string"));
     $msg->addParam(new xmlrpcval($relation, "string"));
     $msg->addParam(new xmlrpcval("search", "string"));
     $msg->addParam(new xmlrpcval($key, "array"));

     $resp = $client->send($msg);
     $val = $resp->value();
     $ids = $val->scalarval();

     return $ids;
}

Create

<?

include('xmlrpc.inc');

$arrayVal = array(
'name'=>new xmlrpcval('Fabien Pinckaers', "string") ,
'vat'=>new xmlrpcval('BE477472701' , "string")
);

$client = new xmlrpc_client("http://localhost:8069/xmlrpc/object");

$msg = new xmlrpcmsg('execute');
$msg->addParam(new xmlrpcval("dbname", "string"));
$msg->addParam(new xmlrpcval("3", "int"));
$msg->addParam(new xmlrpcval("demo", "string"));
$msg->addParam(new xmlrpcval("res.partner", "string"));
$msg->addParam(new xmlrpcval("create", "string"));
$msg->addParam(new xmlrpcval($arrayVal, "struct"));

$resp = $client->send($msg);

if ($resp->faultCode())

    echo 'Error: '.$resp->faultString();

else

    echo 'Partner '.$resp->value()->scalarval().' created !';

?>

Write

/**
 * $client = xml-rpc handler
 * $relation = name of the relation ex: res.partner
 * $attribute = name of the attribute ex:code
 * $operator = search term operator ex: ilike, =, !=
 * $id = id of the record to be updated
 * $data = data to be updated
 */

function write($client,$relation,$attribute,$operator,$data,$id) {
     var $user = 'admin';
     var $password = 'admin';
     var $userId = -1;
     var $dbname = 'db_name';
     var $server_url = 'http://localhost:8069/xmlrpc/';

     $id_val = array();
     $id_val[0] = new xmlrpcval($id, "int");

     if($userId<=0) {
     connect();
     }

     $msg = new xmlrpcmsg('execute');
     $msg->addParam(new xmlrpcval($dbname, "string"));
     $msg->addParam(new xmlrpcval($userId, "int"));
     $msg->addParam(new xmlrpcval($password, "string"));
     $msg->addParam(new xmlrpcval($relation, "string"));
     $msg->addParam(new xmlrpcval("write", "string"));
     $msg->addParam(new xmlrpcval($id, "array"));
     $msg->addParam(new xmlrpcval($data, "struct"));

     $resp = $client->send($msg);
     $val = $resp->value();
     $record = $val->scalarval();

     return $record;

}

 
 
 
0

Odoo

--Odoo --
1328
| 5 2 5
kerala, India
--Odoo --

Working as a Odoo Functional and Technical Expert

Odoo
On 5/22/14, 12:11 AM

Hi Dhinesh,

But i need to pass data from php form to openerp module and openerp to php form  using button click of export and import student .Then what are the steps i can  follows.pls help

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 5/21/14, 6:43 AM
Seen: 2488 times
Last updated: 3/16/15, 8:10 AM