on 03-20-2013 6:08 PM
Buenas tardes
Soy nuevo en SAP business One y estoy intentando crear una consulta de tablas que me muestre los números de pedido de compras, en función del proyecto al que estén imputados. Mostrándome diferentes datos que he sido capaz de encontrar en las tablas OPOR y POR1.
Lo que no consigo es que me muestre también si los pedidos mostrados tienen entradas de mercancías, pues no consigo vincular la OPOR con la OIGN.
He encontrado un campo en ambas tablas que se llama "FlwRefNum" que parece ser la referencia al documento subsiguiente. ¿Podría valer?
Perdonar si estoy cometiendo algún error de bulto en la descripción del problema, pero como os he comentado soy nuevo en el mundillo de SAP B1.
Gracias de antemano y saludos
Estimado buenos días.
Punto 1: Estás uniendo mal las tablas, la tabla de entradas de mercadería por compras es la OPDN para cabera y PDN1 para el detalle.
Punto 2: Para unir la OC con su respectiva entrada de mercadería, debes usar los campos de linea,
POR1.TrgetEntry=PDN1.BaseEntry
POR1.TargetType=PDN1.BaseType
POR1.LineNum=PDN1.BaseLine
Espero te sirva
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Felipe
En primer lugar muchas gracias por tu respuesta.
Efectivamente ya vi que había otras dos tablas de entrada de mercancías. Sin embargo me quedé en el mismo punto que con la OIGN y la IGN1, pues estoy intentando montar el informe con el asistente y cuando llego al paso de "Condiciones y relaciones" en la pestaña de relaciones el sistema solamente me propone las relaciones POR1 <-> OPOR y PDN1 <-> OPDN, es decir que sólo relaciona las tablas de cabecera y las de detalle. Y no parece posible añadir ninguna otra relación.
Por otra parte, viendo lo que me indicas en el punto 2 he probado a definir esas igualdades en la pestaña de condiciones, dejándolo así:
(POR1.TrgetEntry=PDN1.BaseEntry Y POR1.TargetType=PDN1.BaseType Y POR1.LineNum=PDN1.BaseLine)
Y en resumen de la sentencia SQL queda así:
(T0.[TrgetEntry] = T3.[BaseEntry] AND T0.[TargetType] = T3.[BaseType] AND T0.[LineNum] = T3.[BaseLine] )
Pero no ha funcionado, pues al ejecutar el informe me muestra un mensaje que estoy empezando a detestar: "No existen datos como resultado de un corte transversal". También he probado a cerrar paréntesis despues de cada igualdad, pero el resultado es el mismo.
Un saludo
Javier:
Mi consejo es no hacer las relaciones con el targetentry ya que solo vas a relacionar la ultima entrada de una orden de compra, cuando una orden de compra podría tener mas de una oc.
Yo haría una query:
select * from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
left join pdn1 t2 on t2.baseentry=t1.docentry and t2.basetype=22 and t2.baseline=t1.linenum
left join opdn t3 on t2.docentry=t3.docentry
Prueba si esta query te sirve
Hola Fernando
Muchísimas gracias!! He probado a cambiar la sentencia de la consulta chapucera que llevaba desarrollada por esta que me has indicado, y al hacerlo ya se mostraba toda la información de las 4 tablas correctamente vinculada. A continuación he sustituido el asterisco por los campos que necesito que me muestre la query, he vuelto a ejecutar y todo perfecto.
Aparte viendo tu sentencia he aprendido algo más acerca de SQL, pues estoy muy pegado y estaba intentando montar esta consulta con el asistente, lo cual no sé si será del todo posible.
Lo dicho, muchas gracias y un saludo
Adicionalmente y siguiendo la lógica que había visto en la query de Fernando, he conseguido ampliar la consulta para que muestre también las facturas relacionadas con los pedidos y para que seleccionar los pedidos en función del proyecto al que están imputados. Aparte he sustituido el asterisco por los nombres de los campos que quiero que muestre la consulta. Queda así:
select T0.[Docnum] AS 'Pedido', T0.[Docstatus] AS 'Estado', T0.[Docdate] AS 'Fechadoc', T0.[Cardcode] AS 'Cod Prov', T0.[Cardname] AS 'Proveedor', T0.[NumAtCard] 'Referencia proveedor', T0.[Doctotal] AS 'Importe Total', T0.[PaidToDate] AS 'Pagado hasta la fecha', T0.[Comments] 'Comentarios', T0.[JrnlMemo] AS 'Asiento en el diario', T0.[CtlAccount] AS 'Cuenta asociada', T0.[OwnerCode] 'Autor', T1.[ItemCode] AS 'Artículo', T1.[Dscription] AS 'Descripción', T1.[OpenSum] AS 'Importe pendiente', T1.[AcctCode] AS 'Código de cuenta', T1.[OcrCode] AS 'Ceco', T1.[Project] AS 'Proyecto', T2.[Linestatus] AS 'Estado linea', T3.[DocNum] AS 'Entrada de mercancías', T3.[Comments] AS 'Comentarios', T3.[JrnlMemo] AS 'Entrada diario', T5.[Docnum] AS 'Factura', T5.[Transid] AS 'Apunte contable', T4.[Acctcode] AS 'Cuenta apunte', T5.[PeyMethod] AS 'Vía de pago' from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
left join pdn1 t2 on t2.baseentry=t1.docentry and t2.basetype=22 and t2.baseline=t1.linenum
left join opdn t3 on t2.docentry=t3.docentry
left join pch1 t4 on t4.baseentry=t2.docentry and t4.basetype=20 and t4.baseline=t2.linenum
left join opch t5 on t4.docentry=t5.docentry
where t1.project=[%0]
Un saludo
User | Count |
---|---|
98 | |
12 | |
10 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.