Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Pastaba.
Bendruomenės interesų grupės dabar perkeltos iš "Yammer" į "Microsoft Viva Engage". Norėdami prisijungti prie Viva Engage bendruomenės ir dalyvauti naujausiose diskusijose, užpildykite formą Prašyti prieigos prie "Finance and Operations Viva Engage Community ir pasirinkite bendruomenę, prie kurios norite prisijungti.
Šiame straipsnyje aprašomos seanso vykdyklės funkcijos.
kurExt
Nuskaito plėtinį, kurį naudoja dabartinė įmonė.
str curExt()
Pateikiama reikšmė
Dabartinės įmonės plėtinys.
Pavyzdžiui
static void curExtExample(Args _arg)
{
str s;
// Sets s to the extension of the current company.
s = curExt();
print "Current extension is " + s;
}
curUserId
Nuskaito neskaitinį ID, nurodantį dabartinį vartotoją.
str curUserId()
Pateikiama reikšmė
Neskaitinis ID, nurodantis dabartinį vartotoją.
Pavyzdžiui
static void curUserIdExample(Args _arg)
{
str s;
s = curUserId();
print "Current user ID is " + s;
}
funcName
Nuskaito eilutę, kurioje yra dabartinės funkcijos kontekstas.
str funcName()
Pateikiama reikšmė
Metodo, kuris vykdo šį metodą, pavadinimas.
Pastabos
Jei vykdymas šiuo metu yra lentelės ar klasės narys, metodo pavadinimas yra priešdėlis su lentelės arba klasės pavadinimu.
Pavyzdžiui
static void funcNameExample(Args _arg)
{
print "Current function context is " + funcName();
}
getCurrentPartition
Nuskaito trumpą dabartinio skaidinio pavadinimą.
str getCurrentPartition()
Pateikiama reikšmė
Trumpasis dabartinio skaidinio pavadinimas.
Pastabos
Maksimalus grąžinamo duomenų skaidinio pavadinimo ilgis yra aštuoni simboliai.
Pavyzdžiui
Toliau pateiktame kodo pavyzdyje rodomi X++ kalbos funkcijos getCurrentPartition iškvietimai ir išvestis iš jos bei susijusios funkcijos arba metodai.
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
Nuskaito dabartinio skaidinio lauką RecId .
int64 getCurrentPartitionRecId()
Pateikiama reikšmė
Dabartinio duomenų skaidinio laukas RecId .
Pastabos
Norėdami pamatyti kodo pavyzdį, kuris priklauso nuo funkcijos getCurrentPartitionRecId , žr. Kaip: Skaidinio filtro įtraukimas į "Direct Transact-SQL".
Pavyzdžiui
Toliau pateiktame kodo pavyzdyje rodomi X++ kalbos funkcijos getCurrentPartitionRecId iškvietimai ir išvestis iš jos bei susijusios funkcijos arba metodai.
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
Nuskaito dabartinį vykdymo prefiksą po paskesnių iškvietimų į funkciją setPrefix .
str getPrefix()
Pateikiama reikšmė
Dabartinis vykdymo prefiksas.
Pastabos
Prefikso mechanizmas leidžia lengviau rašyti tikslius klaidų pranešimus apie operacijas, kurias atlieka programa. Kadangi informacijos žurnale sukuriamas hierarchinis ekranas, gali būti lengviau nustatyti, iš kur kilo kiekviena klaida.
Pavyzdžiui
static void getPrefixExample(Args _arg)
{
setPrefix("Prefix");
setPrefix("Another prefix");
print getPrefix();
}
sessionId
Nuskaito dabartinio seanso numerį.
int sessionId()
Pateikiama reikšmė
Dabartinio seanso skaitinis ID.
Pastabos
Priskirkite seanso numerį, kai paleidžiate klientą ir prisijungiate prie programos objektų serverio (AOS). Kiekvienas šios funkcijos iškvietimas kliento naudojimo metu pateikia tą pačią sveikojo skaičiaus reikšmę. Grąžinta reikšmė suderinama su SessionID išplėstinių duomenų tipu. Metoduose pateikiama informacija apie atskirus vartotojų seansus.
Pavyzdžiui
static void sessionIdExample(Args _arg)
{
int session;
session = sessionId();
print "This session ID is number " + int2Str(session);
}
prmIsDefault
Nustato, ar nurodytame dabartinio metodo parametre yra numatytoji reikšmė.
int prmIsDefault(anytype argument)
Parametrai
| Parametras | Aprašas |
|---|---|
| Argumentas | Tikrinamas parametras. |
Pateikiama reikšmė
1 jei buvo naudojama numatytoji parametro reikšmė; kitu atveju 0 (nulis).
Pavyzdžiui
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);
}
vykdyti Kaip
Įgalina kvietėjas paleisti X++ metodą kito vartotojo saugos kontekste. Ši funkcija dažniausiai naudojama su paketiniu apdorojimu.
container runAs(
str userId,
int classId,
str staticMethodName
[,
container params,
str company,
str language,
str partition
])
Parametrai
| Parametras | Aprašas |
|---|---|
| Vartotojo ID | Vartotojas apsimestinė. |
| klasės ID | Klasė, iškviečiama apsimesiniame seanse. |
| staticMethodName | Klasės metodas iškviesti naujame vartotojo kontekste. |
| params | Parametrai, kuriuos reikia perduoti metodui; Pasirinktinai. |
| įmonė | Įmonė, pasirinkta apsimestinėm seansui; Pasirinktinai. |
| kalba | Kalba, pasirinkta apsimestinėm seansui; Pasirinktinai. |
| skaidinys | Tipo, kurį grąžina funkcija getCurrentPartition , skaidinio raktas; Pasirinktinai. |
Pateikiama reikšmė
Konteineris, kuriame yra grąžinama reikšmė arba metodo, kurį iškviečia funkcija runAs , reikšmės, jei pateikiamos reikšmės.
Pastabos
Ši funkcija leidžia vykdyti kodą kaip kitam vartotojui. Ši funkcija kelia grėsmę saugai. Todėl ši funkcija veikia dalyje Kodo prieigos sauga. Šios funkcijos iškvietimams serveryje reikia leidimo iš RunAsPermission klasės. Kiekvienas šios taikomosios programos programavimo sąsajos (API) naudojimas turėtų būti pagrįstas grėsmėmis. Jei aptinkamas saugos pažeidžiamumas, patikrinkite šios API įvestį. Derintuvė gali nepaisyti stabdos taškų, esančių funkcijoje runAs iškviečiamame metode. X++ kodas, kurį vykdo funkcija runAs , turi veikti kaip "Microsoft .NET Framework" bendroji tarpinė kalba (CIL). Jei CIL nesugeneruotas tiksliniam statiniam metodui, klaidos pranešimas nurodo, kad metodas nerastas. Sistemos tipas PartitionKey yra tikslus skaidinio parametro tipas. PartitionKey yra eilutė, kurios maksimalus ilgis yra aštuoni simboliai.
Pavyzdžiui
Toliau pateiktame pavyzdyje iškviečia metodą runDueDateEventsForUserklasės EventJobDueDate . Kodas vykdomas vartotojo saugos kontekste. Paleiskite šį kodą pritaikydami jį naujos klasės metodui.
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
Nustato dabartinės vykdymo aprėpties prefiksą.
int setPrefix(str _prefix)
Parametrai
| Parametras | Aprašas |
|---|---|
| _priešdėlis | Dabartinės vykdymo aprėpties prefiksas. |
Pateikiama reikšmė
0 , jei prefiksas nustatytas sėkmingai.
Pastabos
Naudokite funkciją getPrefix , kad gautumėte visą vykdymo prefiksą. Kai aprėptis baigiasi, prefiksas automatiškai nustatomas iš naujo į ankstesnį lygį. Prefikso mechanizmas leidžia lengviau rašyti tikslius klaidų pranešimus apie operacijas, kurias atlieka programa. Pvz., metodas AA iškviečia BB metodą, o kiekvienas metodas iškviečia funkciją setPrefix . Pranešimai, kuriuos BB metodas rašo informacijos žurnale, rodomi įdėtieji hierarchijoje. Kai bb metodas baigiasi, o valdiklis grįžta į AA metodą, priešvardis, kurį BB metodo rinkinys nepridėtas prie paskesnių pranešimų.
Pavyzdžiui
static void setPrefixExample(Args _arg)
{
int i;
i = setPrefix("Prefix");
print i;
}