MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 04/07/07, 14:10:12
veocolores veocolores is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 5
Datos adicionales de cliente

Hola a todos!!

Antes de nada, agradecer por adelantado vuestra atención y ayuda.

Este es mi primer mensaje en el foro, y la verdad es que ya estoy un poco desesperado con el tema que me ocupa...

Veamos...

Estoy creando desde página web, mediante Java y JCO, clientes en SAP. Para ello me he tenido que crear una Función RFC que haga de intermediaria y que entre otras cosas llama a la famosa CUSTOMER_MAINTAIN_ALL.

Entre los problemas que me encontré, que no contemplaba esa función, está el de la inserción de un teléfono móvil de contacto. Parece que esta parte la he conseguido solucionar mediante inserciones en las tablas ADR2 y ADRU (con el ADDRNUMBER que me viene en la KNA1 tras la creación del cliente).

Pero ahora se me presenta el problema de que se pretende meter direcciones adicionales aparte de la general, para el cliente, dependiendo de la sociedad a la que está vinculada (dentro de nuestra corporación) y a la delegación.

El caso es que no veo forma de crear esa nueva dirección, he mirado la función ADDRESS_INSERT, pero no consigo hacer que funcione, ya que al probar me da error, concretamente: DEFAULT_COMMU_SYS_MISSING, que no sé que quiere decir.

La idea es crear esa dirección adicional, para que me devuelva el pertinente ADDRNUMBER, que será el que junto con otros datos, meta en la tabla ZKNDEL.

¿Alguna idea?, ¿voy muy desencaminado?, ¿Hay algún sitio donde encontrar información detallada sobre el uso de las FUNCIONES DE SAP?, ¿algún libro?.

Gracias a todos.

Salut!
Responder Con Cita
  #2  
Viejo 06/07/07, 10:50:55
veocolores veocolores is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 5
Hola de nuevo!...

Una preguntilla...., alguien sabe si el código generado para el ADDRNUMBER, se puede introducir directamente en la tabla/tablas pertinentes, quiero decir, si yo leo el último que esté creado, le sumo uno e inserto el nuevo registro en la tabla, ¿habría algún problema (aparte de que deba insertarse en más tablas)?

¿En qué otras tablas debería insertar datos?


Gracias.
Responder Con Cita
  #3  
Viejo 10/07/07, 14:10:38
veocolores veocolores is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 5
Y cómo no!, yo otra vez.

En esta ocasión para contaros lo que finalmente he hecho para solucionar (o al menos intentarlo) mi problema:

Dado que la tabla ADRC es la principal de direcciones, saco el máximo identificador de registro de esta tabla.

Le sumo 1 y lo uso para inmediatamente insertar el nuevo registro con los datos de dirección.

Con ese identificador creo las correspondientes entradas en: ADR2 (para móvil y teléfono si los hay), ADR3 para el Fax y en ADR6 para el email (siempre en caso de existir).

Igualmente inserto entradas en la tabla ADRU (3 para el teléfono, 2 para el móvil y para el fax)


Y finalmente inserto (junto a otros datos) el identificador de dirección en la tabla ZKNDEL.

Así consigo lo que quería...., aunque tengo la duda de si se me pasa algo por alto.


Salut!
Responder Con Cita
  #4  
Viejo 11/07/07, 03:01:00
Avatar de abapedro
abapedro abapedro is offline
Member
 
Fecha de Ingreso: mar 2007
Mensajes: 83
Wink

Hola,

En todo lo que he trabajado de desarrollos SAP siempre hemos tenido la premisa de NO editar directamente las tablas estándar. El camino indicado es invocar las transacciones estándar suministrandoles la información que se desea insertar o modificar.

Es una medida de prudencia pues no tenemos conocimiento completo de las tablas ni de las relaciones entre esas tablas.

Con esta base considero poco prudente insertar registros directamente pues es muy probable que se dañe la integridad referencial de la base de datos.

Le recomendaría buscar la forma de invocar desde Java una de las transacciones estándar de edición de clientes (XD02, FD02 o VD02) y asi se evita la complejidad de actualizar una diversidad de tablas e igualmente se evita el riesgo de dañarla integridad referencial.
Responder Con Cita
  #5  
Viejo 11/07/07, 07:45:33
veocolores veocolores is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 5
Hola!

Lo primero, gracias por tú respuesta.

En cuanto a lo de editar las tablas...., he estado buscando por todos los sitios que se me ha ocurrido (de Internet y del propio SAP), la forma de conseguir hacerlo sin recurrir a las tablas. Es por ello que para casi todos los datos que necesito, he conseguido usar la función CUSTOMER_MAINTAIN_ALL.

El caso es que (incomprensiblemente), hay cosas que escapan a esa función, entre ellas lo de crear esas direcciónes adicionales dependiendo de la delegación, sociedad y empresa cliente.

Tras dar muchas vueltas, he podido ver que las tablas que comento arriba son las que están implicadas en la gestión de direcciones y formas de contacto.

No obstante, estoy ahora en la vía de investigar los IDOCS, sobre los cuales tampoco tengo mucha información. El motivo de esta nueva vía, es por el hecho de que ahora también tengo que insertar los datos de proveedores y si el caso de los clientes era complicado, el de los proveedores parece MUCHO más complicado..., ya que en este caso no hay función parecida a la "CUSTOMER_MAINTAIN_ALL" que me pueda servir.

Agradecería ayuda en cuanto al uso de IDOCS de forma síncrona desde Java, mediante JCO y la Java IDOC Class Library.

MUCHAS GRACIAS!!!
Responder Con Cita
  #6  
Viejo 18/07/07, 07:34:20
veocolores veocolores is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 5
Hola a todos....,

bueno, tras hacer un pre-intento con los IDOCS y ver que ni siquiera consigo hacer que funcionen (me dan error), finalmente he descubierto la posibilidad de grabar las acciones de una transacción mediante la SHDB.

Lo mejor es que puede convertir esa grabación en una función RFC y de esta forma llamarla desde el programa JAVA!!!

Una vez visto lo que hace la función, la adapté a mis necesidades, añadiendo lo que precisaba o adaptando algunos puntos de la misma.

Aun así he tenido problema con los datos adicionales, para los que tuve que hacer una grabación aparte y meter los datos de dirección de forma mixta entre la función ADDR_INSERT para la dirección postal y complementado con inserciones en tablas para los números de teléfono. Pero al menos ya tenía el identificador de la dirección, creado automáticamente por SAP.

Saludos.
Responder Con Cita
  #7  
Viejo 22/05/09, 20:48:55
cbrsap cbrsap is offline
Junior Member
 
Fecha de Ingreso: dic 2006
Mensajes: 1
No salgo de mi asombro, como puede ser que a alguien le permitan hacer semejante barbaridad? en que empresa trabajás? no tienen QA? nadie revisa lo que hacés?
Es inadmisible insertar registros en las tablas de SAP directamente!!!! si SAP lo ve te sacan el soporte sin opcion a reclamo!!!
Existen idocs, call transactions, bathc inputs, bapis, etc... para hacer las cosas correctamente, si no las sabes usar preguntá o busca alguien que te explique.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 19:25:20.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web