我们计划将Magento与Microsoft AX 2009(产品和客户)集成.由于我是C#开发人员,我很困惑如何开始.在探索时我发现了最好的集成方式是通过WCF.但我想知道
我无法在网上找到一个好的资源.所以任何人都可以建议一个好的资源,或者哪个是最好的方法.
我修改了InventTable表单,以便用户可以根据默认订单设置设置表单中的"已停止"状态过滤项目.根据两个复选框的值,他们会获得"可购买"商品,"可销售"商品,所有商品或已阻止商品的列表,以供销售或购买.
我在代码中添加了InventItemSalesSetup和InventItemPurchSetup数据源,并在用户选中或取消选中复选框时启用或禁用它们.
除非禁用其中一个数据源,否则一切正常.然后"高级过滤/排序"选项停止工作.我收到错误:"数据源未启用".
该错误来自SysQueryForm表单的方法"saveCueEnabled".当它打电话:
if (!CueRun::canSaveQueryAsCue(this.args().caller()))
return false;
Run Code Online (Sandbox Code Playgroud)
哪个电话:
static boolean canSaveQueryAsCue(QueryRun qr)
{
int numOfDataSources, i;
QueryBuildDataSource ds;
Query q;
Common cursor;
;
if (!qr)
return false;
q = qr.query();
if (!q)
return false;
numOfDataSources = q.dataSourceCount();
for(i = 1; i <= numOfDataSources; i++)
{
ds = q.dataSourceNo(i);
if(ds.dynalinkCount() > 0)
return false;
// Check if it is temp
cursor = qr.getNo(i);
if (cursor.dataSource() && cursor.isTmp())
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
当它获取查询中的数据源数量时,"dataSourceCount"方法也会返回带有已禁用数据源的计数,当它获取循环中已禁用数据源的QueryBuildDataSource时,会得到一个空DS并且当它崩溃时崩溃它检查它是否是临时表.
我已经解决了在"saveCueEnabled"代码上添加额外if的问题,但我想知道是否有一种方法可以启用/禁用数据源而不会出现此错误.
我希望我能很好地解释自己,谢谢!
我试图Winapi::findFirstFile在服务器上运行时遇到问题.我已经尝试在类WinapiServer上复制方法,并改变一些行,如下所示:
server static container findFirstFile(str filename)
{
InteropPermission interopPerm;
Binary data;
DLL _winApiDLL;
DLLFunction _findFirstFile;
;
interopPerm = new InteropPermission(InteropKind::DllInterop);
interopPerm.assert();
data = new Binary(592); // size of WIN32_FIND_DATA when sizeof(TCHAR)==2
_winApiDLL = new DLL(#KernelDLL);
_findFirstFile = new DLLFunction(_winApiDLL, 'FindFirstFileW');
_findFirstFile.returns(ExtTypes::DWord);
_findFirstFile.arg(ExtTypes::WString,ExtTypes::Pointer);
return [_findFirstFile.call(filename, data),data.wString(#offset44)];
}
Run Code Online (Sandbox Code Playgroud)
但现在我有另一种错误 库DLL'KERNEL32'上的'FindFirstFileW'函数抛出一个异常.
这是因为我正在x64服务器上执行该方法.有想法解决这个问题的人吗?
我正在调查AX 2012中新代表和事件订阅模式的功能.
目前,我希望检测特定字段何时被修改,例如何时SalesTable.SalesStatus更改为SalesStatus::Invoiced.
我创建了以下事件后处理程序并附加到SalesTable.Update方法;
public static void SalesTable_UpdatePosteventHandler(XppPrePostArgs _args)
{
Info("Sales Update Event Handler");
}
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以得到SalesTable从_args,但我怎么能检测场发生了变化?我真的可以使用前后版本,这让我觉得我在这里订阅了错误的事件.
如何在Axapta/Dynamics Ax中创建主/详细信息表单,其中包含主网格和详细网格,在主网格中选择记录会相应地更改详细网格的内容?
现在我正在公开AX 2012的服务,如何配置它以将其公开为REST?
我必须在MAC Xcode中使用此服务进行IOS集成,我相信如果它是REST而不是SOAP,它很容易.
有没有人有一些示例代码或可以指示我可以修改哪个类,以向Dynamics AX(DAX)中的警报消息添加更多信息.我想例如在更改供应商名称时添加供应商编号和用户ID.
编辑:有人告诉我,在设置警报时必须在描述面板中输入HTML代码.如果这是真的,任何人都有更多的信息,如果你可以分享这些信息将是很好的.
提前致谢.