我是为客户构建应用程序的顾问。客户机负责构建我的应用程序将要使用的端点。客户端使用的是基于abap的解决方案和Netweaver——这两个软件我没有任何经验。
客户端以XML和JSON两种格式提供端点响应。我一直在与他们合作,以改善他们的终端,并遇到了很多问题,他们声称我所要求的是不可能的。我正在寻找一些输入-客户是正确的还是他们的工作技能不足?
我的一些请求:
- 将日期值格式化为特定格式。客户端坚持他们在日期响应中可以拥有的唯一格式是"/date (1430502144000+0000)/"
- SAP存储布尔值为"X"(true)或"(假)。我要求将值转换为"true";或";false"(不带引号)。显然这是不可能的。
- 我已经要求从端点返回一个项目的所有详细信息"getItemDetail"-客户端坚持要获得项目详细信息,我需要调用5个不同的端点,因为"对于每个数组类型的响应,目前需要进行不同的调用。这就是为文本、部件等的数组设置单独的结束点的原因。"
一般来说,客户端似乎不知道如何构建或自定义响应,并且似乎他们的端点是存储在SAP中的对象结构的1:1转储。他们的数据似乎在SAP中丢失了。有人能确认/否认在使用SAP和Netweaver时完全定制端点响应的能力吗?
(我似乎不能添加评论,直到我得到50声望点)
嗨captian_jim1,我正在研究类似的东西,但从桌子的另一端。从SAP,我正在为外部应用程序可以使用的端点生成XML/JSON输出。所以不用说,这绝对是可能的。在您的特殊情况下,您需要向您的SAP对等方询问以下事项:
->他们是使用现有的web服务还是根据您的需求创建新的自定义web服务?如果后者,那么他们可以重新设计并通过一个web服务发送所需的输出。他们所要做的就是与你交谈并就数据输出的模式达成一致。最后,使用现有的rfc/web服务,并在SAP中为商定的模式创建数据。一旦有了模式,就可以直接在SAP中创建等效的数据结构——甚至是复杂的数据结构——并获得它的JSON/XML输出。我假设他们的netweaver版本不是很老,并且支持XML/JSON转换。
你所要求的都是可能的。但是,为您构建抽象层并不符合您的对等方的兴趣。在他们的世界里,那是你的工作。它们提供基于SAP中的标准对象的标准服务,这意味着几乎所有东西都有多个端点。生成标准服务是一项非常小的任务,几乎任何人都可以完成。但是构建一个适合你的应用的抽象层需要完全不同的技能;因此,他们不想做这件事。
懂得设计可用服务和SAP领域模型的人很少。您需要与您的同行一起确定谁负责领域模型,然后找到一个可以实现和支持它的开发人员。这是我自己做的工作。将SAP对象/领域模型转换为应用程序特定的API/服务模型,以供非SAP开发人员使用。我与UX专家,应用程序开发人员(web, iOS/Android等)以及具有特定SAP知识的功能人员一起工作。如果你不能组建这样的团队,我相信你最好还是接受他们提供的东西。
NetWeaver 7.3包括JAXB(版本2.1)和JAXWS(版本2.0)(NW 7.1包括两者的版本2.0)。没有理由他们的web服务不能返回xs:boolean和xs:datetime,只要他们正在编写JEE5 web服务。