我有一种荒谬的情况(别怪我,这是第三方软件),我需要有两个引用(Erp.Contracts.BO.Quote和Erp.Contracts.BO.SalesOrder),但是在两个程序集中都定义了Erp.Tablesets.QuoteQtyRow类型!
如何在代码中使用它们?
void Absurdity()
{
Erp.Tablesets.QuoteQtyRow qqr_Quote = null; //<-- my intention is to use the one from the quote assembly here.
Erp.Tablesets.QuoteQtyRow qqr_SO = null; //<-- my intention is to use the one from the sales order assembly here.
}编译器抛出一个错误。即:“类型'Erp.Tablesets.QuoteQtyRow‘存在于两个程序集中。”
编辑:限制:
发布于 2017-01-20 10:39:55
Epicor ERP使用一个工具将数据库中的表组合到数据集中,然后再将on放在业务对象中。此业务对象在契约程序集中进行描述,但正如您在使用引用同一个表的两个业务对象时发现的那样,您会遇到问题。这通常是SerialNumber表中的一个问题。
我从您的笔记中了解到,您正在Epicor ERP应用程序中提供方法指令或数据指令中的方法体代码。这是在客户端输入并存储在数据库中,但在部署\服务器\BPM\Source\BO文件夹中在服务器上生成代码,并被编译到部署\服务器\定制\BO文件夹中。
无法在BPM设计器的“执行自定义代码”工作流项中为引用的DLL指定别名。修整是在SCR 148549中要求的。没有可供您编辑的项目文件,即使每次启用和禁用BPM,它也将被重新生成。
但是,如果使用“调用外部方法”工作流项,则可以构建自己的dll,并将其放入Deployment\定制\Externals文件夹中。要做到这一点:
Ice.ContextBoundBase<Erp.ErpContext>继承public MyQuote (Erp.ErpContext ctx) : base(ctx){ }的构造函数您不能完全复制和粘贴“执行自定义代码”主体,因为您将无法访问tt行变量,这些变量都在ds中。
https://stackoverflow.com/questions/41746577
复制相似问题