Dynamics AX 2012 R2 Hardware sizing 참고 자료

Posted by Alvin You
2015. 1. 9. 02:46 Dynamics AX

초기 제안 작업이나 프로젝트 계획시에 참고할 수 있는 Dynamics AX 2012 R2 Hardware Sizing 자료입니다.

R3에서는 성능 향상이 더 좋아졌겠지만, Dynamics AX ERP 구축을 고려하고 있거나 하드웨어 설계시 참고하시면 유용할 것 같습니다.

 

http://blogs.msdn.com/b/axsupport/archive/2014/05/30/ms-dynamics-ax-2012-r2-hardware-sizing.aspx

 

If you are looking for Information here the following hints might be of interest:

We have the following Benchmark report available. That was performed based on MS Dynamic 2012 R1 but in terms of the sizing results things remained the same so it is still valid.
Important note: The tests in the Benchmark Report were performed on "standard" solution without any branch or ISV solutions or other customizations which can have a big impact on performance!

 

https://mbs.microsoft.com/partnersource/northamerica/deployment/documentation/white-papers/ax2012_benchmarkpapers

 

Within the MS Dynamics Lifecycle Services (https://lcs.dynamics.com) there is a tool called Usage Profiler which can help you with sizing tasks. If you like please have a look here:

 

https://mbs.microsoft.com/partnersource/northamerica/news-events/news/MSDlifecycleservicesavailable

 

Also the following presentation from Informationsource portal can help you in terms of the sizing topic:

 

a) MS Dynamics AX 2012 Performance, Benchmarks, Features & Patterns:
https://informationsource.dynamics.com//RFPServicesOnline/Rfpservicesonline.aspx?DocName=CONV2012%3a+Microsoft+Dynamics+AX+2012+Performance%3a+Benchmarks+Features+%26+Patterns%7cQJ4JEM76642V-8-1423

 

b) MS Dynamics AX 2012: Solution Architecture:
https://informationsource.dynamics.com//RFPServicesOnline/Rfpservicesonline.aspx?DocName=CONV2012-Solution+Architecture%7cQJ4JEM76642V-8-1048

 

c) MS Dynamics AX 2012: Solution Architecture Best Practise:
https://informationsource.dynamics.com//RFPServicesOnline/Rfpservicesonline.aspx?DocName=CONV2013%3a+Microsoft+Dynamics+AX+Solution+Architecture+Best+Practices%7cQJ4JEM76642V-8-1497

한 서버에 EP 사이트 여러 개 설치하기

Posted by Alvin You
2015. 1. 6. 00:36 Dynamics AX

Dynamics AX의 Enterprise Portal을 Single Server 환경에서 여러 개를 띄워야 되는 경우가 있습니다. 만약 개발환경과 QA 환경이 하나의 서버에 존재해야 한다면 이런 구성이 필수적이겠죠.

1. 두번째 Enterprise Portal 설치를 위해 Sharepoint Central Administration에서 새로운 웹 응용프로그램을 만듭니다. 여기에서는 8082 포트를 이용한 두번째 웹 응용프로그램을 만듭니다.

 

2. EP2(Enterprise Portal2)라는 이름으로 만들어진 웹 응용프로그램에 Dynamics AX Setup 프로그램을 이용해 EP 설치를 진행합니다.

 

 

 

설치가 완료된 후 AX의 Administration of Web Sites를 통해 확인해 보면 아래와 같이 2개의 사이트가 등록된 것을 볼 수 있습니다.

 

3. EP2의 Internal URL을 복사해 두번째 AOS Instance의 Administration of Web Sites에 등록시켜 줍니다.

아직까지는 EP2가 바라보는 AOS Instance는 첫번째 AOS를 바라보고 있으며, 아래 마지막 단계를 통해서 EP2가 바라보는 AOS를 두번째를 바라보도록 설정을 변경할 수 있습니다.

4. C:\inetpub\wwwroot\wss\VirtualDirectories\8082 경로의 Web.config를 열어 아래 내용을 </system.web> 섹션 하단에 추가해 줍니다.

<Microsoft.Dynamics>

    <Session Configuration="\\<server_name>\<path>\<configuration_file>.axc" />

</Microsoft.Dynamics>

 

5. 두번째 AOS의 System administration > Setup > System > System service accounts 에 들어가 첫번째 AOS와 동일한 Business connector proxy 계정이 설정되어 있는지 확인합니다.

 

6.마지막으로 첫번째 AOS Instance에 들어가 EP2 사이트 정보를 삭제해 줍니다.

 

참고 URL : http://technet.microsoft.com/en-us/library/hh328926.aspx

VS(Visual Studio) and TFS support in AX 2012 R3 CU8

Posted by Alvin You
2015. 1. 1. 22:28 Dynamics AX

MS Dynamics AX 2012 R3 CU8부터는 Visual Studio 2013만이 지원 된다고 합니다. MS에서 R3 CU8을 통해서 완성도 있는 .NET 통합작업이 어느 정도 마무리 된 듯 합니다.

 

MS의 대표적인 Version Control 시스템인 TFS(Team Foundation Server) 지원은 TFS 2010, TFS 2012, TFS 2013 그리고 TFS online에 대해서 지원이 가능하지만, 해당 기능을 사용하기 위해서는 “TFS 2010 object model Sp1” 이 설치되어 있어야 됩니다.

 

자세한 시스템 사항은 http://www.microsoft.com/en-us/download/details.aspx?id=11094 참고하시면 됩니다.

