~openerp-vietnam/openobject-doc/technical-tutorial

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!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>OpenERP Objects &mdash; openerp v1 documentation</title>
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="top" title="openerp v1 documentation" href="../index.html" />
    <link rel="up" title="Objects, Fields and Methods" href="index.html" />
    <link rel="next" title="The ORM - Object Relation Model" href="orm.html" />
    <link rel="prev" title="Objects, Fields and Methods" href="index.html" /> 
  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="orm.html" title="The ORM - Object Relation Model"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="index.html" title="Objects, Fields and Methods"
             accesskey="P">previous</a> |</li>
        <li><a href="../index.html">openerp v1 documentation</a> &raquo;</li>
          <li><a href="index.html" accesskey="U">Objects, Fields and Methods</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="openerp-objects">
<h1>OpenERP Objects<a class="headerlink" href="#openerp-objects" title="Permalink to this headline"></a></h1>
<div class="section" id="introduction">
<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline"></a></h2>
<p>All the ERP&#8217;s pieces of data are accessible through &#8220;objects&#8221;. As an example, there is a res.partner object to access the data concerning the partners, an account.invoice object for the data concerning the invoices, etc...</p>
<p>Please note that there is an object for every type of resource, and not an object per resource. We have thus a res.partner object to manage all the partners and not a &#64;&#64;res.partner&#64;&#64; object per partner. If we talk in &#8220;object oriented&#8221; terms, we could also say that there is an object per level.</p>
<p>The direct consequences is that all the methods of objects have a common parameter: the &#8220;ids&#8221; parameter. This specifies on which resources (for example, on which partner) the method must be applied. Precisely, this parameter contains a list of resource ids on which the method must be applied.</p>
<p>For example, if we have two partners with the identifiers 1 and 5, and we want to call the res_partner method &#8220;send_email&#8221;, we will write something like:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="n">res_partner</span><span class="o">.</span><span class="n">send_email</span><span class="p">(</span><span class="o">...</span> <span class="p">,</span> <span class="p">[</span><span class="mf">1</span><span class="p">,</span> <span class="mf">5</span><span class="p">],</span> <span class="o">...</span><span class="p">)</span>
</pre></div>
</div>
<p>We will see the exact syntax of object method calls further in this document.</p>
<p>In the following section, we will see how to define a new object. Then, we will check out the different methods of doing this.</p>
<p>For developers:</p>
<ul class="simple">
<li>Open ERP &#8220;objects&#8221; are usually called classes in object oriented programming.</li>
<li>A Open ERP &#8220;resource&#8221; is usually called an object in OO programming, instance of a class.</li>
</ul>
<p>It&#8217;s a bit confusing when you try to program inside Open ERP, because the language used is Python, and Python is a fully object oriented language, and has objects and instances ...</p>
<p>Luckily, an Open ERP &#8220;resource&#8221; can be converted magically into a nice Python object using the &#8220;browse&#8221; class method (Open ERP object method).</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
            <h3><a href="../index.html">Table Of Contents</a></h3>
            <ul>
<li><a class="reference external" href="">OpenERP Objects</a><ul>
<li><a class="reference external" href="#introduction">Introduction</a></li>
</ul>
</li>
</ul>

            <h4>Previous topic</h4>
            <p class="topless"><a href="index.html"
                                  title="previous chapter">Objects, Fields and Methods</a></p>
            <h4>Next topic</h4>
            <p class="topless"><a href="orm.html"
                                  title="next chapter">The ORM - Object Relation Model</a></p>
            <h3>This Page</h3>
            <ul class="this-page-menu">
              <li><a href="../_sources/part_4/objects.txt"
                     rel="nofollow">Show Source</a></li>
            </ul>
          <div id="searchbox" style="display: none">
            <h3>Quick search</h3>
              <form class="search" action="../search.html" method="get">
                <input type="text" name="q" size="18" />
                <input type="submit" value="Go" />
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </form>
              <p class="searchtip" style="font-size: 90%">
              Enter search terms or a module, class or function name.
              </p>
          </div>
          <script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="orm.html" title="The ORM - Object Relation Model"
             >next</a> |</li>
        <li class="right" >
          <a href="index.html" title="Objects, Fields and Methods"
             >previous</a> |</li>
        <li><a href="../index.html">openerp v1 documentation</a> &raquo;</li>
          <li><a href="index.html" >Objects, Fields and Methods</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
      &copy; Copyright 2009, openerp.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.1.
    </div>
  </body>
</html>