X++ sesijas izpildlaika funkcijas

Piezīmes

Kopienas interešu grupas tagad ir pārvietotas no Yammer uz Microsoft Viva Engage. Lai pievienotos Viva Engage kopienai un piedalītos jaunākajās diskusijās, aizpildiet veidlapu Pieprasīt piekļuvi Finance and Operations Viva Engage Community un izvēlieties kopienu, kurai vēlaties pievienoties.

Šajā rakstā ir aprakstītas sesijas izpildlaika funkcijas.

curExt

Izgūst paplašinājumu, ko izmanto pašreizējais uzņēmums.

str curExt()

Atgrieztā vērtība

Pašreizējā uzņēmuma pagarinājums.

Piemērs

static void curExtExample(Args _arg)
{
    str s;
    // Sets s to the extension of the current company.
    s = curExt();
    print "Current extension is " + s;
}

curUserId

Izgūst ID, kas nav skaitlisks, kas apzīmē pašreizējo lietotāju.

str curUserId()

Atgrieztā vērtība

ID, kas nav skaitlisks, kas apzīmē pašreizējo lietotāju.

Piemērs

static void curUserIdExample(Args _arg)
{
    str s;
    s = curUserId();
    print "Current user ID is " + s;
}

funcName

Izgūst virkni, kas satur pašreizējo funkcijas kontekstu.

str funcName()

Atgrieztā vērtība

Tās metodes nosaukums, kas izpilda šo metodi.

Atzīmes

Ja izpilde pašlaik notiek tabulas vai klases dalībniekā, metodes nosaukumam ir šīs tabulas vai klases nosaukums.

Piemērs

static void funcNameExample(Args _arg)
{
    print "Current function context is " + funcName();
}

getCurrentPartition

Izgūst pašreizējā nodalījuma īso nosaukumu.

str getCurrentPartition()

Atgrieztā vērtība

Pašreizējā nodalījuma īsais nosaukums.

Atzīmes

Atgrieztā datu nodalījuma nosaukuma maksimālais garums ir astoņas rakstzīmes.

Piemērs

Šajā koda piemērā ir parādīti X++ valodas funkcijas getCurrentPartition izsaukumi un izvade no tās, kā arī saistītās funkcijas vai metodes.

static public void Main(Args _args)  // X++ method.
{
    int64 iPartition;
    str sPartition;
    SelectableDataArea oSelectableDataArea;  // System ExDT.
    iPartition = getCurrentPartitionRecId();
    sPartition = getcurrentpartition();
    oSelectableDataArea = Global::getCompany( tableNum(BankAccountTable) );
    Global::info( strFmt(
            "getCurrentPartitionRecId =%1 , getCurrentPartition =%2 , getCompany =%3",
            iPartition, sPartition, oSelectableDataArea) );
}
/**** Pasted from Infolog window:
Message_@SYS14327 (03:42:38 pm)
getCurrentPartitionRecId =5637144576 , getCurrentPartition =initial , getCompany =ceu
****/

getCurrentPartitionRecId

Izgūst pašreizējā nodalījuma lauku RecId .

int64 getCurrentPartitionRecId()

Atgrieztā vērtība

Pašreizējā datu nodalījuma lauks RecId .

Atzīmes

Lai skatītu koda piemēru, kas balstās uz funkciju getCurrentPartitionRecId , skatiet rakstu Kā: nodalījuma filtra iekļaušana programmā Direct Transact-SQL.

Piemērs

Tālāk sniegtajā koda piemērā ir parādīti X++ valodas funkcijas getCurrentPartitionRecId izsaukumi un izvade no tās, kā arī saistītās funkcijas vai metodes.

static public void Main(Args _args)  // X++ method.
{
    int64 iPartition;
    str sPartition;
    SelectableDataArea oSelectableDataArea;  // System ExDT.
    iPartition = getCurrentPartitionRecId();
    sPartition = getcurrentpartition();
    oSelectableDataArea = Global::getCompany( tableNum(BankAccountTable) );
    Global::info( strFmt(
            "getCurrentPartitionRecId =%1 , getCurrentPartition =%2 , getCompany =%3",
            iPartition, sPartition, oSelectableDataArea) );
}
/**** Pasted from Infolog window:
Message_@SYS14327 (03:42:38 pm)
getCurrentPartitionRecId =5637144576 , getCurrentPartition =initial , getCompany =ceu
****/

getPrefix

Izgūst pašreizējo izpildes prefiksu pēc secīgiem funkcijas setPrefix izsaukumiem.

str getPrefix()

Atgrieztā vērtība

Pašreizējais izpildes prefikss.

Atzīmes

Prefiksa mehānisms ļauj vienkāršāk rakstīt precīzus kļūdu ziņojumus par lietojumprogrammas veiktajiem darījumiem. Tā kā informācijas žurnālā ir izveidots hierarhisks attēlojums, var būt vieglāk noteikt, no kurienes radusies katra kļūda.

Piemērs

static void getPrefixExample(Args _arg)
{
    setPrefix("Prefix");
    setPrefix("Another prefix");
    print getPrefix();
}

sessionId

Izgūst pašreizējās sesijas numuru.

int sessionId()

Atgrieztā vērtība

Pašreizējās sesijas skaitliskais ID.

Atzīmes

