Saltar al contenido

¿Cómo actualizar un conjunto de tablas usando la transformación de operación de mapa BODS?

Un Usuario hizo la siguiente pregunta

Hola a todos,

Estoy tratando de actualizar un valor en una tabla usando una transformación de operación de mapa como se muestra a continuación, estoy usando una función entre la fuente y el objetivo y quiero actualizar el valor del salario (resaltado) pero no puedo hacerlo.

bods1.jpg
(63,2 kB)

bods2.png
(11,3 kB)

5 respuestas

  • Map_Operation debe usarse junto con «table compare translate» donde las filas después de «table compare» se marcarán como insertar, eliminar, actualizar y puede usar Map_Operation para actualizar la tabla de destino de acuerdo con sus necesidades comerciales. Por ejemplo, no le importan los datos eliminados, luego, para otro tipo, puede seleccionar «ignorar».

    Map_Operation y «table compare» se utilizan como «CDC», puede usar «table compare» para comparar si hay algún cambio para la fuente y la carga a la que se dirige.

    En su caso ahora, dado que la «comparación de tablas» no se utiliza, por lo que todas las filas se marcan como «normales», de acuerdo con su configuración aquí, no hay ninguna acción en el destino.

    Todo lo mejor

    Helena

  • kaushik goli

    ¿Cuáles son sus criterios de actualización? ¿Desea actualizar todos los registros o simplemente desea actualizar algunos registros después de verlos?

  • Solo quiero actualizar algunos registros, por ejemplo, en el caso anterior, el salario “HARISH” se actualiza en la fuente pero no se refleja en la meta.

  • Normalmente, la operación de MAP debe registrarse con el tipo normal, actualizar, insertar o eliminar. por lo tanto, si no usa una tabla de comparación, el sistema no puede identificar si es un registro actualizado o un registro normal.

    En su caso, utilizó la transformación de consulta como fuente para la operación de mapa, los registros de salida de la transformación de consulta tienen la marca estándar, ya que todos los datos están marcados como normales y está eliminando los datos normales marcados, los cambios no se reflejan en su tabla de destino.

    Debe utilizar la tabla de comparación para buscar y marcar los tipos de registro.

    Sobre,

    Santhana.

  • 7.jpg De acuerdo con mi requisito, tengo que hacer INSERT, UPDATE, DELETE sin usar la transformación de comparación de tablas. Así que asumí un flujo de datos para cada operación como se muestra en la siguiente imagen:

    Tengo que realizar las operaciones anteriores en función de la columna «fecha de la última actualización», así que escribí un script para elegir el máximo (fecha de la última actualización) como se muestra en la siguiente imagen:

    CASO 1:

    Solo ingreso un valor en la tabla de destino usando una función de búsqueda:

    • Acepto una condición cuando la consulta cambia a «BODS_TEST_SOURCE4.LAST_UPDATE_DATE> $ MAX_LAST_UPDATE_DATE»
    • He creado una función de búsqueda en la transformación de consulta donde mi tabla de búsqueda es mi tabla de destino y una tabla de comparación será mi fuente.
    • Estoy comparando estas tablas según el «EMP_ID», siempre que haya una coincidencia en «EMP_ID» entre la fuente y el destino, el valor de retorno de la función de observación NULL solo será si dicho «EMP_ID» no está en el destino, el valor de retorno de la función será el valor predeterminado (es decir, ‘0’ en mi caso).

    En el siguiente paso, estoy usando un transformador de queso para filtrar mi caso entrante

    • En este caso, solo se realizará el envío de acuerdo con las condiciones especificadas

    De manera similar, quiero actualizar un registro especificando el caso a continuación:

    Donde el valor de mi bandera no es igual a ‘0’, el «EMP_ID» está presente en la tabla, pero esto debe ser actualizado por fuente, por lo que en el siguiente paso estoy usando una transformación de operación de mapa:

    Pero no puedo actualizar el registro como se menciona en el problema principal.

    2.jpg
    (17,1 kB)

    3.jpg
    (16,2 kB)

    4.jpg
    (16,4 kB)

    5.jpg
    (59,9 kB)

    6.jpg
    (46,2 kB)

    7.jpg
    (40,2 kB)

    7.jpg
    (40,2 kB)

    8.jpg
    (55,9 kB)