2017-10-17 20 views
1

J'ai écrit du code pour interroger le point de terminaison ODATA dans Dynamics Nav 2016. Je l'ai fait en créant un ODATA connected service. J'ai écrit le code suivant pour ajouter un enregistrement:Comment définir les entrées du journal des modifications dans Dynamics Nav 2016

var navision = new Navision(
    new Uri("http://navision:7048/navision/OData/Company('Company1')")) 
{ 
    Credentials = new NetworkCredential("[email protected]", "password") 
}; 
navision.AddToFoo(new Foo() { Name = "Bar" }); 
navision.SaveChangesAsync(); 

J'ai activé la fonction « Modifier les entrées du journal » pour la table Foo. Toutefois, lorsque le code ci-dessus s'exécute, l'utilisateur affiché dans les entrées du journal des modifications est [email protected]. Est-il possible de définir moi-même explicitement cet utilisateur?

+0

Erm ... Modifier les informations d'identification! Quel est le problème exactement? –

+0

Il n'y a pas de façon standard de le faire si vous voulez vraiment la réponse. Vous pouvez tout développer cependant. –

+0

Ma société expose des tables Nav dans l'une de ses API à une application Android. Ces utilisateurs n'ont pas d'informations d'identification de navigation. –

Répondre

1

Il n'existe pas de méthode standard pour effectuer ce type de substitution. L'entrée du journal des modifications est créée comme suit. USERID est la fonction système qui retournera le nom d'utilisateur enregistré.

ChangeLogEntry."User ID" := USERID;

Si vous pouvez avoir un développement sur votre système, vous devez changer navision.AddToFoo(new Foo() { Name = "Bar" }); à quelque chose comme navision.AddToFoo(new Foo() { Name = "Bar", ChangedBy = "RealUserName"}); et ont ce champ ajouté à la table Foo. Cela vous permettra au moins de voir le dernier utilisateur qui a modifié l'enregistrement.