Compartir a través de


Funciones en tiempo de ejecución empresariales de X++

Nota:

Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a Finance and Operations Viva Engage Community y elija la comunidad a la que desea unirse.

En este artículo se describen las funciones en tiempo de ejecución empresarial.

Estas funciones escriben datos financieros y calculan fórmulas.

cTerm

Calcula el número de períodos necesarios para que el valor de inversión actual produzca un valor objetivo.

Syntax

real cTerm(real interest, real future_value, real current_value)

Parámetros

Parámetro Description
interés Tasa de interés.
future_value Valor de destino.
current_value Valor de inversión actual.

Valor devuelto

Número de períodos necesarios para llegar a future_value.

Observaciones

Los parámetros current_value y future_value deben tener el mismo signo con prefijo (más o menos).

Example

static void cTermExample(Args _arg)
{
    real r;
    ;
    r = cTerm(10.0, 500.00, 100.00);
    print "The cTerm is " + num2Str(r, 2, 2, 1, 1);
    pause;
}

Ddb

Calcula la amortización acelerada de un activo.

Syntax

real ddb(real price, real scrap, real life, int period)

Parámetros

Parámetro Description
precio Precio de compra del activo.
chatarra Valor residual del activo que se ha escrito.
vida Duración esperada del recurso.
period Período en el que se va a calcular la depreciación.

Valor devuelto

Amortización del activo.

Observaciones

El valor del libro para un período específico es igual al precio de compra menos la depreciación acumulada para períodos anteriores:

  • Valor del libro del período 1 = Precio
  • Valor del libro del período 2 = Valor del libro del período 1 : depreciación del período 1
  • Valor de libro para Período n = Valor de libro para Período (n–1) – Depreciación del período (n–1)

Hay tres variaciones para el cálculo de la depreciación: Si período > de vida:

  • Depreciación = 0

If (Book value for Period n) – ((Book value for Period n) × 2 ÷ Life) < Valor residual:

  • Depreciación = (Valor del libro para período n): valor residual

En todos los demás casos: depreciación = (valor del libro para el período n) × 2 ÷ Las funciones syd y sln también calculan la depreciación de un activo. Las funciones syd y ddb permiten una depreciación mayor durante los años anteriores, mientras que sln calcula una depreciación lineal.

ddb(12000,2000,10,1); //Returns the value 2400.
ddb(12000,2000,10,3); //Returns the value 1536.

Dg

Calcula la relación de contribución, que se basa en el precio de venta y el precio de compra. Si el valor del parámetro sale es 0,0, no se puede realizar el cálculo.

Syntax

real dg(real sale, real purchase)

Parámetros

Parámetro Description
venta Precio de venta.
compra Precio de compra.

Valor devuelto

Relación de contribución.

Observaciones

dg(1000,300); //Returns the value 0.7.
dg(100,30); //Returns the value 0.7.
dg(20000, 11000); //Returns the value 0.45.

Fv

Calcula el valor futuro de una inversión.

Syntax

real fV(real amount, real interest, real life)

Parámetros

Parámetro Description
importe Importe pagado durante cada período.
interés Tasa de interés.
vida Número de períodos de inversión.

Valor devuelto

Valor futuro de la inversión.

Observaciones

fV(100,0.14,10); //Returns the value 1933.73.
fV(400,0.10,5); //Returns the value 2442.04.

idg

Calcula el precio de venta, en función del precio de compra y la relación de contribución.

real idg(real purchase, real contribution_ratio)

Parámetros

Parámetro Description
compra Precio de compra.
contribution_ratio Relación de contribución.

Valor devuelto

Precio de venta.

Observaciones

Si la proporción de contribución es igual a 1,0, no se puede realizar el cálculo. La función idg es la inversa de la función dg .

idg(300,0.7); //Returns the value 1000.
idg(11000,0.45); //Returns the value 20000.

intvMax

Recupera el número de intervalos para el período especificado cuando el período se divide en partes según lo especificado por el parámetro func .