Visual Studio 2010이 사용중인 컴퓨터에서는 hotfix KB 2662296(http://support.microsoft.com/kb/2662296)이 설치되어 있어야 TFS를 사용할 수 있습니다.

 

Visual Studio 2010이 설치되지 않은 상태에서 TFS를 접속하기 위해서는 TFS 2010 SP1 Object Model (https://visualstudiogallery.msdn.microsoft.com/a37e19fb-3052-4fc9-bef7-4a4682069a75) 이 설치되어 있어야 접속이 가능합니다.

 

.NET 프로젝트와 같이 체계적인 Version Control 환경에서 AX 프로젝트가 가능해지길 바라며, 2015년 꿈꾸는 모든 일들 다들 이루시며 대박나세요.

 

X++ 개발 언어 교재(X++ Advanced Course)

Posted by Alvin You
2014. 11. 12. 01:52 Dynamics AX

Dynamics AX 개발과 관련된 서적을 보다보면 X++ 언어 문법에 대해서 다루는 분량은 그리 많지 않습니다.

심지어 MS에서 정식 교육 교재로 사용하는 MOC(Microsoft Official Curriculum) 교재도 사정은 비슷하지요. 언어적인 부분보다는 아키텍쳐와 비지니스 연계 및 새로운 기술 요소들에 대해서 많이 다루는 편입니다.

교재 대부분이 많은 내용을 독자에게 알려줘야 되기 때문에 기술 요소들에 대해서 풀어서 설명하기 보다는 함축된 내용을 그대로 표현하고 있어 관련 영역(SI, ERP 산업군)에 오래 종사하지 않은 초급 개발자라면 난해한 기술용어, 비지니스 용어를 외우다가 끝날 수도 있습니다.

 

아래 슬라이드는 X++ 문법에 대해서만 다루고 있어, 처음 X++ 언어를 접하는분들에게 유익한 내용이 되지 않을까 싶습니다.

즐거운 DAXing 되세요.

 

 

 

 

Dynamics AX Windows 8 App 개발

Posted by Alvin You
2014. 10. 31. 00:37 Dynamics AX

첨부 파일은 Windows 8에서 동작하는 Dynamics AX App 개발에 대한 가이드 자료입니다.

따라하기 형식으로 되어 있어 손쉽게 Windows 8 App 개발을 진행해 보실 수 있습니다.

 

APP DEVELOPMENT GUIDE VERSION 1.0 PAGE 2 OF 26
Table of Contents
Microsoft Dynamics AX Windows 8 App Starter Kit ...............................................................................1
App Development Guide Version 1.0 ..................................................................................................1
1. Introduction .................................................................................................................................3
2. Building your first Dynamics AX App for Windows 8 ..........................................................................3
2.1. Step 1 – Decide what your app is great at .....................................................................................3
2.2. Step 2 – Decide what user activities to support ..............................................................................4
2.3. Step 3 - Decide what features to include .......................................................................................4
3. Development - Building a simple window 8 app that integrates with Dynamics AX 2012 R2 ..................... 5
3.1 Step 1- Prepare an AIF service in Dynamics AX 2012 ....................................................................... 5
3.2 Step 2- Create a new Windows Store App Project in Visual Studio 2012 ............................................ 13
3.3 Step 3- Configure the Package.appxmanifest ................................................................................. 14
3.4 Step 4- Create a Service Reference to a Dynamics AX AIF Service ................................................... 16
3.5 Step 5- Consume data from Dynamics AX within a Windows 8 App ................................................... 17
3.6 Step 6- Present data from Dynamics AX within a Windows 8 App .......................................................19
4. Using Blend to enhance the UX of your Windows 8 App..................................................................... 23
5. Conclusion ................................................................................................................................. 26

 

 

microsoft-dynamics-ax-windows-8-app-starter-kit-development-guide.pdf

 

자주 쓰는 X++ 기본 내장 함수 정리

Posted by Alvin You
2014. 10. 28. 22:53 Dynamics AX/Development

Dynamics AX 개발 언어인 X++ 에서 자주 사용되는 함수들입니다. 개발에 참고하세요.

 

* AX function

1. abs : 절대값  ex) abs(-100.0) -> 100.0
2. 정보없는 것들 : any2Date, any2Enum, ~2Guid, ~2Int, ~2Int64,
                   ~2Read, ~2Str, ~
3. ascii2Ansi : Ansi code에서 문자로 변환(page437 이용)
  ex1)-old pattern
      AsciiIO io;
      io = new AsciiIO('filename', "W");
      io.write(ansi2Ascii("string"));

  ex2)-new pattern
      TextIO io;
      io = new TextIO("filename","W",437);
      io.write("string");
  %ansi2Ascii 는 역방향임
4. char2Num : 특정자리 문자를 숫자로 변환(ascii코드별)
   ex) char2Num("ABCDEFG", 3) => C값으로 67반환
5. classIdGet : 인스턴스화된 객체를 클래스 대한 ID값을 반환
   = int classIdGet(class object)
   ex)
       static void classIdGetExample(Args _args)
       {
           int i;
           WorkTimeCheck w;
           ;
           i = classIdGet(w);
           print "Class ID for object is " + int2Str(i);
           pause;
       }
6. classNum : 클래스에 대한 id값 반환
   = int classNum(class class)
   ex)
       static void classNumExample(Args _args)
       {
           int i;
           ;
           i = classNum(Global);
           print i;
           pause;
       }
7. classStr : 클래스 이름을 스트링 형식으로 반환
   = str classStr(class class)
   ex)
      static void clStrExample(Args _args)
      {
          str s;
          ;
          s = classStr(Global);
          print s;
          pause;
      }
8. configurationKeyNum : configuration 키값을 반환
   = int configurationKeyNum(str keyname)
   ex)
   static void configurationKeyNum(Args _args)
   {
       int i;
       ;
       i = configurationKeyNum(AIF);
       print i;
       pause;
   }
9. conFind : container안에서 해당하는 속성들이 반응하거나 특성을 추적하는 메소드. 만약 결과물안에서 여러개의 특정값이 조회되면 이들의 구분은 콤마에 의해 나뉘어 지고, 정확한 순서대로 위치설정이 된다. 속성값들은 아무 타입이나 상관없음
   = int conFind (container container, anytype element,... )
   ex)
   static void conFindExample(Args _args)
   {
       container c = ["item1", "item2", "item3"];
       int i;
       int j;
       ;

       i = conFind(c, "item2");
       j = conFind(c, "item4");
       print "Position of 'item2' in container is " + int2Str(i);
       print "Position of 'item4' in container is " + int2Str(j);
       pause;
   }

   결과 :Position of 'item2' in container is 2
         Position of 'item4' in container is 0
10. conIns : container안에 1개 이상의 구성자를 입력한다
    = container conIns (container container, int start, anytype element,... )
    ex)
    static void conInsExample(Args _arg)
    {
        container c;
        int i;
        ;

        c = conIns(["item1", "item2"], 1);
        for (i = 1 ; i <= conLen(c) ; i++)
        {
        // Prints the content of a container.
            print conPeek(c, i);
        }
        pause;
    }
11. conLen : container안의 속성값들의 개수를 반환함.
    = int conLen(container container)
    ex)
    static void conLenExample(Args _arg)
    {
        container c;
        int i;
        ;

        c = conins(["item1", "item2"], 1);
        for (i = 1 ; i <= conLen(c) ; i++)
        {
            print conPeek(c, i);
         }
        pause;
    }
12. conNull : null container를 반환한다. container의 내용물을 확실하게 배치하기 위해 사용하는 메소드
   = container conNull()
   ex)
   static void conNullExample(Args _arg)
   {
       container c = ["item1", "item2", "item3"];
       ;

       print "Size of container is " + int2str(conLen(c));
       // Set the container to null.
       c = conNull();
       print "Size of container after conNull() is " + int2Str(conLen(c));
       pause;
   }
13. conPeek : container로 부터 특정위치의 값을 반환한다.
   = anytype conPeek(container container, int number)
   ex)
   static void conPeekExample(Args _arg)
   {
        str fileName;
        container rows;
        container cells;
        int row;
        int column;
        CustAccount             CUSTA;
        HSA_AR_Van_Upload_Month uploadMonth;
        HSA_AR_Car_SS           SS;
        ;

        fileName = strFileName.text();//미리 strFileName를 선언해서 그대로 사용할 수 있음
        rows = HSA_ExcelUtils::readExcel(fileName, 25);//엑셀시트와 연동해서 해당되는 데이터를 그대로 들고 올 수 있음

        for (row = 2; row <= conlen(rows);row++) {  //엑셀의 2번째 열부터 데이터를 들고와서 조회를 할 수 있음

            cells = conpeek(rows, row);   //각 열의 필드별 데이터 세팅

            CUSTA    = conpeek(cells, 1);

            uploadMonth.clear();

            if(SS.CS_Serial != ""){
                uploadMonth.AccountNum               = conpeek(cells, 1); //해당열의 1번째 필드값을 반환
            }else{
                info("Invalid data : " + int2str(row) + "row");
            }
        }
    }
