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 02/07/12, 19:35:27
amam2605 amam2605 is offline
Senior Member
 
Fecha de Ingreso: ene 2009
Mensajes: 150
BI para VA01

Hola a todos

Estoy realizando un programa BI para la VA01, donde debe leer los materiales y cantidad a devolver de ese pedido. EL problema es que no me esta leyendo la posicion 02, el archivo es asi:

Pedido Material Cantidad
100121245 800126 2
100124522 800300 6


Muchas Gracias d eantemano si me pueden ayudar.

Saludos

AMAM

Este es el codigo:
REPORT ZBI_DEVOLUCION NO STANDARD PAGE HEADING.

* Definición de tabla que recibe datos del archivo de texto
TYPES: BEGIN OF REC_T,
TIPPED1(4), " Tipo pedido
OV(4), " Organizacion Venta
CANAL(2), " Canal
SECTOR(2), " Sector
PEDIDO(10), " Nro. pedido
POS(6), " Posicion
CANTIDAD(5), " Cantidad ejemplares
END OF REC_T.


TABLES: VBAP,
VBAK.


DATA REC TYPE REC_T OCCURS 1 WITH HEADER LINE.
DATA: NUMPOS(6),
TIPPED(4),
POSI TYPE I,
W_CONTADOR TYPE I,
CONT TYPE I,
CANTI TYPE I.




* Tabla interna donde se volcara el fichero.


DATA: BEGIN OF TI OCCURS 0,
DEVOLU(10), " Numero de Devolucion
MATERIAL(18), " Nro. de Material
CANTI_PEDI(5), " Cantidad de Pedido
END OF TI.

DATA: BEGIN OF TI_AUX OCCURS 0,
DEVOLU(10), " Numero de Devolucion
MATERIAL(18), " Nro. de Material
CANTI_PEDI(5), " Cantidad de Pedido
END OF TI_AUX.




DATA: BEGIN OF BDC_TAB OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.


*------------- PARAMETROS----------------------------------------------*
PARAMETERS:


* Archivo de donde se cargaran los datos
N_FICH LIKE RLGRAP-FILENAME DEFAULT ' ',


* Nombre del Grupo de Sesiòn
NOMBREJD LIKE APQI-GROUPID DEFAULT 'PEDIDO_DEVOL'.



*------------- PROGRAMA PRINCIPAL -------------------------------------*
START-OF-SELECTION.




* Abre el Grupo de Sesiòn


CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = NOMBREJD
USER = SY-UNAME
KEEP = 'X'.


* Carga el Archivo de Datos pasado por paràmetro en la Tabla Interna TI


PERFORM CARGAR_TABLA.
CLEAR: TI.
LOOP AT TI.
TI_AUX[] = TI[].
IF TI-DEVOLU IS INITIAL.
EXIT.
ELSE.
*---- Carga la tabla interna BDC_TAB con los datos de ti

PERFORM TRATAMIENTO_PRINCIPAL.
ENDIF.

ENDLOOP.
* Cierra el grupo de sesiòn
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
WRITE: / 'JUEGO DE DATOS CREADO CON EL NOMBRE: ',
NOMBREJD LEFT-JUSTIFIED.
END-OF-SELECTION.


*-----------------------------------------------------------------------
* FORM CARGAR_TABLA
*-----------------------------------------------------------------------
* LLama a la Funciòn Upload con el nombre del archivo pasado por paramt.


FORM CARGAR_TABLA.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = N_FICH
FILETYPE = 'DAT'
TABLES
DATA_TAB = TI
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
ENDFORM.


*-----------------------------------------------------------------------
* FORM INSERTAR_EN_BDC_TAB
*-----------------------------------------------------------------------
* Llama a la funciòn BDC_INSERT con el nùmero de transaciòn que va a
* emular y el nombre de la tabla.


FORM INSERTAR_EN_BDC_TAB.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'VA01'
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
ENDFORM.


*-----------------------------------------------------------------------
* FORM TRATAMIENTO_PRINCIPAL
*-----------------------------------------------------------------------
* LLama al form Dynpro con los paràmetros correspondientes a cada
* pantalla de la transacciòn. LLama a Insertar_en_BDC_Tab.


FORM TRATAMIENTO_PRINCIPAL.

REFRESH BDC_TAB.
CLEAR BDC_TAB.


SELECT VKORG VTWEG SPART VBELN AUART
INTO (VBAK-VKORG , VBAK-VTWEG , VBAK-SPART , VBAK-VBELN , VBAK-AUART)
FROM VBAK
WHERE AUART IN ('ZRE4','ZPSA','ZPF9','ZPFH','ZPFI','ZP00','ZP01','ZP02')
AND VBAK~VBELN = TI-DEVOLU
AND FAKSK = ' '
ORDER BY VBELN.


REC-TIPPED1 = VBAK-AUART.
REC-OV = VBAK-VKORG.
REC-CANAL = VBAK-VTWEG.
REC-SECTOR = VBAK-SPART.
REC-PEDIDO = VBAK-VBELN.
APPEND REC.
CLEAR REC.
ENDSELECT.


LOOP AT REC.

IF REC-TIPPED1 = 'ZRE4'.
TIPPED = 'ZRE5'.
ENDIF.
IF REC-TIPPED1 = 'ZPSA'.
TIPPED = 'ZRE2'.
ENDIF.
IF REC-TIPPED1 = 'ZPF9'.
TIPPED = 'ZRE3'.
ENDIF.
IF REC-TIPPED1 = 'ZPFH'.
TIPPED = 'ZPGH'.
ENDIF.
IF REC-TIPPED1 = 'ZPFI'.
TIPPED = 'ZRE6'.
ENDIF.
IF REC-TIPPED1 = 'ZP00'.
TIPPED = 'ZRE7'.
ENDIF.
IF REC-TIPPED1 = 'ZP01'.
TIPPED = 'ZRE8'.
ENDIF.
IF REC-TIPPED1 = 'ZP02'.
TIPPED = 'ZRE9'.
ENDIF.