int intvMax(date input_date, date ref_date, int func)

Parámetros

Parámetro Description
input_date Fin del período, que debe ser posterior al parámetro ref_date .
ref_date El inicio del período.
func Valor de enumeración del sistema IntvScale que indica la unidad de división.

Observaciones

Estos son los valores posibles para el parámetro func :

  • Ninguno
  • YearMonthDay
  • YearMonth
  • Año
  • MonthDay
  • Mes
  • Day
  • YearQuarter
  • Trimestre
  • YearWeek
  • Semana
  • Día laborable

Example

static void intvMaxExample()
{
    date refDate = str2Date("4/9/2007", 213);
    date inputDate = str2Date("10/5/2007", 213);
    int numberOfIntervals;
    ;
    numberOfIntervals = intvMax(inputDate, refDate, intvScale::YearMonth);
    print numberOfIntervals;
    pause;
}

intvName

Devuelve el nombre del intervalo que es el número especificado de intervalos antes de la fecha especificada.

str intvName(date input_date, int col, enum func)

Parámetros

Parámetro Description
input_date Una fecha en el primer intervalo.
col Número de intervalos por delante de la fecha especificada por el parámetro input_date .
func Valor de enumeración intvScale .

Valor devuelto

Nombre del intervalo.

Observaciones

Por ejemplo, si el parámetro func es el valor de enumeración IntvScale::WeekDay , este método devuelve el nombre del día de la semana. Si el parámetro func es el valor de enumeración IntvScale::Week , este método devuelve una cadena que contiene el número de la semana.

Example

static void intvNameExample(Args _args)
{
    date refDate = 2672010;
    str name;
    ;
    name = intvName(refDate, 3,  intvScale::WeekDay);
    Global::info(strfmt("%1 is the output, which indicates the day of the week 3 days after 26\7\2010.", name));
}
/**** Infolog display.
Message (09:56:55 am)
Thu is the output, which indicates the day of the week 3 days after 2672010.
****/

intvNo

Calcula el número de intervalos entre dos fechas al dividir la hora en los intervalos especificados.

Syntax

int intvNo(date input_date, date ref_date, int func)

Parámetros

Parámetro Description
input_date Fecha que indica el final del período
ref_date Fecha que indica el inicio del período.
func Valor de enumeración intvScale .

Valor devuelto

Número de intervalos entre las fechas especificadas por los parámetros ref_date y input_date .

Example

static void intvNoExample(Args _args)
{
    date inputDate = str2Date("1/1/2007", 213);
    date refDate = str2Date("3/1/2007", 213);
    int noOfIntervals;
    ;
    noOfIntervals = intvNo(refDate, inputDate, intvScale::Month);
    print noOfIntervals;
    pause;
    //noOfIntervals now holds the difference in months between March and January (2).
}

intvNorm

Devuelve la fecha normalizada para el período.

Syntax

date intvNorm(date input_date, date ref_date, int func)

Parámetros

Parámetro Description
input_date Final del período, que debe ser posterior a la fecha especificada por el parámetro ref_date .
ref_date El inicio del período.
func Valor de enumeración intvScale que indica la unidad de división de intervalo.

Valor devuelto

Fecha normalizada para el período.

Observaciones

La fecha devuelta será igual a la fecha del primer día del intervalo en el que existe la fecha especificada por el parámetro ref_date .

Example

static void example()
{
    print intvNorm(today(), today()-1, IntVScale::WeekDay);
    pause;
}

Pmt

Calcula el importe que se debe pagar cada período para devolver un préstamo.

Syntax

real pmt(real principal, real interest, real life)

Parámetros

Parámetro Description
principal Importe prestado originalmente.
interés El interés que se aplica cada período al importe prestado.
vida Número de períodos en los que se reembolsa el préstamo.

Valor devuelto

Importe que se debe pagar cada período.

Observaciones

Los parámetros de vida e interés deben expresarse en las mismas unidades de tiempo. El valor del parámetro life debe ser superior a 0,0.

