Bezeichnung des Algorithmus | XEN_Gegenpartei_FinRep |
Kurzbezeichnung | Ermittlung der direkten Gegenpartei gem. FinRep |
Verbale Beschreibung/Beispiele | Technisch: In diesem Algorithmus wird pro Geschäftsfall die Gegenpartei des Geschäftsfalls gem. FinRep aus den bestehenden Rollen abgeleitet. Dadurch wird ein neuer Datensatz auf der Entität KR_Kundenrollen mit AI_Rolle_Code "Direkte Gegenpartei gem. FinRep (GF)" geschaffen. Inhaltlich: In der Regel entspricht die "Direkte Gegenpartei gem. FinRep (GF)" dem "Inhaber (IH)" des Geschäftsfalls. Für diese Regel gelten folgende Ausnahmen:
|
Kommt vor in/wird verwendet für | Rolle_CL |
Formale Beschreibung | FUNKTION XEN_Gegenpartei_FinRep (AI_Mandant MA, AI_Geschaeftsfall_ID gfId, AI_Stichtag_Datum repDate) //(I) Selektion der Input-Parameter inhaber = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON GF_Geschaeftsfall kredituebertragung = SELEKTIERE GF.GKA18_Kredituebertragung_An_Verkauf_Code VON GF_Geschaeftsfall factoringKZ = SELEKTIERE GF.GF159_Factoring_Forfaitierung_Kennzeichen VON GF_Geschaeftsfall forderungsverkaeufer = SELEKTIERE KR.AI_Einheitennummer_ID MIT AI_Rolle_Code ISTGLEICH "Forderungsverkäufer (FV)" VON KR_Kundenrollen VON GF_Geschaeftsfall shortKZ = SELEKTIERE GF.GF40_Short_Position_Kennzeichen VON GF_Geschaeftsfall repoKZ = SELEKTIERE ST.ST04_Repo_Sicherheit_Kennzeichen VON ST_Sicherheiten_Stammdaten MIT ST.AI_Geschaeftsfall_ID ISTGLEICH gfId reverseRepo = SELEKTIERE GF.AI_Geschaeftsfall_ID VON GE_Geschaeftsfall_Exposure VON SZ_Sicherheiten_Zerlegung MIT SZ.AI_Zerlegungsansatz_Code ISTGLEICH "Internes Risikomanagement (INT)" VON ST_Sicherheiten_Stammdaten MIT ST.AI_Geschaeftsfall_ID ISTGLEICH gfId inhaberRepo = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH reverseRepo leihenahme = SELEKTIERE GB.AI_Geschaeftsfall_ID2 VON GB_Geschaeftsfall_Sachkonto_Sicherheiten_Beziehung MIT GB01_Beziehungsart_Code ISTGLEICH "Leihe (LE)" VON GF_Geschaeftsfall mandant2_beziehungsart = SELEKTIERE GB.AI_Mandant2 VON GB_Geschaeftsfall_Sachkonto_Sicherheiten_Beziehung MIT (GB.AI_Geschaeftsfall_ID ISTGLEICH gfId GB.AI_Geschaeftsfall_ID2 ISTGLEICH leihenahmeUND GB01_Beziehungsart_Code ISTGLEICH "Leihe (LE)") WENN(NICHT(ISTLEER(mandant2_beziehungsart))) DANN mandant_leihenahme = mandant2_beziehungsart SONST mandant_leihenahme = MA ENDE leihgeber = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON GF_Geschaeftsfall MIT (GF.AI_Geschaeftsfall_ID ISTGLEICH leihenahme UND GF.AI_Mandant ISTGLEICH mandant_leihenahme) geschaeftsfallkategorie = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall regressKennzeichen = SELEKTIERE GF.GF151_Rueckgriff_Kennzeichen VON GF_Geschaeftsfall derivattyp = SELEKTIERE GF.GF42_Derivattyp_Code VON GF_Geschaeftsfall underlyingklasse = SELEKTIERE GF.GF43_Underlying_Klasse_Code VON GF_Geschaeftsfall sicherungsgeber = SELEKTIERE GF. GFA162_Mandant_Sicherungsgeber_Kennzeichen VON GF_Geschaeftsfall //(II) Verarbeitung der Parameter WENN(kredituebertragung ENTHAELT ("Ankauf mit Einfluss auf die Bilanz (AM)", "Ankauf ohne Einfluss auf die Bilanz (AO)") UND factoringKennzeichen ISTGLEICH WAHR UND regressKennzeichen ISTGLEICH WAHR) DANN rValue = forderungsverkaeufer SONST WENN(geschaeftsfallkategorie ISTGLEICH "Derivate (Q)" UND derivattyp ISTGLEICH "Swap (SWAP)" UND underlyingklasse ENTHAELT ("Credit Default (CD)", "Total Return (TR)") UND sicherungsgeber ISTGLEICH WAHR) DANN //Verarbeitung von Kreditderivaten die gem FINREP Finanzgarantien sind: Hier ist der Inhaber des Underlyings (=Referenzschuldner) die Gegenpartei gem. FinRep. Falls mehrere Underlyings existieren, so ist jenes mit dem größten Nominale zu verwenden. Sofern mehrere Underlyings dasselbe (größte) Nominale besitzen, ist eines dieser Underlyings zu wählen. underlyings = SELEKTIERE ALLE GB.AI_Geschaeftsfall_ID2 VON GB_Geschaeftsfall_Sachkonto_Sicherheiten_Beziehung MIT (GB.GB01_Beziehungsart_Code ISTGLEICH "Underlying (UL)" UND GB.AI_Geschaeftsfall_ID ISTGLEICH gfId) maxNominale = SELEKTIERE MAX(GFW.Wert) VON (GFW_Geschaeftsfall_Wert MIT AI_Wertart_Code ISTGLEICH "Nominale (NN)") VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ENTHAELT underlyings referenzschuldner = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ENTHAELT underlyings VON GFW_Geschaeftsfall_Wert MIT (GFW.Wert ISTGLEICH maxNominale UND GFW.AI_Wertart_Code ISTGLEICH "Nominale (NN)") rValue = referenzschuldner SONST WENN(geschaeftsfallkategorie ENTHAELT ("Wertpapiere (H)", "Investmentfonds (I)", "Verbriefung (J)") UND shortKZ ISTGLEICH WAHR) DANN WENN(repoKZ ISTGLEICH WAHR) DANN rValue = inhaberRepo SONST rValue = leihgeber ENDE SONST rValue = inhaber ENDE //(III) Rückgabe RUECKGABE rValue FUNKTIONSENDE |