【问题标题】:Is it possible to access the PPSONE data with the DI SDK from SAP B1?是否可以使用 SAP B1 的 DI SDK 访问 PPSONE 数据?
【发布时间】:2016-09-22 15:09:46
【问题描述】:

我尝试编写一个软件,以便生产可以轻松确认材料项目。 现在当我想通过key获取生产订单时,找不到PO。 如果我对商业伙伴做同样的事情,它会起作用。 我们为 SAP B1 使用 PPS One 插件,那么有问题吗?是否无法从此插件访问数据或我需要更改什么?

SAPbobsCOM.BusinessPartners vBP = connection.company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners);
SAPbobsCOM.ProductionOrders vPO = connection.company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductionOrders);

if(vBP.GetByKey("L22437"))
{
  WriteLogLine("Name: " + vBP.CardName); // Works, i get the Name!
}
else { WriteLogLine("No matching customer record was found!");  }

if (vPO.GetByKey(anyKey)) // tried a lot of keys, no one worked
{
  WriteLogLine(vPO.GetAsXML());
}
else { WriteLogLine("No matching production order record was found!"); }

还有一个奇怪的事情,在SAP GUI中po显示为工单,但是db中对应的表是@PPSONE_PRDORDERS。但如果我从 SAPbobsCOM.ProductionOrders 更改为 SAPbobsCOM.WorkOrders,它也不起作用。

【问题讨论】:

  • 插件是否创建标准生产订单?
  • @Teta 我不这么认为,因为插件在数据库中有自己的表(以@PPSONE_ 开头)。以及此表中的生产订单。我希望有办法做我想做的事......

标签: c# sapb1 sap-business-one-di-api


【解决方案1】:

如果我理解的话,插件做什么并不重要,如果它至少在 PO 表中创建一条记录,如果你想找到 PO 的记录,你必须查询 OWOR 表,使用的字段PO的GeyByKey方法是OWOR.DocEntry。

如果这是一个没有对象的用户表,你可以使用对象用户表

UserTable oUst = (UserTable)oCompany.UserTables.Item(YOURTABLE);
if oUst.GetByKey("1") ....

如果是带有 Object 的 UserTable,则必须寻找 GenericServices

Dim oGeneralService As SAPbobsCOM.GeneralService
Dim oGeneralData As SAPbobsCOM.GeneralData
Dim oGeneralParams As SAPbobsCOM.GeneralDataParams

Dim sCmp As SAPbobsCOM.CompanyService
sCmp = oCompany.GetCompanyService

'Get a handle to the SM_MOR UDO
oGeneralService = sCmp.GetGeneralService("SM_MOR")

'Get UDO record
oGeneralParams =    oGeneralService.GetDataInterface(SAPbobsCOM.GeneralServiceDataInterfaces.gsGeneralDataParams)
oGeneralParams.SetProperty("DocEntry", "2")
oGeneralData = oGeneralService.GetByParams(oGeneralParams)

【讨论】:

  • 但是我在 OWOR 表中没有任何条目。所以插件使用他自己的表。
  • 这就是为什么你不能使用 PO 的 geybykey。我编辑了答案
  • 这看起来是我的正确答案,应该被接受。
【解决方案2】:

您可以使用 PPS One 的 SDK。参考:C:\Program Files\SAP\SAP Business One\AddOns\PPSOne\PPSOne\X64Client\PPSOne_PPSOneSDK.dll。我不测试它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多