Zu den Funktionen für Beträge und Währungen gehört die Funktion loadCurrency, um eine Währung zu öffnen.
Allgemeine Informationen zu den OLTP-Funktionen der System-Skriptsprache erhalten Sie im Artikel System-Skriptsprache: OLTP-Funktionen.
loadCurrency
Name | loadCurrency |
Beschreibung | loadCurrency gibt eine Währung als typisiertes CisObject zurück. |
Signaturen | CisObject(com.cisag.app.general.obj.Currency) loadCurrency(String isoCode)
|
Parameter | guid ist die Guid einer Währung.
isoCode ist die Identifikation einer Währung. |
Ergebnis | Die Funktion gibt die zurzeit gültige Währung als ein typisiertes CisObject zurück. |
Fehlerquellen | Keine |
Beispiele | (loadCurrency("EUR") gibt ein typisiertes CisObject für die Währung mit dem ISO-Code EUR zurück.
|
Kontext | OLTP |
Hinweise | |
Siehe auch |
Folgendes Beispiel aus der Aktivitätsdefinition help.loadCurrency öffnet eine Währung über dessen ISO-Code und gibt die Bezeichnung zurück.
function create() { var p_isoCode := parameters.ISO_CODE; var r_currency := loadCurrency(p_isoCode); result.IS_NULL := isNull(r_currency); if (not isNull(r_currency)) result.DESCRIPTION := r_currency:description; }
Weitere Funktionsdeklarationen für Beträge und Währungen
Dieses Kapitel schlägt weitere Funktionsdeklarationen für Beträge und Währungen vor, die Sie in Ihrem System erfassen und verwenden können. Die Funktionsdeklarationen sind ohne Gewähr und dienen in erster Linie dem Erlernen der System-Skriptsprache.
amountCorporate
Name | amountCorporate |
Beschreibung | amountCorporate gibt einen Hauswährungsbetrag in der Leitwährung einer Organisation zurück. |
Signaturen | Number amountCorporate(Number amount1, Number amount2, Number amount3, Guid organization)
|
Parameter | amount1 ist der Betrag in der ersten Hauswährung.
amount2 ist der Betrag in der zweiten Hauswährung. amount3 ist der Betrag in der dritten Hauswährung. domesticAmount ist ein Part für eine Hauswährung. organization ist die Guid der Organisation, für die der Hauswährungsbetrag erfasst wurde. |
Ergebnis | Die Funktion gibt den Hauswährungsbetrag domesticAmount in der Leitwährung der Organisation zurück.
Ist die erste Hauswährung von organization die Leitwährung, dann wird amount1 zurückgegeben. Ist die zweite Hauswährung von organization die Leitwährung, dann wird amount2 zurückgegeben. Ist die dritte Hauswährung von organization die Leitwährung, dann wird amount3 zurückgegeben. Ist organization keine Firma, dann wird die Leitwährung der Firma, zu der organization zugeordnet ist, herangezogen. |
Fehlerquellen | Keine |
Beispiele |
amountCorporate( parameters.object:totalValues.netValueDomestic. amount1,parameters.object:totalValues.netValueDomestic.amount2, parameters.object:totalValues. netValueDomestic.amount3, cast(Guid, getAttribute(parameters.object, "_organization"))) gibt den Gesamt-Nettobetrag in der aktuellen Leitwährung der Organization zurück, in dessen Kontext das vom parameters.object referenzierte Business Object erfasst wurde. |
Kontext | OLTP |
Hinweise | Business Objects mit einem Hauswährungsbetrag besitzen die Attribute _organization und _currencyCombo. Das erste Attribut verweist auf die Organisation, für die der Hauswährungsbetrag erfasst wurde. Das zweite Attribut verweist auf die Kombination von Hauswährungen, welche die Organisation bzw. der Hauswährungsbetrag verwendet. |
Siehe auch | getCorporateCurrency |
Folgendes Beispiel aus der Aktivitätsdefinition help.amountCorporate zeigt, wie aus einem aus bis zu drei Hauswährungen bestehenden Hauswährungsbetrag der Betrag in der Leitwährung der Firma bestimmt werden kann.
function create() { var p_orderType := parameters.ORDER_TYPE; var p_orderNumber := parameters.ORDER_NUMBER; var orderType := getByBusinessKey(CisObject(com.cisag.app.sales.obj.SalesOrderType), p_orderType); var order := getByBusinessKey(CisObject(com.cisag.app.sales.obj.SalesOrder), orderType:guid, p_orderNumber); var totalGrossValueCorporate := amountCorporate( order:totalValues.grossValueDomestic.amount1, order:totalValues.grossValueDomestic.amount2, order:totalValues.grossValueDomestic.amount3, cast(Guid, getAttribute(order, "_organization"))); result.VALUE := totalGrossValueCorporate; } function amountCorporate(amount1 as Number, amount2 as Number, amount3 as Number, org as Guid) as Number { var amountCorporate := 0; var baseFunction := getCustomizingValue("com.cisag.app.general.Base", loadOrganization(org):financialsOrganization); if (not isNull(baseFunction)) { if (baseFunction:corporateCurrency = 1) amountCorporate := amount1; if (baseFunction:corporateCurrency = 2) amountCorporate := amount2; if (baseFunction:corporateCurrency = 3) amountCorporate := amount3; } return amountCorporate; } function amountCorporate2(domesticAmount as CisObject(com.cisag.app.general.obj.DomesticAmount), org as Guid) as Number { var amountCorporate := 0; var baseFunction := getCustomizingValue("com.cisag.app.general.Base", loadOrganization(org):financialsOrganization); if (not isNull(baseFunction)) { if (baseFunction:corporateCurrency = 1) amountCorporate := domesticAmount:amount1; if (baseFunction:corporateCurrency = 2) amountCorporate := domesticAmount:amount2; if (baseFunction:corporateCurrency = 3) amountCorporate := domesticAmount:amount3; } return amountCorporate; }
convertCurrency
Name | convertCurrency |
Beschreibung | convertCurrency rechnet einen Betrag in eine andere Währung um. |
Signaturen | Number convertCurrency(Number amount, Guid source, Guid target)
|
Parameter | amount ist der Betrag, der umgerechnet werden soll.
source ist die Guid oder Identifikation der Quellwährung. target ist die Guid oder Identifikation der Zielwährung. |
Ergebnis | Die Funktion rechnet einen Betrag von einer Quellwährung in eine Zielwährung um. Wird conversionDate nicht angegeben, dann wird der Betrag gemäß der zurzeit gültigen Wechselkurse umgerechnet. |
Fehlerquellen | Gibt es keinen gültigen Wechselkurs, dann wird der Betrag 0 zurückgegeben. |
Beispiele | convertCurrency(parameters.object:totalValues.grossValue.amount, parameters.object:totalValues.grossValue.currency, getCorporateCurrency(cast(Guid, getAttribute(parameters.object, "_organization")))) rechnet den Gesamt-Bruttobetrag eines vom parameters.object referenzierten Vertriebsauftrags in der Leitwährung zum aktuell gültigen Wechselkurs um. |
Kontext | OLTP |
Hinweise | |
Siehe auch |
Folgendes Beispiel aus der Aktivitätsdefinition help.convertCurrency zeigt, wie ein Betrag zwischen zwei Währungen umgerechnet werden kann. Die Funktion convertCurrency rechnet einen Betrag zu den aktuell gültigen Wechselkursen um, wobei die Funktion convertCurrenncyAt auch historische Wechselkurse verwendet.
const ExchangeRateQuotation as valueSet(com.cisag.app.general.ExchangeRateQuotation); function create() { var p_amount := parameters.AMOUNT; var p_source := parameters.SOURCE; var p_target := parameters.TARGET; var p_conversionDate := parameters.CONVERSION_DATE; var r_convertedAmountAt := 0; var convertedAmountAt := convertCurrencyAt(p_amount, loadCurrency(p_source):guid, loadCurrency(p_target):guid, p_conversionDate); if (not isNull(convertedAmountAt)) r_convertedAmountAt := convertedAmountAt; result.IS_NULL := isNull(r_convertedAmountAt); result.CONVERTED_AMOUNT := r_convertedAmountAt; } function convertCurrency(amount as Number, sourceCurrency as Guid, targetCurrency as Guid) as Number { var convertedAmount := 0; var useReverseQuotation := false; var company := cast(Guid, getCustomizingValue("com.cisag.app.General"):company); var exchangeRateUse := cast(Guid, getCustomizingValue("com.cisag.app.general.Base", company):exchangeRateUse); var quotation := getCustomizingValue("com.cisag.app.general.Base", company):exchangeRateQuotation; var factor := 1; var exchangeRate := getByBusinessKey(CisObject(com.cisag.app.general.obj.ExchangeRate), exchangeRateUse, sourceCurrency, targetCurrency); if (isNull(exchangeRate)) { exchangeRate := getByBusinessKey(CisObject(com.cisag.app.general.obj.ExchangeRate), exchangeRateUse, targetCurrency, sourceCurrency); useReverseQuotation := true; } if (not isNull(exchangeRate)) { if (exchangeRate:factor = 2) factor := 10; if (exchangeRate:factor = 3) factor := 100; if (exchangeRate:factor = 4) factor := 1000; if (exchangeRate:factor = 5) factor := 10000; if ((useReverseQuotation = false and quotation = ExchangeRateQuotation.DIRECT) or (useReverseQuotation = true and quotation = ExchangeRateQuotation.INDIRECT)) convertedAmount := (amount * factor) / exchangeRate:middleRate; else convertedAmount := (amount * exchangeRate:middleRate) / factor; } return convertedAmount; } function convertCurrencyAt(amount as Number, sourceCurrency as Guid, targetCurrency as Guid, conversionDate as Timestamp) as Number { var convertedAmount := 0; var useReverseQuotation := false; var company := cast(Guid, getCustomizingValue("com.cisag.app.General"):company); var exchangeRateUse := cast(Guid, getCustomizingValue("com.cisag.app.general.Base", company):exchangeRateUse); var quotation := getCustomizingValue("com.cisag.app.general.Base", company):exchangeRateQuotation; var factor := 1; var OQL := "SELECT FROM com.cisag.app.general.obj.ExchangeRate o " + "WHERE o:exchangeRateUse = ? AND o:sourceCurrency = ? AND o:targetCurrency = ? " + " AND o:validFrom <= toTimeStamp(„" + timeZoneId(today()) + "„, " + format(year(conversionDate)) + ", " + format(month(conversionDate)) + ", " + format(day(conversionDate)) + ", " + format(hour(conversionDate)) + ", " + format(minute(conversionDate)) + ", " + format(second(conversionDate)) + ", " + format(millisecond(conversionDate)) + ") " + " AND o:validUntil > toTimeStamp(„" + timeZoneId(today()) + "„, " + format(year(conversionDate)) + ", " + format(month(conversionDate)) + ", " + format(day(conversionDate)) + ", " + format(hour(conversionDate)) + ", " + format(minute(conversionDate)) + ", " + format(second(conversionDate)) + ", " + format(millisecond(conversionDate)) + ")"; var oList := getCisObjectList("OLTP", OQL, list(exchangeRateUse, sourceCurrency, targetCurrency), 1); if (size(oList) = 0) { oList := getCisObjectList("OLTP", OQL, list(exchangeRateUse, targetCurrency, sourceCurrency), 1); useReverseQuotation := true; } for (exchangeRate as CisObject(com.cisag.app.general.obj.ExchangeRate) : oList) { if (exchangeRate:factor = 2) factor := 10; if (exchangeRate:factor = 3) factor := 100; if (exchangeRate:factor = 4) factor := 1000; if (exchangeRate:factor = 5) factor := 10000; if ((useReverseQuotation = false and quotation = ExchangeRateQuotation.DIRECT) or (useReverseQuotation = true and quotation = ExchangeRateQuotation.INDIRECT)) convertedAmount := (amount * factor) / exchangeRate:middleRate; else convertedAmount := (amount * exchangeRate:middleRate) / factor; } return convertedAmount; }
getCorporateCurrency
Name | getCorporateCurrency |
Beschreibung | getCorporateCurrency gibt die Guid für die Leitwährung einer Organisation zurück. |
Signaturen | Guid getCorporateCurrency(Guid organization) |
Parameter | organization ist die Guid der Organisation, deren Leitwährung ermittelt werden soll. |
Ergebnis | Die Funktion gibt die Guid für die Leitwährung der Organisation organization zurück.
Ist organization keine Firma, dann wird die Leitwährung der Firma, zu der organization zugeordnet ist, zurückgegeben. |
Fehlerquellen | Keine |
Beispiele | loadCurrency(getCorporateCurrency(cast(Guid, getAttribute(parameters.object, "_organization")))):isoCode gibt den ISO-Code der Leitwährung der Organisation zurück, in dessen Kontext das vom parameters.object referenzierte Business Object erfasst wurde. |
Kontext | OLTP |
Hinweise | |
Siehe auch | amountCorporate |
Folgendes Beispiel aus der Aktivitätsdefinition help.getCorporateCurrency zeigt, wie die Customizing-Funktion Allgemein abgefragt werden kann, um die Leitwährung einer Firma zu bestimmen.
function create() { var p_organization := parameters.ORGANIZATION; var r_corporateCurrency := getCorporateCurrency(loadOrganization(p_organization):guid); result.PRIMARY_CURRENCY := loadCurrency(r_corporateCurrency):isoCode; } function getCorporateCurrency(org as Guid) as Guid { var corporateCurrency as Guid; var baseFunction := getCustomizingValue("com.cisag.app.general.Base", loadOrganization(org):financialsOrganization); if (not isNull(baseFunction)) { corporateCurrency := baseFunction:corporateCurrencyGuid; } return corporateCurrency; }
getCurrency1
Name | getCurrency1 |
Beschreibung | getCurrency1 gibt die Guid für die erste Hauswährung des Mandanten zurück. |
Signaturen | Guid getCurrency1() |
Parameter | Keine |
Ergebnis | Die Funktion gibt die Guid für die erste Hauswährung des Mandanten zurück. |
Fehlerquellen | Keine |
Beispiele | loadCurrency(getCurrency1()):isoCode gibt den ISO-Code der ersten Hauswährung des Mandanten zurück. |
Kontext | OLTP |
Hinweise | Für eine Firma können bis zu 3 Hauswährungen festgelegt werden. Die Hauswährungen 2 und 3 sind organisationsspezifisch. Die Hauswährung 1 ist hingegen mandantenweit einheitlich, d. h. alle Firmen besitzen die gleiche Hauswährung 1. |
Siehe auch | getCurrency2, getCurrency3 |
Folgendes Beispiel aus der Aktivitätsdefinition help.getCurrency1 zeigt, wie die Customizing-Funktion Allgemein für den Mandanten abgefragt werden kann, um die erste Hauswährung aller Firmen zu bestimmen.
function create() { var r_currency1 := getCurrency1(); result.CURRENCY1 := loadCurrency(r_currency1):isoCode; } function getCurrency1() as Guid { var currency1 as Guid; var company := loadOrganization(getCustomizingValue("com.cisag.app.General"):company); var baseFunction := getCustomizingValue("com.cisag.app.general.Base", company:guid); if (not isNull(baseFunction)) { var combination := getByPrimaryKey(CisObject(com.cisag.app.multiorg.obj.DomesticCurrencyCombination), baseFunction:combination); currency1 := combination:currency1; } return currency1; }
getCurrency2
Name | getCurrency2 |
Beschreibung | getCurrency2 gibt die Guid für die zweite Hauswährung einer Organisation zurück. |
Signaturen | Guid getCurrency2(Guid organization) |
Parameter | Keine |
Ergebnis | Die Funktion gibt die Guid für die zweite Hauswährung von organization zurück.
Ist organization keine Firma, dann wird die zweite Hauswährung der Firma, zu der organization zugeordnet ist, zurückgegeben. |
Fehlerquellen | Ist für organization keine zweite Hauswährung festgelegt, dann wird der Wert null zurückgegeben. |
Beispiele | loadCurrency(getCurrency2(cast(Guid, getAttribute(parameters.object, "_organization")))):isoCode gibt den ISO-Code der zweiten Hauswährung der Organisation zurück, in dessen Kontext das vom parameters.object referenzierte Business Object erfasst wurde. |
Kontext | OLTP |
Hinweise | |
Siehe auch | getCurrency1, getCurrency3 |
Folgendes Beispiel aus der Aktivitätsdefinition help.getCurrency2 zeigt, wie die Customizing-Funktion Allgemein für eine Firma abgefragt werden kann, um die zweite Hauswährung der Firma zu bestimmen.
function create() { var p_organization := parameters.ORGANIZATION; var r_currency2 := getCurrency2(loadOrganization(p_organization):guid); result.IS_NULL := isNull(r_currency2); if (not isNull(r_currency2)) result.CURRENCY2 := loadCurrency(r_currency2):isoCode; } function getCurrency2(organization as Guid) as Guid { var currency2 as Guid; var baseFunction := getCustomizingValue("com.cisag.app.general.Base", loadOrganization(organization):guid); if (not isNull(baseFunction)) { var combination := getByPrimaryKey(CisObject(com.cisag.app.multiorg.obj.DomesticCurrencyCombination), baseFunction:combination); currency2 := combination:currency2; } return currency2; }
getCurrency3
Name | getCurrency3 |
Beschreibung | getCurrency3 gibt die Guid für die dritte Hauswährung einer Organisation zurück. |
Signaturen | Guid getCurrency3(Guid organization) |
Parameter | Keine |
Ergebnis | Die Funktion gibt die Guid für die dritte Hauswährung von organization zurück.
Ist organization keine Firma, dann wird die dritte Hauswährung der Firma, zu der organization zugeordnet ist, zurückgegeben. |
Fehlerquellen | Ist für organization keine dritte Hauswährung festgelegt, dann wird der Wert null zurückgegeben. |
Beispiele | loadCurrency(getCurrency3(cast(Guid, getAttribute(parameters.object, "_organization")))):isoCode gibt den ISO-Code der dritten Hauswährung der Organisation zurück, in dessen Kontext das vom parameters.object referenzierte Business Object erfasst wurde. |
Kontext | OLTP |
Hinweise | |
Siehe auch | getCurrency1, getCurrency2 |
Folgendes Beispiel aus der Aktivitätsdefinition help.getCurrency3 zeigt, wie die Customizing-Funktion Allgemein für eine Firma abgefragt werden kann, um die dritte Hauswährung der Firma zu bestimmen.
function create() { var p_organization := parameters.ORGANIZATION; var r_currency3 := getCurrency3(loadOrganization(p_organization):guid); result.IS_NULL := isNull(r_currency3); if (not isNull(r_currency3)) result.CURRENCY3 := loadCurrency(r_currency3):isoCode; } function getCurrency3(organization as Guid) as Guid { var currency3 as Guid; var baseFunction := getCustomizingValue("com.cisag.app.general.Base", loadOrganization(organization):guid); if (not isNull(baseFunction)) { var combination := getByPrimaryKey(CisObject(com.cisag.app.multiorg.obj.DomesticCurrencyCombination), baseFunction:combination); currency3 := combination:currency3; } return currency3; }