Friday, 20 July 2012

Inside Microsoft Dynamics AX 2012 Videos


Inside Microsoft Dynamics AX 2012

Thought to share these Youtube videos on Dynamics AX 2012:

Video1 - Developer Tools
- Stresses the importance of Models
- API's
- Interoperability with .Net
- 3 yrs spent by Microsoft for the new Development Tools
http://www.youtube.com/watch?v=cZc1Jya7tqM&feature=related

Video 2 - Services and AIF
- Heavy investment in Services
- Mobile applications can plug in to the service model
- 90 webservices
- Simplified and Powerful Integration
http://www.youtube.com/watch?v=sn9I6TaQY9o&feature=relmfu


Video 3 - Reporting
- Integration with Excel
http://www.youtube.com/watch?v=qx3_2oSrdpI&feature=relmfu

Video 4 - Office Integration
- Collabration across Office, AX and Visual Studio
- Demo (Budget)
http://www.youtube.com/watch?v=83Rm0Dbgb3g&feature=relmfu

Video 5 - Usability 
- End-User Simplicity
- Recruited people from the industry to test the usability scenarios
- Field Surveys
- Demo AR Customers/SO's (Fact boxes)
- Consolidate Commands into Flexible Activity based Ribbons (Similar Look and feel as Excel, Word)
- Fast tabs
- "Go to Main Table" replaced by hyperlink lookups (cool feature)
http://www.youtube.com/watch?v=CCyUcbTHuc4&feature=relmfu

Video 6 - Enterprise Portal
 - Rich UI
 - Travel Expense Demo
 - Microsoft internal adoption (aka DogFooding)
 - ISV's interested to build on new add'ons for EP
http://www.youtube.com/watch?v=Td2ROxxXzcE&feature=youtube_gdata


Video 7 - Performance
20 x times faster than 2009
- Managed X++
- Leverages Virtualization
- Leverages AppFabric
http://www.youtube.com/watch?v=YRJaMkElvqk


Video 8 - Programmability
-Improvements in X++ Language
-Improvements in Language Performance
-Visual IDE and MorphX IDE
-Attributes
-Marrying C# and X++
-X++ managed language
-AOT in VS.Net
http://www.youtube.com/watch?v=-jUtbBGTt-U


Video 9 - Security
-Improved Administration Experience for setting up Security
-Flexible Authentication (Leverages Claim Based Authentication from Sharepoint)
-Authorization
http://www.youtube.com/watch?v=EYQukrLQF7A&feature=channel_video_title


Video 10 - Simplicity
- Experiences for Developers, Administrators and End Users made simple
- For Developers - Goal to enrich .net and x++ developers experience
- Installation experience for Developer improved (Single Click Experience)
- Simplicity for System Administrators
- Good Feedback from Partner and Customer Channel
http://www.youtube.com/watch?v=-0C6t_vFyX0


Video 11 - Processes and Workflow
-Graphical workflow Editor for Business Users and Application Developers
-Leverages Wofklow Foundation of .Net 4.0
-Flexible Work Item Queues
-60 Workflow Types out of the box
-Sub-Workflows
http://www.youtube.com/watch?v=XQK1sZGkgvg


Video 12 - Organizational Model
-Model for External and Internal Reporting
-Policy Frameworks
-Reporting
http://www.youtube.com/watch?v=EteQAKqwnTU

Wednesday, 2 May 2012

Amount In Words


How to Convert amount in words





