Cambiar el formato a campo definido por usuario


#1

Hola tengo un problema, resulta que el año pasado se creo un campo definido por usuario con las siguientes característica;
Ubicacion - Ducumento de Marketing
Titulo - OCNUM
Descripcion - Orden de Compra Numero / CV
Tipo - Numérico
Largo - 11
Validacion - Ninguno

Pero ahora necesitan que ese mismo campo sea Tipo alfanumérico y no numérico.
Me mencionaron en otro lugar que lo podía hacer con Data Transfer , pero no se como hacer esta tarea, alguien me podría ayudar con este tema.


#2

Buenas tardes.

Creo recordar que los campos “título, tipo y estructura” no se pueden modificar, al menos desde la imagén que muestras.

Lo puedes eliminar y crearlo de nuevo con los datos que necesitas?

Saludos.


#3

Si podría eliminar el campo, pero como lo puedo hacer para no perder la información que ya tengo guardada en ese campo?


#4

Hol@ @GERARDO_ALBER:

Buenas tardes, lo primero realice una consulta para obtener los valores de este campo, luego elimine el campo y por último como mencionaba inicialmente, sube estos nuevos valores por data transfer.

Saludos :raised_hand_with_fingers_splayed:t5:


#5

Extrae el valor de esos campos con una consulta.
Crea el campo nuevo.
Sube los valores a ese campo nuevo tras adecuarlos a su formato.
Después que este bien borra el campo anterior.


#6

Tengo una duda puesto que estuve averiguando y la tabla CUFD muestra todos los lugares donde esta este campo:
Ejemplo en mi caso.


#7

Hola quería consultar, tendré algún problema si modifico el tipo de dato en SQL, tenia el campo U:Ocnum (Campo definido por usuario) tipo INT y lo cambie a NVARCHAR(20), realice el cambio en mi base de pruebas y paso sin problemas e incluso genere un documento y no me dio error, me provocara algún conflicto con el tempo si lo cambio en mi base de producción??
Me imagino que tendria que cambiarlo en togas las tablas que mencione mas arriba.

Expresion SQL usada al realizar el cambio
ALTER TABLE ODLN
ALTER COLUMN U_Ocnum nvarchar(20)


#8

NO LO HAGAS EN PRODUCTIVO…

ok… despues del pequeño grito y disculpa por hacerlo… te explico. Te puede funcionar hermosamente, y sin inconvenientes el que lo hagas así por BD.

PEEEEEROOOOOO… (siempre existe un pero no?) cuando vas a realizar el Upgrade de la BD a cualquier versión posterior nunca podrás hacerlo, ya que entre las validaciones que hace el sistema es que los campos y tablas mantienen la misma relación guardada internamente de su momento de creación antes de hacerle el upgrade. Al encontrar la inconsistencia que el campo fue creado originalmente con menos caracteres y ahora tiene más por SQL los upgrade te arrojan error.

Esto ya me pasó, la única manera en ese momento de poder hacer el upgrade es eliminando el campo (y pobre de ti si lo haces en un campo de SAP y no en uno de usuario), con lo que será peor el remedio que la enfermedad ya que si no tienes respaldos y un plan de recuperación de esa información luego y demás no servirá de nada que lo modifiques porque perderas la información en tu proximo upgrade…

Haaa si y otro punto. PIERDES LA GARANTÍA DE SAP. Te pediran que para ayudarte a cualqueir cosa, lo que sea, así sea que un reporte crystal arroja un error raro, o que no hace una reconciliación interna o lo que sea, no importa el tamaño del problema, pequeño o grande, SAP no te cubrirá el soporte y te pedirá que para hacerlo debes darle una BD donde se replique el error y sea antes de que hicieras ese cambio en SQL.

En definitiva. NO LO HAGAS.


#9

OK no realizare este cambio en mi base de producción. Sigo como empece .:worried:


#10

Hola compañero.

He leido tu caso, en verdad no hay motivo para tener complicaciones, yo muchas veces he tenido que migrar los valores de un campo a otro nuevo, por determinadas razones. En verdad, haz caso a lo recomendado, crea tu nuevo campo y migra los valores del anterior al nuevo, es una plantilla de DTW muy simple.

Saludos.


#11

Hola,
Sigue los siguientes pasos (el orden es importante)

  1. crear UDF, llámalo por ejemplo AUX (y del mismo tipo del udf que realmente quieres crear)
  2. por sql haces UPDATE set AUX = elUDF_del_que_quieres_cambiar_su_tipo
  3. eliminas el campo antiguo
  4. creas el muevo campo con el nuevo tipo
  5. por sql haces UPDATE set New_campo = AUX
  6. eliminas el campo AUX

Resultado final: el campo pasa de numerico a alfanumerico y has mantenido los datos sin haber perdido información


#12

Estimado intente realizar lo que me indicaste pero al realizar la consulta, SQL me indica que tengo un error en el SET, revise y en la declaración
UPDATE set AUX = elUDF_del_que_quieres_cambiar_su_tipo
falta
UPDATE tabla set AUX = elUDF_del_que_quieres_cambiar_su_tipo
Lo malo es que el campo lo uso en mas de una tabla (por ejemplo arriba se indica en todas las tablas en las que esta presente este campo)


#13

Por lo que veo es un udf creado en el maestro de documentos de marketing…con lo cual como bien dices…sicho campo estará presente en todas las tablas de documentos de marketing (pedidos, albaranes ,facturas ,abonos ,etc… tanto de compras como de ventas y otras tablas adicionales)

Para que no se te escape ninguna tabla… has el upate en todas ellas (para saber que tablas son las afectadas … puedes hacer una query similar a esta: SELECT tablename FROM CUFD WHERE fieldname = myUDF (la query te la estoy diciendo de memoria…puede que tengas que afinarla yn pizco)

IMPORTANTE: Sobra decir que…Hazlo primero en una BBDD de pruebas por si acaso !!!.. y una vez te asegures de que todo está ok… podras repetir todo el proceso en tu bbdd real

Espero haberte ayudado…saludos!!


#14

Este tema se cerró por inactividad por parte del autor.

Copia la URL de este debate, y abre un nuevo tema en #feedback si:

  • El autor del debate no marcó ninguna respuesta como solución, y tú crees tener la solución
  • Crees tener otra solución a la que actualmente está marcada.

Si, en cambio tienes una duda parecida a la que se debatió, o la misma duda, abre un nuevo tema en la categoría que corresponda y pon que el tema se debatió oportunamente (pega el enlace a este debate), así los otros lectores pueden saber de qué hablas.

Ayúdanos a tener una comunidad organizada.