SAP Business One

今天我们不说技术也不说设计,我们闲聊一下SAP B1,其实对于我这样一个门外汉来说,B1我是完全不懂的,但最近由于工作上的需要,也出于自己的一些兴趣,硬着头皮看了一些有关的B1的文档,总结出以下几点:

B1 SDK

B1的随行安装包中提供有能够进行二次开发的SDK工具包,提供的API主要分布在两个Namespace,分别为SAPbouiCOM和SAPbobsCOM,它们提供的功能分别是:

  1. SAPbouiCOM用来操作B1 Client UI,也就是我们平常所说的UI API,通过该命名空间下的API接口能够做什么呢?
    1. 粗略看来,在该命名空间下提供了丰富的interop接口,日常工作状态下,人类用鼠标可以操作的,似乎在该命名空间下都有相应的接口,比如打开一个PO,删除一行line,修改某个Comments等
    2. 此外除了可以操纵B1 Client以外,在该命名空间下,还内建了一些B1标准UI Controls,它们可以用来创建与B1 Client风格一致的UI界面
  2. 那么SAPbobsCOM,也即DI API,它又是用来干什么的呢?
    1. 我们知道任何UI的操作,最终是去操作data,无论是direct还是rpc,DI API封装了能够支撑B1 Client运行的所有业务逻辑,实际上,我们通过UI API去操作B1 Client,在其背后便是UI API去调用DI API来执行。
    2. 这便给了我们足够的能力,通过DI API来构建不同的服务或应用程序,比如在B1安装包中所附带的B1 Integration Framework,它对于B1的支持便是利用DI API来实现。

演示

下面通过一个简单的例子,来加深大家对于B1 SDK的理解。它使用了UI API来创建与B1 Client风格一致的用户界面,如果想自由定制,可以阅读我的另一篇文章(B1i Daily Issue Resolver它通过DI API创建了一个与B1 Client有相似功能的登陆界面),似乎如果你有足够的耐心,你能够通过DI API构建另一个B1

  1. 添加一个新的子菜单FormX到MRP菜单中
  2. 点击Foo Button,弹出消息对话框
  3. 将自定义的数据集显示在内建的Grid控件中
  4. 将B1的数据显示在内建的Matrix控件中(注意这里查询出的数据结果是由B1 API来实现,而并非直接通过SQL,即是说API提供了一定的条件筛选和查询能力,自然如果产生无法满足需求的状况,它也提供了备选策略:直接操作SQL的能力)
  5. 点击每行前的箭头,打开相应的Order

Leave a Reply

Your email address will not be published. Required fields are marked *