Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Community-belangengroepen zijn nu verplaatst van Yammer naar Microsoft Viva Engage. Als u wilt deelnemen aan een Viva Engage-community en deel wilt nemen aan de meest recente discussies, vult u het formulier Toegang aanvragen tot Finance and Operations Viva Engage Community in en kiest u de community waaraan u wilt deelnemen.
In dit artikel worden de runtimefuncties van de sessie beschreven.
curExt
Haalt de extensie op die wordt gebruikt voor het huidige bedrijf.
str curExt()
Retourwaarde
De uitbreiding voor het huidige bedrijf.
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
Haalt de niet-numerieke id op die de huidige gebruiker vertegenwoordigt.
str curUserId()
Retourwaarde
De niet-numerieke id die de huidige gebruiker vertegenwoordigt.
Example
static void curUserIdExample(Args _arg)
{
str s;
s = curUserId();
print "Current user ID is " + s;
}
funcName
Hiermee wordt een tekenreeks opgehaald die de huidige functiecontext bevat.
str funcName()
Retourwaarde
De naam van de methode die deze methode uitvoert.
Opmerkingen
Als de uitvoering zich momenteel binnen het lid van een tabel of klasse bevindt, wordt de naam van de methode voorafgegaan door de naam van die tabel of klasse.
Example
static void funcNameExample(Args _arg)
{
print "Current function context is " + funcName();
}
getCurrentPartition
Haalt de korte naam van de huidige partitie op.
str getCurrentPartition()
Retourwaarde
De korte naam van de huidige partitie.
Opmerkingen
De maximale lengte van de gegevenspartitienaam die wordt geretourneerd, is acht tekens.
Example
In het volgende codevoorbeeld ziet u aanroepen naar en uitvoer van de functie getCurrentPartition van de X++-taal en gerelateerde functies of methoden.
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
Haalt het veld RecId van de huidige partitie op.
int64 getCurrentPartitionRecId()
Retourwaarde
Het veld RecId van de huidige gegevenspartitie.
Opmerkingen
Als u een codevoorbeeld wilt zien dat afhankelijk is van de functie getCurrentPartitionRecId , raadpleegt u How to: Include a Filter for Partition in Direct Transact-SQL.
Example
In het volgende codevoorbeeld ziet u aanroepen naar en uitvoer van de functie getCurrentPartitionRecId van de X++-taal en gerelateerde functies of methoden.
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
Haalt het huidige uitvoeringsvoorvoegsel op na opeenvolgende aanroepen naar de functie setPrefix .
str getPrefix()
Retourwaarde
Het huidige uitvoeringsvoorvoegsel.
Opmerkingen
Met het voorvoegselmechanisme kunt u eenvoudiger nauwkeurige foutberichten schrijven over de transacties die een toepassing uitvoert. Omdat er een hiërarchische weergave wordt gemaakt in het infologboek, kan het eenvoudiger zijn om te bepalen waar elke fout vandaan komt.
Example
static void getPrefixExample(Args _arg)
{
setPrefix("Prefix");
setPrefix("Another prefix");
print getPrefix();
}
sessie-id
Hiermee wordt het sessienummer van de huidige sessie opgehaald.
int sessionId()
Retourwaarde
De numerieke id van de huidige sessie.
Opmerkingen
Er wordt een sessienummer toegewezen wanneer de client wordt gestart en verbinding maakt met Application Object Server (AOS). Elke aanroep van deze functie tijdens de levensduur van de client retourneert dezelfde gehele waarde. De geretourneerde waarde is compatibel met het uitgebreide gegevenstype SessionID . De bevat methoden die informatie retourneren over afzonderlijke gebruikerssessies.
Example
static void sessionIdExample(Args _arg)
{
int session;
session = sessionId();
print "This session ID is number " + int2Str(session);
}
prmIsDefault
Bepaalt of de opgegeven parameter voor de huidige methode de standaardwaarde heeft.
int prmIsDefault(anytype argument)
Parameterwaarden
| Kenmerk | Description |
|---|---|
| Argument | De parameter die moet worden getest. |
Retourwaarde
1 als de standaardwaarde voor de parameter is gebruikt; anders , 0 (nul).
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
Hiermee kan de aanroeper een X++-methode uitvoeren in de beveiligingscontext van een andere gebruiker. Deze functie wordt meestal gebruikt met batchverwerking.
container runAs(
str userId,
int classId,
str staticMethodName
[,
container params,
str company,
str language,
str partition
])
Parameterwaarden
| Kenmerk | Description |
|---|---|
| userId | De gebruiker die zich voordoet. |
| classId | De klasse die moet worden aangeroepen in de geïmiteerde sessie. |
| staticMethodName | De klassemethode die moet worden aangeroepen in de nieuwe gebruikerscontext. |
| params | De parameters die moeten worden doorgegeven aan de methode; facultatief. |
| bedrijf | Het bedrijf dat is geselecteerd voor de geïmiteerde sessie; facultatief. |
| language | De taal die is geselecteerd voor de geïmiteerde sessie; facultatief. |
| partitie | De partitiesleutel van het type dat wordt geretourneerd door de functie getCurrentPartition ; facultatief. |
Retourwaarde
Een container met de retourwaarde of waarden van de methode die wordt aangeroepen door de runAs-functie , als er waarden zijn geretourneerd.
Opmerkingen
Met deze functie kunt u code uitvoeren als een andere gebruiker. Deze mogelijkheid vormt een beveiligingsrisico. Daarom wordt deze functie uitgevoerd onder Code Access Security. Aanroepen naar deze functie op de server vereisen toestemming van de klasse RunAsPermission . Elk gebruik van deze API (Application Programming Interface) moet worden gemodelleerd. Als er een beveiligingsprobleem wordt gedetecteerd, valideert u de invoer voor deze API. Het foutopsporingsprogramma negeert mogelijk onderbrekingspunten die zich in een methode bevinden die wordt aangeroepen met behulp van de runAs-functie . X++ code die wordt uitgevoerd door de runAs-functie moet worden uitgevoerd als Microsoft .NET Framework Common Intermediate Language (CIL). Als CIL niet is gegenereerd voor de statische doelmethode, geeft een foutbericht aan dat de methode niet wordt gevonden. Het systeemtype PartitionKey is het exacte type van de partitieparameter . PartitionKey is een tekenreeks met een maximale lengte van acht tekens.
Example
In het volgende voorbeeld wordt de methode runDueDateEventsForUser aangeroepen in de klasse EventJobDueDate . De code wordt uitgevoerd in de beveiligingscontext van een gebruiker. Voer deze code uit door deze toe te passen op een methode in een nieuwe 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
Hiermee stelt u het voorvoegsel voor het huidige uitvoeringsbereik in.
int setPrefix(str _prefix)
Parameterwaarden
| Kenmerk | Description |
|---|---|
| _voorvoegsel | Het voorvoegsel voor het huidige uitvoeringsbereik. |
Retourwaarde
0 als het voorvoegsel is ingesteld.
Opmerkingen
Het volledige voorvoegsel voor de uitvoering kan worden opgehaald met behulp van de functie getPrefix . Wanneer het bereik overblijft, wordt het voorvoegsel automatisch opnieuw ingesteld op het vorige niveau. Met het voorvoegselmechanisme kunt u eenvoudiger nauwkeurige foutberichten schrijven over de transacties die een toepassing uitvoert. De AA-methode roept bijvoorbeeld de BB-methode aan en elke methode roept de functie setPrefix aan. Berichten die door de BB-methode naar het Infolog worden geschreven, worden genest weergegeven in een hiërarchie. Wanneer de BB-methode eindigt en het besturingselement terugkeert naar de AA-methode , wordt het voorvoegsel dat door de BB-methode is ingesteld, niet gekoppeld aan volgende berichten.
Example
static void setPrefixExample(Args _arg)
{
int i;
i = setPrefix("Prefix");
print i;
}