<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Como c.. funciona Service Builder</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=1009060" />
  <subtitle>Como c.. funciona Service Builder</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=1009060</id>
  <updated>2026-05-19T18:15:24Z</updated>
  <dc:date>2026-05-19T18:15:24Z</dc:date>
  <entry>
    <title>RE: Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1117825" />
    <author>
      <name>( )</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1117825</id>
    <updated>2008-07-28T14:17:09Z</updated>
    <published>2008-07-28T14:17:09Z</published>
    <summary type="html">Si quieres un poco mas de potencia puedes usar  este programilla.&lt;br /&gt;&lt;br /&gt;Puedes hacer Mantenedores sin necesidad de programar java ... y es compatible con Liferay&lt;br /&gt;&lt;br /&gt;entra en :&lt;br /&gt;&lt;br /&gt;www.openxava.com</summary>
    <dc:creator>( )</dc:creator>
    <dc:date>2008-07-28T14:17:09Z</dc:date>
  </entry>
  <entry>
    <title>RE: Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1117055" />
    <author>
      <name>Alvaro Manso</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1117055</id>
    <updated>2008-07-28T11:42:30Z</updated>
    <published>2008-07-28T11:42:30Z</published>
    <summary type="html">Muy util.&lt;br /&gt;Muchas Gracias.</summary>
    <dc:creator>Alvaro Manso</dc:creator>
    <dc:date>2008-07-28T11:42:30Z</dc:date>
  </entry>
  <entry>
    <title>RE: Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1070174" />
    <author>
      <name>Jonatan Oyola</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1070174</id>
    <updated>2008-07-15T14:09:40Z</updated>
    <published>2008-07-15T14:09:40Z</published>
    <summary type="html">Me olvidaba de algunas cosas:&lt;br /&gt;&lt;br /&gt;- En las últimas versiones hay algunos features nuevos en el service.xml&lt;br /&gt;- Se pueden resolver relaciones de Muchos a Muchos&lt;br /&gt;- Tambien se puden modificar los JAVA que se generan ya que los mismo se crean con Free Maker&lt;br /&gt;- Ver build-wsdd TASK para generar Web Services sobre XXXServiceUtil generado&lt;br /&gt;&lt;br /&gt;Saludos,&lt;br /&gt;&lt;br /&gt;Jonatan</summary>
    <dc:creator>Jonatan Oyola</dc:creator>
    <dc:date>2008-07-15T14:09:40Z</dc:date>
  </entry>
  <entry>
    <title>RE: Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1069966" />
    <author>
      <name>Jonatan Oyola</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1069966</id>
    <updated>2008-07-15T13:08:34Z</updated>
    <published>2008-07-15T13:08:34Z</published>
    <summary type="html">Hola&lt;br /&gt;Voy a explicar como utilizar el Service Builder en las últimas versiones de Liferay. &lt;br /&gt;&lt;br /&gt;- crear el package: com.ext.liferay.portlet.myPortlet&lt;br /&gt;- crear service.xml en ext-impl/src/com/ext/liferay/portlet.myPortlet&lt;br /&gt;- Escribir Tablas, Columnas, metodo de ordenamiento (order by name), finders (where name = ?) y Excepciones de Negocio&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34;?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE service-builder PUBLIC &amp;#34;-//Liferay//DTD Service Builder 4.4.0//EN&amp;#34; &amp;#34;http://www.liferay.com/dtd/liferay-service-builder_4_4_0.dtd&amp;#34;&amp;gt;&lt;br /&gt;&amp;lt;service-builder package-path=&amp;#34;com.ext.liferay.portlet.myPortlet&amp;#34;&amp;gt;&lt;br /&gt;	&amp;lt;namespace&amp;gt;myPortlet&amp;lt;/namespace&amp;gt;&lt;br /&gt;	&amp;lt;entity name=&amp;#34;MyTable&amp;#34; uuid=&amp;#34;true&amp;#34; local-service=&amp;#34;true&amp;#34; remote-service=&amp;#34;true&amp;#34;&amp;gt;&lt;br /&gt;		&amp;lt;column name=&amp;#34;id&amp;#34; type=&amp;#34;long&amp;#34; primary=&amp;#34;true&amp;#34; /&amp;gt;&lt;br /&gt;		&amp;lt;column name=&amp;#34;name&amp;#34; type=&amp;#34;String&amp;#34; /&amp;gt;&lt;br /&gt;		&amp;lt;order by=&amp;#34;desc&amp;#34;&amp;gt;&lt;br /&gt;			&amp;lt;order-column name=&amp;#34;id&amp;#34; /&amp;gt;&lt;br /&gt;		&amp;lt;/order&amp;gt;&lt;br /&gt;		&amp;lt;!-- Finder methods --&amp;gt;&lt;br /&gt;		&amp;lt;finder name=&amp;#34;Name&amp;#34; return-type=&amp;#34;Collection&amp;#34;&amp;gt;&lt;br /&gt;			&amp;lt;finder-column name=&amp;#34;name&amp;#34; /&amp;gt;&lt;br /&gt;		&amp;lt;/finder&amp;gt;&lt;br /&gt;	&amp;lt;/entity&amp;gt;&lt;br /&gt;	&amp;lt;exceptions&amp;gt;&lt;br /&gt;		&amp;lt;exception&amp;gt;InvalidName&amp;lt;/exception&amp;gt;&lt;br /&gt;	&amp;lt;/exceptions&amp;gt;&lt;br /&gt;&amp;lt;/service-builder&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;- Agregar TASK en ext-impl/src/build.xml&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;target name=&amp;#34;build-service-portlet-myPortlet&amp;#34;&amp;gt;&lt;br /&gt;	&amp;lt;antcall target=&amp;#34;build-service&amp;#34;&amp;gt;&lt;br /&gt;		&amp;lt;param name=&amp;#34;service.file&amp;#34; value=&amp;#34;src/com/ext/liferay/portlet/myPortlet/service.xml&amp;#34; /&amp;gt;&lt;br /&gt;	&amp;lt;/antcall&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;- Agregar TASK build-service-portlet-myPortlet en build-service-portlets&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;target name=&amp;#34;build-service-portlets&amp;#34;&amp;gt;&lt;br /&gt;	&amp;lt;antcall target=&amp;#34;build-service-portlet-myPortlet&amp;#34; /&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;- Ejecutar build-service-portlets&lt;br /&gt;- Agregar Metodos en MyTableLocalServiceImpl o en MyTableServiceImpl&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;public MyTable getMyTable(long id) throws .... {&lt;br /&gt;         return MyTableUtil.findByPrimaryKey(id); // fijarse en el codigo funte de Liferay porque se dejo de usar de esta manera, aunque  &lt;br /&gt;                                                                                  //esto sigue siendo valido&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;- Ejecutar build-service-portlets para actualizar interfaces y tambien MyTableLocalServiceUtil y MyTableServiceUtil&lt;br /&gt;- Refrescar el proyecto en el eclipse para que los metodos esten disponibles.&lt;br /&gt;&lt;br /&gt;Diferencias entre XXXLocalServiceUtil y XXXServiceUtil&lt;br /&gt;- XXXServiceUtil hace validación de permisos&lt;br /&gt;- XXXServiceUtil se utiliza en WebService, Json, etc...&lt;br /&gt;- XXXServiceUtil siempre invoca los metodos de XXXLocalServiceUtil.&lt;br /&gt;&lt;br /&gt;Espero que les sirve mi pequeño tutorial.&lt;br /&gt;&lt;br /&gt;Saludos</summary>
    <dc:creator>Jonatan Oyola</dc:creator>
    <dc:date>2008-07-15T13:08:34Z</dc:date>
  </entry>
  <entry>
    <title>RE: Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1065457" />
    <author>
      <name>Alvaro Manso</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1065457</id>
    <updated>2008-07-14T12:34:19Z</updated>
    <published>2008-07-14T12:34:19Z</published>
    <summary type="html">A mi tambien me gustaria saber mas del service builder.&lt;br /&gt;A ver si reflotandolo alguien hace una pequeña introduccion.</summary>
    <dc:creator>Alvaro Manso</dc:creator>
    <dc:date>2008-07-14T12:34:19Z</dc:date>
  </entry>
  <entry>
    <title>Como c.. funciona Service Builder</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1009059" />
    <author>
      <name>Fernando Rosado Altamirano</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=1009059</id>
    <updated>2008-06-26T09:49:51Z</updated>
    <published>2008-06-26T09:49:51Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hola a todos.&lt;br&gt;&lt;br&gt;Ando un poco desesperado porque necesito crear un portlet relacionandolo con una serie de tablas, he intentado usar Service Builder para crear las tablas necesarias e intentar que fuese todo un poco más rápido, pero no hago más que encontrarme con el mismo problema siempre "NO HAY DOCUMENTACION".&lt;br&gt;&lt;br&gt;Mi problema es el siguiente, tengo una serie de tablas Demandante, perfil y Empleado. Un demandante tiene un perfil y un empleado es un usuario de Liferay con datos extras. &lt;br&gt;He conseguido crear el service.xml básico:&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;
