Lotukeyrslutímaföll í X++

Athugasemd

Samfélagsáhugahópar hafa nú flust frá Yammer yfir í Microsoft Viva Engage. Til að ganga í Viva Engage samfélag og taka þátt í nýjustu umræðunum, fylltu út eyðublaðið Request access to Finance and Operations Viva Engage Community og veldu það samfélag sem þú vilt ganga í.

Þessi grein lýsir keyrsluföllum lotunnar.

curExt

Sækir viðbótina sem núverandi fyrirtæki notar.

str curExt()

Skilagildi

Framlengingin fyrir núverandi fyrirtæki.

Dæmi

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

curUserId

Sækir ótölulegt auðkenni sem táknar núverandi notanda.

str curUserId()

Skilagildi

Ótölulegt auðkenni sem táknar núverandi notanda.

Dæmi

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

funcNafn

Sækir streng sem inniheldur samhengi núverandi aðgerðar.

str funcName()

Skilagildi

Heiti aðferðarinnar sem keyrir þessa aðferð.

Athugasemdir

Ef keyrslan er nú innan meðlims töflu eða klasa er heiti aðferðarinnar forskeyti með nafni þeirrar töflu eða klasa.

Dæmi

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

getCurrentPartition

Sækir stutt nafn núverandi skiptingar.

str getCurrentPartition()

Skilagildi

Stutt nafn núverandi skiptingar.

Athugasemdir

Hámarkslengd gagnaskiptingarheitisins sem skilað er átta stafir.

Dæmi

Eftirfarandi kóðadæmi sýnir köll til og úttak frá getCurrentPartition fallinu á X++ tungumálinu og tengdum aðgerðum eða aðferðum.

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

Sækir RecId reitinn fyrir núverandi skipting.

int64 getCurrentPartitionRecId()

Skilagildi

RecId reiturinn fyrir núverandi gagnaskiptingu.

Athugasemdir

Til að sjá dæmi um kóða sem reiðir sig á getCurrentPartitionRecId aðgerðina, sjá Hvernig á að: Hafa með síu fyrir skipting í Direct Transact-SQL.

Dæmi

Eftirfarandi dæmi um kóða sýnir köll í og úttak frá getCurrentPartitionRecId aðgerð X++ tungumálsins og tengdar aðgerðir eða aðferðir.

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

Sækir núverandi keyrsluforskeyti eftir samfelld köll í setPrefix aðgerðina.

str getPrefix()

Skilagildi

Núverandi framkvæmdarforskeyti.

Athugasemdir

Forskeytabúnaðurinn gerir það einfaldara að skrifa nákvæm villuboð um viðskiptin sem forrit framkvæmir. Þar sem stigveldisskjár er búinn til í upplýsingaskránni getur verið auðveldara að ákvarða hvaðan hver villa kom.

Dæmi

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

sessionId

Sýnir lotunúmer yfirstandandi setu.

int sessionId()

Skilagildi

Tölulegt kenni núverandi lotu.

Athugasemdir

Úthlutaðu setunúmeri þegar þú ræsir viðskiptavininn og tengist Application Object Server (AOS). Hvert kall á þetta fall á líftíma viðskiptavinarins skilar sama heiltölugildi. Skilað gildi er samhæft við útvíkkaða gagnagerðina SessionID . Aðferðirnar inniheldur skila upplýsingum um einstakar notendalotur.

Dæmi

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

prmIsDefault

Ákvarðar hvort tilgreind færibreyta fyrir núverandi aðferð hafi sjálfgefið gildi.

int prmIsDefault(anytype argument)

Færibreytur

Færibreyta Lýsing
Rifrildi Færibreytan til að prófa.

Skilagildi

1 ef sjálfgefið gildi færibreytunnar var notað; annars 0 (núll).

Dæmi

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

Gerir þeim sem hringir kleift að keyra X++ aðferð í öryggissamhengi annars notanda. Þessi aðgerð er oftast notuð við runuvinnslu.

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

Færibreytur

Færibreyta Lýsing
notanda auðkenni Notandinn til að herma eftir.
classId Bekkurinn sem á að kalla fram í eftirlíkingarfundinum.
staticMethodName Klasaaðferðin til að kalla fram í nýju notendasamhengi.
Breytur Breyturnar til að fara í aðferðina; valfrjáls.
fyrirtæki Fyrirtækið sem er valið fyrir eftirlíkingu lotu; valfrjáls.
tungumál Tungumálið sem er valið fyrir fundinn sem hermt er eftir; valfrjáls.
skipting Skiptingarlykillinn af þeirri gerð sem getCurrentPartition aðgerðin skilar; valfrjáls.

Skilagildi

Ílát sem geymir skilagildi eða gildi aðferðarinnar sem runAs-fallið kallar, ef einhver gildi eru skiluð.

Athugasemdir

Þessi aðgerð gerir það mögulegt að keyra kóða sem annar notandi. Þessi geta er öryggisógn. Þess vegna keyrir þessi aðgerð undir Code Access Security. Köll í þessa aðgerð á þjóninum krefjast leyfis frá RunAsPermission klasanum. Sérhver notkun þessa forritunarviðmóts (API) ætti að vera ógnarlíkan. Ef öryggisveikleiki uppgötvast skaltu staðfesta inntak í þetta API. Aflúsarinn gæti hunsað brotpunkta sem eru staðsettir í aðferð sem runAs-fallið kallar. X++ kóði sem runAs-fallið keyrir verður að keyra sem Microsoft .NET Framework Common Intermediate Language (CIL). Ef CIL er ekki búin til fyrir markstöðugu aðferðina, gefur villuskilaboð til kynna að aðferðin finnist ekki. PartitionKey kerfisgerðin er nákvæm gerð skiptingarfæribreytunnar. PartitionKey er strengur sem hefur að hámarki átta stafi að lengd.

Dæmi

Eftirfarandi dæmi kallar á runDueDateEventsForUser aðferðina í EventJobDueDate klasanum. Kóðinn keyrir í öryggissamhengi notanda. Keyrðu þennan kóða með því að nota hann á aðferð í nýjum flokki.

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

Stillir forskeyti fyrir núverandi framkvæmdarumfang.

int setPrefix(str _prefix)

Færibreytur

Færibreyta Lýsing
_forskeyti Forskeyti fyrir núverandi framkvæmdarumfang.

Skilagildi

0 ef forskeytið er stillt rétt.

Athugasemdir

Notaðu getPrefix fallið til að fá fullkomið forskeyti fyrir keyrsluna. Þegar umfanginu lýkur endurstillist forskeytið sjálfkrafa á fyrra stig. Forskeytið gerir það auðveldara að skrifa nákvæm villuskilaboð um þær færslur sem forrit framkvæmir. Til dæmis kallar AA aðferðin á BB aðferðina og hver aðferð kallar á setPrefix aðgerðina. Skeyti sem BB aðferðin skrifar í Infolog birtast hreiðruð í stigveldi. Þegar BB-aðferðin lýkur og stjórnin snýr aftur til AA-aðferðarinnar , er forskeytið sem BB-aðferðin setti ekki tengt við næstu skilaboð.

Dæmi

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