Ayuda SAP

Flecha de navegación en Query SB01

estimados buenos dias, necesito apoyo estoy armando un query, necesito que me aparezca la flecha de navegacion, actualmente estoy uniendo 4 querys.

Cuando uno por ejemplo una tabla y su detalle si me aparece , pero este necesito que aparezca dicha flecha en el documento de factura.

Agradezco comentarios.

Hola
Select “OINV”.“DocEntry” , “OINV”."DocNum"
From “OINV”

Esta sql en un querymanager deberia automaticamente mostrarte una flecha de navegación

Si tu sql es mas elaborada… sugiero que la compartas con todos para poder darte una ayuda mas concisa.

Saludos

1 me gusta

En el momento que haces union o union all, no hay opción a que haya flechas de navegación

2 Me gusta

Precisamente por eso (y entre otras cosas) pedia que publicara la sql…porque cierto cuando haces UNION no seuestran las flechas pero con los JOIN si que deberian mostrarse…

En fin que todo depende de como sea la sql

Solo por curiosidad…
Prueba a colocar un

“FOR BROWSE”

al final del query

2 Me gusta

Mi estimado Ares17000

Este es el codigo , para que me podas comentar ya aplique lo indicado pero de igual forma no aparece.

Saludos

--Facturas
SELECT 
	T1.[CardCode][Código De Cliente], 
	T1.[CardName][Nombre del Cliente],
	CASE T0.[ObjType]
	WHEN '13' THEN 'FA'
	WHEN '14' THEN 'NC'
	ELSE 'AS'
	END [Tipo],
	T0.[DocNum][No. Documento],
	T0.[U_FacSerie][Serie],
	T0.[U_FacNum][No.Factura], 
	T0.[DocDate][Fecha de Contabilización], 
	T0.[DocDueDate] [Fecha de Vencimiento],
	T0.[DocTotal][Total Factura],
	SUM(T0.DocTotal - T0.PaidToDate) [Saldo Pendiente],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=0 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [Vigente],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=30 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >0 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [0-30 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=60 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >30 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [30-60 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=90 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >60 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [60-90 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=120 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >90 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [90-120 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) >120 THEN SUM(T0.DocTotal - T0.PaidToDate)
	ELSE 0
	END [Mas 120 Dias]
	
FROM
	OINV T0  
	INNER JOIN OCRD T1 ON T0.[CardCode] = T1.[CardCode]
WHERE 
	(T0.DocTotal - T0.PaidToDate)<>0 and CAST(T0.[DocDate] AS DATE) between [%0]and [%1]
GROUP BY 
	T1.[CardCode], 
	T1.[CardName],
	T0.[ObjType],
	T0.[DocNum],
	T0.[U_FacSerie],
 	T0.[U_FacNum],
	T0.[DocDate], 
	T0.[DocDueDate],
	T0.[DocTotal]
 
union all
 
--Notas de crédito
SELECT 
	T1.[CardCode][Código De Cliente], 
	T1.[CardName][Nombre del Cliente],
 	CASE T0.[ObjType]
	WHEN '13' THEN 'FA'
	WHEN '14' THEN 'NC'
	ELSE 'AS'
	END [Tipo],
	T0.[DocNum][No. Documento],
	T0.[U_FacSerie][Serie],
	T0.[U_FacNum][No.Factura],  
	T0.[DocDate][Fecha de Contabilización], 
	T0.[DocDueDate][Fecha de Vencimiento],
	T0.DocTotal[Total Factura], 
	SUM(T0.DocTotal - T0.PaidToDate)* -1 [Saldo Pendiente],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=0 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [Vigente],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=30 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >0 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [0-30 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=60 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >30 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [30-60 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=90 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >60 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [60-90 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) <=120 AND DATEDIFF(day,T0.[DocDueDate],getdate()) >90 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [90-120 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DocDueDate],getdate()) >120 THEN SUM(T0.DocTotal - T0.PaidToDate)* -1
	ELSE 0
	END [Mas 120 Dias]
 
FROM 
	ORIN T0  
	INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode 
WHERE 
	(T0.DocTotal - T0.PaidToDate)<>0 and CAST(T0.[DocDate] AS DATE) between [%0]and [%1]
GROUP BY 
	
	T1.[CardCode], 
	T1.[CardName],
 	T0.[ObjType],
	T0.[DocNum],
	T0.[U_FacSerie],
 	T0.[U_FacNum],
	T0.[DocDate], 
	T0.[DocDueDate],
	T0.[DocTotal]
Union all
--Débitos
SELECT 
	T0.[ShortName][Código De Cliente], 
	T1.[CardName][Nombre del Cliente],
	CASE T0.[TransType]
	WHEN '13' THEN 'FA'
	WHEN '14' THEN 'NC'
	WHEN '24' THEN 'PR'
	WHEN '-3' THEN 'CB'
	WHEN '-2' THEN 'SI'
	ELSE 'AS'
	END [Tipo],
	T0.[TransId][No. Documento], 
	IsNull(T2.[U_FacSerie],''),
	IsNull(T2.[U_FacNum],''),
	T0.[RefDate][Fecha de Contabilización], 
	T0.[DueDate][Fecha de Vencimiento], 
	0, sum(T0.[BalDueDeb])[Monto],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=0 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [Vigente],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=30 AND DATEDIFF(day,T0.[DueDate],getdate()) >0 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [0-30 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=60 AND DATEDIFF(day,T0.[DueDate],getdate()) >30 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [30-60 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=90 AND DATEDIFF(day,T0.[DueDate],getdate()) >60 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [60-90 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=120 AND DATEDIFF(day,T0.[DueDate],getdate()) >90 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [90-120 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) >120 THEN sum(T0.[BalDueDeb])
	ELSE 0
	END [Mas 120 Dias]
FROM 
	JDT1 T0
 	INNER JOIN OCRD T1 ON T0.ShortName = T1.CardCode
	LEFT JOIN OINV T2 ON T0.TransId = T2.TransId
	WHERE 
	T0.[ShortName] = T1.[CardCode] and T0.[TransType]<>'13' and T1.[CardType] ='C' and 
	T0.[BalDueDeb]<>0 and T0.[RefDate] between [%0]and [%1]
	
 
GROUP BY 
	T0.[ShortName], 
	T1.[CardName],
	T0.[TransType],
	T0.[TransId],
	IsNull(T2.[U_FacSerie],''),
	IsNull(T2.[U_FacNum],''),
	T0.[RefDate],
	T0.[DueDate]
 
union all
 
--Créditos
SELECT 
	T0.[ShortName][Código De Cliente],
	T1.[CardName][Nombre del Cliente],
	CASE T0.[TransType]
	WHEN '13' THEN 'FA'
	WHEN '14' THEN 'NC'
	WHEN '24' THEN 'PR'
	WHEN '-3' THEN 'CB'
	WHEN '-2' THEN 'SI'
	ELSE 'AS'
	END [Tipo],
	T0.[TransId][No. Documento], 
	IsNull(T2.[U_FacSerie],''),
	IsNull(T2.[U_FacNum],''),
	T0.[RefDate][Fecha de Contabilización], 
	T0.[DueDate][Fecha de Vencimiento],
	0, sum(T0.[BalDueCred]*-1)[Monto],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=0 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [Vigente],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=30 AND DATEDIFF(day,T0.[DueDate],getdate()) >0 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [0-30 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=60 AND DATEDIFF(day,T0.[DueDate],getdate()) >30 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [30-60 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=90 AND DATEDIFF(day,T0.[DueDate],getdate()) >60 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [60-90 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) <=120 AND DATEDIFF(day,T0.[DueDate],getdate()) >90 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [90-120 Dias],
	CASE
	WHEN DATEDIFF(day,T0.[DueDate],getdate()) >120 THEN sum(T0.[BalDueCred]*-1)
	ELSE 0
	END [Mas 120 Dias]
FROM 
	JDT1 T0
	INNER JOIN OCRD T1 ON T0.ShortName = T1.CardCode
	LEFT JOIN OINV T2 ON T0.TransId = T2.TransId
WHERE 
	T0.[ShortName] = T1.[CardCode]and
	T0.[BalDueCred]<>0 and 
	T0.[TransType]<>'13' and  T1.[CardType] ='C' and 
	T0.[RefDate] between [%0]and [%1]
	
GROUP BY 
	T0.[ShortName], 
	T1.[CardName],
	T0.[TransType],
	T0.[TransId],
	IsNull(T2.[U_FacSerie],''),
	IsNull(T2.[U_FacNum],''),
	T0.[RefDate],
	T0.[DueDate]

Un “For Browse” al final del query dentro del Query manager es una manera de “obligar” a SAP a que busque los campos claves de una consulta y les coloque sus flechas…

Si no te funcionó quiere decir que ni con eso podrías sacar las flechas de navegación.

Por favor en proxima oportunidad coloca el código deontro de la opción de texto preformateado para una mejor lectura del foro

escribe o pega el código aquí
1 me gusta

@fyelmo, lee Cómo usar el foro de Consultoria-SAP por favor, ahí se explica cómo formatear código.

Y sobre el código SQL que pasaste, explicanos qué es ese código (ya sé que estás preguntando sobre la flecha, pero si vas a compartir código para que te ayuden, también ten la delicadeza de explicar para qué sirve el código, a lo mejor a otra persona le sirve el mismo).

Saludos

Buenos días @fyelmo

Si te refieres a tener una flecha de enlace en el campo “No.Factura” no creo que puedas lograrlo de forma nativa, como comenta @Ares17000, la fecha se muestra en los campos clave, y por lo que veo tú intentas tener dicha flecha en un campo de usuario, a menos que haya comprendido mal.

La posible solución que te recomiendo es que incluyas el campo “DocEntry” del documento (factura [OINV] / Nota de crédito [ORIN]), justo antes de la columna “No.Factura”, de esta forma, debería mostrarte el enlace nativo de SAP, finalmente lo que necesitas es que el usuario pueda enlazarse al documento en caso de ser necesario y no pierdas el dato del folio de la factura/nota de crédito.

Como comentario, no comprendo por qué necesitas de DOS campos de usuario para la serie y/o No. de Factura, si es lo que supongo, la serie la puedes extraer con una consulta anidada desde la tabla NNM1, y el folio, pudieras utilizar el campo “Número de referencia de cliente” (NumAtCard), a menos que lo utilices para otro fin, bueno es solo un comentario, es otro tema.

SAP B1 v9.2 PL03
Espero te ayude de apoyo.
Saludos

2 Me gusta

Este tema se cerró por inactividad por parte del autor.

Copia la URL de este debate, y abre un nuevo tema en #feedback si:

  • El autor del debate no marcó ninguna respuesta como solución, y tú crees tener la solución
  • Crees tener otra solución a la que actualmente está marcada.

Si, en cambio tienes una duda parecida a la que se debatió, o la misma duda, abre un nuevo tema en la categoría que corresponda y pon que el tema se debatió oportunamente (pega el enlace a este debate), así los otros lectores pueden saber de qué hablas.

Ayúdanos a tener una comunidad organizada.