Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Бележка
Групите с интереси на общността сега са се преместили от Yammer в Microsoft Viva Engage. За да се присъедините към Viva Engage общност и да участвате в последните обсъждания, попълнете формуляра Заявете достъп до финанси и операции Viva Engage общността и изберете общността, към която искате да се присъедините.
Тази статия описва функциите по време на изпълнение на сесията.
curExt
Извлича разширението, което използва текущата фирма.
str curExt()
Стойност на връщане
Разширението за текущата фирма.
Пример
static void curExtExample(Args _arg)
{
str s;
// Sets s to the extension of the current company.
s = curExt();
print "Current extension is " + s;
}
curUserId
Извлича нечисловия ИД, който представлява текущия потребител.
str curUserId()
Стойност на връщане
Нечисловият ИД, който представлява текущия потребител.
Пример
static void curUserIdExample(Args _arg)
{
str s;
s = curUserId();
print "Current user ID is " + s;
}
funcName
Извлича низ, който съдържа контекста на текущата функция.
str funcName()
Стойност на връщане
Името на метода, който изпълнява този метод.
Забележки
Ако в момента изпълнението е в рамките на член на таблица или клас, името на метода се префиксира с името на тази таблица или клас.
Пример
static void funcNameExample(Args _arg)
{
print "Current function context is " + funcName();
}
getCurrentPartition
Извлича краткото име на текущия дял.
str getCurrentPartition()
Стойност на връщане
Краткото име на текущия дял.
Забележки
Максималната дължина на името на дяла с данни, което се връща, е осем знака.
Пример
Примерът с код по-долу показва повиквания към и изход от функцията getCurrentPartition на езика X++ и свързаните функции или методи.
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
Извлича полето RecId на текущия дял.
int64 getCurrentPartitionRecId()
Стойност на връщане
Полето RecId на текущия дял с данни.
Забележки
За да видите пример за код, който разчита на функцията getCurrentPartitionRecId , вижте Как да: Включване на филтър за дял в Direct Transact-SQL.
Пример
Примерът с код по-долу показва повиквания към и изход от функцията getCurrentPartitionRecId на езика X++ и свързаните функции или методи.
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
Извлича текущия префикс за изпълнение след последователни повиквания към функцията setPrefix .
str getPrefix()
Стойност на връщане
Текущият префикс за изпълнение.
Забележки
Механизмът за префикс прави по-лесно писането на прецизни съобщения за грешка за транзакциите, които изпълнява приложението. Тъй като в инфолог е създаден йерархичен дисплей, може да е по-лесно да се определи откъде идва всяка грешка.
Пример
static void getPrefixExample(Args _arg)
{
setPrefix("Prefix");
setPrefix("Another prefix");
print getPrefix();
}
sessionId
Извлича номера на сесията на текущата сесия.
int sessionId()
Стойност на връщане
Числовият ИД на текущата сесия.
Забележки
Назначаване на номер на сесия, когато стартирате клиента и се свържете със сървър за обекти на приложения (AOS). Всяко извикване на тази функция по време на живота на клиента връща една и съща целочислена стойност. Върнатата стойност е съвместима с типа разширени данни SessionID . Съдържа методи, които връщат информация за отделни потребителски сесии.
Пример
static void sessionIdExample(Args _arg)
{
int session;
session = sessionId();
print "This session ID is number " + int2Str(session);
}
prmIsDefault
Определя дали зададеният параметър за текущия метод има стойност по подразбиране.
int prmIsDefault(anytype argument)
Параметри
| параметър | Описание |
|---|---|
| Аргумент | Параметърът за проверка. |
Стойност на връщане
1 , ако е използвана стойността по подразбиране за параметъра; в противен случай 0 (нула).
Пример
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
Разрешава на повикващия да изпълнява X++ метод в контекста на защитата на друг потребител. Тази функция се използва най-често при пакетна обработка.
container runAs(
str userId,
int classId,
str staticMethodName
[,
container params,
str company,
str language,
str partition
])
Параметри
| параметър | Описание |
|---|---|
| userId | Потребителят, който се представя. |
| ид на клас | Класът, който трябва да се извика в въплътената сесия. |
| staticMethodName | Методът на класа за извикване в новия потребителски контекст. |
| параметри | Параметрите, които трябва да се предадат на метода; факултативен. |
| фирма | Фирмата, която е избрана за въплътената сесия; факултативен. |
| език | Езикът, който е избран за въплътената сесия; факултативен. |
| дял | Клавишът за дял от типа, който се връща от функцията getCurrentPartition ; факултативен. |
Стойност на връщане
Контейнер, който съдържа върнатата стойност или стойности на метода, който функцията runAs извиква, ако бъдат върнати стойности.
Забележки
Тази функция дава възможност да изпълните код като друг потребител. Тази възможност представлява заплаха за защитата. Следователно тази функция се изпълнява под Защита на достъп с код. Повикванията към тази функция на сървъра изискват разрешение от класа RunAsPermission . Всяко използване на този приложен програмен интерфейс (API) трябва да бъде моделирано на заплахи. Ако е открита уязвимост на защитата, проверете входните данни за този API. Дебъгерът може да игнорира точки на прекъсване, които се намират в метод, който извиква функцията runAs . X++ код, който изпълнява функцията runAs , трябва да се изпълнява като Microsoft .NET Framework Common Intermediate Language (CIL). Ако CIL не е генериран за целевия статичен метод, съобщение за грешка показва, че методът не е намерен. Типът на системата PartitionKey е точният тип на параметъра на дяла . PartitionKey е низ, който е с максимална дължина от осем знака.
Пример
Следващият пример извиква метода runDueDateEventsForUser в класа EventJobDueDate . Кодът се изпълнява в контекста на защитата на потребител. Изпълнете този код, като го приложите към метод в нов клас.
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
Задава префикса за текущия обхват на изпълнение.
int setPrefix(str _prefix)
Параметри
| параметър | Описание |
|---|---|
| _Префикс | Префиксът за текущия обхват на изпълнение. |
Стойност на връщане
0 , ако префиксът е зададен успешно.
Забележки
Използвайте функцията getPrefix, за да получите пълния префикс за изпълнение. Когато обхватът приключи, префиксът автоматично се връща на предишното ниво. Механизмът за префикс улеснява писането на прецизни съобщения за грешка за транзакциите, които изпълнява приложението. Например методът AA извиква метода BB и всеки метод извиква функцията setPrefix . Съобщенията, които методът BB записва в infolog, се показват в йерархия. Когато методът BB приключи и контролата се върне към метода AA , префиксът, зададен от метода BB , не е прикачен към следващите съобщения.
Пример
static void setPrefixExample(Args _arg)
{
int i;
i = setPrefix("Prefix");
print i;
}