&amp;lt;entity name="Demandante" local-service="true" remote-service="false" uuid="true"&amp;gt;
		&amp;lt;column name="demandanteId" type="long" primary="true" /&amp;gt;
&amp;lt;column name="nombre" type="String" /&amp;gt;

&amp;lt;/entity&amp;gt;
&amp;lt;entity name="Perfil" local-service="true" remote-service="false" uuid="true"&amp;gt;
		&amp;lt;column name="perfilId" type="long" primary="true" /&amp;gt;
                &amp;lt;column name="nombre" type="String" /&amp;gt;&amp;lt;/entity&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;Ahora ¿como los relaciono? no consigo hacer que las clases generadas usando el "build-service" me hagan una referencia entre ellas de ningun tipo (he hecho no se cuantos cambios y no consigo nada)&lt;br&gt;&lt;br&gt;Y luego ¿Como lo uso? el objeto que hace de Model es un interfaz y por lo tanto tengo que usar la implementacion, pero me parece bastante incorrecto. ADemás el ejemplo del SVN de "sample-service-builder" no es el mismo que me genera a mi usando las mismas clases.&lt;br&gt;&lt;br&gt;En la wiki solo hace una breve mención a que es un service builder y algunas cosillas más, pero nada sobre como relacionar tablas o como "extender" la tabla de usuarios.&lt;br&gt;&lt;br&gt;¿Se crean relaciones usando este sistema?&lt;br&gt;&lt;br&gt;Y por terminar ¿Existen formas de aprovechar esto y crear tablas, listados, busquedas y formularios más facilmente? porque esto es desesperante.&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Fernando Rosado Altamirano</dc:creator>
    <dc:date>2008-06-26T09:49:51Z</dc:date>
  </entry>
</feed>
