You are still missing the comma before "fromParty" field in  the SELECT
clause.

        @Extension(vendorName = "datanucleus", key = "view-definition",

            value = "CREATE VIEW \"DailySalesTotalForParty\" " +

                    "( " +

                    "  {this.transactionDate}, " +

                    "  {this.totalAmount} " +              <<<<<<<<<<<<<<
HERE <<<<<<<<<<<<<

                    "  {this.fromParty} " +

                    ") AS " +




On 26 February 2014 14:20, james agada <[email protected]> wrote:

> This is my class - cleaned up
>
>  /*
>
>  *  Licensed to the Apache Software Foundation (ASF) under one
>
>  *  or more contributor license agreements.  See the NOTICE file
>
>  *  distributed with this work for additional information
>
>  *  regarding copyright ownership.  The ASF licenses this file
>
>  *  to you under the Apache License, Version 2.0 (the
>
>  *  "License"); you may not use this file except in compliance
>
>  *  with the License.  You may obtain a copy of the License at
>
>  *
>
>  *        http://www.apache.org/licenses/LICENSE-2.0
>
>  *
>
>  *  Unless required by applicable law or agreed to in writing,
>
>  *  software distributed under the License is distributed on an
>
>  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>
>  *  KIND, either express or implied.  See the License for the
>
>  *  specific language governing permissions and limitations
>
>  *  under the License.
>
>  */
>
>
> package dom.todo;
>
>
> import java.math.BigDecimal;
>
> import java.util.List;
>
>
> import javax.jdo.annotations.Extension;
>
> import javax.jdo.annotations.IdentityType;
>
> import javax.jdo.annotations.InheritanceStrategy;
>
>
> import org.joda.time.LocalDate;
>
>
> import org.apache.isis.applib.AbstractViewModel;
>
> import org.apache.isis.applib.annotation.Bookmarkable;
>
> import org.apache.isis.applib.annotation.DescribedAs;
>
> import org.apache.isis.applib.annotation.Hidden;
>
> import org.apache.isis.applib.annotation.Immutable;
>
> import org.apache.isis.applib.annotation.Optional;
>
> import org.apache.isis.applib.annotation.Render;
>
> import org.apache.isis.applib.annotation.Render.Type;
>
> import org.apache.isis.applib.annotation.Title;
>
>
>
>
> @javax.jdo.annotations.PersistenceCapable(
>
>     identityType = IdentityType.NONDURABLE,
>
>     table = "DailySalesTotalForParty",
>
>     extensions = {
>
>         @Extension(vendorName = "datanucleus", key = "view-definition",
>
>             value = "CREATE VIEW \"DailySalesTotalForParty\" " +
>
>                     "( " +
>
>                     "  {this.transactionDate}, " +
>
>                     "  {this.totalAmount} " +
>
>                     "  {this.fromParty} " +
>
>                     ") AS " +
>
>                     "SELECT " +
>
>                     "   \"Transaction\".\"transactionDate\" , " +
>
>
>                     "   SUM(\"Transaction\".\"faceValue\") AS
> \"totalAmount\" ," +
>
>                     "   \"Transaction\".\"fromParty\"  " +
>
>                     "  FROM " +
>
> "   \"Transaction\" " +
>
>                     "GROUP BY " +
>
>                     " \"transactionDate\",  " +
>
> " \"fromParty\" " +
>
>                     "ORDER BY " +
>
>                     " \"transactionDate\" ")
>
>     })
>
> @javax.jdo.annotations.Inheritance(strategy =
> InheritanceStrategy.NEW_TABLE)
>
> @javax.jdo.annotations.Queries( {
>
> @javax.jdo.annotations.Query(
>
> name="DailySalesForParty", language="JDOQL",
>
> value="SELECT FROM dom.todo.DailySalesTotalForParty WHERE fromParty ==
> :party ")
>
> })
>
> @Bookmarkable
>
> @Immutable
>
> public class DailySalesTotalForParty  {
>
>
>         // //////////////////////////////////////
>
> /**
>
>     @javax.jdo.annotations.Column(allowsNull = "false")
>
>     private String fromParty;
>
>
>     /**
>
>      * Lazily loaded from the {@link #getReference() reference}, provides
> access
>
>      * to the underlying {@link Property}.
>
>       @Optional
>
>     @Title(sequence = "1")
>
>     public String getFromParty() {
>
>         return fromParty;
>
>     }
>
>
>     public void setFromParty(final String party) {
>
>         this.fromParty = party;
>
>     }
>
> */
>
>     // //////////////////////////////////////
>
>  private java.math.BigInteger fromParty;
>
>  @Optional
>
> public java.math.BigInteger getFromParty(){
>
> return this.fromParty;
>
> }
>
> public void setFromParty_Party_ID_OID(java.math.BigInteger id ){
>
> this.fromParty =id;
>
> }
>
>
>  //////////////////////////////////////
>
>     private LocalDate transactionDate;
>
>
>     @Title(sequence = "2", prepend = " - ")
>
>     public LocalDate getTransactionDate() {
>
>         return transactionDate;
>
>     }
>
>
>     public void setTransactionDate(final LocalDate dueDate) {
>
>         this.transactionDate = dueDate;
>
>     }
>
>
>     // //////////////////////////////////////
>
>
>     private BigDecimal totalAmount;
>
>
>     public BigDecimal getTotalAmount() {
>
>         return totalAmount;
>
>     }
>
>
>     public void setTotalAmount(final BigDecimal total) {
>
>         this.totalAmount = total;
>
>     }
>
>
>
>
>     // //////////////////////////////////////
>
>
>    /** @Render(Type.EAGERLY)
>
>     public List<Transaction> getTransactions() {
>
>     return transactions.findTransactionForPartyOnDate(getFromParty(),
> getTransactionDate());
>
>     }
>
> */
>
>     // //////////////////////////////////////
>
>
>     private Partytypes partytypes;
>
>
>     final public void injectPartytypes(final Partytypes partytypes) {
>
>         this.partytypes = partytypes;
>
>     }
>
>
>     private Transactions transactions;
>
>
>     final public void injectTransactions(final Transactions transactions)
> {
>
>         this.transactions = transactions;
>
>     }
>
>
> }
>
>
> This is the error
>
>
> 15:34:03,784  [Schema               main       DEBUG]  CREATE VIEW
>> "DailySalesTotalForParty" (   "transactionDate",   "totalAmount"
>> "fromParty" ) AS SELECT    "Transaction"."transactionDate" ,
>> SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty"    FROM    "Transaction" GROUP BY
>> "transactionDate",   "fromParty" ORDER BY  "transactionDate"
>>
>> 15:34:03,790  [Datastore            main       ERROR]  Error thrown
>> executing CREATE VIEW "DailySalesTotalForParty" (   "transactionDate",
>> "totalAmount"   "fromParty" ) AS SELECT    "Transaction"."transactionDate"
>> ,    SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty"    FROM    "Transaction" GROUP BY
>> "transactionDate",   "fromParty" ORDER BY  "transactionDate"  : unexpected
>> token: fromParty required: )
>>
>> java.sql.SQLSyntaxErrorException: unexpected token: fromParty required: )
>>
>> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>>
>> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>>
>> at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
>>
>> at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
>>
>>
> SQL seems ok, what am i missing?
>
>
>
>
> On Wed, Feb 26, 2014 at 1:46 PM, GESCONSULTOR - Óscar Bou <
> [email protected]> wrote:
>
>> Hi, James.
>>
>> I think that the GROUP BY clause should include all fields referenced in
>> the SELECT that are not part of aggregation formulas (like SUM, AVG, MIN,
>> MAX, etc.).
>>
>> As "Transaction"."fromParty_Party_ID_OID" is referenced on the SELECT
>> part without being included on any of those aggregation formulas, it should
>> be included on the GROUP BY section.
>>
>> HTH,
>>
>> Oscar
>>
>>
>>
>> El 26/02/2014, a las 13:38, james agada <[email protected]> escribió:
>>
>> Took your advice and got it to work when I do not have the fromParty
>> attribute. What could i be doing wrong. This is the error
>>
>> 47:29,831  [Schema               main       DEBUG]  Check of existence of
>>
>> "DailySalesTotalForParty" returned no table
>>
>> 13:47:29,831  [Schema               main       DEBUG]  Check of existence
>> of "DailySalesTotalForParty" returned no table
>>
>> 13:47:29,831  [Schema               main       DEBUG]  Creating table
>> "DailySalesTotalForParty"
>>
>> 13:47:29,831  [Schema               main       DEBUG]  Creating table
>> "DailySalesTotalForParty"
>>
>> 13:47:29,831  [Schema               main       DEBUG]  Creating table
>> "DailySalesTotalForParty"
>>
>> 13:47:29,832  [Schema               main       DEBUG]  CREATE VIEW
>> "DailySalesTotalForParty" (   "transactionDate",   "totalAmount"
>> "fromParty" ) AS SELECT    "Transaction"."transactionDate" ,
>> SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty_Party_ID_OID" AS "fromParty"   FROM
>> "Transaction" GROUP BY  "transactionDate"  ORDER BY  "transactionDate"
>>
>> 13:47:29,832  [Schema               main       DEBUG]  CREATE VIEW
>> "DailySalesTotalForParty" (   "transactionDate",   "totalAmount"
>> "fromParty" ) AS SELECT    "Transaction"."transactionDate" ,
>> SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty_Party_ID_OID" AS "fromParty"   FROM
>> "Transaction" GROUP BY  "transactionDate"  ORDER BY  "transactionDate"
>>
>> 13:47:29,832  [Schema               main       DEBUG]  CREATE VIEW
>> "DailySalesTotalForParty" (   "transactionDate",   "totalAmount"
>> "fromParty" ) AS SELECT    "Transaction"."transactionDate" ,
>> SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty_Party_ID_OID" AS "fromParty"   FROM
>> "Transaction" GROUP BY  "transactionDate"  ORDER BY  "transactionDate"
>>
>> 13:47:29,833  [Datastore            main       ERROR]  Error thrown
>> executing CREATE VIEW "DailySalesTotalForParty" (   "transactionDate",
>> "totalAmount"   "fromParty" ) AS SELECT    "Transaction"."transactionDate"
>> ,    SUM("Transaction"."faceValue") AS "totalAmount" ,
>> "Transaction"."fromParty_Party_ID_OID" AS "fromParty"   FROM
>> "Transaction" GROUP BY  "transactionDate"  ORDER BY  "transactionDate"  :
>> unexpected token: fromParty required: )
>>
>> java.sql.SQLSyntaxErrorException: unexpected token: fromParty required: )
>>
>> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>>
>> at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
>>
>> at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
>>
>>
>>
>> And this is the class now
>>
>> package dom.todo;
>>
>>
>> import java.math.BigDecimal;
>>
>> import java.util.List;
>>
>>
>> import javax.jdo.annotations.Extension;
>>
>> import javax.jdo.annotations.IdentityType;
>>
>> import javax.jdo.annotations.InheritanceStrategy;
>>
>>
>> import org.joda.time.LocalDate;
>>
>>
>> import org.apache.isis.applib.AbstractViewModel;
>>
>> import org.apache.isis.applib.annotation.Bookmarkable;
>>
>> import org.apache.isis.applib.annotation.DescribedAs;
>>
>> import org.apache.isis.applib.annotation.Hidden;
>>
>> import org.apache.isis.applib.annotation.Immutable;
>>
>> import org.apache.isis.applib.annotation.Optional;
>>
>> import org.apache.isis.applib.annotation.Render;
>>
>> import org.apache.isis.applib.annotation.Render.Type;
>>
>> import org.apache.isis.applib.annotation.Title;
>>
>>
>>
>>
>> /**
>>
>> * View model that provides a summary of the sales made on a given day by
>> each party
>>
>> @javax.jdo.annotations.PersistenceCapable(
>>
>> identityType = IdentityType.NONDURABLE,
>>
>> table = "DailySalesTotalForParty",
>>
>> extensions = {
>>
>> @Extension(vendorName = "datanucleus", key = "view-definition",
>>
>> value = "CREATE VIEW \"DailySalesTotalForParty\" " +
>>
>> "( " +
>>
>> "  {this.transactionDate}, " +
>>
>> "  {this.fromParty}, " +
>>
>> "  {this.transactiontype}, " +
>>
>> "  {this.totalAmount} " +
>>
>> ") AS " +
>>
>> "SELECT " +
>>
>> "   \"Tranaction\".\"transactionDate\" , " +
>>
>> "   \"Transaction.\".\"fromParty\", " +
>>
>> "   \"Transaction.\".\"transactiontype\", " +
>>
>> "   SUM(\"Transaction\".\"facevalue\") AS \"totalAmount\", " +
>>
>> "  FROM \"Transaction\" " +
>>
>> "GROUP BY " +
>>
>> " \"fromParty\", " +
>>
>> " \"transactionDate\" , " +
>>
>> " \"transactiontype\""  +
>>
>> "ORDER BY " +                     " \"fromParty\", " +
>>
>> " \"transactionDate\" , " +
>>
>> " \"transactiontype\"" )
>>
>> })
>>
>>
>>
>> */
>>
>> @javax.jdo.annotations.PersistenceCapable(
>>
>>    identityType = IdentityType.NONDURABLE,
>>
>>    table = "DailySalesTotalForParty",
>>
>>    extensions = {
>>
>>        @Extension(vendorName = "datanucleus", key = "view-definition",
>>
>>            value = "CREATE VIEW \"DailySalesTotalForParty\" " +
>>
>>                    "( " +
>>
>>                    "  {this.transactionDate}, " +
>>
>>                    "  {this.totalAmount} " +
>>
>>                    "  {this.fromParty} " +
>>
>>                    ") AS " +
>>
>>                    "SELECT " +
>>
>>                    "   \"Transaction\".\"transactionDate\" , " +
>>
>>
>>                    "   SUM(\"Transaction\".\"faceValue\") AS
>> \"totalAmount\" ," +
>>
>>                    "   \"Transaction\".\"fromParty_Party_ID_OID\" AS
>> \"fromParty\" " +
>>
>>                    "  FROM " +
>>
>> "   \"Transaction\" " +
>>
>>                    "GROUP BY " +
>>
>>                    " \"transactionDate\"  " +
>>
>>                    "ORDER BY " +
>>
>>                    " \"transactionDate\" ")
>>
>>    })
>>
>> @javax.jdo.annotations.Inheritance(strategy =
>> InheritanceStrategy.NEW_TABLE)
>>
>> @javax.jdo.annotations.Queries( {
>>
>> @javax.jdo.annotations.Query(
>>
>> name="DailySalesForParty", language="JDOQL",
>>
>> value="SELECT FROM dom.todo.DailySalesTotalForParty WHERE fromParty ==
>> :party ")
>>
>> })
>>
>> @Bookmarkable
>>
>> @Immutable
>>
>> public class DailySalesTotalForParty  {
>>
>>
>>        // //////////////////////////////////////
>>
>> /**
>>
>>    @javax.jdo.annotations.Column(allowsNull = "false")
>>
>>    private String fromParty;
>>
>>
>>    /**
>>
>>     * Lazily loaded from the {@link #getReference() reference}, provides
>> access
>>
>>     * to the underlying {@link Property}.
>>
>>      @Optional
>>
>>    @Title(sequence = "1")
>>
>>    public String getFromParty() {
>>
>>        return fromParty;
>>
>>    }
>>
>>
>>    public void setFromParty(final String party) {
>>
>>        this.fromParty = party;
>>
>>    }
>>
>> */
>>
>>    // //////////////////////////////////////
>>
>> private java.math.BigInteger fromParty;
>>
>> @Optional
>>
>> public java.math.BigInteger getFromParty(){
>>
>> return this.fromParty;
>>
>> }
>>
>> public void setFromParty_Party_ID_OID(java.math.BigInteger id ){
>>
>> this.fromParty =id;
>>
>> }
>>
>>
>> //////////////////////////////////////
>>
>>    private LocalDate transactionDate;
>>
>>
>>    @Title(sequence = "2", prepend = " - ")
>>
>>    public LocalDate getTransactionDate() {
>>
>>        return transactionDate;
>>
>>    }
>>
>>
>>    public void setTransactionDate(final LocalDate dueDate) {
>>
>>        this.transactionDate = dueDate;
>>
>>    }
>>
>>
>>    // //////////////////////////////////////
>>
>>
>>    private BigDecimal totalAmount;
>>
>>
>>    public BigDecimal getTotalAmount() {
>>
>>        return totalAmount;
>>
>>    }
>>
>>
>>    public void setTotalAmount(final BigDecimal total) {
>>
>>        this.totalAmount = total;
>>
>>    }
>>
>>
>>
>>
>>    // //////////////////////////////////////
>>
>>
>>   /** @Render(Type.EAGERLY)
>>
>>    public List<Transaction> getTransactions() {
>>
>>    return transactions.findTransactionForPartyOnDate(getFromParty(),
>> getTransactionDate());
>>
>>    }
>>
>> */
>>
>>    // //////////////////////////////////////
>>
>>
>>    private Partytypes partytypes;
>>
>>
>>    final public void injectPartytypes(final Partytypes partytypes) {
>>
>>        this.partytypes = partytypes;
>>
>>    }
>>
>>
>>    private Transactions transactions;
>>
>>
>>    final public void injectTransactions(final Transactions transactions) {
>>
>>        this.transactions = transactions;
>>
>>    }
>>
>>
>> }
>>
>>
>>
>> On Mon, Feb 24, 2014 at 11:44 PM, Dan Haywood
>> <[email protected]>wrote:
>>
>> On 24 February 2014 21:38, james agada <[email protected]> wrote:
>>
>> You are right. It comes from this definition - not sure what is wrong
>>
>> with
>>
>> it
>>
>> I can see several issues, some trivial, some probably the cause...
>>
>>
>> If, once you've addressed these, there are still issues, then I suggest
>> you
>> strip the class back to a single field, get that working, and then build
>> it
>> up bit by bit...
>>
>> Dan
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> * /* *  Licensed to the Apache Software Foundation (ASF) under one *  or
>> more contributor license agreements.  See the NOTICE file *  distributed
>> with this work for additional information *  regarding copyright
>>
>> ownership.
>>
>> The ASF licenses this file *  to you under the Apache License, Version
>>
>> 2.0
>>
>> (the *  "License"); you may not use this file except in compliance *
>>
>> with
>>
>> the License.  You may obtain a copy of the License at * *
>> http://www.apache.org/licenses/LICENSE-2.0
>> <http://www.apache.org/licenses/LICENSE-2.0> * *  Unless required by
>> applicable law or agreed to in writing, *  software distributed under the
>> License is distributed on an *  "AS IS" BASIS, WITHOUT WARRANTIES OR
>> CONDITIONS OF ANY *  KIND, either express or implied.  See the License
>>
>> for
>>
>> the *  specific language governing permissions and limitations *  under
>>
>> the
>>
>> License. */*
>>
>> (trivial) you probably will want to change the license...
>>
>>
>>
>>
>> * package dom.todo;*
>>
>> (trivial) ... and the package
>>
>>
>>
>> [snip]
>>
>>
>>
>> /**
>> * View model that provides a summary of the sales made on a given day by
>> each party
>> */
>> @javax.jdo.annotations.PersistenceCapable(
>>    identityType = IdentityType.NONDURABLE,
>>    table = "DailySalesTotalForParty",
>>    extensions = {
>>        @Extension(vendorName = "datanucleus", key = "view-definition",
>>            value = "CREATE VIEW \"DailySalesTotalForParty\" " +
>>                    "( " +
>>                    "  {this.transactionDate}, " +
>>
>> *                     "  {this.fromPartyId}, " +*
>>
>>
>> I don't think JDO is clever enough to convert this id into a reference to
>> a
>> Party (how would it know?)  So you should do what we did
>> in InvoiceSummaryForPropertyDueDate in Estatio (which is what I think you
>> based this on) and make FromParty a derived field that does the lookup
>> from
>> a (new) fromPartyId field.
>>
>>
>>
>>
>>
>> *                     "  {this.transactiontype}, " +*
>>
>>
>> there is no 'transactiontype' field on your class ...
>>
>>
>>
>>                     "  {this.totalAmount} " +
>>                    ") AS " +
>>                    "SELECT " +
>>
>> *                     "   \"Tranaction\".\"transactiondate\" , " +*
>>
>>
>>
>> the typo on this line "Tranaction".
>>
>> Also, I suggest keeping capitalization consistent, ie transactionDate, not
>> transactiondate.
>>
>>
>>
>>                     "   \"Transaction.\".\"fromParty\", " +
>>                    "   \"Transaction.\".\"transactiontype\", "
>> +
>>                    "   SUM(\"Transaction\".\"facevalue\") AS
>> \"totalAmount\", " +
>>                    "  FROM \"Transaction\" " +
>>                    "GROUP BY " +
>>                    " \"Transaction\".\"fromParty\", " +
>>                    " \"Transaction\".\"transactiondate\" , " +
>>                    " \"Transaction\".\"transactiontype\""  +
>>                    "ORDER BY " +                     "
>> \"Transaction\".\"fromParty\", " +
>>                    " \"Transaction\".\"transactiondate\" , " +
>>                    " \"Transaction\".\"transactiontype\"" )
>>    })
>> @javax.jdo.annotations.Inheritance(strategy =
>> InheritanceStrategy.NEW_TABLE)
>> @javax.jdo.annotations.Queries( {
>>        @javax.jdo.annotations.Query(
>>                                name="DailySalesForParty",
>> language="JDOQL",
>>                                value="SELECT FROM
>> dom.todo.DailySalesTotalForParty WHERE fromParty == :party ")
>>                        })
>> @Bookmarkable
>> @Immutable
>> public class DailySalesTotalForParty  {
>>
>>        // //////////////////////////////////////
>>
>>
>>    @javax.jdo.annotations.Column(allowsNull = "false")
>>    private Party fromParty;
>>
>>
>>
>>
>>
>>
>> *     /**      * Lazily loaded from the {@link #getReference()
>>
>> reference},
>>
>> provides access      * to the underlying {@link Property}.      */*
>>
>>
>>
>> This comment is from the Estatio code (but does describe what you should
>> do
>> to resolve "FromParty").
>>
>>
>>     @Optional
>>    @Title(sequence = "1")
>>    public Party getFromParty() {
>>        return fromParty;
>>    }
>>
>>    public void setFromParty(final Party party) {
>>        this.fromParty = party;
>>    }
>>
>>    // //////////////////////////////////////
>>
>>    private LocalDate transactionDate;
>>
>>    @Title(sequence = "2", prepend = " - ")
>>    public LocalDate getTransactionDate() {
>>        return transactionDate;
>>    }
>>
>>    public void setTransactionDate(final LocalDate dueDate) {
>>        this.transactionDate = dueDate;
>>    }
>>
>>    // //////////////////////////////////////
>>
>>    private BigDecimal totalAmount;
>>
>>    public BigDecimal getTotalAmount() {
>>        return totalAmount;
>>    }
>>
>>    public void setTotalAmount(final BigDecimal total) {
>>        this.totalAmount = total;
>>    }
>>
>>
>>    // //////////////////////////////////////
>>
>>   /** @Render(Type.EAGERLY)
>>    public List<Transaction> getTransactions() {
>>        return transactions.findTransactionForPartyOnDate(getFromParty(),
>> getTransactionDate());
>>    }
>> **/
>>    // //////////////////////////////////////
>>
>>    private Partytypes partytypes;
>>
>>    final public void injectPartytypes(final Partytypes partytypes) {
>>        this.partytypes = partytypes;
>>    }
>>
>>    private Transactions transactions;
>>
>>    final public void injectTransactions(final Transactions
>>
>> transactions) {
>>
>>        this.transactions = transactions;
>>    }
>>
>> }
>>
>>
>>
>>
>>
>> Óscar Bou Bou
>> Responsable de Producto
>> Auditor Jefe de Certificación ISO 27001 en BSI
>> CISA, CRISC, APMG ISO 20000, ITIL-F
>>
>>    902 900 231 / 620 267 520
>>    http://www.twitter.com/oscarbou
>>
>>    http://es.linkedin.com/in/oscarbou
>>
>>    http://www.GesConsultor.com <http://www.gesconsultor.com/>
>>
>>
>>
>> Este mensaje y los ficheros anexos son confidenciales. Los mismos
>> contienen información reservada que no puede ser difundida. Si usted ha
>> recibido este correo por error, tenga la amabilidad de eliminarlo de su
>> sistema y avisar al remitente mediante reenvío a su dirección electrónica;
>> no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
>> Su dirección de correo electrónico junto a sus datos personales constan
>> en un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es la
>> de mantener el contacto con Ud. Si quiere saber de qué información
>> disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo
>> enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a
>> la siguiente dirección: Gesdatos Software, S.L. , Paseo de la Castellana,
>> 153 bajo - 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015
>> (Valencia). Asimismo, es su responsabilidad comprobar que este mensaje o
>> sus archivos adjuntos no contengan virus informáticos, y en caso que los
>> tuvieran eliminarlos.
>>
>>
>>
>>
>>
>>
>

Reply via email to