14. conPoke : container 안에 있는 특정 속성을 1개 이상 변환할 수 있는 메소드
    = container conPoke(container container, int start, anytype element, ...)
    ex)
    static void conPokeExample(Args _arg)
    {
        container c1 = ["item1", "item2", "item3"];
        container c2;
        int i;

        void conPrint(container c)
        {
            for (i = 1 ; i <= conLen(c) ; i++)
            {
                print conPeek(c, i);
            }
        }
        ;
        conPrint(c1);
        c2 = conPoke(c1, 2, "PokedItem");
        print "";
        conPrint(c2);
        pause;
    }
15. corrFlagGet : 실수에 대해 수정된 표시문자(플래그)의 상태(표시 or clear)를 반환한다
    = int corrFlagGet(real arg)

16. corrFlagSet : 실수에 대해 보정된 표시문자를 조정한다.
    = real corrFlagSet(real real, int arg)  => real: The flag to set or clear, arg : Sets or clears the flag. A non-zero value sets the flag.

17. cTerm : 목표치 산출을 위해 현재 투자 값으로 요구되는 기간을 계산한다.  ()=>다시 봐야 할듯....
    = real cTerm(real interest, real future_value, real current_value)
    ex)
    static void cTermExample(Args _arg)
    {
        real r;
        ;
        r = cTerm(10.0, 500.00, 100.00);
        print "The cTerm is " + num2Str(r, 2, 2, 1, 1);
        pause;
    }
    ex2)
    static void Job5(Args _args)
    {
            real r;
            ;
            r = cTerm(10.0, 500.00, 100.00);
            print "The cTerm is " + num2Str(r,0,10,1,0);
            pause;
    }//결과 값들은 소수점 몇자리까지 나옴
18. curExt : 현재 회사에 대한 명을 반환
    = str curExt()
    ex)
    static void curExtExample(Args _arg)
    {
        str s;
        ;

        // Sets s to the extension of the current company.
        s = curExt();
        print "Current extension is " + s;
        pause;
    }
19. curUserId : 현 사용자에 대한 userID를 반환한다.
    = str curUserId()
    ex)
    static void curUserIdExample(Args _arg)
    {
        str s;
        ;
        s = curUserId();
        print "Current user ID is " + s;
        pause;
    }
20. date2Num : 1 January 1900 이래로 해당날짜를 일치하는 지나간 날짜의 일을 계산하여 반환한다.
    = int date2Num(date _date)
    ex)
    static void date2NumExample(Args _arg)
    {
        date d = today();
        int i;
        ;
        i = date2Num(d);
        print i;
        pause;
    }
21. date2Str : 날짜를 텍스트로 반환
    = str date2Str(date date, int sequence, int day, int separator1, int month, int separator2, int year)
     date - The date to be converted.
     sequence - The sequence for the components of the date (day, month, year).
                       Day is shown by 1, month by 2, and year by 3. Possible sequences:
                             day, month, year
                             year, month, day
                             year, day, month
     day - The format for the day component of the date.
           Possible formats:
           Can be expressed as one or two digits, as required
           Always expressed as two digits
     separator1 - The separator to use between the first two components of the date.
           Possible values:
               a " " (space)
               a "." (period)
               a "-" (hyphen)
               a "/" (forward slash)
     month - The format for the month.
           Possible formats: Can be expressed as one or two digits, as required
               Expressed as two digits
               Expressed as three characters
               Expressed by its entire name
     separator2 - The separator to use between the last two elements of the date.
           Possible values:
               a " " (space)
               a "." (period)
               a "-" (hyphen)
               a "/" (forward slash)
     year - The format for the year.
           Possible formats:
               Expressed as two digits
               Expressed as four digits
    ex)
    static void date2StrExample(Args _arg)
    {
        date d = today();
        str s;
        ;
        s = date2Str(d, 2, 2, -1, 2, -1, 2);
        print "Today's date is " + s;//07-08-21
        pause;
    }
22. dayName : 날짜를 일주일의 요일별로 1~7사이값으로 보여준다.
    = str dayName(int number)
    ex)
    static void dayNameExample(Args _arg)
    {
        str s;
        ;
        s = dayName(01);
        print "First day of the week's name is " + s;
        pause;
    }
23. dayOfMth : 날짜에 대해 한달중 날짜를 보여준다.
    = int dayOfMth(date date)
    ex)
    static void dayOfMthExample(Args _arg)
    {
        date d = today();
        int i;
        ;
        i = dayOfMth(d);
        print "Today's day of the month is " + int2Str(i);
        pause;
    }
24. dayOfWk : 날짜중에서 일주일 단위로 날짜를 보여준다.
    = int dayOfWk(date date)
    ex)
    static void dayOfWkExample(Args _arg)
    {
        date d = today();
        int i;
        ;
        i = dayOfWk(d);
        print "Today's day of the week is " + int2Str(i);
        pause;
    }
25. dayOfYr : 1월1일부터 지정된 날짜까지 일수를 계산한다.
    = int dayOfYr(date _date)
    ex)
    static void dayOfYrExample(Args _arg)
    {
        date d = today();
        int i;
        ;
        i = dayOfYr(d);
        print "Today's day of the year is " + int2Str(i);
        pause;
    }
    ex2) 전체 조회 테스트
    static void Job5(Args _args)
    {
            date d = today();
            int i;
            str s;
            ;
            i = dayOfWk(d);
            print "Today's day of the week is " + int2Str(i);
            pause;


            s = dayName(10);
            print "First day of the week's name is " + s;
            pause;


            i = dayOfYr(d);
            print "Today's day of the year is " + int2Str(i);
            pause;

    }
26. ddb : 속도가 붙은 자산의 가치하락(감가상각)을 계산한다
   = real ddb(real price, real scrap, real life, int period)
       price - The purchase price of the asset.
       scrap - The residual value of the asset that has been written off.
       life  - The expected lifetime of the asset.
       period - The period to calculate depreciation over.
   ex)
   // Returns the value 2400.
   ddb(12000,2000,10,1);

   // Returns the value 1536.
   ddb(12000,2000,10,3);
27. decRound : 지정된 자리수대로 반올림이 되어야 한다.
    = real decRound(real figure, int decimals)
    ex)
    // Returns the value 1234.66.
    decRound(1234.6574,2);

    // Returns the value 1235.
    decRound(1234.6574,0);

    // Returns the value 1200.
    decRound(1234.6574,-2);
28. dg : 판매가격과 구매가격을 기초로 하여 차지하는 비율을 계산한다.
    = real dg(real sale, real purchase)
    ex)
    // Returns the value 0.7.
    dg(1000,300);

    // Returns the value 0.45.
    dg(20000, 11000);
29. dimOf : 순열안에서 속성의 자리값을 반환한다.
    = int dimOf(anytype object)
    ex)
    static void dimOfExample(Args _arg)
    {
        Array a;
        ;

        a = new Array(Types::Integer);
        a.value(1, 42);
        a.value(2, 666);
        print "Dimension of array is " + int2Str(dimOf(a));
        pause;
    }
30. endMth : 지정된 달의 마지막 날자를 반환한다.
    = date endMth(date date)
    ex)
    // Returns the date 29\02\1988 (leap year).
    endMth(02\02\1988);

    // Returns the date 28\02\1989.
    endMth(02\02\1989);
31. enum2Str : enum을 스트링으로 변환
    = str enum2Str(enum enum)
