1

우리 중 많은 사람들이 AX 2012의 최적화 문제를 겪고 있습니다. 대부분의 경우 프로세스 관련 코드의 최적화 문제는 보고서에서 다른 많은 방법을 사용하는 것처럼 해결할 수 없습니다.AX 2012의 멀티 스레딩 X ++

사례 : 한 번의 클릭으로 AX 2012에서 여러 판매 주문 확인을 수행해야하는 경우가있었습니다. 해당 판매 주문을 확인하면 코드 관행을 따르고 코딩 접근법을 최대한 최적화 한 후 약간 긴 프로세스 인 '사용자 지정'프로세스를 수행해야합니다. 그래서 멀티 스레딩을 통해 이런 종류의 시나리오를 처리하는 방법에 대한 질문이 있습니다

+0

누군가가 1 분 이내에 자신의 대답을하면 질문이되지 않습니다. – DAXaholic

+2

@DAXaholic 사실, 자기 대답은 허용되며 심지어 권장됩니다. https://stackoverflow.com/help/self-answer –

+0

아, 그걸 몰랐습니다. 이상한 작은 조각 그러나 그것은 단지 나의 의견이다. 그 지적을위한 Thx! – DAXaholic

답변

0

Ax2012에서 Thread 클래스를 사용하여 멀티 스레딩을 사용하는 기능에 대해 알게 된 후 다음과 같이 구현하려고했습니다.

먼저 모든 논리를 클래스의 정적 메서드로 구현해야합니다. 그 정적 메소드는 그 메소드의 호출을 작성해야 클래스의 정적 메소드를 생성 한 후 매개 변수로 예컨대

public static void process(thread _thread) 
{ 
    FG_ConfirmationEngine confirmationEngine = new FG_ConfirmationEngine(); 
    salesTable    salesTable; 
    container    _con;; 
    _con = _thread.getInputParm(); 
    info(conPeek(_thread.getInputParm(),1)); 
    salesTable = salesTable::find(conPeek(_thread.getInputParm(),1)); 
    confirmationEngine.parmSalesTable(salesTable); 
    confirmationEngine.run();// in this method all of my confirmation pre and post logic exist 
} 

을 스레드 클래스를 포함해야합니다. 주 : Thread 클래스를 통해 Args, Object를 보낼 수 없습니다. 당신은 thread.setInputParm() 메서드를 통해 _thread.setInputParm ([salestable.salesid]) 메서드와 같은 컨테이너 형태로만 매개 변수를 보낼 수 있습니다.

호출 :

salesline     salesline; 
ExecutePermission   perm; 
Thread      myThread; 
ttsBegin; 

perm = new ExecutePermission(); 

if (!perm) 
return; 

perm.assert(); 

while select salesid from salestable 
    where salestable.FG_BookingReferenceID == "BRF-0001" 
{ 
    myThread = new Thread(); 
    myThread.setInputParm([salestable.SalesId]); 
    if (myThread) 
    { 
     myThread.removeOnComplete(true); 
     myThread.run(classnum(FG_ConfirmationEngine), staticMethodStr(FG_ConfirmationEngine,process)); 
    } 
} 

CodeAccessPermission::revertAssert(); 

그것이 도움이되기를 바랍니다. 해피 DAXing

4

Introduction to the SysOperation Framework는 예 계산 (AX2012 코드를 paralellize하는 방법을 구체적인 예제를 제공합니다 (Tutorial_RunBaseBatch AOT에서 클래스를 참조하십시오) 소수).

또한, 방법 최고의 경기 "스레드"일괄 작업에 대한 분석을 제공 Batch Parallelism in AX part I, II, IIIIV라는 게시물의 우수한 일련의 프로그래머.