Criação de um Serviço DOUI

Top  Previous  Next

O exemplo a seguir é de um serviço Classificados onde os usuários podem cadastrar seus anúncios. Estes, por sua vez, devem aparecer em uma lista. Este serviço acessa uma tabela no banco de dados.

No projeto do eclipse, crie o diretório corporate/Classificados em lumisdata/def com os seguintes arquivos de definição abaixo:

Arquivo de definição do serviço e de interfaces (servicedefinition.xml):

<?xml version="1.0" encoding="UTF-8"?>

<serviceDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="www.lumis.com.br/lumisportal/xsd/servicedefinition.xsd">

  <service id="corporate.classificados" name="Classificados" type="lum_doui">

    <description>Serviço de Classificados</description>

    <image>corporate/Classificados/image/logo.gif</image>

  </service>

  <interfaces>

    <interface id="list" name="Lista" type="lum_douiList">

      <styles>

         <style path="corporate/Classificados/style/List.xsl" name="Default" id="list"/>

       </styles>

    </interface>

    <interface id="details" name="Detalhes" type="lum_douiDetails">

      <styles>

         <style path="corporate/announcement/style/Details.xsl" name="Default" id="details"/>

       </styles>

    </interface>

    <interface id="administration" name="Administração" type="lum_douiAdministrationList"/>

    <interface id="add" name="Adicionar" type="lum_douiAdministrationAddPropertyPage">

    <popupWindowProperties>width=600,height=315,left=20,top=20>

      </popupWindowProperties>

    </interface>

    <interface id="edit" name="Editar" type="lum_douiAdministrationEditPropertyPage">

     <popupWindowProperties>width=600,height=315,left=20</popupWindowProperties>

    </interface>

  </interfaces>

</serviceDefinition>

Arquivo de definição para manipulação de dados e processamento de ações utilizando o DOUI (douidefinition.xml):

<?xml version="1.0" encoding="UTF-8"?>

<doui:douiDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:doui="http://www.lumis.com.br/lumisportal/xsd/doui"

  xmlns:control="http://www.lumis.com.br/douicontrols">

  <service id="corporate.classificados">

    <sources>

      <source id="default" type="table">

        <table>Lista</table>

          <fields>

            <field id="id" display="false" name="id" dataType="string" isPrimaryKey="true"/>

             <field id="title" name="Titulo" dataType="string"/>

             <field id="content" name="Conteudo" dataType="html"/>

           </fields>

       </source>

    </sources>

  </service>

  <interfaces>

    <interface id="list">

       <sources>

           <source id="default">

             <filters>

                    <filter fieldId="title" id="filtro1"/>

             </filters>

           </source>

       </sources>   

    </interface>

  </interfaces>

</doui:douiDefinition>

O Lumis Portal implementa três process actions genéricas que são utilizadas por quase todos os serviços do Portal: add, edit e delete. Estes process actions são utilizados pelo DOUI e também estão definidos no arquivo douidefinition.xml.

...

<interface>

<processActions>

       <processAction id="commit" sourceId="default" type="TableAddData">

             <response type="doui_standardPopup"/>

       </processAction>

       ...

       <processAction id="commit" sourceId="default" type="TableUpdateData">

             <response type="doui_standardPopup"/>

       </processAction>

       ...

       <processAction id="delete" sourceId="default" type="TableDeleteData">

             <response type="doui_standardEmbedded"/>

       </processAction>

</processActions>

</interface>

...

Estes process actions são extensões da classe lumis.processactionhandler.java com override do método process action, para que sejam possíveis as manipulações de sources.

Pode-se definir mais de um process action utilizando-se o mesmo “id”.
 

Observação

 

Dúvidas sobre utilização de tags do douidefinition.xml,  consultar a documentação “xsd-docs” no diretório DOC do cd de instlação do produto.

Pode-se utilizar arquivos de strings para traduções de campos e nomes de serviços e interfaces, entre outros, ao invés de traduzí-los diretamente no servicedefinition.xml e no douidefinition.xml. Arquivos para tradução de nomes para portal em português, devem ser nomeados como strings.pt_br.xml e para portal em inglês, os arquivos devem ser nomeados para strings.en_us.xml.  Esses arquivos devem estar localizados em um diretório strings no diretório do serviço. Para o serviço Classificados, por exemplo, o diretório strings será criado em lumidata/def/corporate/Classificados.

Para finalizar, execute no MS SQL Server o código a seguir:

CREATE TABLE Lista

(

       id                  CHAR(32) NOT NULL PRIMARY KEY,

       title               NVARCHAR(255) NOT NULL,

       content             NTEXT NULL

)


Lumis Portal 6.1.0.111014
Copyright © 2001-2007, Lumis. Todos os direitos reservados.