亲爱的同事,
在这篇文章中,我想参加SAP Business One的货币汇率更新挑战。论坛上已经有两种不同的方法描述了如何使用DI API和B1IF实现这一目标。
DI API:https://blogs.sap.com/2015/05/29/updateding-exchange-rates-automatically-in-sap-business-one/
如果:https://blogs.sap.com/2015/06/23/how-to-import-exchange-rates-using-b1if/
在这篇文章中,我们将做同样的事情,但使用HANA XS作为开发管理工具和B1服务层作为数据接口。此方法适用于SAP Business One版本的HANA,因为SQL Server版本既不支持XS,也不支持ServiceLayer。完成所有步骤后,您可以使用标准HANA工具计划货币汇率更新,以定期更新汇率。此应用程序使用ECB(欧洲中央银行)web服务更新贵公司所有货币的汇率。根据公司汇率方向(直接/间接汇率)和使用欧元交叉汇率(如果当地货币不是欧元)更新汇率。公司详细信息在作业设置中传递。
如果您不想手动执行所有开发步骤,您只需从此处下载一个交付单元并将其导入到您的环境中。
要进行测试,您需要一个SAP Business One版本的HANA实例,该实例已启动并运行HANA XS。为了确保HANA XS工作正常,您可以访问以下地址:https://:43或:80
例如:https://192.168.0.1:4300(例如编号00)。如果您看到下面的图片,您可以继续,否则您需要首先使其工作
首先,我们需要创建一个新的包来执行我们的业务逻辑。让我们打开HANA Studio并选择"SAP HANA Development"透视图:
转到"Repositories"选项卡并创建一个新的工作空间(如果您想使用默认的或已经有了一个工作空间,请跳过此步骤)
我已经为我们的合作伙伴命名空间(DatatechOne)创建了一个"DONE"工作空间。
我们现在可以创建一个包了。右击您的工作区,在右键菜单中选择New->Repository Package…:
为您的包指定名称"LoadCurrencyRates",然后按"Finish"。如果您决定更改包的名称,那么您也需要更改XSJS文件中的引用,因为它在加载目标文件时具有名称依赖关系。
现在我们需要在存储库中创建一个XS项目。右击我们的LoadCurrencyRates包,选择New->XS Project:
指定相同的项目名称"LoadCurrencyRates",然后按Next。在第二步中,选择您的存储库工作区(在我的例子中,它已经完成),然后再次按"下一步"。确保您在这一步勾选了"Access objects":
然后按"Finish"将所有默认的XS项目文件添加到您的包中。现在您的包必须是这样的:
在这个包中,我们需要创建以下文件:
请注意,最好不要重命名任何文件,因为代码中有引用。
让我们从xsjslib文件开始。右键点击你的包,企业应用系统,选择:New->Other->XS JavaScript Library File->Next->File name:Performer
将下面的代码粘贴到这个文件并保存:
业务逻辑已经创建,现在我们需要创建2个XSJS文件。一个是手动测试我们的功能,另一个是使用XS作业调度器进行调度。
与XSJSLIB文件相同(文件类型不同),右键单击您的包并选择:新建->其他->XS JavaScript文件->下一步->文件名:RunTest
插入以下代码:
再次输入RunJob文件,右击你的包,淘客放单,选择:New->Other->XS JavaScript File->Next->File name:RunJob
粘贴以下内容:
创建XSJS文件,现在我们可以创建目标文件了。
ECB服务的目标:右击您的包并选择:新建->其他->XS HTTP目标配置->下一步->文件名:EcbService
将以下内容放在您的目标文件中(如果您使用代理,请更改代理部分):
ServiceLayer的目标:右击您的打包并选择:New->Other->XS HTTP Destination Configuration->Next->File name:ServiceLayer
这里我们有两个选项:可以使用HTTP调用某个负载平衡端口(如50001)或HTTPS。这将是内部通信量,因此您可以决定使用安全连接是否重要。如果您决定使用不受信任的连接,您可以跳过信任存储配置(对于ServiceLayer,您仍然需要为ECB设置它,因为不再有不受信任的连接可用)。
将以下内容放在HTTP的目标文件中(如果您使用代理,请更改代理部分):
或将以下内容放在您的目标文件中HTTPS的目标文件(如果您使用代理,请更改代理部分):
不要忘记将更改为您的IP或域名。目标文件现在完成了,我们需要创建xsjob文件来配置我们的计划。
右击您的包并选择:New->Other->XS Job Scheduler file->Next->file name:Scheduler。
在这个文件中输入以下代码并保存:
就是它。包准备好了,我们可以激活它。右键单击您的软件包并在上下文菜单中选择激活。
如果您没有看到错误,我们可以继续并设置我们的软件包。