Un poco de trabalenguas al final, lo lei como tres veces pero entendi jajajajajaja seria mas o menos asi??
READ TABLE T_VBRPK INTO TEMP_VBRPK WITH TABLE KEY AUBEL = T_VBAK-VBELN. IF SY-SUBRC = 4. APPEND T_VBAK TO T_NE_VBAK.
lo pruebo y te cuento.
Un poco de trabalenguas al final, lo lei como tres veces pero entendi jajajajajaja seria mas o menos asi??
READ TABLE T_VBRPK INTO TEMP_VBRPK WITH TABLE KEY AUBEL = T_VBAK-VBELN. IF SY-SUBRC = 4. APPEND T_VBAK TO T_NE_VBAK.
lo pruebo y te cuento.
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
ahora yo no entiendo…me perdi !!! no es abap ?? porque las sentencias que te estoy dando son propias de abap :s
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.
Estas trabjando con ABAP para SAP ECC, o estas en SBO, SAP Business Object?
juela jajaja no se, no se ni que significan esos gerogrificos pero todo lo que me ha puesto @canuto me ha servido bastante bien
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?
Nahhhhh yo ya me perdi mi pana…resolviste ?? no entiendo, si resolviste comentanos y si algo de aca te sirvio marca una solucion !!
Lo otro es…lo que yo te estando dando es codigo abap, para que modulo o que parte de sap lo estas usando tu ?? esto para definir la categoria
Hmmm…Esto NO es Sap Business One, esto es ABAP puro y duro…
Esta pregunta solo hizo ruido, esperemos que haya encontrado solucion.
La movere al apartado de consultas generales.
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
Con cuerdo con Smota !!
Pues la logica que te di deberia servirte, si el cruce no lo hace bien revisa el orden en que estas leyendo las tablas…pero tienes que recorrer una y luego ir a leer en la otra tabla si ese registro existe !! hazle un debug a ver que sale…suerte ahi !!
mmm al parecer estas obviando las posiciones de los pedidos de venta t_vbak contiene posiciones o son solo datos de cabecera?? recuerda que t_vbrpk al parecer es de posición (o es una tabla interna con ambos datos), por lo que puede pasar que un pedido de ventas no todas sus posiciones estén facturadas.
Para mi tú lógica debiera ir así
Primero obtenemos todas facturas creadas asociadas a pedido de ventas para esto es necesario contar con todas las posiciones de los pedidos consultados.
Select * from vbfa
Into table it_mvbfa
For all entries in t_vbak
Where vbelv = t_vbak-vbeln (pedido de ventas)
and posnv = t_vbak-posnr (posición ped.vtas)
and vbtyp_v = ‘M’. (tipo de documento siguiente M= factura)
If sy-subrc eq 0. (se encontraron registros)
Loop at t_vbak.
Read table it_mvbfa with key vbelv = t_vbak-vbeln
posnv = t_vbak-posnr.
If sy-subrc ne 0. (no se encontró registro)
Appende t_vbak to t_ne_vbrp. (mando el registro a la tabla de los pedidos no facturados).
Endif.
Endloop.
Else. (ningún pedido tiene facturas aún)
Append t_vbak to t_ne_vbrp.
Endif.
Ojo eso si debes cerciorarte que las facturas de la tabla it_mvbfa no están anuladas (vbrk-fksto) o que estén contabilizadas (vbrk-rfbsk), eso depende del requerimiento.
muchas gracias @enattes, la verdad toda la mañana he pasado ocupado en otras cosas mas de procesos y hasta ahorita me voy sentando realmente en mi escritorio para seguir con este reporte. Viendo un poco tengo un par de dudas, el “for all entries” para que se utiliza? soy pollo en esto :(. Ahora, tengo entendido que esto es para sacar en una tabla interna la data, los pedidos que no han sido facturados (es nueva tabla para mi por cierto la VBFA) y faltaria solamente realizar las operaciones en base a la nueva tabla T_NE_VBRP, estoy bien vdd?
te agradezco de antemano, te has mandado!
Debes leer el manual, está la definicion de esa sentencia, estas en abap por arriba, solicita los manuales de abap y asi nos ayudamos entre todos.
Usa el buscador, hay muchos temas de esa sentencia. Es normal que tengas dudas empezando, apoyate en la comunidad, sin dejar de lado la lectura del manual.
si, queria solicitar uno pero me hacen falta completar con un requisito minimo (hacer 10 comentarios en post que no sean propios) y tampoco voy a comentar por comentar y llegar a la meta jajajaja el problema es que aqui hablan ya terminos avanzados y uno que esta emepzando es bien dificil meter la cuchara. Muchas gracias de igual manera.
saludos!
Primero solicita en Manuales SAP como corresponde, luego vemos temas de estadísticas. Yo vi las tuyas y estás bastante participativo. ¬¬
El for all entries es una sentencia que se utiliza para obtener la data de una tabla (en este caso vbfa) usando como parametros de entrada todos los registros de una tabla en particular (en este caso t_vbak), en otras palabras en la sentencia se buscan todas las facturas generadas (se obtienen de la tabla vbfa y se “guardan” en la it_mvbfa) de los pedidos contenidos en la tabla interna t_vbak con los parametros descritos.
Como te dije el parrafo anterior lo que obtienes en la tabla it_mvbfa serán todas las facturas creadas de los pedidos, por lo tanto para saber que pedidos de venta NO han sido facturados es que realizamos el loop al t_vbak (recorremos uno a uno todos los registros), luego con ese registro leemos nuestra tabla interna con las facturas creadas por esos registros, si no se encontraron registros (sy-subrc ne 0) significa que el registro no esta facturado y ese lo reservamos en una tabla distinta que es la que contiene todos los pedidos de ventas no facturados.
Esto te funcionará siempre y cuando la tabla t_vbak tenga registros por posición. debes cerciorarte que las facturas dentro de la tabla it_mvbfa están contabilizadas y además no están anuladas (ambos campos se encuentran en la tabla VBRK).
Slds.
Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.