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 30/08/06, 10:45:41
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Crear una orden de transporte manualmente

Hola, primero me presento, me llamo LouieBoy y llevo 5 meses trabajando como programador jr en abap IV,
Bien, al turron!, estoy haciendo un report que recoje un excel, lo guarda en una tabla interna y luego hace una orden de transporte de tipo workbench con estas entradas, pues bien... no hay manera de conseguir hacer la orden debuggeando el standard he dado con estas dos funciones TRINT_ORDER_CHOICE y TRINT_APPEND_TO_COMM_ARRAYS en la segunda le tienes q pasar entre otras muchas cosas, una tabla de tipo e071k, esta tabla tiene un campo llamado tabkey donde tienes que meter toda la información de cada fila, si utilizas el concatenate te monta un churro sin espacios, en cambio si miras lo q hace mr sap es exactamente lo mismo pero metiendo espacios en determinados sitios y de un determinado tamaño ya he probado de hacer shift a los campos antes de concatenar la cadena, pero tampoco... eso tiene q seguir alguna logica pero no se me ocurre, alguien se ha tenido q pelear alguna vez con esto?

Saludos!

LouieBoy
Responder Con Cita
  #2  
Viejo 31/08/06, 13:54:14
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Solucionado

Bueno, despuesde de un par de dias ya he dado con la solución, no veas.....
En fin al turroooon!!.

En primer lugar os dire que la orden es de tipo Workbench, según tengo entendido las de customizing es algo más complicado.
Como ya habia dicho se utilizan estas dos funciones TRINT_ORDER_CHOICE y TRINT_APPEND_TO_COMM_ARRAYS.

Para que os sea un poco más facil de entender, os explicare de que trata la aplicación que he hecho...se trata de un BI mediante call transaction el cual hace una PARAMETRIZACIÓN a la tabla T9KRE mediante la transacción YK22, está transacción por cada registro que parametrizas te devuelve una clave, las cuales tinenes q ir apuntando como un campeon, para luego ir a las se16 seleccionarlas y transportar las entradas, lo q es un coñazo, si te llegan 91 claves...como me paso a mi el otro dia.....

La verdad es que no se bien bien bien com funciona todo el tema de transportes mi solucion se ha basado en ir a la transacción SE16 y seleccionar unas entradas y luego crear una orden, a partir de ahi he debuggeado y copiado la información que se les pasa a las funciones, el caso es que funciona, pero a fecha de hoy 31-08-2006 llevo 5 meses programando asi que, como ya os podeis imaginar, no tengo ni zorra.
La primera función, por lo que he entendido es la que se encarga de crear una orden o nos permite utilizar una orden existente

1- llamamos a esta funicion, que aparentemente es para gestionar ids de ordenes y tareas.
CALL FUNCTION 'TRINT_ORDER_CHOICE'
EXPORTING
wi_order_type = 'K' <- para ordenes workbench
wi_task_type = 'S' <- para ordenes workbench
wi_category = 'SYST'
WI_CLIENT = SY-MANDT
Wi_cli_dep = 'X'
WI_REMOVE_LOCKS = 'X'
IMPORTING
we_order = order <- id orden de transporte
we_task = task <- id de tarea asociada a la orden transporte
TABLES
wt_e071 = objects
wt_e071k = keys
EXCEPTIONS
no_correction_selected = 1
display_mode = 2
object_append_error = 3
recursive_call = 4
wrong_order_type = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

2- Hay que informar la tabla objects con los siguientes parametros:

CLEAR: objects[], objects.
objects-PGMID = 'R3TR'.
objects-OBJECT = 'TABU'.
objects-OBJ_NAME = 'T9KRE'. <- tabla destino para la info
objects-OBJFUNC = 'K'. <- orden workbench
APPEND objects.

3-Hay que informar la tabla keys con los siguientes parametros(OJO A ESTO)

CLEAR KEYS[].
Por cada registro que queremos transportar
KEYS-PGMID = 'R3TR'.
KEYS-OBJECT = 'TABU'.
KEYS-OBJNAME = 'T9KRE'.
KEYS-MASTERTYPE = 'TABU'.
KEYS-MASTERNAME = 'T9KRE'.
ATENCION!!! en el campo KEYS-TABKEY va toda la información a transportar, osease, todo el registro, en mi caso, habia un campo que no debe incluirse, para aseguraros os recomiendo que primero hagais la orden manualmente y luego con este metodo con la misma informacion y la compareis.
Yo os recomiendo que utiliceis una estructura con los campos exactos, hagais un move-correspoding de la tabla interna a la structura y luego luego move hacia keys-tabkey.
MOVE-CORRESPONDING IT_CLAVES TO WA_CLAVES.
MOVE WA_CLAVES TO KEYS-TABKEY.
APPEND KEYS.
FIn bucle.


* IF NOT task IS INITIAL.
CALL FUNCTION 'TRINT_APPEND_TO_COMM_ARRAYS'
EXPORTING
wi_trkorr = task <- id de tarea asociada a la orden de transporte
TABLES
wt_e071 = objects
wt_e071k = keys
EXCEPTIONS
key_check_keysyntax_error = 1
ob_check_obj_error = 2
tr_lockmod_failed = 3
tr_lock_enqueue_failed = 4
tr_wrong_order_type = 5
tr_order_update_error = 6
file_access_error = 7
ob_no_systemname = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
ENDIF.
En principio esto es todo, dudo mucho que esta sea la solucion oficial ejjeje, pero almenos os servira para haceros una idea de como hacerlo, luego quien sepa mas o decida profundizar, pues ya hara sus aportaciones, a mi de momento me ha funcionado, pero repito que no es una solucion generica, sino todo al contrario, por lo que sigo recomendando que antes estudieis como hace sap todo esto, de manera manual, y luego lo automatizais con este metodo...o mejorado...ya que la mas de la mitad de parametros no se para que sirven jejejeje

En fin espero haber sido de ayuda.

Un saludo

LouieBoy
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 14:39:09.


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