display Tempstr numberToRupees()
{
     int     numOfPennies = frac(TmpChequePrintout.AmountCur)*100 mod 100;
     int     test         = real2int(round(TmpChequePrintout.AmountCur,0));
     int     paise;
     int     numOfTenths;
     str 20  ones[19], tenths[9], hundreds, thousands, lakhs, crores, millions, billions;
     str 40  textpaise;
     int     tmpnumofpennies;
     int     temp;
     str 200 returntxt;

     int checkPower(int  _test, int _power)
     {
         int     numOfPower;

         if (_test >= _power)
         {
             numOfPower = _test DIV _power;
             if (numOfPower >= 100)
             {
                 temp = numOfPower DIV 100;
                 returntxt = returntxt + ' ' + ones[temp] + ' ' + hundreds;
                 numOfPower = numOfPower MOD 100;
             }
             if (numOfPower >= 20)
             {
                 temp = numOfPower DIV 10;
                 returntxt = returntxt + ' ' + tenths[temp];
                 numOfPower = numOfPower MOD 10;
             }
             if (numOfPower >= 1)
             {
                 returntxt = returntxt + ' ' + ones[numOfPower];
                 numOfPower = numOfPower MOD 10;
             }
             switch(_power)
             {
                 case 1000000000 :
                 {
                     returntxt = returntxt + ' ' + billions;
                     _test = _test MOD 1000000000;
                     break;
                 }
                 case 10000000 :
                 {
                     returntxt = returntxt + ' ' + crores;
                     _test = _test MOD 10000000;
                     break;
                 }
                case 100000 :
                 {
                     returntxt = returntxt + ' ' + lakhs;
                     _test = _test MOD 100000;
                     break;
                 }
                 case 1000 :
                 {
                     returntxt = returntxt + ' ' + thousands;
                     _test = _test MOD 1000;
                     break;
                 }
                 case 100 :
                 {
                     returntxt = returntxt + ' ' + hundreds;
                     _test = _test MOD 100;
                     break;
                 }
             }
         }
         return _test;
     }



     ones[1] = "@SYS26620";
     ones[2] = "@SYS26621";
     ones[3] = "@SYS26622";
     ones[4] = "@SYS26626";
     ones[5] = "@SYS26627";
     ones[6] = "@SYS26628";
     ones[7] = "@SYS26629";
     ones[8] = "@SYS26630";
     ones[9] = "@SYS26631";
     ones[10] = "@SYS26632";
     ones[11] = "@SYS26633";
     ones[12] = "@SYS26634";
     ones[13] = "@SYS26635";
     ones[14] = "@SYS26636";
     ones[15] = "@SYS26637";
     ones[16] = "@SYS26638";
     ones[17] = "@SYS26639";
     ones[18] = "@SYS26640";
     ones[19] = "@SYS26641";

     tenths[1] = 'Not used';
     tenths[2] = "@SYS26643";
     tenths[3] = "@SYS26644";
     tenths[4] = "@SYS26645";
     tenths[5] = "@SYS26646";
     tenths[6] = "@SYS26647";
     tenths[7] = "@SYS26648";
     tenths[8] = "@SYS26649";
     tenths[9] = "@SYS26650";

     hundreds    = "@SYS26651";
     thousands   = "@SYS26652";
     lakhs       = "Lakh";
     crores      = "Crore";
       millions    = "@SYS26653";
      billions    = "@SYS26654";


      test = checkPower(test, 1000000000);
     test = checkPower(test, 10000000);
     test = checkPower(test, 100000);
     test = checkPower(test, 1000);
     test = checkPower(test, 100);

     if (test >= 20)
     {
         numOfTenths = test DIV 10;
         returntxt = returntxt + ' ' + tenths[numofTenths];
         numOfTenths = numOfTenths MOD 10;
         test = test MOD 10;
     }
     if (test >= 1)
     {
         numOfTenths = test;
         returntxt = returntxt + ' ' + ones[numOfTenths];
     }
      if (numOfPennies)
     {
         returntxt = returntxt + ' ' + "@SYS5534" + "\n\n";
     }
     paise=numofPennies;
     if(paise)
     {
      if(paise >=20)
      {
       numofTenths= paise DIV 10;
       returntxt=returntxt + ' '+tenths[numofTenths];
       numofTenths = numofTenths MOD 10;
       paise=paise MOD 10;
      }
      if(paise >=1)
      {
       numOfTenths=paise;
       returntxt=returntxt+ ' '+ones[numOfTenths];
      }
      returntxt=returntxt+" Paise";
     }

    return   returntxt + "  Only";
    //return "(Amount in words)" +' ' + ' Rupees'+ " " +returntxt+" Only";
}