32. enumCnt : enum속성에서 해당되는 속성값을 반환
    = int enumCnt(enum enumtype)
    ex)
    // Returns 2 (the two elements are Yes and No).
    enumCnt(NoYes);
33. enumNum : enum에 대해 ID를 반환
    = int enumNum(enum enum)
34. enumStr : enumeration을 스트링으로 반환한다.
    = str enumStr(enum enum)
35. evalBuf : X++ code의 입력스트링에 대해 평가하고, 스트링을 결과값으로 반환한다.
    = str evalBuf(str expressionString)
    ex)
    static void JobEvalBufDemo(Args _args)
    {
        ExecutePermission perm;
        str strCodeToExecute = "2 + 5";
        str strResult;
        ;
        perm = new ExecutePermission();
        if (perm != null)
        {
            // Grants permission to execute the EvalBuf function.
            // EvalBuf runs under code access security.
            perm.assert(); //CodeAccessPermission로 부터 상속
            // BP deviation documented.
            print "Next will execute the string of code.";
            pause; // Click Yes when asked to continue.

            strResult = EvalBuf(strCodeToExecute);
            // Close the code access permission scope.
            CodeAccessPermission::revertAssert();
        }
        print "strResult is: [", strResult ,"]";
        pause;
        //
        // Expected: "strResult is: [7]".
    }
36. exp : 입력값에서 십진수의 자연진수로 반환한다.
    = real exp(real arg)
    ex)
    static void expExample(Args _arg)
    {
        real r1;
        real r2;
        ;

        r1 = exp(2.302585093);
        r2 = exp10(2.302585093);
        print strFmt("exp of 2.302585093 is %1", r1);
        print strFmt("exp10 of 230258 is %1", r2);
        pause;
    }
37. exp10 : 실수를 10진수로 변환한 값을 반환한다.
    = real exp10(real decimal)
    ex)
    static void exp10Example(Args _arg)
    {
        real r1;
        real r2;
        ;

        r1 = exp(2.302585093);
        r2 = exp10(2.302585093);
        print strFmt("exp of 2.302585093 is %1", r1);
        print strFmt("exp10 of 230258 is %1", r2);
        pause;
    }
38. extendedTypeNum : EDT의 id값을 반환한다.
    = int extendedTypeNum(int str)
    ex)
    static void EDTNum(Args _args)
    {
        int i;
        str s;
        ;

        i = extendedTypeNum(AccountName);
        s = extendedTypeStr(AccountName);
        print  int2Str(i);
        print  s;
        pause;
    }
39. extendedTypeStr : EDT의 이름을 스트링으로 반환한다.
    = str extendedTypeStr(int str)
    ex)
    static void EDTStr(Args _args)
    {
        int i;
        str s;
        ;

        i = extendedTypeNum(AccountName);
        s = extendedTypeStr(AccountName);
        print  int2Str(i);
        print  s;
        pause;
    }
40. fieldId2Name : 테이블의 id숫자와 필드의 id숫자로 지정된 필드의 이름을 보여주는 스트링값을 반환한다.
    = str fieldId2Name(int tableid, int fieldid)
    ex)
    static void fieldId2NameExample(Args _arg)
    {
        str fn;
        ;
        fn = fieldId2Name(tableName2Id("Customer"),7);
    }


※ fieldName2Id : 테이블 ID number와 필드의 ID number에 의해서 정의된 테이블 필드의 필드 id를 반환한다.
int fieldName2Id(int tableid, str fieldname)

 Parameter

 Description

 tableId

 The ID number for the table

(note)Use the tableName2Id function to specify the ID of a table

 fieldname 

 The name of the field

 

   ex)
   static void fieldName2IdExample(Args _arg)
   {
       int id;
       ;
       id = fieldName2Id(tableName2Id("Address"), "Name");
       // Returns 6. Name is the 6th field in the Address table.
       print id;
       pause;
   }

41. frac : 실수에서 소수 부분을 반환
    = real frac(real decimal)
    ex)
    // Returns 0.423.
    frac(12.423);
42.funcName : 현 함수의 문맥을 포함하는 스트링을 반환한다. 만약 실행이 클래스와 테이블을 포함하게 된다면, 메소드의 이름은 클래스나 테이블의 이름이 접두에 붙는다.
    = str funcName()
    ex)
    //Current function context is Job5
    static void funcNameExample(Args _arg)
    {
        print "Current function context is " + funcName();
        pause;
    }
43.fV : 투자한 값의 미래 결과치를 계산한다.
    = real fV(real amount, real interest, real life)
    amount - The amount paid in during each period.
    interest - The interest rate.
    life - The number of investment periods.
    ex)
    // Returns the value 1933.73.
    fV(100,0.14,10);

    // Returns the value 2442.04.
    fV(400,0.10,5);
44.getPrefix : setPrefix function으로 연속해서 현실행 접두사로 반환한다
    = str getPrefix()
    ex)
    static void getPrefixExample(Args _arg)
    {
        ;
        setPrefix("Prefix");
        setPrefix("Another prefix");
        print getPrefix();
        pause;
    }
45.guid2Str : noinformation

46.helpApplStr : noinformation
47.helpDevStr : noinformation
48.helpFileStr : noinformation
49.identifierStr : noinformation
50.idg : 구입비용과 기여 비율에 기초한 판매가격을 계산한다.
    = real idg(real purchase, real contribution_ratio)
    ex)
    // Returns the value 1000.
    idg(300,0.7);

    // Returns the value 20000.
    idg(11000,0.45);
51.indexId2Name : 인덱스 명을 반환한다.
    = str indexId2Name(int tableid, int indexid)
    ex)
    // The result of calling indexId2Name is AddrIdx
    static void indexId2NameExample(Args _arg)
    {
        str s;
        tableid id;
        indexid idx;
        ;

        id  = tableName2Id("Address");
        idx = indexName2Id(id, "AddrIdx");
        s = indexId2Name(id, idx);
        print "The result of calling indexId2Name is " + s;
        pause;
    }
52.indexName2Id : 인덱스의 id를 반환한다.
    = int indexName2Id(int tableid, str indexname)
    ex)
    static void indexName2IdExample(Args _arg)
    {
        indexid idx;
        tableid id;
        ;

        id  = tableName2Id("Address");
        idx = indexName2Id(id, "AddrIdx");
        print "Index ID for index name AddrIdx of table Address is "
            + int2Str(idx);
        pause;
    }
53.indexNum : noinformation
54.indexStr : noinformation
55.int2Str : 정수를 텍스트로 반환한다.
    = str int2Str(int integer)
    ex)
    static void int2StrExample(Args _arg)
    {
        ;
        print "This is int2Str, value is " + int2Str(intMax());
        print "This is int642Str, value is " + int642Str(int64Max());
        pause;
    }
56.int642Str : noinformation
57.intvMax : noinformation
58.intvName : noinformation
59.intvNo : noinformation
60.intvNorm : noinformation
61.licenseCodeNum :noinformation
62.licenseCodeStr : noinformation
63.literalStr : noinformation
64.log10
65.logN
66.match : noinformation
67.max : 2개의 값중에서 큰 쪽을 반환한다.
    = anytype max(anytype object1, anytype object2)
    ex)
    // Returns the value 12.1.
    max(12.0,12.1);
