2011-03-11 61 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