Estoy usando un read table y un loop entre dos tablas internas y tengo entendido que con el SY-SUBRC puedo sacar lo que “concuerda” entre las dos tablas para mostrarlo pero…como hago para que me muestre solamente lo que no concuerde entre las dos tablas internas, por ejemplo.
TABLA A
1 - pizza 100
2 - zapato 200
3 - anillo 500
TABLA B
1 - pizza 100
2 - dinero 50
3 - anillo 500
Resultado con Read Table usando el SY-SUBRC = 0.
1 - pizza 100
3 - anillo 500
Resultado que quiero
2 - zapato 200.
quiza lo que esperaria es una idea de como realizarlo.
Si Exacto!!! eso es que quiero, un problema de logica pero no entiendo quiza tengo problemas de concepto.
tengo entendido que el SY-SUBRC cuando es cero (0) es porque si encontro mas de un registro, dos (2) cuando encontro mas de dos registros y cuatro (4) es cuando no encontro registros para hacer el enlace. Entonces estaba viendo tu codigo pero donde le diria que los que no estan se guarden en X tabla, te pego el codigo de como voy
LOOP AT T_VBAK "loop a primera tabla WHERE VDATU+4(2) = VAR1 "meses AND VDATU+0(4) = '2016' "año AND VBELN+0(2) EQ '11'. "pedido READ TABLE T_VBAK INTO TEMP_VBAK "leyendo 1era tabla WITH TABLE KEY VBELN = T_VBRPK-AUBEL. "llave entre dos tablas IF SY-SUBRC = 0. "si se cumple
entiendo que la tabla T_VBAK vendria siendo tu tabla A, ahi ya haces el loop y esta bien.
pero para que la vuelves a leer ?? deberias es leer tu tabla B con la clave de la tabla A
READ TABLE T_VBRPK INTO TEMP_T_VBRPK "leyendo 1era tabla
WITH TABLE KEY VBELN = T_VBAK-AUBEL. "llave entre dos tablas
algo asi, es lo que entiendo
IF SY-SUBRC = 4
append T_VBAK to nueva_tabla.
algo asi…porque ahi lo que estas verificando que el registro que tienes en la tabla A no existe en tu tabla B y por no existir lo guardas en una tabla X que al final lo que va a contener son los registros de tabla A que no se repiten en la tabla B, yo explico medio enredado…sera eso ???
oye pero para mostrarlo, esta tabla nueva (T_NE_VBAK) tiene los mismos campos que la original (T_VBAK) ?? perdon pro mis preguntas pero es mi primera vez jajaja creo que la tengo que declarar tambien vdd
tranquilo !!! Claro, tienes que declararla y del mismo tipo de la que estas sacando los datos…debes unas cervezas a los panas de la comunidad que esten cerca jajajajaja !! o tu estas por chile ?? jajaja
Si si si… ahora ya modifique un poco el codigo y me quedo mas o menos asi
READ TABLE T_VBRPK WITH KEY AUBEL = T_VBAK-VBELN. IF SY-SUBRC = 4. APPEND T_VBAK TO T_NE_VBAK. ENDIF. CASE VAR1. WHEN '01'. IT_DATA-VALOR1 = IT_DATA-VALOR1 + T_NE_VBAK-NETWR2.
al probar el resultado no me muestra datos, agregue un poco del codigo porque vaya, grabe lo de la tabla T_VBAK a la T_NE y para mostrar los datos estoy usando de referencia esta ultima tabla (T_NE_VBAK), lo otro es que use WITH KEY ya que AUBEL no es llave de tabla.
Tengo poco mas de un año de estar en el ambito productivo de la empresa,
que los procesos se cumplan como debe dentro de modulos MM y WM,
ahorita me encuentro cerca de meterme al rio ABAP.
Ya entiendo. Estas lanzando codigo ABAP, pero no sabes del todo lo que estas haciendo, hazlo mas facil y hablanos de lo que estas modificando, estas creando un reporte, o estas dando un soporte, o estas practicando codigo abap?
No no he podido resolver, hay algo que no me esta dando bien. Estoy trabajando en un reporte para los dueños, que te puedo decir…es sobre facturacion, lo que la empresa factura anualmente y ya mas o menos lo tengo casi completo solo me faltan unas cositas, te muestro como va el reporte hasta el momento:
lo que me falta es que los Pedidos facturados tienen que restar a los pedidos planificados y para eso estoy usando las tablas VBAK (pedidos planificados) vs VBRP (pedidos facturados) es por eso que yo te pedia una forma de que en un cruce poder quedarme solamente los que no estan en una segunda tabla, asi solo mantengo vivos los pedidos planificados que no han sido facturados segun el mes.
pero nose porque no me toma en cuenta con el read table