点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我们正在使用SAP B1 9.2 PL08,我们在vba(excel)中完成了一个宏,以使用DI API(sapbobscom)与sap进行交互。 效果很好。 现在,我想使用TimeSheet对象注册用户的时间。 我在网上找到了一个示例( https://blogs.sap.com/2017/08/01/time-sheet-in-sap-business-one-sdk /),并尝试将其翻译成vba,但没有成功。
以下是我的代码:
将oCompanyService设置为SAPbobsCOM.CompanyService 将oTimeSheetService设置为SAPbobsCOM.ProjectManagementTimeSheetService 将oTimeSheet设置为SAPbobsCOM.PM_TimeSheetData 将oTimeSheetLine设置为SAPbobsCOM.PM_TimeSheetLineData 将oTimeSheetParam设置为SAPbobsCOM.PM_TimeSheetParams 昏暗的开始时间作为日期 结束时间为日期 昏暗的休息时间作为日期 Dim NonBillableTime作为日期 连接SQLSAPOpen 设置oCompanyService = oCompanySAP.GetCompanyService 设置oTimeSheetService = oCompanyService.GetBusinessService(ProjectManagementTimeSheetService) 设置oTimeSheet = oTimeSheetService.GetDataInterface(pmtssPM_TimeSheetData) 设置oTimeSheetLine = oTimeSheetService.GetDataInterface(pmtssPM_TimeSheetLineData) 设置oTimeSheetParam = oTimeSheetService.GetDataInterface(pmtssPM_TimeSheetParams) oTimeSheet.TimeSheetType = SAPbobsCOM.TimeSheetTypeEnum.tsh_Employee oTimeSheet.UserId = 2 StartTime = VBA.DateAdd(" h",7,VBA.Int(Now))'开始7.00 EndTime = VBA.DateAdd(" n",90,StartTime)'相加90分钟 breakTime = VBA.DateAdd(" n",45,VBA.Int(Now))'暂停45分钟 NonBillableTime = VBA.DateAdd(" n",15,VBA.Int(Now)) oTimeSheetLine.Date =现在 oTimeSheetLine.StartTime =开始时间 oTimeSheetLine.EndTime =结束时间 oTimeSheetLine.Break = breakTime oTimeSheetLine.NonBillableTime = NonBillableTime oTimeSheetLine.ActivityType = 1 oTimeSheetLine.CostCenter ="" oTimeSheetLine.FinancialProject =" 090" oTimeSheetLine = oTimeSheet.PM_TimeSheetLineDataCollection.Add() oTimeSheetParam = oTimeSheetService.AddTimeSheet(oTimeSheet) 连接SQLSAP关闭
我们的程序在'oTimeSheetLine = oTimeSheet.PM_TimeSheetLineDataCollection.Add()'处停止。
能帮我吗?
亲切的问候
代替第一个Set oTimesheetLine语句,将您的内容放在最后,除了使用" Set"关键字之外:
还要确保在调用AddTimeSheet时使用" Set"关键字:
谢谢Dan,它起到了魅力;-)
一周热门 更多>