2011-03-11 50 views
0
static void Job47(Args _args) 
{ 
str         path,stx; 
TreeNodeIterator      iter; 
TreeNode        treeNode, treeNodeToRelease; 
Map         dictMenuDisplay; 
FormName        formName; 
MenuItemName       menuItemName; 
container       conMenu; 
int         i,n; 
    ; 

    for (n=1;n<=1;n++) 
    { 
    info::messageWinAddLine(strfmt("iter:%1",n)); 
    path   ="Menu Items\\Display"; 
    dictMenuDisplay = new Map(Types::String,Types::Container); 
    treenode  = Treenode::findNode(path); 
    iter   = treenode.AOTiterator(); 
    treenode  = iter.next(); 

    while (treenode) 
     { 
     formName  = treenode.AOTgetProperty("Object"); 
     menuItemName = treenode.AOTname(); 

     if (dictMenuDisplay.exists(formName)) 
     { 
     conMenu = dictMenuDisplay.lookup(formName); 
     conMenu = conIns(conMenu,conlen(conMenu)+1,menuItemName); 
     dictMenuDisplay.insert(formName,conMenu); 
     } 

     else 
     dictMenuDisplay.insert(formName,[menuItemName]); 
     treenode = iter.next(); 
    } 
} 
} 

當我運行上面的工作批量它顯示了以下錯誤「服務器端人格化(運行方式)會議試圖調用可用的方法只有客戶端處理」,並點到行 info :: messageWinAddLine(strfmt(「iter:%1」,n)); 我曾嘗試在類RunbaseBatch中的方法runsImpersonated()中放置false。但似乎也沒有工作。無法批量運行作業

我是AX2009的新手,所以不真正理解在客戶端或服務器中運行作業的含義,請帶領我走向正確的方向。

回答

1

首先,刪除對RunBaseBatch類的修改。該方法意味着在任何擴展該類的類中都會被覆蓋(繼承)。查看「Tutorial_RunbaseBatch」類來了解如何實現RunBaseBatch模式。

現在,還可以考慮當您運行x ++代碼時,它可以運行在客戶端或服務器端。您可以爲允許代碼運行的哪一方鎖定方法。 GLobal :: info方法可以運行客戶端和服務器端。 當你激活一個批處理來運行一個類(而不是作業),一個擴展RunBaseBatch的類時,那麼批處理框架將根據你的設置運行類服務器端。你的代碼應該獨立於客戶端,這意味着不能有任何需要訪問客戶端的代碼行。 WinAPI :: moveFile就是一個例子。

希望這會有所幫助。

+0

嗨Skaue感謝您的快速響應。你能解釋一下運行作業或者服務器端或者客戶端的優點嗎?我怎麼知道哪行代碼會訪問服務器端或客戶端。在我的工作中,info :: messageWinAddLine(strfmt(「iter:%1」,n));它在客戶端嗎? – piku 2011-03-11 14:08:34

+0

當您在客戶端中交互式運行作業時,顯式地從客戶端運行它。您可以激活斷點,調試器將在代碼運行時顯示客戶端或服務器端。他們通過在調用堆棧中有一個圖標來顯示這一點。 擁有一個可以批量運行的類可能是一個優點,如果這是客戶需要的功能。能夠將數據導出爲夜間批量作業是正常的。這一切都取決於你的班級是什麼。 – Skaue 2011-03-11 14:12:04

+0

雖然愚蠢的問題..我怎麼知道我的班級是什麼?你能解釋一下嗎?在我的工作中,info :: messageWinAddLine(strfmt(「iter:%1」,n));它在客戶端還是服務器?感謝快速反應。 – piku 2011-03-11 14:18:31