Suorituksenaikaiset X++-reflektiofunktiot

Tässä artikkelissa kuvataan suorituksenaikaiset heijastusfunktiot.

classIdGet

Hakee sen luokan numeerisen tunnuksen (luokkatunnuksen), johon alustettu objekti kuuluu.

int classIdGet(class object)

Parameters

Parameter Description
objekti Objekti, jota varten luokan tunnus hankitaan.

Return value

Määritetyn objektin luokkatunnus.

Example

static void classIdGetExample(Args _args)
{
    int i;
    WorkTimeCheck w;

    i = classIdGet(w);
    print "Class ID for object is " + int2Str(i);
}

dimOf

Hakee niiden indeksielementtien määrän, joihin tila varataan X++-matriisissa.

int dimOf(anytype object)

Parameters

Parameter Description
objekti Matriisi, jonka dimension koko määritetään.

Return value

Jos objektiparametrin arvo on matriisi, matriisin elementtien määrä; muussa tapauksessa 0 (nolla).

Remarks

dimOf-funktio on tarkoitettu X++-matriiseille, jotka on määritetty seuraaviksi X++ primitiivityypeiksi:

  • boolean
  • date
  • int
  • int64
  • real
  • utcDateTime

Esimerkki on int iAmounts[6];. Luettelointiarvojen ja laajennettujen tietotyyppien matriiseja tuetaan myös, jos ne perustuvat lopulta johonkin edellä olevista primitiivisistä tietotyypeistä (kuten int). DimOf-funktio ei hyväksy kaikkien X++primitiivityyppien matriiseja. Seuraavassa on matriisityyppejä, joita dimOf-funktio ei hyväksy:

  • str
  • container
  • anytype
  • Luokkaobjektien matriisit
  • Matriisiluokan esiintymät

Example

static void JobDimOfArrays(Args _args)
{
    int iAmounts[20], iCounts[];
    ABCModel enumAbcModel[22]; // Enum
    ABCModelType exdtAbcModelType[24]; // Extended data type
    anytype anyThings[26];
    str sNames[28];
    Array myArrayObj; // Class

    info("Start of job.");
    info("--(Next, normal int array, dimOf() accepts it.)");
    info(int2Str(dimOf(iAmounts)));
    info("--(Next, normal enum array, dimOf() accepts it.)");
    info(int2Str(dimOf(enumAbcModel)));
    info("--(Next, normal extended data type array (based on enum), dimOf() accepts it.)");
    info(int2Str(dimOf(exdtAbcModelType)));
    info("--(Next, dynamic int array, dimension not yet set.)");
    info(int2Str(dimOf(iCounts)));
    info("--(Next, dynamic int array, after dimension established.)");

    iCounts[13] = 13;
    info(int2Str(dimOf(iCounts)));
    info(" == == == == == (Next, array types that dimOf() does not support.)");
    info("--(Next, normal anytype array, dimOf() always returns 0.)");
    info(int2Str(dimOf(anyThings)));
    info("--(Next, an instance of class X++ Array, dimOf() always returns 0.)");

    myArrayObj = new Array(Types::Integer);
    myArrayObj.value(1,501);
    info(int2Str(dimOf(myArrayObj)));
    info("--(Next, the lastIndex method provides size information about Array instances.)");
    info(int2Str(myArrayObj.lastIndex()));
    info("--(Next, normal str array, dimOf() does not accept it, job is halted.)");
    info(int2Str(dimOf(sNames)));
    info("End of job.");

}
/************  Actual Infolog output
Message (11:10:06 am)
Start of job.
--(Next, normal int array, dimOf() accepts it.)
20
--(Next, normal enum array, dimOf() accepts it.)
22
--(Next, normal extended data type array (based on enum), dimOf() accepts it.)
24
--(Next, dynamic int array, dimension not yet set.)
0
--(Next, dynamic int array, after dimension established.)
16
== == == == == (Next, array types that dimOf() does not support.)
--(Next, normal anytype array, dimOf() always returns 0.)
0
--(Next, an instance of class X++ Array, dimOf() always returns 0.)
0
--(Next, the lastIndex method provides size information about Array instances.)
1
--(Next, normal str array, dimOf() does not accept it, job is halted.)
Error executing code: Illegal operation on this type of array. (C)JobsJobDimOfArrays - line 41
************/
/***********  Pop-up error dialog box
"Internal error number 25 in script."
This error is caused by the code line...
info(int2Str(dimOf(iCounts)));
...before iCounts was assigned at any index.
***********/

fieldId2Name

Hakee merkkijonon, joka edustaa määrittämäsi kentän nimeä käyttämällä taulukon tunnuksen numeroa ja kentän tunnuksen numeroa.

str fieldId2Name(int tableid, int fieldid)

Parameters

Parameter Description
tableid Taulukon tunnusnumero. Muistiinpano: Määritä taulukon tunnus tableName2Id-funktiolla .
fieldid Kentän tunnusnumero.

Return value

Kentän nimi.

Remarks

Jos haluat palauttaa kentän nimestä tulostettavan version, käytä fieldId2PName-funktiota .

Example

Seuraavassa esimerkissä määritetään fn kentän nimelle Asiakas (CustGroup) -taulukossa, jonka kentän tunnus on 7.

static void fieldId2NameExample(Args _arg)
{
    str fn;
    fn = fieldId2Name(tableName2Id("Customer"),7);
}

fieldId2PName