68.maxDate : date타입의 변수에서 허락하는 최고 큰 값을  반환한다. 아무 날짜나 이 날짜보다 작거나 같다.
    = date maxDate()
    ex) //2154-12-31
    static void maxDateExample(Args _arg)
    {
        date maximumDate;
        ;
        maximumDate = maxDate();
        print maximumDate;
        pause;
    }
69.maxInt : 정수 타입에서 허락하는 가장 큰 값을 돌려준다. 어떤 정수 값도 반환되는 값보다 작거나 같다.
    = int maxInt()
    ex)
    static void maxIntExample(Args _arg)
    {
        int i;
        ;
        print "The maximum value for type int is " + int2Str(maxInt());
        pause;
    }
70.menuItemActionStr : noinformation
71.menuItemDisplayStr
72.menuItemOutputStr
73.menuStr : noinformation
74.methodStr : noinformation
75.min : 두 개의 비교값중에서 더 작은 값을 반환한다.
    = anytype min(anytype object1, anytype object2)
    ex)
    static void minExample(Args _arg)
    {
        anytype a;
        real r = 3.0;
        real s = 2.0;
        ;

        a = min(r, s);
        print num2Str(a, 1, 2, 1, 1) + " is less than the other number.";

        pause;
    }
76.minInt :
77.mkDate : 각각 날짜, 월, 년을 가르키는 세개의 정수에 기초한 날짜를 생성한다.
    = date mkDate(int day, int month, int year)
    ex)//2005-01-01
    static void mkDateExample(Args _arg)
    {
         date d;
          ;

        // Returns the date 01\01\2005.
         d = mkDate(1, 1, 2005);
        print d;
        pause;
    }
78.mthName : 숫자로 지정된 해당 월의 이름을 반환한다.
    = str monthName(int number)
    ex)
    static void mthNameExample(Args _arg)
    {
        str s;
        ;

        // MthName(6) returns the text string "June".
        s = mthName(6);
        print "Month name is " + s;

        pause;
    }
79.mthOfYr : 지정된 날짜에 대한 월의 숫자를 반환한다.(January is month number 1.)
    = int mthOfYr(date date)
    ex)
    static void mthOfYrExample(Args _arg)
    {
        int i;
        ;
        i = mthOfYr(today());
        print "The number of the month in today's date is " + int2Str(i);
        pause;
    }
80.newGuid : globally unique identifier (GUID)를 만든다.
    = guid newGuid()
    ex)
    static void newGuidExample(Args _arg)
    {
        guid myGuid;
        ;

        myGuid = newguid();
        print strfmt("The GUID is: %1", myGuid);
    }
81.nextMth : 지정된 날짜에 가장 가까운 다음 달의 일자를 반환한다. 예로  nextMth(29\02\1996) 는 29\03\1996로, nextMth(31\01\1996) 는 29\02\1996로 반환한다.
    = date nextMth(date date)
    ex)
    static void nextMthExample(Args _arg)
    {
        date d;
        ;
        d = nextMth(today());
        print "Closest date next month is "
            + date2Str(d, 2, 2, -1, 2, -1, 4);
        pause;
    }
82.nextQtr : 지정된 날짜에 가장 가깝게 부합되는 다음 쿼터의 날짜를 반환한다. 예로 nextQtr(31\01\1998)는 30\04\1998를 반환한다.(대략 3달후)
    = date nextQtr(date date)
    ex)
    static void nextQtrExample(Args _arg)
    {
        date d;
        ;
        d = nextQtr(today());
        print "Closest date next quarter is "
            + date2Str(d, 2, 2, -1, 2, -1, 4);
        pause;
    }
83.nextYr : 지정된 날짜에서 가장 가깝게 부합하는 다음 년도의 날짜를 반환한다. 예로 nextyr(29\02\1998)는 28\02\1999를 반환한다.
    = date nextYr(date date)
    ex)
    static void nextYrExample(Args _arg)
    {
        date d;
        ;
        d = nextYr(today());
        print "Closest date next year is "
            + date2Str(d, 2, 2, -1, 2, -1, 4);

        pause;
    }
84.num2Char : 정수에 부합하는 ascii코드로 반환한다.
    = str num2Char(int figure)
    ex)
    static void num2CharExample(Args _arg)
    {
        str s;
        ;
        s = num2Char(42);
        // Prints an asterisk?-the character represented by 42.
        print s;

        pause;
    }
85.num2Date : 01\01\1900이후로 지정된 날수에 부합하는 날짜를 반환한다.
    = date num2Date(int _days)
    _days - The number of days after 1 January 1900 to return the date for.
    ex)
    // Returns the date 01/01/1901 (1 January 1901).
    num2Date(366);
86.num2Str : 실수값에서 텍스트로 변환
    = str num2Str(real number, int character, int decimals, int separator1, int separator2)
    number - The number to convert to a text string.
    character - The minimum number of characters required in the text.
    decimals - The required number of decimals.
    separator1 - The decimal separator. ( 1 - point(.), 2 - comma (,) )
    separator2 - The thousands separator. ( 0 - no thousands separator, 1 - point(.), 2 - comma(,), 3 - space( ) )
    ex)
    // Returns 12.345,60.
    num2Str(12345.6,10,2,2,1);

    // Returns 12345.
    num2Str(12345.6,1,0,1,0);
87.pmt : 대출금을 갚기 위해 매기간마다 지불되어야 하는 양을 계산한다.
    = real pmt(real principal, real interest, real life)
    principal - The amount that was originally borrowed.
    interest - The interest that is applied each period to the amount borrowed.
    life - The number of periods over which the loan is repaid.
    ex)
    // Returns the value 1372.82.
    pmt(4000,0.14,4);

    // Returns the value 1174.60.
    pmt(10000,0.10,20);
88.power : 실수값에 대한 정해진 제곱값을 계산한다.
    = real power(real arg, real exponent)
    ex)
    // Returns the value 25.0.
    power(5.0,2.0);

    // Returns the value 2.0.
    power(4.0,0.5);
89.prevMth : 지정된 날짜의 가장 가까운 이전 달 값을 반환한다.
    = date prevMth(date date)
    ex)
    // Returns the date 29/02/1996 (leap year).
    prevMth(31\03\1996);

    // Returns the date 28/01/1998.
    prevMth(29\02\1998);
90.prevQtr : 지정된 날짜의 이전 쿼터를 계산한다(약 3달전 날짜)
    = date prevQtr(date date)
    ex)
    // Returns the date 30/01/1998.
    prevQtr(30\04\1998);

    // Returns the date 29/02/1996 (leap year).
    prevQtr(29\05\1996);
91.prevYr
92.primoYr :
93.prmIsDefault : 해당 날짜가 첫번째 날짜인지를 결정한다.
    = int primoYr(date date)
    (1 if date is a primo date; otherwise, 0.)
    ex)
    //Today is a primo date
    //Today is not a primo date
    static void primoYrExample(Args _arg)
    {
        ;

        if (primoYr(today()) == 1)
        {
            print "Today is a primo date";
        }
        else
        {
            print "Today is not a primo date";
        }
        pause;
    }
94.pt : 주어진 값에 지정된 비율로 계산된 값의 합을 반환한다.
    = real pt(real amount, real percentage)
    ex)
    // Returns the value 2200.0.
    pt(2000.0,0.10);
