これは少し漠然とした質問かもしれませんが、実際の生活はこのようなものです。
当社はSAPシステムを展開しています。彼らが現在Webサービスを実行していることを知っているので、C#で実行できることがわかっているすべてのことに対して.NETを同時に展開できます。
SAP-.NET統合の過程での落とし穴は何ですか?SAPのロジックは「標準」プログラミングとはかなり異なることを理解していますが、ASP.NETで記述されるように、「ビジネス」部分と「プレゼンテーション」部分を分離したいと考えています。
これは少し漠然とした質問かもしれませんが、実際の生活はこのようなものです。
当社はSAPシステムを展開しています。彼らが現在Webサービスを実行していることを知っているので、C#で実行できることがわかっているすべてのことに対して.NETを同時に展開できます。
SAP-.NET統合の過程での落とし穴は何ですか?SAPのロジックは「標準」プログラミングとはかなり異なることを理解していますが、ASP.NETで記述されるように、「ビジネス」部分と「プレゼンテーション」部分を分離したいと考えています。
私はSAPABAPおよびMicrosoft.NETの開発者です。私は、SAPと、Microsoft.NET、Java、RoRなどの他のプラットフォームを使用してソフトウェアを作成する会社で働いています。
あなたの会社はSAPを展開しているので、RFCまたはWebサービスを使用できるECC6.0バックエンドを入手する必要があります。
SAPには、Business API(別名BAPI)と呼ばれる標準APIがあります。BAPIトランザクションで試すことができます。
1つの良い例はこれです: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を実装する場合、RFCが有効に設定されているSAP内の任意のBAPIまたはその他の関数を呼び出すことができます。
古いバージョンでは、標準のSAP RFC APIを使用するか、SAP.NETコネクタやSAPJavaコネクタなどのSAPウィザードコネクタを使用できました。
新しいバージョンでは、SAPは、ABAP用のITS、BSP、WebDynproなどのサービスを実行するために、そのABAPアプリケーションサーバーにWebサーバーを接続しています。このWebサーバーを使用すると、RFCをWebサービスとして公開できます。
しかし、私の日常の経験からすると、SAP R/3のパフォーマンスはそれほど良くありません。2つの数値を合計して結果を返す関数への単純なRFC呼び出しは、サーバーの可用性に応じて1〜5秒かかる場合があります。
これは主に、SAP.NETコネクタまたはWebサービスを使用しているときに発生する多くのレベルの抽象化が原因で発生します。
したがって、システムを毎日のトランザクション(eコマースアプリケーションから毎日5.000の顧客を作成する、オンラインで約40.000の販売を行うなど)で利用できるようにする場合は、Javaコネクタを使用するか、RFCAPIを実装することを強くお勧めします。あなた自身の。
それ以外の場合、アプリが内部で使用される人が少ない場合は、完全にGTD指向であるという理由だけで、SAP.NETConnectorまたはWebServicesを使用することをお勧めします。
お役に立てれば!
(以下のリンクにhttp://プレフィックスを追加してください。リンクを投稿するのに十分な評判がないためです:()
RFC API:help.sap.com/printdocu/core/Print46c/EN/data/pdf/BCFESDE4/BCFESDE4.pdf
SAP .NETコネクタ:help.sap.com/saphelp_nw04/Helpdata/EN/e9/23c80d66d08c4c8c044a3ea11ca90f/content.htm
SAP Javaコネクタ:help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm
ABAPを使用したWebサービスの作成:wiki.sdn.sap.com/wiki/display/stage/Service+Enabling+in+ABAP
アプリが SAP ポータルの統合を必要とせず、クライアントが SAP のようなルック アンド フィールを要求しない場合は、好きなプレゼンテーション レイヤーを自由に使用できます。
SAP 統合を行うことを選択した場合、SAP ツールを使用する必要があるというスタンスには同意しません。NWDI や古い NWDS のような製品は明らかな頭痛の種です (ここでは詳しく説明しません。長い話です)。100% 専任の SAP インテグレーターでない場合、Webdynpro を学ぶように人々をトレーニングすることは、私の意見ではお金の価値がありません。
一般的なアドバイスはほとんどありません。
コメントへ の返信: まず第一に、レポートは SAP で行うべきではないと思います。レポートは本質的に醜いものであり、樹液はそれらに優れています。ユーザーの主な作業ではない小さなアプリケーションを考えていました。経費の報告、管理者による購入依頼の承認など。上記のロードブロッキングのどこで資料を見つけることができますか。できません。最初に頭でそれらを見つける必要があります。
それと戦わないでください。SAPを実装している場合は、SAPを実装するだけです。それと戦うのに苦労する価値がないことはほぼ保証されています。
SAPには、GUI(BSP、WDJ、WDA)が気に入らない場合にプレゼンテーションを処理するためのツールがあります。あなたが本当に本当にそうしなければならないのでない限り、私はサードパーティのフロントエンドを実装しようとはしません。
.NET を使用する理由をよく考えてください。
私は数多くの .NET / SAP の実装に携わってきました。必要なものを ABAP で記述するだけではなく、.NET を使用することはお勧めしませんが、一方では、かなりうまく機能させることができます。上で述べたように、小さなトランザクションでは Web サービスのオーバーヘッドが高くなる可能性があるため、かなりの量のデータが一度に渡される (つまり、画面全体がいっぱいになる) ように設定してみてください。これは、一度に少量のものを渡して状態を処理する代わりに、SAP がトランザクション全体またはそれ以上を内部的に処理できることも意味します。ビジネス ロジックは SAP 内に実装する必要があり、.NET 部分はデータの表示/交換のみを処理します。
Expenses インターフェースについて述べたことを 2 番目に取り上げます。ほとんどの人は、別のベンダーのソフトウェアを使用して外部でこれを行っていますが、費用データをインポートするために高度なリアルタイム .NET を使用する必要はありません。1 日に 1 回インポートする単純なバッチ ジョブを使用するだけです。最も単純な方法が最善の場合もあります。
私の会社も同じ状況です。.NETを利用したSAPとの統合プロジェクトを実施中
.NET から直接 BAPI 関数を実行することで、Web サービスを回避できます。今日、標準の RFC 関数を BAPI 関数としても公開できることを知りました。
私たちはtheobald ソフトウェアのERP Connectを使用して bapi/RFC 機能を直接実行しています。
これは無料ではありませんが、開発者の生活をずっと楽にしてくれると思います。
私は theobald ソフトウェアとは一切関係がないことに注意してください。