lundi 26 décembre 2016

installation Dynamics 365

Dynamics 365 :
Tout d’abord télécharger l’outil « Microsoft Insider - Distribution Manager » :*

Attribuer la permission « Allow »




Ensuite on s’identifie avec le compte microsoft :

Accepté :

Lorsque l’application s’ouvre on ne voit rien puisque elle est paramétré d’afficher les dernier 3 jours :

Changer « Time Range » vers « 1 Year » par exemple (cela peut prendre un peu de temps selon votre connexion)


Sélectionner les différents .rar de « MicrosoftDynamics365forOperations-Version1611PlatUp3-WinServer2012R2 » puis cliquer sur le bouton Download

Une fois téléchargé, exécuter le .part01 pour obtenir le fichier image de disque dure « MicrosoftDynamics365forOperations-Version1611PlatUp3-WinServer2012R2.VHD »

Ensuite créer un nouveau ordinateur virtuel avec Hyper-V :


Puis connecter le disque dur virtuel, choisir « Utiliser un disque dur virtuel existant »
On choisit notre disque qu’on vient de téléchargé :

On lance ensuite la machine virtuel qu’on vient de créer.

Il faut bien s'assuré que la connexion Internet fonctionne sur notre nouvelle machine virtuelle, sinon on ne peut pas avancer :/

A l’ouverture on s’aperçoit qu’on a sur le bureau :

  
Première étape pour ouvrir Dynamics 365 : on configure « AdminUserProvisioning » :
(On utilise l’adresse de Tim : TimL@contosoax7.onmicrosoft.com)

Cliquer sur « Submit » et on attend un peut

Ensuite on ouvre Internet Explorer et on accède au site (local d’IIS) https://usnconeboxax1aos.cloud.onebox.dynamics.com/ :



Choisir « Use another account » puis utiliser les identifiant suivant :
Password : Pass1Word
(N’oublié pas le P et le W en majuscule)
Et voilà Dynamics365 est libre à vous :



Mais sachant comme même que cette machine virtuel utilise un Windows server 2012 R2 Datacenter Evolution valable pour 140 jours…




lundi 27 juin 2016

changer la langue d'un label dans info

Je partage avec vous une méthode simple pour afficher un label dans différent langues.

Vous pouvez l'affecter a un raccourci et vous pouvez vérifier la traduction de votre label en un clic.

Il suffit d'utilisé infolog.language("code langue") qui prend un str comme paramètre. si on ne met pas de paramètre ça renvoi la langue utilisé (info(infolog.language()))

Voila le code :

static void DJO_ChangeLanguage(Args _args)
{
    info("@SYS1");
    infolog.language('nl-be'); // Change la langue en nl-be
    info("@SYS1");
    infolog.language('fr-be'); // Change la langue en fr-be
    info("@SYS1");
    infolog.language('it'); // Change la langue en it
    info("@SYS1");
    infolog.language('de'); // Change la langue en de
    info("@SYS1");
    infolog.language('en-us'); // Change la langue en en-us
    info("@SYS1");
}

et voila l'exécution :





bonne chance :)



samedi 25 juin 2016

Comment Créer un message d'info avec action

On va voir ensemble un exemple qui peux êtres utile dans certain cas. 

Si on à besoin qu'un message d'info ouvre un form, on utilisera SysInfoAction. on l'initialise avec le formulaire souhaiter et on l’attribue a info() comme paramètre :

static void Djo_SysInfoActionTest(Args _args)
{
    SysInfoAction   sysInfoAction;
    ;
    sysInfoAction = SysInfoAction_Formrun::newFormname(formstr(CustTableListPage));
    info("double Clic pour voir la liste de clients", "", sysInfoAction);
}

Après exécution on peut faire un double clic sur notre message ou bien cliqué sur "Ouvert" qui vient de remplacé l'ancien bouton "Edition" 




Ce qui ouvrera la forme choisie. dans notre exemple on ouvrera la form qui contient la liste des clients :




Et voila.

mardi 14 juin 2016

Temps d'execution WinApi

Une troisième méthode pour le calcule du temps d'execution :

static void DJO_winApi(Args _args)
{

     int64 startTime, endTime;
     int64 time;
     ;

     startTime = WinAPI::getTickCount64();
     sleep(5000);
     endTime = WinAPI::getTickCount64();

     time = endTime - startTime;

     info(strFmt("le temps total consommé est %1 milliseconde", time));

}





vous pouvez consulter les deux autre solution timeNow() et stopWatch()

Temps d'execution

Dans un article précédant on a utilisé timeNow() pour connaitre le temps d'exécution d'un code X++ (ici).

Dans cette article j'ai voulu partager avec vous une autre alternative en utilisant la fameuse méthode StopWatch() du Framwork .Net (2.0) a travers un code X++

on crée un JOB :

static void DJO_tempsExecution(Args _args)
{
    int64 time;
    int64 i,j;
    System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
    ;

    stopWatch.Start();

    //un simple teste.. une boucle qui consomme du temps pour rien :
    for (i = 1 ; i <= 4000000; i++)
    {
        j=j+i;
    }
    
    stopWatch.Stop();

    time = stopWatch.get_ElapsedMilliseconds();

    info(strFmt("le temps total consommé est %1 milliseconde", time));

}

Après exécution le résultat sera :



et voila





samedi 4 juin 2016

Temps de traitement


Pour connaitre le temps d’exécution d'un code on utilise en générale le "profiling" que ce soit de dynamics ax ou bien de SQLServer.

mais aussi on peut utiliser timeNow() au début du code, ensuite on utilise timeConsumed pour calculé la différence.

ce code ne sera pas utile si le temps d’exécution est inférieur a une seconde :/

on crée un Job de cette façon :

static void DJO_tempsConsomme(Args _args)
{
     FromTime debut;
     CustTable custTable;
     int i,j;
     ;
     debut = timeNow();
     while select custTable
     {
          for (i = 1 ; i <= 100000; i++)
          {
                j=j+i;
           }
     }

     info(strFmt("le temps total consommé est %1", timeConsumed(debut, timeNow())));
}

Après exécution :


Et voila :)