Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado DELETE-SQL
25-04-2016, 07:16 PM
Mensaje: #1
DELETE-SQL
Tengo una duda respecto a la hora de configurar los valores para este nodo.

Tabla Origen (BD XOne): No tiene campos ID ni ROWID.

Tabla Destino (Gen_XXXX BD XOne): Es la misma estructura que la origen pero incluye los campos ID y ROWID.

La funcionalidad que se tiene que dar es la siguiente:

- El usuario introduce en la tabla Origen un registro, con campo de marcado OK=0.

- El intercliente busca aquellos registros con OK=0, los traspasa a la tabla Destino y actualiza los datos de origen haciendo un update para dejarlo en OK=1.

- El usuario quiere eliminar un registro en la tabla origen. La idea sería que el usuario no hiciera el delete como tal, sino que realizara un update marcando el campo OK=3, para posteriormente procesar estos registros con el intercliente y eliminar estos registros en origen y destino.


La instrucción que incluyo en el intercliente es la siguiente. No consigo que se realicen los deletes.

Código:
<transform name="ProgramacionEliminar">
   <coll dest-table="gen_programacion" source-table="SELECT IDX FROM PROGRAMACION WHERE OK=3" >
      <prop source-name="IDX" dest-name="IDX" type="N" key="true" saved-source="true" saved-dest="true">
            <oper type="copy" />
      </prop>
      <delete>
         <action name="delete-sql" source-table="Programacion" delete-source="true" where="IDX=##SOURCEKEYVALUES##" delete-dest-table="gen_programacion" select-dest-table="gen_programacion" />
      </delete>
   </coll>
</transform>


Comentar que las operaciones de traspaso de datos funcionan correctamente, no van incluídas en el código.

Me despista un poco la explicación que aparece en la Wiki, en la que se indica que se realiza la búsqueda de los ROWID en la tabla origen. ¿Es imprescindible buscar por este campo?


Muchas gracia por la ayuda.
Encuentra todos sus mensajes
26-04-2016, 07:22 AM
Mensaje: #2
RE: DELETE-SQL
Hola, lo primero es indicarte que si pones una transformación que va a realizar un delete, no le pongas una operacion para copiar, por ello, aunque se pone la transformación para ver la relación no se pone la operación.

Luego indicas que no te copias, pero no nos dices que pone en el visor de sucesos.

Te pongo como lo debes poner:

Código:
<transform name="ProgramacionEliminar">
   <coll dest-table="gen_programacion" source-table="SELECT IDX FROM PROGRAMACION WHERE OK=3" >
      <prop source-name="IDX" dest-name="IDX" type="N" key="true" saved-source="true" saved-dest="true">
      </prop>
      <delete>
<action name="delete-conditional" delete-dest-table="gen_programacion" use-saved-dest="true"/>
      </delete>
   </coll>
</transform>
Encuentra todos sus mensajes
26-04-2016, 09:11 AM
Mensaje: #3
RE: DELETE-SQL
En el visor de eventos solo aparecen los mensajes de inicio y finalización de ejecución del servicio, a pesar de tener el parámetro logoper a true.

Por otra parte, según pone en la wiki para delete-sql: "Esta operación sirve para realizar el borrado tanto en el cliente, como en la base de datos de Xone, para que además de borrar de la tabla normal, inserta el borrado en la cola de réplica."

Entiendo que debería utilizar este tipo de nodo ya que quiero que se eliminen los registros en ambas tablas, y el nodo que me indicas es el nodo DELETE-CONDITIONAL. Hice pruebas con este nodo y elimina correctamente los registros de la tabla destino, pero no ataca a los de la tabla origen.
Encuentra todos sus mensajes
26-04-2016, 09:17 AM
Mensaje: #4
RE: DELETE-SQL
Para borrar en tabla origen, lo que tienes que poner es un after-action, donde pongas tu el delete que necesitas segun la macro ##SOURCEKEYVALUES##, es lo mejor por su rapidez y sencillez.
Encuentra todos sus mensajes
26-04-2016, 10:11 AM
Mensaje: #5
RE: DELETE-SQL
Perfecto, con el nodo after-action se consigue lo que comentaba.


Muchas gracias por la ayuda!!!
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS