FKT GetRecord

Aus CoPlanner 11
Zur Navigation springenZur Suche springen
Hinweis  FKT GetRecord kann unter Umständen sehr langsam sein. Besser ist es anstelle des FKT GetRecord einen Join zu verwenden.

Funktion

FKT_GetRecord(<Rueckgabe-Feld>,<Einschränkung 1 bis n>)

Die Funktion FKT_GetRecord wird gleich angewendet, wie die Funktion FKT_Aggregat. Folgender Unterschied besteht jedoch: Die FKT_GetAggregat liefert die Summe der Werte, auf die die entsprechenden Bedingungen zutreffen. Die FKT_GetRecord liefert den ersten Wert, der unter den entsprechenden Einschränkungen gefunden wird.

FKT_GetRecord kann auch COPSYS_IDs retournieren.

Diese Funktion gehört zu den serverseitigen Funktionen.

Beispiel

FKT_GetRecord(Umsatzerloese_Plan.dim_sys_zeit_1, …))

FKT_GetRecord(Employees.PSPElements_1, Employees !me [Plantable.Employees_1.COPSYS_ID])

Holt aus der Employees Dimension den Lookup PSPElements der für den Employee der Planungstabelle übereinstimmt

Transform=fkt_GetRecord(TBL_PRE_BUD_MYP_PAR.FiscalYearPeriod_1, Company !me+under @Session_Unternehmen_ID@, StartYear != true)

Holt das der Tabelle TBL_PRE_BUD_MYP_PAR vom Lookup FiscalYearPeriod der Tabelle, die erste Übereinstimmung für eine Filterung von der Dimension Company der Tabelle auf das angemeldete Unternehmen und wo was Bool-Feld StartYear auf true ist.


bei Formel mit aktivierten typed calculations

FKT_GetRecord("Umsatzerloese_Plan.dim_sys_zeit_1", …))

FKT_GetRecord("Employees.PSPElements_1", "Employees !me " + [Plantable.Employees_1.COPSYS_ID])

Holt aus der Employees Dimension den Lookup PSPElements der für den Employee der Planungstabelle übereinstimmt

Transform=fkt_GetRecord("TBL_PRE_BUD_MYP_PAR.FiscalYearPeriod_1", "Company !me+under " + @Session_Unternehmen_ID@, "StartYear != " + "true")

Holt das der Tabelle TBL_PRE_BUD_MYP_PAR vom Lookup FiscalYearPeriod der Tabelle, die erste Übereinstimmung für eine Filterung von der Dimension Company der Tabelle auf das angemeldete Unternehmen und wo was Bool-Feld StartYear auf true ist.


Hinweis  Beachten Sie bitte, dass eine Boolabfrage auf True/False erfolgt und nicht auf 1/0.


Hinweis  Bei einem Measurebezug ist davor kein Verweis auf die Tabelle zu tätigen.



FKT_GetRecord(Studies.COPSYS_LDIM_634538468828176346_1,COPSYS_ID !=FKT_GetRecord(tb_SessionParameters.Value, COP_SESSION_ID != @Session_ID@, Name != 'Studies'))

Verwendung bei Formel mit typed calculation

FKT_GetRecord("Studies.COPSYS_LDIM_634538468828176346_1","COPSYS_ID != " + FKT_GetRecord("tb_SessionParameters.Value", "COP_SESSION_ID != " + @Session_ID@, "Name != " + 'Studies'))


Bei diesem Beispiel wird ein bestimmtes Attribut einer Dimension abgefragt.

Hinweis  Bei einem Dimensionsbezug ist davor kein Verweis auf die Tabelle zu tätigen. Es ist lediglich der Name der Dimension anzugeben.
Hinweis  Bei einem Attributwertfeld ist der Name des Dimensionslookups anzugeben.

Beispiel Währung

Zu einer Plantabelle soll die Währungsrate gejoint werden. Die Währungsrate ist verknüpft über die Projects und Currencies Dimension mit der Plantabelle. Pro Project und Currency gibt es also eine Rate in der Währungstabelle.

In der Planungsmaske sind die Projects im Filter und die PSPElements auf der Achse. Die Currencies Dimension soll ebenfalls in der Maske abänderbar sein. Die Dimension ist daher nicht im Filter sondern im Grid.

Planungsmaske

Ausgangssituation

Plantabelle: CPM_TBL_BUD_PAYMENTS
Dimension: Currencies
Dimension: PSPElements
Dimension: Projects


Währungstabelle: AEE_TBL_PROJECT_CURRENCYRATES
Dimension: Currencies
Dimension: Projects
Measure: Rate


Calculated Measures

Diese holen die entsprechenden copsys_id's der Dimensionen PSPElemtns und Projects. Die Felder werden nur temporär benötigt. Da die Projects Dimension im Filter der Maske ist muss ein Workaround angewendet werden da nicht immer die copsys_id zurückgegeben wird. Es wird einfach ein anderes (beliebiges) Measure Feld hinzugefügt und abgezogen. Als Datatype muss GrosseGanzzahl ausgewählt werden.

PSP_COPSYSID: Attribute(PSPElements)
Projects_COPSYSID: Attribute(Projects)+[Invoice Number]-[Invoice Number]

PSPElements copsys_id holen

Die Rate kann nun über folgendes Script geholt werden:

FKT_GetRecord( AEE_TBL_PROJECT_CURRENCYRATES.Rate , Projects != [Projects_COPSYSID], Currencies != FKT_GetRecord(CPM_TBL_BUD_PAYMENTS.Currencies_1, Projects != [Projects_COPSYSID], PSPElements != [PSP_COPSYSID]) )

Verwendung bei Formel mit typed calculation

FKT_GetRecord( "AEE_TBL_PROJECT_CURRENCYRATES.Rate ", "Projects != " + [Projects_COPSYSID], "Currencies != " + FKT_GetRecord("CPM_TBL_BUD_PAYMENTS.Currencies_1", "Projects != " + [Projects_COPSYSID], "PSPElements != " + [PSP_COPSYSID]) )