Piešķiriet sesijas numuru, startējot klientu un izveidojot savienojumu ar lietojumprogrammu objektu serveri (AOS). Katrs šīs funkcijas izsaukums klienta dzīves laikā atgriež to pašu veselu skaitli. Atgrieztā vērtība ir saderīga ar paplašināto datu tipu SessionID . Satur metodes atgriež informāciju par atsevišķām lietotāju sesijām.

Piemērs

static void sessionIdExample(Args _arg)
{
    int session;
    session = sessionId();
    print "This session ID is number " + int2Str(session);
}

prmIsDefault

Nosaka, vai pašreizējai metodei norādītajam parametram ir noklusējuma vērtība.

int prmIsDefault(anytype argument)

Parametri

Parametrs Apraksts
Arguments Pārbaudāmais parametrs.

Atgrieztā vērtība

1 , ja tika izmantota parametra noklusējuma vērtība; pretējā gadījumā 0 (nulle).

Piemērs

static void prmIsDefaultExample(Args _arg)
{
    void fn(boolean b = true, int j = 42)
    {
        if (prmIsDefault(b) == 1)
        {
            print "First parameter is using the default value.";
        }
        else
        {
            print "First parameter is not using the default value.";
        }
    }
    fn();
    fn(false);
}

runAs

Ļauj zvanītājam palaist X++ metodi cita lietotāja drošības kontekstā. Šo funkciju visbiežāk izmanto ar partijas apstrādi.

container runAs(
    str userId,
    int classId,
    str staticMethodName
    [,
    container params,
    str company,
    str language,
    str partition
    ])

Parametri

Parametrs Apraksts
userId Lietotājs, kas jāuzdodas.
classId Klase, kas jāizsauc uzdošanās sesijā.
staticMethodName Klases metode, kas jāizsauc jaunajā lietotāja kontekstā.
params Parametri, kas jānodod metodei; Neobligāti.
sabiedrība Uzņēmums, kas ir atlasīts uzdošanās sesijai; Neobligāti.
valoda Valoda, kas ir atlasīta uzdošanās sesijai; Neobligāti.
Nodalījumu Tāda veida nodalījuma atslēga, ko atgriež funkcija getCurrentPartition ; Neobligāti.

Atgrieztā vērtība

Konteiners, kurā ir atgrieztā vērtība vai vērtības metodei, ko izsauc funkcija runAs , ja tiek atgrieztas kādas vērtības.

Atzīmes

Šī funkcija ļauj palaist kodu kā citu lietotāju. Šī iespēja rada draudus drošībai. Tāpēc šī funkcija darbojas sadaļā Koda piekļuves drošība. Šīs funkcijas izsaukumiem serverī ir nepieciešama atļauja no klases RunAsPermission . Katram šīs lietojumprogrammu interfeisa (API) lietojumam jābūt apdraudētam. Ja tiek atklāta drošības ievainojamība, pārbaudiet ievadi šajā API. Atkļūdotājs var ignorēt pārtraukuma punktus, kas atrodas metodē, ko izsauc funkcija runAs . X++ kodam, ko izpilda funkcija runAs , ir jādarbojas kā Microsoft .NET Framework Common Intermediate Language (CIL). Ja mērķa statiskajai metodei netiek ģenerēts CIL, kļūdas ziņojums norāda, ka metode nav atrasta. Sistēmas tips PartitionKey ir precīzs nodalījuma parametra tips. PartitionKey ir virkne, kuras maksimālais garums ir astoņas rakstzīmes.

Piemērs

Tālāk sniegtajā piemērā tiek izsaukta metode runDueDateEventsForUser klasē EventJobDueDate . Kods darbojas lietotāja drošības kontekstā. Palaidiet šo kodu, lietojot to jaunas klases metodei.

server static public void Main(Args _args)
{
    RunAsPermission perm;
    UserId runAsUser;
    SysUserInfo userInfo;
    userInfo = SysUserInfo::find();
    runAsUser = userInfo.Id;
    perm = new RunAsPermission(runAsUser);
    perm.assert();
    runAs(runAsUser, classnum(EventJobDueDate), "runDueDateEventsForUser");
    CodeAccessPermission::revertAssert();
}

setPrefix

Iestata pašreizējā izpildes tvēruma prefiksu.

int setPrefix(str _prefix)

Parametri

Parametrs Apraksts
_priedēklis Pašreizējā izpildes tvēruma prefikss.

Atgrieztā vērtība

0 , ja prefikss ir veiksmīgi iestatīts.

Atzīmes

Izmantojiet funkciju getPrefix , lai iegūtu pilnu izpildes prefiksu. Kad tvērums beidzas, prefikss automātiski tiek atiestatīts iepriekšējā līmenī. Prefiksa mehānisms atvieglo precīzu kļūdu ziņojumu rakstīšanu par lietojumprogrammas veiktajām transakcijām. Piemēram, AA metode izsauc BB metodi, un katra metode izsauc funkciju setPrefix . Ziņojumi, ko BB metode raksta informācijas žurnālā, tiek parādīti ligzdoti hierarhijā. Kad BB metode beidzas un vadība atgriežas pie AA metodes, prefikss, ka BB metodes kopa nav pievienota nākamajiem ziņojumiem.

Piemērs

static void setPrefixExample(Args _arg)
{
    int i;
    i = setPrefix("Prefix");
    print i;
}