Designer bekommt keine Werte
Andreas Eugster
Hallo zusammenLeider habe ich schon wieder ein Problem :)
Das Ziel ist eine Auswertung der Journalbuchungen mit gewissen Einschränkungen. Doch leider bekomme ich in den Designer keine Werte, aus ,der auf dem Beleg hinterlegten, Abfrage. Wenn ich auf dem Beleg die Parameter ausgebe, werden diese korrekt angedruckt. Wenn ich im SQL - Managment-Studio die Abfrage ausführe und die Parameter durch Werte erstetze, erhalte ich div. Ausgaben.
Kann mir jemand helfen?
Ich habe folgende Abfrage:
SET DATEFORMAT dmy
DECLARE @MainCurr AS VARCHAR(3) SET @MainCurr = (SELECT MainCurncy FROM OADM)
DECLARE @IgnoreAdj AS VARCHAR(1) SET @IgnoreAdj= '[%IgnoreAdj]'
DECLARE @AddVoucher AS Varchar(1) SET @AddVoucher= '[%AddVoucher]'
DECLARE @PrcCode AS VARCHAR(8) SET @PrcCode = '[%PrcCode]'
DECLARE @OcrCode AS VARCHAR(8) SET @OcrCode = '[%OcrCode]'
DECLARE @PrjCode As VARCHAR(8) SET @PrjCode = '[%PrjCode]'
DECLARE @BudgId As INT SET @BudgId ='[%BudgId]'
IF @BudgId = ''
BEGIN
SET @BudgId = -1
END
DECLARE @FromDate As DateTime
SET @FromDate = '[%FromDate]'
DECLARE @ToDate As DateTime
SET @ToDate = '[%ToDate]'
-- Get the Acutal Finance Year
DECLARE @FinancYear AS DATETIME
SET @FinancYear = (SELECT OACP.FinancYear FROM OACP
INNER JOIN OFPR ON OACP.PeriodCat = OFPR.Category
WHERE OFPR.F_RefDate <= @ToDate AND OFPR.T_RefDate >= @ToDate)
SELECT
-- Create Date (01.MM.YYYY)
CAST(
'01.' + CAST(MONTH(JDT1.RefDate) AS VARCHAR) + '.' + CAST(YEAR(JDT1.RefDate) AS VARCHAR)
AS DATETIME)As RefDate
,(SELECT OACP.FinancYear FROM OACP
INNER JOIN OFPR ON OACP.PeriodCat = OFPR.Category
WHERE OFPR.F_RefDate <= JDT1.RefDate AND OFPR.T_RefDate >= JDT1.RefDate) AS FinancYear
,JDT1.Account As Account
,'JE' As Typ
,ISNULL(OCR1.PrcCode,'') As PrcCode
,ISNULL(OCR1.OcrCode,'') As OcrCode
,ISNULL(JDT1.Project,'') As PrjCode
,CASE
WHEN OCR1.OcrTotal IS NULL OR OCR1.OcrTotal = 0 THEN
JDT1.Credit
ELSE
ISNULL(JDT1.Credit * (OCR1.PrcAmount/OCR1.OcrTotal),0)
END As Credit
,CASE
WHEN OCR1.OcrTotal IS NULL OR OCR1.OcrTotal = 0 THEN
JDT1.Debit
ELSE
ISNULL(JDT1.Debit * (OCR1.PrcAmount/OCR1.OcrTotal),0)
END As Debit
INTO #TEMPJDT1
FROM JDT1
INNER JOIN OACT ON JDT1.Account = OACT.AcctCode
LEFT OUTER JOIN OCR1 ON OCR1.OcrCode = JDT1.ProfitCode
LEFT OUTER JOIN OPRC ON OPRC.PrcCode = OCR1.PrcCode
WHERE JDT1.RefDate >= @FromDate
AND JDT1.RefDate <= @ToDate
AND CASE WHEN @IgnoreAdj = 'Y' THEN JDT1.AdjTran ELSE 'N' END = 'N'
AND NOT JDT1.TransType = -3
AND CASE WHEN @OcrCode = '' THEN ISNULL(OCR1.OcrCode,'') ELSE @OcrCode END = ISNULL(OCR1.OcrCode,'')
AND CASE WHEN @PrcCode = '' THEN ISNULL(OCR1.PrcCode,'') ELSE @PrcCode END = ISNULL(OCR1.PrcCode,'')
AND CASE WHEN @PrjCode = '' THEN ISNULL(JDT1.Project,'') ELSE @PrjCode END = ISNULL(JDT1.Project,'')
AND JDT1.U_XXItemCode >= '[%FromCardCode]' AND JDT1.U_XXItemCode <= '[%ToCardCode]'
AND JDT1.U_XXItmsGrpCod >= '[%FromGrpCode]' AND JDT1.U_XXItmsGrpCod <= '[%ToGrpCode]'
AND JDT1.U_XXCardCode >= '[%FromCardCode]' AND JDT1.U_XXCardCode <= '[%ToCardCode]'
AND JDT1.U_XXSlpCode >= '[%FromSlpCode]'AND JDT1.U_XXSlpCode <= '[%ToSlpCode]'
AND JDT1.U_XXGPCode >= '[%FromGPCode]' AND JDT1.U_XXGPCode <= '[%ToGPCode]'
select * from #TEMPJDT1
Besten Dank
Gruss
Andreas
Philipp Knecht
Hallo AndreasSolchen Problemen kommst du am einfachsten auf die Schliche wenn du im Config des LD "Queries loggen" ankreuzst und dann nach dem Ausführen dieser (des Layouts) im Ordner %temp%swaldcompanyqueries die Query rausnimmst und sie wiederum im Queryanalyzer startest.
hth
Andreas Eugster
Hallo PhilippBesten Dank für den Tipp. Ich werde mir dies mal anschauen.
Gruss
Andreas
Andreas Eugster
Ich habe nun die Fehlerquelle gefunden.Jetzt ist aber noch ein anderes Problema aufgetaucht. Ich möchte beim Budgetbericht noch mehrere Einschränkungen hinzufügen. ICh weiss, dass man im Abfragemanager ein Query mit dem anfang /* @@Override */ erstellen kann, um dies zu überschreiben. Doch klappt das beim Budgetbericht von euch nicht. Nun wie kann ich die Datasource anpassen?
Besten Dank für die Antwort
Gruss
Andreas
Philipp Knecht
Hallo Andreas@@Overwrite müsste eigentlich funktionieren.
Bitte beachte dass der Queryname genau dem Querynamen entspricht den du auch überschreiben möchstest.
Ansonsten kannst du auch als Option auf dem DataBand filtern?
hth
Andreas Eugster
Hallo PhilippIch wollte eigentlich nichts am Beleg verändern, wenn es nicht nötig ist. Denn auf dem Budgetbericht werden ja nicht meine Daten (Werte von benutzerdefinierten Feldern auf der Journalbuchung) angezeigt.
Muss ich den im SWA_LD_Data das Query "Budget" benennen oder? denn die Datasource auf dem Beleg, welchen ihr erstellt habt, ist ja auch Budget ausgewählt. Oder muss ich dort etwas anderes beachten?
Besten Dank für die Info
Philipp Knecht
Hi AndreasNein du kannst dir das so veorstellen:
Datasource Budget ist der Name des gesamten Pakets
Wenn du aber Queries überschreibst musst du den Tabellen/Query Namen nehmen.
Am besten in der Layoutdefinition unter Funktionen mal "Data Viewer" ausführen dann findest du den Namen.
hth
Andreas Eugster
Hi PhilippHabe mir dies gerade angeschaut.
Der DataBrowser zeigt folgende Punkte:
B1_Data
Company
CompanyDefaults
CompanyDetails
CompanyInfo
UserDetails
Budget <---- das wäre ja dann der Name meiner Query?
Doch leider wird mein Override nicht beachtet...
Habe Layouter 1.817...
Philipp Knecht
Hallo AndreasAlos hab mal ne einfache Query namens "Budget" gemacht:
/* @@Overwrite */
SELECT 1 As Hurray
Die eingehängt in der Layoutdef und es hat funktioniert.
hth
Andreas Eugster
Also es funktioniert jetzt. Musste nur das sap neu starten.Danke für deine sehr schnelle hilfe
Gruss
Andreas
0
Please sign in to leave a comment.
Comments
0 comments