Example

pmt(4000,0.14,4); //Returns the value 1372.82.
pmt(10000,0.10,20); //Returns the value 1174.60.

pt

Recupera la suma de un número más un porcentaje especificado de ese número.

Syntax

real pt(real amount, real percentage)

Parámetros

Parámetro Description
importe Número original.
porcentaje Suplemento porcentual.

Valor devuelto

Número igual a ((cantidad *× *porcentaje) + cantidad).

Observaciones

pt(2000.0,0.10); //Returns the value 2200.0.
pt(20.0,0.10); //Returns the value 22.0.

Pv

Calcula el valor actual de una anualidad, donde se recibe una cantidad durante varios períodos y la tasa de interés se deduce para cada período.

Syntax

real pv(real amount, real interest, real life)

Parámetros

Parámetro Description
importe Importe que se paga durante cada período.
interés Tasa de interés.
vida Número de veces que se paga el valor especificado por el parámetro amount .

Valor devuelto

Valor actual de una anualidad.

Observaciones

pv(300,0.14,4); //Returns the value 874.11.

tasa

Calcula el interés necesario para que el valor de inversión actual alcance el valor futuro durante el número especificado de períodos.

Syntax

real rate(real _future_value, real _current_value, real _terms)

Parámetros

Parámetro Description
_future_value Valor futuro de la inversión.
_current_value Valor actual de la inversión.
_letra chica Número de períodos que abarca la inversión.

Valor devuelto

Tasa de interés calculada.

Observaciones

rate(10000,1000,20); //Returns the value 0.12.

sln

Recupera el importe de amortización constante del activo especificado para cada período de amortización.

Syntax

real sln(real price, real scrap, real life)

Parámetros

Parámetro Description
precio Precio de compra del activo.
chatarra Valor de extracción del recurso.
vida Número de períodos en la vida esperada del activo.

Valor devuelto

Importe de amortización.

Example

static void slnExample(Args _arg)
{
    real r;
    ;
    r = sln(100.00, 50.00, 50.00);
    print r;
    pause;
}

Syd

Calcula la depreciación de un activo durante un período especificado.

Syntax

real syd(real _price, real _scrap, real _life, int _period)

Parámetros

Parámetro Description
_precio Precio de compra del activo.
_chatarra Valor de extracción del recurso.
_vida La vida útil esperada del activo (el número de períodos).
_periodo Período para el que se va a calcular la depreciación.

Valor devuelto

Importe de amortización durante el período especificado.

Observaciones

A diferencia de la función sln , la función syd puede permitir una depreciación acelerada del activo. Al igual que con la función ddb , esto permite una depreciación mayor durante los primeros períodos de vida de un activo.

Example

En los ejemplos siguientes, la depreciación periódica se calcula para un activo que tiene un precio de compra de 10 000, un valor de extracción de 2000 y una vida de 5. En comparación, sln(10000,2000,5) calcularía 1600,00 para cada período.

// Returns the value 2666.67 (for the 1st period).
syd(10000,2000,5,1);
// Returns the value 2133.33 (for the 2nd period).
syd(10000,2000,5,2);
// Returns the value 1600.00 (for the 3rd period).
syd(10000,2000,5,3);
// Returns the value 1066.67 (for the 4th period).
syd(10000,2000,5,4);
// Returns the value 533.33 (for 5th - and final- period).
syd(10000,2000,5,5);

term

Calcula el número de períodos para los que debe ejecutarse una inversión.

Syntax

real term(real amount, real interest, real future_value)

Parámetros

Parámetro Description
importe Importe de la inversión periódica.
interés Tasa de interés para cada período.
future_value Valor futuro previsto para la inversión

Valor devuelto

Número de períodos para los que debe ejecutarse la inversión.

Example

static void termExample(Args _args)
{
    print term(400,0.08,5000);  //returns the value '9.01'.
    print term(100,0.14,3000);  //returns the value '12.58'.
    pause;
}