95.pV : 연금의 현재값을 반환한다.
    = real pv(real amount, real interest, real life)
    amount - The amount paid during each period.
    interest - The interest rate.
    life - The number of times amount is paid.
    ex)
    // Returns the value 874.11.
    pv(300,0.14,4);
96.queryStr : 현재 있는 쿼리를 나타내는 스트링을 반환한다.
    = str queryStr(class _query)
    ex)
    static void queryStrExample(Args _arg)
    {
        // Prints the string AssetTable.
        print queryStr(AssetTable);

        // Results in compiler error saying that operand is not an element.
        print queryStr(AssetTable);
        pause;
    }
97.rate : 현재 투자 값으로부터 일정 수의 기간을 넘어서 지정된 미래의 결과값을 받기위한 이율을 계산한다.
    = real rate(real _future_value, real _current_value, real _terms)
    _future_value - The future value of the investment.
    _current_value - The current value of the investment.
    _terms - The number of periods for which the investment spans.
    ex)
    // Returns the value 0.12.
    rate(10000,1000,20);
98.refPrintAll : noinformation
99.reportStr : noinformation
100.resourceStr : noinformation
101.round : 정수를 지정된  형식으로 반올림한다.
    = real round(real _arg, real _decimals)
    ex)
    // Returns the value 125.00.
    round(123.45,5.00);

    // Returns the value 7.35.
    round(7.45,1.05);
102.runAs :
103.runBuf : 스트링으로 지나는 x++코드를 실행한다.
    = anytype runBuf(str job,[anytype param])
    job - The string that represents the code to be run.
    param - The parameters for the code being passed to the function; optional.
104.securityKeyNum : noinformation
105.securityKeyStr : noinformation
106.sessionId : 현 세션의 세션값을 반환한다.
    = int sessionId()
    ex)
    static void sessionIdExample(Args _arg)
    {
        int session;
        ;
        session = sessionId();
        print "This session ID is number " + int2Str(session);
        pause;
    }
107.setPrefix : 현 실행반경에 대해서 접두사를 지정한다.
    = int setPrefix(str _prefix)
    ex)
    static void setPrefixExample(Args _arg)
    {
        int i;
        ;
        i = setPrefix("Prefix");
        print i;
        pause;
    }
108.sin
109.sinh
110.sleep : 밀리초단위로 시스템을 쉬도록 지정한다.
    = int sleep(int _duration)
    ex)
    static void sleepExample(Args _arg)
    {
        int seconds = 10;
        int i;
        ;
        i = sleep(seconds*1000);
        print "job slept for " + int2str(i/1000) + " seconds";
        pause;
    }
111.sln : 일정 가치하락 기간동안에 계속적인 가치하락 값을 반환한다.
    = real sln(real price, real scrap, real life)
    price - The purchase price of the asset.
    scrap - The scrap value of the asset.
    life - The number of periods in the expected life of the asset.
    ex)
    static void slnExample(Args _arg)
    {
        real r;
        ;
        r = sln(100.00, 50.00, 50.00);
        print r;
        pause;
    }
112.staticMethodStr
113.str2Date : 스트링을 날짜로 변환한다.
    = date str2Date(str _text, str _sequence)
    _text - The text string to convert to a date.
    _sequence - The desired sequence in the date:
                day: 1
                month: 2
                year: 3
                For example, if the desired sequence is month, year, day, _sequence is written as 231.
    ex)
    static void str2DateExample(Args _arg)
    {
        date d;
        ;
        d = str2Date("01/01/1999", 123);
        print d;
        pause;
    }
114.str2Enum : 주어진 텍스트 스트링을 지정된 타입으로 계산한다.
    = enum str2Enum(enum _type, str _text)
    ex)
    static void str2EnumExample(Args _arg)
    {
        BankAccountType bat;
        ;
        str2Enum(bat,"Current");
    }
115.str2Guid :
116.str2Int : 스트링을 해당하는 정수값으로 변환한다.
    = int str2Int(str _text)
    ex)
    static void str2IntExample(Args _arg)
    {
        int i;
        ;
        i = str2Int("1234567890");
        print "i = " + int2Str(i);
        pause;
    }
117.str2Int64
118.str2Num : 스타링을 실수값으로 변환한다.
    = real str2Num(str _text)
        str2Num("123.45") returns the value 123.45.
        str2Num("a123") returns the value 0.0.
        str2Num("123a") returns the value 123.00
    ex)
    static void str2NumExample(Args _arg)
    {
        real r;
        ;
        r = str2Num("3.15");
        print strFmt("r = %1", r);
        pause;
    }
119.str2Time :
    ex)
    static void str2TimeExample(Args _arg)
    {
        int i;
        ;
        i = str2Time("11:30");
        print i;
        pause;
    }
120.strAlpha : 문자나 숫자가 아닌 다른 캐릭터는 모두 삭제한다
    = str strAlpha(str _text)
    ex)
    static void strAlphaExample(Args _arg)
    {
        str s;
        ;
        s = strAlpha("?a*bc123.");
        print s;
        pause;
    }
121.strCmp : 주어진 두개의 스트링값을 비교한다. 비교케이스는 상황에 따라 다르다.
    = int strCmp(str text1, str text2)
    ex)
    // Returns 0.
    print strCmp("abc", "abc");

    // Returns 1.
    print strCmp("abc", "ABC");

    // Returns -1.
    print strCmp("aaa", "bbb");

    // Returns 1.
    print strCmp("ccc", "bbb");
122.strColSeq : 대문자를 전체 소문자로 변환한다
    = str strColSeq(str text)
    ex)
    static void strColSeqExample(Args _arg)
    {
       ;

       print strColSeq("AbcDEaBCde");
       pause;
    }
123.strDel : 문자열중에서 특정 부분을 삭제한다.
    = str strDel(str _text, int _position, int _number)
    _text - The text string to delete characters from.
    _position - The position at which to start deleting characters.
   _number - The number of characters to delete (including the character at position).
             A minus in front of _number indicates that the (_number-1) characters before the character at _position are to be removed along with the character at _position.
   ex)
   // Returns the text string AEFGH.
   strDel("ABCDEFGH",2,3);

   // Returns the text string ABCGH.
   strDel("ABCDEFGH",4,3);
124.strFind : 주어진 스트링에서 찾아야 하는 캐릭터의 첫번째 발견지를 찾아낸다.
    = int strFind(str _text, str _characters, int _position, int _number)
    _number - The number of characters to search, beginning at the character at _position.
               If the number is negative, the system searches the number of characters backward from the specified position.
    ex)
    // Returns the value 4 (the position where "D" was found).
    strFind("ABCDEFGHIJ","KHD",1,10);

    // Returns the value 8 (the position where "H" was found).
    strFind("ABCDEFGHIJ","KHD",10,-10);
125.strFmt : 포맷관련
126.strIns : 택스트 부분에 대해서 다른 택스트를 입력한다.
    = str strIns(str _text1, str _text2, int _position)
    ex)
    // Returns the text string ABCDEFGH.
    strIns("ABFGH","CDE",3);
127.strKeep : 해당 문자열에서 지정된 문자를 제외한 모든 부분을 삭제한다.
    = str strKeep(str _text1, str _text2)
    ex)
    // Returns the text string BBCDDB.
    strKeep("ABBCDDEFGHB","BCD");
128.strLen : 문자열 길이를 반환한다.
    ex)
    // Returns the value 10.
    strLen("ABCDEFGHIJ");
