是否可以使用SAP B1的DI SDK访问PPSONE数据?
问题描述:
我尝试编写一个软件,这样生产可以很容易地确认材料项目。 现在,当我想通过密钥获取生产订单时,它无法找到采购订单。 如果我与商业伙伴做同样的事情,它就会起作用。 我们为SAP B1使用PPS One插件,那么有问题吗?是不是可以从这个插件访问数据或我有什么改变?是否可以使用SAP B1的DI SDK访问PPSONE数据?
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宝显示为工单,但在分贝coresponding表@PPSONE_PRDORDERS。但是,如果我从SAPbobsCOM.ProductionOrders更改为SAPbobsCOM.WorkOrders,则它不起作用。
答
如果我明白了,如果至少它在PO表中创建一条记录,那么插件会做什么并不重要,如果要查找PO的记录,则必须查询OWOR表,要使用的字段在PO的GeyByKey方法中是OWOR.DocEntry。
如果这是一个没有对象OU中的用户表可以使用对象为UserTable
UserTable oUst = (UserTable)oCompany.UserTables.Item(YOURTABLE);
if oUst.GetByKey("1") ....
如果是使用对象一个用户表,你必须寻找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)
是否插件创建标准产品订单? – Teta
@Teta我不这么认为,因为插件在数据库中有自己的表(以@PPSONE_开头)。生产订单在此表中。我希望有一种方法可以做我想做的事... –