这可能是一个模糊的问题,但现实生活就是这样。
我们公司正在推出SAP系统。我知道他们现在做Web服务,所以我们可以同时推出.NET的东西,我们知道我们可以用C#做什么。
SAP-.NET集成方面的缺陷是什么?我理解SAP的逻辑与“标准”编程完全不同,但我希望将“业务”部分与“演示”部分分开,用ASP.NET编写。
答案 0 :(得分:12)
我是SAP ABAP和Microsoft.NET开发人员。我在一家使用SAP和其他平台创建软件的公司工作,例如Microsoft.NET,Java和RoR。
由于您的公司正在推出SAP,您应该获得ECC 6.0后端,它可以使用RFC或Web服务。
SAP有一个称为Business API(即BAPI)的标准API。您可以在BAPI交易中试用它们。
这是一个很好的例子:BAPI_USER_GET_DETAIL
。
此BAPI负责返回有关任何SAP用户的信息。 BAPI只需要一个名为USERNAME的输入参数,并返回包含用户信息的不同数据结构,例如电子邮件,名字和姓氏,用户配置文件等。
在ABAP内部,调用此BAPI的模板应该是这样的:
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
USERNAME = sy-UNAME
* IMPORTING
* LOGONDATA =
* DEFAULTS =
ADDRESS = L_IT_RETURN1
* COMPANY =
* SNC =
* REF_USER =
* ALIAS =
* UCLASS =
* LASTMODIFIED =
* ISLOCKED =
TABLES
* PARAMETER =
* PROFILES =
* ACTIVITYGROUPS =
RETURN = L_IT_RETURN
ADDTEL = i_Tel
* ADDFAX =
* ADDTTX =
* ADDTLX =
* ADDSMTP =
* ADDRML =
* ADDX400 =
* ADDRFC =
* ADDPRT =
* ADDSSF =
* ADDURI =
* ADDPAG =
* ADDCOMREM =
* PARAMETER1 =
* GROUPS =
* UCLASSSYS =
* EXTIDHEAD =
* EXTIDPART =
* SYSTEMS =.
现在,每个BAPI都启用了RFC(远程函数调用)。这意味着,如果在应用程序中实现SAP RFC API,则可以调用SAP中设置为启用RFC的任何BAPI或其他功能。
在旧版本中,您可以使用标准SAP RFC API,或使用SAP向导连接器,如SAP .NET Connector或SAP Java Connector。
在较新的版本中,SAP已将Web服务器附加到其ABAP应用服务器,以便为ABAP运行ITS,BSP和WebDynpro等服务。通过使用此Web服务器,您可以将任何RFC发布为WebService。
但是,从我的日常经验来看,SAP R / 3的表现并不是那么好。对函数进行简单的RFC调用,对两个数字求和并返回结果可能需要1到5秒,具体取决于服务器的可用性。
这种情况的发生主要是因为当您使用SAP .NET Connector或WebServices时,会出现多种抽象级别。
因此,如果您希望您的系统可用于日常交易(例如每天从您的电子商务应用程序创建5.000个客户,或在线销售约40.000个),我强烈建议您使用Java Connector,或者实施您自己的RFC API。
否则,如果您的应用程序将由更少的人在内部使用,我建议您使用SAP .NET Connector或WebServices,因为它们完全是面向GTD的。
希望这有帮助!
(请将http://前缀添加到下面的链接中,因为我没有足够的声望来发布链接:()
RFC API:help.sap.com/printdocu/core/Print46c/EN/data/pdf/BCFESDE4/BCFESDE4.pdf
SAP .NET Connector:help.sap.com/saphelp_nw04/Helpdata/EN/e9/23c80d66d08c4c8c044a3ea11ca90f/content.htm
SAP Java Connector:help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm
使用ABAP创建Web服务:wiki.sdn.sap.com/wiki/display/stage/Service+Enabling+in+ABAP
答案 1 :(得分:6)
如果您的应用程序不需要SAP Portal集成,并且您的客户不要求具有类似SAP的外观,那么您可以自由使用您喜欢的任何表示层。
我不同意您选择进行SAP集成时必须使用sap工具的立场。像NWDI或旧NWDS这样的产品是一个令人头疼的问题(我在这里不会详细说明,这是一个长篇故事),如果你不是100%专注的sap集成商,培训人们学习Webdynpro在我看来不值钱。
答案 2 :(得分:3)
不要打架。如果您正在实施SAP,只需实施SAP。它几乎可以保证不值得为它而战。
如果您不喜欢GUI(BSP,WDJ,WDA),SAP可以使用工具来处理演示文稿。我不会尝试实施第三方前端,除非你真的必须这样做。
答案 3 :(得分:3)
很少有一般建议。
对评论的回应: 首先,我不认为报告不应该在闷棍中完成。报告本质上是丑陋的,而狡猾的诡计。我在考虑一些不是用户主要工作的应用程序。就像报告费用,管理层批准购买请求等等。 关于哪里可以找到上述路障的材料。你不能。你必须首先找到它们。
答案 4 :(得分:2)
充分考虑使用.NET背后的原因:
答案 5 :(得分:1)
我参与了许多.NET / SAP实施。一方面,我建议不要使用.NET而不是在ABAP中编写你想要的东西,但另一方面,它可以使其工作得相当好。如上所述,对于小型交易,Web服务的开销可能很高,因此请尝试进行设置,以便一次传递大量数据(即整个屏幕已满)。这样做也意味着SAP可以在内部处理整个事务或更多事务,而不是一次传递少量内容并且必须处理状态。业务逻辑应该在SAP中实现,.NET部分仅处理数据的表示/交换。
我将对费用界面的说法进行说明。大多数人都在外部使用其他供应商的软件,但您不必使用花哨的实时.NET内容来导入费用数据,只需要一个简单的批处理作业,每天导入一次。有时最简单的方法是最好的。
答案 6 :(得分:1)
在我的公司,我们处于同样的境地。我们正在使用.NET
与SAP进行集成项目您可以通过直接从.NET执行BAPI函数来避免避免Web服务。今天我了解到标准RFC函数也可以作为BAPI函数公开。
我们正在使用theobald软件中的 ERP Connect 来直接执行bapi / RFC功能,因为在本次讨论中没有提及,我认为您可能会从中受益。
它不是免费的,但我认为它会让开发人员的生活更轻松。
请注意我与theobald软件没有任何关联。