129.strLine : 새 열(\n)을 사용함으로써 만들어진 여러개의 라인의 스트링값으로부터 한줄한줄을 반환한다.
    ex)
    static void strLineExample(Args _arg)
    {
        str mytxt = "first-line\nsecond-line\nlast-line";
        ;

    // Prints "second-line".
        print strLine(mytxt,1);

    // Prints "last-line".
        print strLine(mytxt,2);
        pause;
     }
130.strLTrim : 택스트로 부터 앞부분의 빈공간을 없앤다.
    ex)
    // Returns the text string "ABC-DEFG".
    strLTrim("   ABC-DEFG");
131.strLwr : noinformation
132.strNFind : 지정된 문자가 아닌 문자가 있는 문자열의 자리를 숫자로 반환한다.
    = int strNFind( str _text, str _characters, int _position, int _number)
    ex)
    // Returns the value 5 (the position of "E").
    strNFind("ABCDEFGHIJ","ABCDHIJ",1,10);

    // Returns the value 6 (the position of "H").
    strNFind("CDEFGHIJ","CDEFGIJ",10,-10);
133.strPoke : 스트링 값의 일부분에 다른 택스트 스트링을 덮어 쓰다.
134.strPrompt : 콜론(:)과 스페이스가 있는 주기가 첨가된 입력스트링값을 길이보다 더 긴 스트링이 나타난다.
    = str strPrompt(str _string, _int len)
    ex)
    static void JobStrPromptDemo(Args _args)
    {
        // Printed string is "[abc..: ]"
        print "[", strPrompt("abc", 7), "]";
        pause;
    }
135.strRem : 스트링에서 없애고자 하는 문자를 삭제한다.
    = str strRem(str text1, str text2)
    ex)
    // Returns the text string "BDFBDF".
    strRem("ABCDEFGABCDEFG","ACEG");
136.strRep : 스트링의 문자를 반복한다.
    = str strRep(str _text, str _number)
    ex)
    static void strRepExample(Args _arg)
    {
        str strL;
        ;
        strL = strRep("AB",6);
        print strL;
        pause;
    }
137.strRTrim : 스트링에서 모든 빈공간을 삭제한다.
    = str strRTrim(str _text)
    ex)
    // Returns the string ABC-DEFG-.
    strRTrim("ABC-DEFG-    ");
138.strScan : 어떠한 스트링에 대해 다른 스트링의 값을 조회한다.
    = int strScan( str _text1, str _text2, int _position, int _number)
    text1 - The text string to search.
    _text2 - The string to find.
   _position - The position at which the search should start.
   _number - The number of characters that should be searched.
             If there is a minus in front of _number, the system searches the number of characters in reverse order from the specified position.
    ex)
    // Returns the value 4 (the position of text string "DEF").
    strScan("ABCDEFGHIJ","DEF",1,10);

    // Returns the value 3 (the position of text string "CDE").
    strScan ("ABCDEFGHIJ","CDE",10,-10);
139.strUpr : noinformation
130.subStr :
    = str subStr(str _text, int _position, int _number)
    ex)
    // Returns the text string CDEFG.
    subStr("ABCDEFGHIJ",3,5);

    // Returns the text string DEFG.
    subStr("ABCDEFGHIJ",7,-4);
141.syd : 일정한 기간동안 자산의 가치하락을 계산한다.
    = real syd(real _price, real _scrap, real _life, int _period)
      _price - The purchase price of the asset.
      _scrap - The scrap value of the asset.
      _life - The expected life of the asset (the number of periods).
      _period - The period for which to calculate depreciation.
    ex)
    // Returns the value 2666.67 (for the 1st period).
    syd(10000,2000,5,1);
    // Returns the value 2133.33 (for the 2nd period).
    syd(10000,2000,5,2);
    // Returns the value 1600.00 (for the 3rd period).
    syd(10000,2000,5,3);
    // Returns the value 1066.67 (for the 4th period).
    syd(10000,2000,5,4);
    // Returns the value 533.33 (for 5th - and final- period).
    syd(10000,2000,5,5);
142.systemDateGet : 현재 날짜 반환한다.
143.systemDateSet : 시스템의 일자를 수정한다.
    ex)
    static void systemDateSetExample(Args _arg)
    {
        date d = today();
        ;
        d = systemDateSet(d);
        print d;
        pause;
    }
144.tableCollectionStr : noinformation
145.tableFieldGroupStr : 특정한 필드 이름을 보여주는 스트링을 반환한다.
    = str tableFieldGroupStr(int table, str fieldgroupname)
      table - The table that contains the field group.
      fieldgroupname - The name of the field group to return.
    ex)
   static void tableFieldGroupStrExample(Args _arg)
    {
        str MyTxt;
        ;
        MyTxt = tableFieldGroupStr(Address, ContactInfo);
    }
146.tableId2Name : 테이블 이름이 포함된 스트링이 반환된다.
    = str tableId2Name(int _tableid)
    ex)
    static void tableId2NameExample(Args _arg)
    {
        str s;
        tableid id;
        ;

        // Get the ID for table name Address.
        id = tableName2Id("Address");
        print "ID for table name Address is " + int2Str(id);
        // Get the name from the table ID.
        s = tableId2Name(id);
        print "Name for table ID " + int2Str(id) + " is " + s;
        // Get the printable name from the table ID.
        s = tableId2PName(id);
        print "Printable name for table ID " + int2Str(id) + " is " + s;
        pause;
    }
147.tableId2PName : 프린트 할 테이블 명을 가진 스트링을 반환한다.
    = str tableId2PName(int _fieldid)
    ex)
    static void tableId2NameExample(Args _arg)
    {
        str s;
        tableid id;
        ;

        // Get the ID for table name Address.
        id = tableName2Id("Address");
        print "ID for table name Address is " + int2Str(id);
        // Get the name from the table ID.
        s = tableId2Name(id);
        print "Name for table ID " + int2Str(id) + " is " + s;
        // Get the printable name from the table ID.
        s = tableId2PName(id);
        print "Printable name for table ID " + int2Str(id) + " is " + s;
        pause;
    }
148.tableMethodStr : noinformation
149.tableName2Id : 테이블의 id를 반환한다.
    = int tableName2Id(str _name)
    ex)
    static void tableName2IdExample(Args _arg)
    {
        str s;
        tableid id;
        ;

        // Get the ID for the Address table name.
        id = tableName2Id("Address");
        print "ID for the Address table name is " + int2Str(id);
        // Get the name from the table ID.
        s = tableId2Name(id);
        print "Name for table ID " + int2Str(id) + " is " + s;
        // Get the printable name from the table ID.
        s = tableId2PName(id);
        print "Printable name for table ID " + int2Str(id) + " is " + s;
        pause;
    }
140.tableNum : noinformation
151.tablePName : noinformation
152.tableStaticMethodStr : noinformation
153.tableStr : noinformation
154.tan
155.tanh
156.term : noinformation
157.time2Str :
    = str time2Str( int _time, int _separator, int _timeFormat)
    _time - The number of seconds since midnight.
    _separator - The characters to be used as separators in the text string. Possible values follow:
      0 ? regional settings for the operating system
      1 ? colon (:)
      2 ? point (.)
      3 ? space ( )
      4 ? comma (,)
      5 ? forward slash (/)
    _timeFormat - Determines whether a 12-hour or 24-hour clock is used. Possible values follow:
      0 ? regional settings for the operating system
      1 ? 24-hour clock (15:00:00)
      2 ? 12-hour clock (3:00:00pm)
    ex)
    // Returns the text string 05:01:38.
    time2Str(18098,1,1);
    // Returns the text string 05:01:38 am.
    time2Str(18098,1,2);
    // Returns the text string 05 01 39.
    time2Str(18099,3,1);
    // Returns the text string 05/01/39 am.
    time2Str(18099,5,2);
