Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Les groupes d’intérêt communautaire sont maintenant passés de Yammer à Microsoft Viva Engage. Pour participer à une communauté Viva Engage et participer aux dernières discussions, renseignez le formulaire Demander l’accès à la communauté Finance et Operations Viva Engage , puis choisissez la communauté que vous souhaitez rejoindre.
Cet article décrit les fonctions d’exécution de session.
curExt
Récupère l’extension utilisée pour l’entreprise actuelle.
str curExt()
Valeur retournée
Extension de l’entreprise actuelle.
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
Récupère l’ID non numérique qui représente l’utilisateur actuel.
str curUserId()
Valeur retournée
ID non numérique qui représente l’utilisateur actuel.
Example
static void curUserIdExample(Args _arg)
{
str s;
s = curUserId();
print "Current user ID is " + s;
}
funcName
Récupère une chaîne qui contient le contexte de fonction actuel.
str funcName()
Valeur retournée
Nom de la méthode qui exécute cette méthode.
Remarques
Si l’exécution se trouve actuellement dans le membre d’une table ou d’une classe, le nom de la méthode est précédé du nom de cette table ou de cette classe.
Example
static void funcNameExample(Args _arg)
{
print "Current function context is " + funcName();
}
getCurrentPartition
Récupère le nom court de la partition actuelle.
str getCurrentPartition()
Valeur retournée
Nom court de la partition actuelle.
Remarques
La longueur maximale du nom de la partition de données retournée est de huit caractères.
Example
L’exemple de code suivant montre les appels vers et sorties à partir de la fonction getCurrentPartition du langage X++ et les fonctions ou méthodes associées.
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
Récupère le champ RecId de la partition actuelle.
int64 getCurrentPartitionRecId()
Valeur retournée
Champ RecId de la partition de données actuelle.
Remarques
Pour voir un exemple de code qui s’appuie sur la fonction getCurrentPartitionRecId , consultez How to : Include a Filter for Partition in Direct Transact-SQL.
Example
L’exemple de code suivant montre les appels vers et sortie à partir de, la fonction getCurrentPartitionRecId du langage X++ et les fonctions ou méthodes associées.
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
Récupère le préfixe d’exécution actuel après les appels successifs à la fonction setPrefix .
str getPrefix()
Valeur retournée
Préfixe d’exécution actuel.
Remarques
Le mécanisme de préfixe facilite l’écriture de messages d’erreur précis sur les transactions effectuées par une application. Étant donné qu’un affichage hiérarchique est créé dans le journal des informations, il peut être plus facile de déterminer l’emplacement de chaque erreur.
Example
static void getPrefixExample(Args _arg)
{
setPrefix("Prefix");
setPrefix("Another prefix");
print getPrefix();
}
sessionId
Récupère le numéro de session de la session active.
int sessionId()
Valeur retournée
ID numérique de la session active.
Remarques
Un numéro de session est attribué lorsque le client est démarré et se connecte au serveur d’objets d’application (AOS). Chaque appel de cette fonction pendant la durée de vie du client retourne la même valeur entière. La valeur retournée est compatible avec le type de données étendu SessionID . Les méthodes contiennent des informations sur les sessions utilisateur individuelles.
Example
static void sessionIdExample(Args _arg)
{
int session;
session = sessionId();
print "This session ID is number " + int2Str(session);
}
prmIsDefault
Détermine si le paramètre spécifié pour la méthode actuelle a la valeur par défaut.
int prmIsDefault(anytype argument)
Paramètres
| Paramètre | Descriptif |
|---|---|
| Argument | Paramètre à tester. |
Valeur retournée
1 si la valeur par défaut du paramètre a été utilisée ; sinon, 0 (zéro).
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
Permet à l’appelant d’exécuter une méthode X++ dans le contexte de sécurité d’un autre utilisateur. Cette fonction est souvent utilisée avec le traitement par lots.
container runAs(
str userId,
int classId,
str staticMethodName
[,
container params,
str company,
str language,
str partition
])
Paramètres
| Paramètre | Descriptif |
|---|---|
| userId | Utilisateur à emprunter l’identité. |
| classId | Classe à appeler dans la session emprunt d’identité. |
| staticMethodName | Méthode de classe à appeler dans le nouveau contexte utilisateur. |
| params | Paramètres à passer à la méthode ; optionnel. |
| entreprise | Société sélectionnée pour la session emprunt d’identité ; optionnel. |
| language | Langue sélectionnée pour la session emprunt d’identité ; optionnel. |
| partition | Clé de partition du type retourné par la fonction getCurrentPartition ; optionnel. |
Valeur retournée
Conteneur qui contient la valeur de retour ou les valeurs de la méthode appelée par la fonction runAs , si des valeurs ont été retournées.
Remarques
Cette fonction permet d’exécuter du code en tant qu’autre utilisateur. Cette fonctionnalité présente une menace de sécurité. Par conséquent, cette fonction s’exécute sous Sécurité d’accès au code. Les appels à cette fonction sur le serveur nécessitent l’autorisation de la classe RunAsPermission . Chaque utilisation de cette interface de programmation d’application (API) doit être modélisée par les menaces. Si une vulnérabilité de sécurité est détectée, validez l’entrée dans cette API. Le débogueur peut ignorer les points d’arrêt situés dans une méthode appelée à l’aide de la fonction runAs . Le code X++ exécuté par la fonction runAs doit s’exécuter en tant que langage CIL (Common Intermediate Language) microsoft .NET Framework. Si CIL n’a pas été généré pour la méthode statique cible, un message d’erreur indique que la méthode est introuvable. Le type de système PartitionKey est le type exact du paramètre de partition . PartitionKey est une chaîne qui a une longueur maximale de huit caractères.
Example
L’exemple suivant appelle la méthode runDueDateEventsForUser dans la classe EventJobDueDate . Le code s’exécute dans le contexte de sécurité d’un utilisateur. Exécutez ce code en l’appliquant à une méthode dans une nouvelle classe.
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
Définit le préfixe de l’étendue d’exécution actuelle.
int setPrefix(str _prefix)
Paramètres
| Paramètre | Descriptif |
|---|---|
| _préfixe | Préfixe de l’étendue d’exécution actuelle. |
Valeur retournée
0 si le préfixe a été défini avec succès.
Remarques
Le préfixe complet de l’exécution peut être récupéré à l’aide de la fonction getPrefix . Lorsque l’étendue est laissée, le préfixe est automatiquement réinitialisé au niveau précédent. Le mécanisme de préfixe facilite l’écriture de messages d’erreur précis sur les transactions effectuées par une application. Par exemple, la méthode AA appelle la méthode BB , et chaque méthode appelle la fonction setPrefix . Les messages que la méthode BB écrit dans le journal d’informations apparaissent imbriqués dans une hiérarchie. Lorsque la méthode BB se termine et que le contrôle retourne à la méthode AA , le préfixe défini par la méthode BB n’est pas attaché aux messages suivants.
Example
static void setPrefixExample(Args _arg)
{
int i;
i = setPrefix("Prefix");
print i;
}