PERFORM DYNPRO USING:
'X' 'SAPMV45A' '0101',
' ' 'VBAK-AUART' TIPPED,
' ' 'VBAK-VKORG' REC-OV,
' ' 'VBAK-VTWEG' REC-CANAL,
' ' 'VBAK-SPART' REC-SECTOR,
' ' 'BDC_OKCODE' '/00'.


PERFORM DYNPRO USING:
'X' 'SAPLV45C' '0100',
' ' 'LV45C-VBELN' TI-DEVOLU,
' ' 'BDC_CURSOR' 'LV45C-VBELN',
' ' 'BDC_OKCODE' '=UEBR'.


PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4001',
' ' 'VBAK-AUGRU' 'Z05',
' ' 'BDC_SUBSCR' 'SAPMV45A 4050SUBSCREEN_BUTTONS',
' ' 'RV45A-VBAP_SELKZ(01)' 'X',
' ' 'BDC_CURSOR' 'VBAP-POSNR(01)',
' ' 'BDC_SUBSCR' 'SAPMV45A 4021SUBSCREEN_HEADER',
' ' 'BDC_SUBSCR' 'SAPMV45A 4701PART-SUB',
' ' 'BDC_OKCODE' '=PKAU'.



W_CONTADOR = 0.
LOOP AT TI_AUX WHERE DEVOLU = TI-DEVOLU.
W_CONTADOR = W_CONTADOR + 1.

IF W_CONTADOR EQ 1.
PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4003',
' ' 'RV45A-KWMENG(01)' TI_AUX-CANTI_PEDI,
' ' 'BDC_OKCODE' '/EBACK'.

ELSE.
PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4003',
' ' 'RV45A-KWMENG(02)' TI_AUX-CANTI_PEDI,
' ' 'BDC_OKCODE' '/EBACK'.
W_CONTADOR = 0.
ENDIF.

ENDLOOP.


PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4001',
' ' 'BDC_CURSOR' 'RV45A-MABNR(01)',
' ' 'BDC_SUBSCR' 'SAPMV45A 8310HEAD_USER',
' ' 'BDC_SUBSCR' 'SAPLV45W 0400SUBSCREEN_VERTRAG',
' ' 'BDC_SUBSCR' 'SAPMV45A 4902SUBSCREEN_TC',
' ' 'VBAK-AUGRU' 'Z05',
' ' 'BDC_OKCODE' '=KBES'.




PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4002',
' ' 'VBKD-IHREZ_E' '0',
' ' 'BDC_CURSOR' 'VBKD-IHREZ_E',
' ' 'BDC_SUBSCR' 'SAPMV45A 4351SUBSCREEN_BODY',
' ' 'BDC_SUBSCR' 'SAPMV45A 4012SUBSCREEN_HEADER',
' ' 'BDC_OKCODE' '/EBACK'.


PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4001',
' ' 'VBAK-AUGRU' 'Z05',
' ' 'BDC_SUBSCR' 'SAPMV45A 4050SUBSCREEN_BUTTONS',
' ' 'RV45A-VBAP_SELKZ(02)' 'X',
' ' 'BDC_CURSOR' 'VBAP-POSNR(02)',
' ' 'BDC_SUBSCR' 'SAPMV45A 4021SUBSCREEN_HEADER',
' ' 'BDC_SUBSCR' 'SAPMV45A 4701PART-SUB',
' ' 'BDC_OKCODE' '=PKAU'.




* PERFORM DYNPRO USING:
* 'X' 'SAPMV45A' '4003',
* ' ' 'RV45A-KWMENG' TI-CANTI_PEDI(02),
* ' ' 'BDC_OKCODE' '/EBACK'.
*

PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4001',
' ' 'BDC_CURSOR' 'RV45A-MABNR(02)',
' ' 'BDC_SUBSCR' 'SAPMV45A 8310HEAD_USER',
' ' 'BDC_SUBSCR' 'SAPLV45W 0400SUBSCREEN_VERTRAG',
' ' 'BDC_SUBSCR' 'SAPMV45A 4902SUBSCREEN_TC',
' ' 'VBAK-AUGRU' 'Z05',
' ' 'BDC_OKCODE' '=KBES'.




PERFORM DYNPRO USING:
'X' 'SAPMV45A' '4002',
' ' 'VBKD-IHREZ_E' '0',
' ' 'BDC_CURSOR' 'VBKD-IHREZ_E',
' ' 'BDC_SUBSCR' 'SAPMV45A 4351SUBSCREEN_BODY',
' ' 'BDC_SUBSCR' 'SAPMV45A 4012SUBSCREEN_HEADER',
' ' 'BDC_OKCODE' '=SICH'.


PERFORM INSERTAR_EN_BDC_TAB.


ENDLOOP.
ENDFORM.


*-----------------------------------------------------------------------
* FORM DYNPRO
*-----------------------------------------------------------------------
* Carga la tabla interna bdc con los datos de cada una de las pantallas


FORM DYNPRO USING DYNBEGIN CAMPO VALOR.
CLEAR BDC_TAB.
IF DYNBEGIN = 'X'.
MOVE: CAMPO TO BDC_TAB-PROGRAM,
VALOR TO BDC_TAB-DYNPRO,
'X' TO BDC_TAB-DYNBEGIN.
ELSE.
MOVE: CAMPO TO BDC_TAB-FNAM,
VALOR TO BDC_TAB-FVAL.
ENDIF.
APPEND BDC_TAB.
ENDFORM.
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 11:48:10.


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