Noutaa määrittämäsi kentän tulostettavan nimen käyttämällä taulukon tunnusnumeroa ja kentän tunnusnumeroa.

str fieldId2PName(int tableid, int fieldid)

Parameters

Parameter Description
tableid Taulukon tunnusnumero. Muistiinpano: Määritä taulukon tunnus tableName2Id-funktiolla .
fieldid Kentän tunnusnumero. Muistiinpano: Määritä kentän tunnus fieldName2Id-funktiolla .

Return value

Kentän nimi.

Example

static void fieldId2PNameExample(Args _arg)
{
    str name;
    tableid _tableId;
    fieldid _fieldid;

    _tableId = tableName2Id("Address");
    _fieldId = fieldName2Id(_tableId, "Name");
    name = fieldId2PName(_tableId, _fieldid);
    print name;
}

fieldName2Id

Hakee määrittämäsi taulukkokentän kentän tunnuksen käyttämällä taulukon tunnuksen ja kentän tunnusnumeroa.

int fieldName2Id(int tableid, str fieldname)

Parameters

Parameter Description
tableid Taulukon tunnusnumero. Muistiinpano: Määritä taulukon tunnus tableName2Id-funktiolla .
fieldname Kentän nimi.

Return value

Tableid- ja fieldname-parametrien määrittämän kentän tunnus.

Example

static void fieldName2IdExample(Args _arg)
{
    int id;

    id = fieldName2Id(tableName2Id("Address"), "Name");
    // Returns 6. Name is the 6th field in the Address table.
    print id;
}

indexId2Name

Hakee indeksin nimen.

str indexId2Name(int tableid, int indexid)

Parameters

Parameter Description
tableid Sen taulukon tunnus, johon indeksi kuuluu.
indexid Indeksin tunnus.

Return value

Indeksin nimi.

Example

static void indexId2NameExample(Args _arg)
{
    str s;
    tableid id;
    indexid idx;

    id  = tableName2Id("Address");
    idx = indexName2Id(id, "AddrIdx");
    s = indexId2Name(id, idx);
    print "The result of calling indexId2Name is " + s;
}

indexName2Id

Hakee indeksin tunnuksen.

int indexName2Id(int tableid, str indexname)

Parameters

Parameter Description
tableid Sen taulukon tunnus, johon indeksi kuuluu.
indexname Indeksin nimi.

Return value

Indeksin tunnus.

Example

static void indexName2IdExample(Args _arg)
{
    indexid idx;
    tableid id;

    id  = tableName2Id("Address");
    idx = indexName2Id(id, "AddrIdx");
    print "Index ID for index name AddrIdx of table Address is " + int2Str(idx);
}

tableId2Name

Hakee merkkijonon, joka sisältää taulukon nimen.

str tableId2Name(int _tableid)

Parameters

Parameter Description
_tableid Taulukon tunnus.

Return value

Taulukon nimi.

Example

static void tableId2NameExample(Args _arg)
{
    str s;
    tableid id;

    // Get the ID for table name Address.
    id = tableName2Id("Address");
    print "ID for table name Address is " + int2Str(id);

    // Get the name from the table ID.
    s = tableId2Name(id);
    print "Name for table ID " + int2Str(id) + " is " + s;

    // Get the printable name from the table ID.
    s = tableId2PName(id);
    print "Printable name for table ID " + int2Str(id) + " is " + s;
}

tableId2PName

Hakee merkkijonon, joka sisältää taulukon tulostettavan nimen (selitteen).

str tableId2PName(int _fieldid)

Parameters

Parameter Description
_fieldid Taulukon tunnus.

Return value

Taulukon nimi.

Example

static void tableId2NameExample(Args _arg)
{
    str s;
    tableid id;

    // Get the ID for table name Address.
    id = tableName2Id("Address");
    print "ID for table name Address is " + int2Str(id);

    // Get the name from the table ID.
    s = tableId2Name(id);
    print "Name for table ID " + int2Str(id) + " is " + s;

    // Get the printable name from the table ID.
    s = tableId2PName(id);
    print "Printable name for table ID " + int2Str(id) + " is " + s;
}

tableName2Id

Hakee taulukon tunnuksen.

int tableName2Id(str _name)

Parameters

Parameter Description
_name Taulukon nimi.

Return value

Taulukon tunnus.

Example

static void tableName2IdExample(Args _arg)
{
    str s;
    tableid id;

    // Get the ID for the Address table name.
    id = tableName2Id("Address");
    print "ID for the Address table name is " + int2Str(id);

    // Get the name from the table ID.
    s = tableId2Name(id);
    print "Name for table ID " + int2Str(id) + " is " + s;

    // Get the printable name from the table ID.
    s = tableId2PName(id);
    print "Printable name for table ID " + int2Str(id) + " is " + s;
}

typeOf

Hakee elementin tyypin.

enum typeOf(anytype _object)

Parameters

Parameter Description
_object Elementti, jonka tyypille palautetaan.

Return value

Tyyppien järjestelmän luettelointiarvo.

Example

Seuraavassa esimerkissä testataan, onko säilön c. ensimmäinen elementti toinen säilö, joka sisältää yksittäisen kokonaisluvun.

if(typeof(conpeek(c, 1)) != Types::Container ||
conlen(conpeek(c, 1)) != 1 ||
typeof(conpeek(conpeek(c, 1), 1)) != Types::Integer)
{
    // More code.
}