Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen beskriver funksjonene for øktkjøring.
curExt
Henter utvidelsen som gjeldende firma bruker.
str curExt()
Return value
Utvidelsen for gjeldende firma.
Example
static void curExtExample(Args _arg)
{
str s;
// Sets s to the extension of the current company.
s = curExt();
print "Current extension is " + s;
}
curUserId
Henter den ikke-numeriske ID-en som representerer gjeldende bruker.
str curUserId()
Return value
Den ikke-numeriske IDen som representerer gjeldende bruker.
Example
static void curUserIdExample(Args _arg)
{
str s;
s = curUserId();
print "Current user ID is " + s;
}
funcName
Henter en streng som inneholder gjeldende funksjonskontekst.
str funcName()
Return value
Navnet på metoden som kjører denne metoden.
Remarks
Hvis kjøring for øyeblikket er innenfor medlemmet av en tabell eller klasse, er navnet på metoden prefikset med navnet på tabellen eller klassen.
Example
static void funcNameExample(Args _arg)
{
print "Current function context is " + funcName();
}
getCurrentPartition
Henter det korte navnet på gjeldende partisjon.
str getCurrentPartition()
Return value
Det korte navnet på gjeldende partisjon.
Remarks
Den maksimale lengden på datapartisjonsnavnet som returneres, er åtte tegn.
Example
Følgende kodeeksempel viser kall til, og utdata fra, getCurrentPartition-funksjonen for X++-språket og relaterte funksjoner eller metoder.
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
Henter RecId-feltet for gjeldende partisjon.
int64 getCurrentPartitionRecId()
Return value
RecId-feltet for gjeldende datapartisjon.
Remarks
Hvis du vil se et kodeeksempel som er avhengig av getCurrentPartitionRecId-funksjonen , kan du se Slik inkluderer du et filter for partisjon i Direct Transact-SQL.
Example
Følgende kodeeksempel viser kall til og utdata fra getCurrentPartitionRecId-funksjonen for X++-språket og relaterte funksjoner eller metoder.
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
Henter gjeldende kjøringsprefiks etter etterfølgende kall til setPrefix-funksjonen .
str getPrefix()
Return value
Gjeldende prefiks for kjøring.
Remarks
Prefiksmekanismen gjør det enklere å skrive presise feilmeldinger om transaksjonene som et program utfører. Siden det opprettes en hierarkisk visning i infologgen, kan det være enklere å fastslå hvor hver feil kom fra.
Example
static void getPrefixExample(Args _arg)
{
setPrefix("Prefix");
setPrefix("Another prefix");
print getPrefix();
}
sessionId
Henter øktnummeret for gjeldende økt.
int sessionId()
Return value
Den numeriske ID-en for gjeldende økt.
Remarks
Tilordne et øktnummer når du starter klienten og kobler til Application Object Server (AOS). Hvert kall til denne funksjonen i løpet av klientens levetid returnerer samme heltallsverdi. Den returnerte verdien er kompatibel med den utvidede sessionID-datatypen . Inneholder metoder som returnerer informasjon om individuelle brukerøkter.
Example
static void sessionIdExample(Args _arg)
{
int session;
session = sessionId();
print "This session ID is number " + int2Str(session);
}
prmIsDefault
Bestemmer om den angitte parameteren for gjeldende metode har standardverdien.
int prmIsDefault(anytype argument)
Parameters
| Parameter | Description |
|---|---|
| Argument | Parameteren som skal testes. |
Return value
1 hvis standardverdien for parameteren ble brukt. ellers 0 (null).
Example
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
Gjør det mulig for innringeren å kjøre en X++-metode i sikkerhetskonteksten til en annen bruker. Denne funksjonen brukes oftest med satsvis behandling.
container runAs(
str userId,
int classId,
str staticMethodName
[,
container params,
str company,
str language,
str partition
])
Parameters
| Parameter | Description |
|---|---|
| userId | Brukeren som skal representeres. |
| classId | Klassen som skal aktiveres i den representerte økten. |
| staticMethodName | Klassemetoden som skal aktiveres i den nye brukerkonteksten. |
| params | Parameterne som skal sendes til metoden. valgfri. |
| company | Firmaet som er valgt for den representerte økten. valgfri. |
| språk | Språket som er valgt for den representerte økten. valgfri. |
| partition | Partisjonsnøkkelen for typen som returneres av getCurrentPartition-funksjonen . valgfri. |
Return value
En beholder som inneholder returverdien eller verdiene for metoden som runAs-funksjonen kaller opp, hvis noen verdier returneres.
Remarks
Denne funksjonen gjør det mulig å kjøre kode som en annen bruker. Denne funksjonen utgjør en sikkerhetstrussel. Denne funksjonen kjører derfor under Code Access Security. Kall til denne funksjonen på serveren krever tillatelse fra RunAsPermission-klassen . Hver bruk av dette programprogrammeringsgrensesnittet (API) bør være trusselmodellert. Hvis det oppdages et sikkerhetsproblem, validerer du inndata til denne API-en. Feilsøkingsprogrammet kan ignorere breakpoints som er plassert i en metode som runAs-funksjonen kaller opp. X++-kode som runAs-funksjonen kjører, må kjøres som Microsoft .NET Framework Common Intermediate Language (CIL). Hvis CIL ikke genereres for den statiske målmetoden, angir en feilmelding at metoden ikke blir funnet. Systemtypen PartitionKey er den nøyaktige typen partisjonsparameter. PartitionKey er en streng som har en maksimumslengde på åtte tegn.
Example
Følgende eksempel kaller runDueDateEventsForUser-metoden i EventJobDueDate-klassen . Koden kjøres i sikkerhetskonteksten til en bruker. Kjør denne koden ved å bruke den på en metode i en ny klasse.
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
Angir prefikset for gjeldende kjøringsområde.
int setPrefix(str _prefix)
Parameters
| Parameter | Description |
|---|---|
| _prefix | Prefikset for gjeldende kjøringsområde. |
Return value
0 hvis prefikset er angitt.
Remarks
Bruk getPrefix-funksjonen til å få det fullstendige prefikset for kjøringen. Når omfanget avsluttes, tilbakestilles prefikset automatisk til forrige nivå. Prefiksmekanismen gjør det enklere å skrive nøyaktige feilmeldinger om transaksjonene som et program utfører. AA-metoden kaller for eksempel BB-metoden, og hver metode kaller setPrefix-funksjonen. Meldinger som BB-metoden skriver til infologgen, vises nestet i et hierarki. Når BB-metoden avsluttes, og kontrollen går tilbake til AA-metoden , er ikke prefikset som BB-metodesettet er knyttet til etterfølgende meldinger.
Example
static void setPrefixExample(Args _arg)
{
int i;
i = setPrefix("Prefix");
print i;
}