gpt4 book ai didi

epicorerp - Epicor 10 - 更改当前 session 的植物

转载 作者:行者123 更新时间:2023-12-02 22:00:32 26 4
gpt4 key购买 nike

我们开始使用 Epicor 10,并且希望利用 DLL/服务与 Epicor 进行通信。这样我们就可以从自定义应用程序添加/更新信息。到目前为止,一切进展顺利,但当我们想要为特定工厂添加一个工作时,我们遇到了一个问题。它似乎总是想保存到用户上次通过客户端应用程序登录的工厂。

例如 - 假设用户的最后一个植物是植物“A”。我希望我的自定义应用程序登录 Epicor(创建 session )并为工厂“B”创建作业。我可以很好地添加作业,但它会将其放在工厂“A”而不是“B”下,即使我在创建 session 时登录到工厂“B”。

我们正在调用 SetPlant 并传入我们想要的正确植物,但 Epicor 似乎总是覆盖将其另存为的植物。还有其他人遇到过这种情况吗?我们也向公司提出了这个问题。 SetCompany 似乎根本不起作用。

更多信息: - 我们正在使用 net.tcp:///ERP/ICE/Lib/SessionMod.svc 服务。 - 我们可以使用 Login() 正常登录并获取 SessionId - 即使在 Session 对象上调用 GetValues() 也表示我们已登录到工厂“B”,即使 Epicor 仍将使用工厂“A”。

我们能想到的唯一解决办法(我们不想这样做)是按公司和工厂划分应用程序用户,这样我们就可以保证数据保存到哪家公司和工厂。这会起作用,但并不理想。

有人对如何让系统接受新公司或工厂有任何建议吗?

最佳答案

正如 user463132 指出的,您可以使用临时 session 上下文包装服务连接:

using (CallContext.Current.TemporarySessionCreator.SetCompanyID("YourCompanyHere").SetPlantID("B").Create())
{
}

Haso Keric Article Reference

我还要补充一点,如果您使用 UI 适配器,您可以简单地从 oTrans 对象实例中获取 session ,并在此处设置控制 oTrans 如何与数据交互的属性。

Ice.Core.Session s1 = (Ice.Core.Session)this.oTrans.Session;
s1.CompanyID = "YourCompanyHere";
s1.PlantID = "B";

关于epicorerp - Epicor 10 - 更改当前 session 的植物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42115411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com