158.timeNow : 현시간 값을 반환한다. 자정부터 시작해서 밀리세컨으로 반환된다.
    = int timeNow()
    ex)
    static void timeNowExample(Args _arg)
    {
        int i;
        ;
        i = timeNow();
        print "The number of seconds since midnight is " + int2Str(i);
        pause;
    }
159.today : 시스템상의 현재일자를 반환한다.
    ex)
    static void todayExample(Args _arg)
    {
        date d;
        ;
        d = today();
        print "Today's date is " + date2Str(d, 0, 2, -1, 2, -1, 4);
        pause;
    }
150.trunc : 소수점 부분을 삭제한다(버림)
    = real trunc(real _decimal)
    ex)
    static void truncExample(Args _arg)
    {
        real r;
        ;
        r = trunc(2.7147);
        print strFmt("r = %1",  r);
        pause;
    }
161.typeId : noinformation
162.typeOf : 속성의 타입을 반환한다.
    = enum typeOf(anytype _object)
    ex)
    if(typeof(conpeek(c, 1)) != Types::Container ||
            conlen(conpeek(c, 1)) != 1 ||
            typeof(conpeek(conpeek(c, 1), 1)) != Types::Integer)
    {
        // More code.
    }
163.uint2Str : noinformation
164.ultimoYr : noinformation
165.varStr : noinformation
166.webActionItemStr
167.webDisplayContentItemStr
168.webFormStr
169.webletItemStr
170.webMenuStr
171.webOutputContentItemStr
172.webpageDefStr
173.webReportStr
174.websiteDefStr
175.websiteTempStr
176.webStaticFileStr
177.webUrlItemStr
178.webWebpartStr
179.wkOfYr : 해당일자가 들어간 년도의 해당 주를 계산한다.
    = int wkOfYr(date _date)
    ex)
    // Returns the value 6: the 6th week of 1998.
    wkOfYr(02\02\1998);
180.year : 해당일의 년도를 반환한다.
    = int year(date _date)
    ex)
    // Returns the value 1998.
    year(02\02\1998);

 

/*---------------------------------쿼리문 넣고 실행하는 부분 ----------------------------------*/
//http://msdn2.microsoft.com/en-us/library/aa636695.aspx
--UserConnection Class
/*
The UserConnection class represents an auxiliary connection to the SQL database, based on the same login properties as the main connection.

 Copy Code
class UserConnection extends Connection
*/

static void example()
{
    UserConnection Con = new UserConnection();
    Statement Stmt = Con.createStatement();
    ResultSet R = Stmt.executeQuery('SELECT VALUE FROM SQLSYSTEMVARIABLES');
    while ( R.next() )
    {
        print R.getString(1);
    }
}

Dynamics AX Readiness: Learning Paths

Posted by Alvin You
2014. 10. 27. 23:45 Dynamics AX

MS Dynamics AX ERP에 대한 Learning Paths는 아래와 같이 다양합니다.

첨부한 파일을 열어 원하는 Role을 선택 후 항목을 클릭하면 해당 Learning Path에 대한 설명 및 관련 링크들을 볼 수 있습니다.

  • Technology Consultant에 대한 Learning Path

DynamicsAXLearningPath.pdf

 

Tutorials of the Dynamics AX Sample Code

Posted by Alvin You
2014. 10. 26. 22:34 Dynamics AX

어떤 언어를 시작할 때 많은 예제 실습을 해 보는 것과 남들이 작성한 샘플 코드를 보며 클래스, 함수 그리고 그 언어에서 사용되는 다양한 코드들을 보고 따라 해 보는 것은 매우 중요하다고 생각됩니다.

친절하게도 Dynamics AX의 X++ 언어는 다양한 Tutorial Classes, Forms를 제공하고 있어 처음 X++언어를 배우는 초보자에게 도움을 주고 있습니다.

AOT의 Classes, Forms 노드에 있는 Tutorial_로 시작되는 항목들을 참고해 보세요. 개발에 많은 도움을 받을 수 있으실 겁니다.

 

Dynamics AX '7' 코드네임 "Rainier" 발표

Posted by Alvin You
2014. 10. 26. 22:17 Dynamics AX

이번 AX User Group Summit에서 Dynamics AX '7'에 대한 일반인 공개가 이루어진 것 같습니다.

2015년에 발표될 AX 7의 모습은 어떨까요?

아래 기사문에서도 강조하고 있지만,Browser based라는 표현과 mobile clients across many device platform 내용이 매력있어 보입니다.

 

웹 브라우져 지원과 다양한 모바일 플랫폼 지원이 되면 지금까지 데스크탑 환경에만 의존했던 사용자 환경을 이제는 웹브라우만 있으면 어디서나 접속해 ERP 작업을 진행할 수 있기 때문에 더욱 업무 효율성은 뛰어나지고 시시시각각 의사 결정을 해야 하는 비지니스 환경에 많은 도움을 줄 수 있지 않을까란 생각을 해 봅니다.

 

그리고, 지속적으로 MS에서 밀고있는 Azure 환경에서 운영이 가능하도록 한다는 두번째 내용을 통해서 점점 기업 환경이 Azure 환경으로 옮겨 가는 것을 볼 수 있는 것 같습니다.

아직까지는 ERP시스템을 Azure와 같은 환경보다는 On Premise를 추구하는 국내 기업들에게 어떤 영향을 줄 지 궁금해집니다.

 

 

 

Microsoft Dynamics AX '7' on track as a major "technology release"

 

Though the next major release of Microsoft Dynamics AX has been out of public view, progress continues on AX ‘7', a.k.a. "Rainier", according to Microsoft Dynamics AX R&D general manager Dan Brown.

"We've been quiet on AX ‘7'," acknowledged Brown today at AXUG Summit. But the team has been working toward delivering the next major release in 2015, he said. They have also been working to deliver new cumulative updates for AX 2012 R3 on an ongoing six month cadence.

 

AX ‘7' will be primarily a technology release, according to Brown, with two primary focus areas. The first goal is the updated user experience that is browser based and that supports mobile clients across many device platforms. The second goal is to support AX in production on Azure to be managed by partners.

 

 

https://www.linkedin.com/pulse/article/20141016122427-21591781-microsoft-dynamics-ax-7?trk=object-title

 

Dynamics AX 2012 R3 DEMO VM(Virtual Machine) 성능 향상 팁

Posted by Alvin You
2014. 10. 14. 11:52 Dynamics AX

Dynamics AX 2012 R3 Demo Virtual Machine의 성능 향상을 위해서는 아래와 같이 SQL Server의 Maximum server memory를 설정된 2GB -> 16GB로 설정하면 성능 향상이 많이 된다고 합니다.

 

원문 내용 : http://daxdilip.blogspot.kr/2014/10/tip-to-improve-performance-while.html