<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Desenvolvemento_de_compo%C3%B1entes</id>
	<title>Desenvolvemento de compoñentes - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Desenvolvemento_de_compo%C3%B1entes"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Desenvolvemento_de_compo%C3%B1entes&amp;action=history"/>
	<updated>2026-10-21T17:54:04Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Desenvolvemento_de_compo%C3%B1entes&amp;diff=46632&amp;oldid=prev</id>
		<title>Vence en 08:28 28 may 2014</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Desenvolvemento_de_compo%C3%B1entes&amp;diff=46632&amp;oldid=prev"/>
		<updated>2014-05-28T08:28:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Anterior: [http://informatica.iessanclemente.net/manuais/index.php/Implantaci%C3%B3n_de_sistemas_ERP/CRM Implantación de sistemas ERP/CRM]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introdución a Python ==&lt;br /&gt;
&lt;br /&gt;
Para crear novos módulos en OpenERP utilizamos a linguaxe de programación [https://www.python.org/ Python].&lt;br /&gt;
&lt;br /&gt;
[http://www.uji.es/bin/publ/edicions/ippython.pdf Introdución a la programación con Python - Andrés Marzal e Isabel Gracia]&lt;br /&gt;
&lt;br /&gt;
[https://docs.python.org/2/reference/index.html#reference-index The Python Language Reference]&lt;br /&gt;
&lt;br /&gt;
[https://docs.python.org/2/library/ The Python Standard Library]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Practicamos creando un pequeno programa, &amp;#039;&amp;#039;par.py&amp;#039;&amp;#039;, que recolle números do teclado e responde se son pares ou impares:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:01CodigoPar.png|miniaturadeimagen|centro]]&lt;br /&gt;
[[Archivo:02ExecucionPar.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos unha segunda versión cunha función propia:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:03CodigoParFuncion.png|miniaturadeimagen|centro]]&lt;br /&gt;
[[Archivo:04ExecucionParFuncion.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Para finalizar, creamos unha terceira versión formada por:&lt;br /&gt;
** Un módulo de funcións propias, chamado &amp;#039;&amp;#039;funcions_novagalaxia.py&amp;#039;&amp;#039; onde gardamos a función creada no punto anterior.&lt;br /&gt;
** O programa &amp;#039;&amp;#039;par_final.py&amp;#039;&amp;#039; que importa e utiliza esa función.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:05ModuloFuncions.png|miniaturadeimagen|centro]]&lt;br /&gt;
[[Archivo:06CodigoParFinal.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creación de módulos OpenERP ==&lt;br /&gt;
&lt;br /&gt;
Vamos crear un módulo novo: unha axenda telefónica.&lt;br /&gt;
&lt;br /&gt;
* Movémonos ao directorio &amp;#039;&amp;#039;/usr/lib/pymodules/python2.7/openerp/addons&amp;#039;&amp;#039;, onde están todos os módulos da aplicación.&lt;br /&gt;
&lt;br /&gt;
* Creamos o directorio &amp;#039;&amp;#039;axenda&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* Dentro del, creamos o ficheiro &amp;#039;&amp;#039;__init__.py&amp;#039;&amp;#039; que chama ao ficheiro principal do noso paquete: &amp;#039;&amp;#039;axenda.py&amp;#039;&amp;#039;. Grazas a &amp;#039;&amp;#039;__init__.py&amp;#039;&amp;#039;, o módulo é recoñecido como tal por OpenERP.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:07init_py.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos o ficheiro &amp;#039;&amp;#039;__openerp__.py&amp;#039;&amp;#039; coa descrición do módulo (dicionario):&lt;br /&gt;
&lt;br /&gt;
[[Archivo:08openerp_py.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos o ficheiro &amp;#039;&amp;#039;axenda.py&amp;#039;&amp;#039; (modelo e controlador). Define a clase &amp;#039;&amp;#039;axenda&amp;#039;&amp;#039; que é unha táboa na BD con varias columnas:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:09axenda_py.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Unha forma de comprobar que non haxa erros nos ficheiros &amp;#039;&amp;#039;*.py&amp;#039;&amp;#039;, é executándoos con &amp;#039;&amp;#039;python&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python __init__.py&lt;br /&gt;
python __openerp__.py&lt;br /&gt;
python axenda.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Creamos a vista en &amp;#039;&amp;#039;axenda_view.xml&amp;#039;&amp;#039; (dunha forma parecida a como fixeramos en [http://informatica.iessanclemente.net/manuais/index.php/Organizaci%C3%B3n,_consulta_e_tratamento_da_informaci%C3%B3n#Creaci.C3.B3n_de_vistas_en_OpenERP Creación de vistas en OpenERP]), formada por tres elementos:&lt;br /&gt;
&lt;br /&gt;
** Unha vista de formulario e outra vista de árbore:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:10vista_xml_vistas.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Accións. Ao facer clic nunha opción do menú, a acción vai abrir a vista correspondente):&lt;br /&gt;
&lt;br /&gt;
[[Archivo:11vista_xml_accions.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
** Menú, submenú e opcións:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:12vista_xml_menu.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* En OpenERP: actualizamos a lista de módulos, facemos clic en &amp;#039;&amp;#039;Módulos locales&amp;#039;&amp;#039;, procuramos o módulo &amp;#039;&amp;#039;axenda&amp;#039;&amp;#039; e o instalamos. &lt;br /&gt;
&lt;br /&gt;
[[Archivo:13InstalarModuloLocal.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Se houber erros no ficheiro &amp;#039;&amp;#039;xml&amp;#039;&amp;#039;, saberémolo neste momento (a mensaxe de erro é moi longa pero temos que fixarnos na última liña). Neste exemplo especificouse mal a codificación &amp;#039;&amp;#039;utf-8&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:14ErroNoXML.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Outro erro típico: &amp;quot;Ha ocurrido un error mientras se validaban los campos arch: Invalid XML for View Architecture!&amp;quot;. A causa é esquecer inserir espazos en branco antes das &amp;quot;/&amp;quot; de cerre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Se todo vai ben, deber aparecer o novo menú &amp;#039;&amp;#039;Axenda&amp;#039;&amp;#039; coas dúas vistas deseñadas. Inserimos datos na axenda:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:15InserirDatos.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* E para finalizar, comprobamos o resultado:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:16ResultadoAxenda.png|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fontes:&lt;br /&gt;
[http://nicechirag.blogspot.in/2012/01/openerp-complete-guide-for-module.html]&lt;br /&gt;
[http://xmeele.wordpress.com/2013/08/09/openerp-programacion-crear-un-modulo-sin-saber-nada-de-python/]&lt;br /&gt;
[http://zbeanztech.com/blog/basics-developing-simple-module-openerp]&lt;/div&gt;</summary>
		<author><name>Vence</name></author>
	</entry>
</feed>