亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SAP ERP系統(tǒng)如何使用中間數(shù)據(jù)庫與其它系統(tǒng)進行數(shù)據(jù)交互?

admin
2024年3月13日 17:3 本文熱度 1937
SAP系統(tǒng)與外部系統(tǒng)之間進行數(shù)據(jù)交換和通信的接口方式有很多種,比如常用的接口技術有RFC、BAPI、ALE、Webservice、RESTful、中間數(shù)據(jù)庫等等,不同的接口形式具有不同的特點和適用場景,可以根據(jù)具體需求選擇合適的接口形式來實現(xiàn)系統(tǒng)間的數(shù)據(jù)交互。
前面文章中已介紹Webservice和RESTful的接口技術在SAP中應用,具體文章連接如下,本文重點介紹下中間數(shù)據(jù)庫作為系統(tǒng)間交互的接口方式的應用。
SAP軟件如何發(fā)布和調(diào)用RESTful接口

SAP軟件Webservice接口技術應用

中間數(shù)據(jù)庫作為系統(tǒng)間交互數(shù)據(jù)的基本機制

一般會部署一個專門的數(shù)據(jù)平臺,不同業(yè)務系統(tǒng)不會直接將要傳輸?shù)臄?shù)據(jù)傳輸給其它業(yè)務系統(tǒng),而是會傳輸給中間的數(shù)據(jù)庫,要使用數(shù)據(jù)的業(yè)務系統(tǒng),要主動去中間數(shù)據(jù)庫取自己需要的數(shù)據(jù)(如下圖所示
比如:系統(tǒng)A會將數(shù)據(jù)寫入至中間數(shù)據(jù)庫,B系統(tǒng)或系統(tǒng)C如果需要用到系統(tǒng)A的數(shù)據(jù),它會到中間數(shù)據(jù)庫去取需要的數(shù)據(jù),反之亦然。

使用中間數(shù)據(jù)庫作為系統(tǒng)間交互數(shù)據(jù)的優(yōu)缺點分析

優(yōu)點:
1、實現(xiàn)比較簡單,對現(xiàn)有其它系統(tǒng)學習成本要求比較低,基本不需要考慮其它系統(tǒng)如何與SAP進行連接。
2、外部系統(tǒng)和SAP系統(tǒng)相對獨立,接口不涉及雙方內(nèi)部的結(jié)構,數(shù)據(jù)的安全性得到保證。
缺點:
1、因為數(shù)據(jù)發(fā)送方的系統(tǒng)在給中間數(shù)據(jù)庫寫入數(shù)據(jù)時,數(shù)據(jù)接收方的系統(tǒng)并不知道,只能靠定時任務來獲取最新數(shù)據(jù),實時性不夠高。
2、多系統(tǒng)集中地使用中間數(shù)據(jù)庫,意味著如果這個數(shù)據(jù)庫出現(xiàn)問題,就有可能大面積影響相關系統(tǒng)的正常運轉(zhuǎn)。

SAP ERP系統(tǒng)如何使用中間數(shù)據(jù)庫

SAP連接外部數(shù)據(jù)庫通常是要在DBCO中進行外部數(shù)據(jù)源配置。
SAP系統(tǒng)利用DBOC建立與中間數(shù)據(jù)庫的關聯(lián),利用SQL或者TSQL直接對數(shù)據(jù)庫進行操作,其它系統(tǒng)也對該中間表進行操作。

SAP ERP系統(tǒng)連接中間數(shù)據(jù)庫的配置

1、配置連接數(shù)據(jù)庫
執(zhí)行事務碼DBCO,點新條目按鈕,填寫如下圖所示信息
DB連接:輸入連接的名稱
DBMS:MySQL選擇MSS(目前SAP中可以配置數(shù)據(jù)源的數(shù)據(jù)庫有如下)
用戶名:輸入用戶名
數(shù)據(jù)庫口令:兩次輸入數(shù)據(jù)庫密碼
連接信息:這里的連接MySQL的連接字符串,指定主機IP、數(shù)據(jù)庫名即可,其它數(shù)據(jù)庫參數(shù)名略有不同。
永久:勾上
2、測試是否聯(lián)通
事務代碼SE38 
程序名 :ADBC_TEST_CONNECTION
輸入連接名稱運行 
上圖表示可以連通中間數(shù)據(jù)庫。

下面通過一個例子來介紹下SAP如何對中間數(shù)據(jù)庫的數(shù)據(jù)進行插入/更新/刪除等操作。

業(yè)務需求如下:
某公司需要將SAP系統(tǒng)創(chuàng)建的采購申請(PR)推送至BPM(業(yè)務流程管理系統(tǒng))進行審批,該公司使用中間數(shù)據(jù)庫的方式進行數(shù)據(jù)交互。
大體業(yè)務流程如下:
1.SAP系統(tǒng)取未審批的采購申請(PR)數(shù)據(jù),通過定時任務推送到中間數(shù)據(jù)庫表。
2.BPM系統(tǒng)定時從中間數(shù)據(jù)庫表取SAP推送過來的PR的新數(shù)據(jù),生成審批流程。
3.BPM生成審批流后和審批完成都會更新中間數(shù)據(jù)庫的PR狀態(tài)。
4. SAP修改PR時候需要取中間數(shù)據(jù)庫中該采購申請PR的狀態(tài),如果PR在審批中的狀態(tài),不能進行修改。
5. BPM審批完成后調(diào)用接口自動審批SAP中采購申請。
實現(xiàn)上面需求的主要關鍵代碼示例

1.SAP取出未審批的PR數(shù)據(jù)

TYPES : BEGIN OF TY_DATA,

BANFN   TYPE BANFN,  "采購申請?zhí)?/p>

BNFPO   TYPE BNFPO,  "采購申請項目

MATNR   TYPE MATNR,  "物料編碼

TXZ01   TYPE TXZ01,  "物料描述

MENGE   TYPE MENGE,  "數(shù)量

MEINS   TYPE MEINS,  "數(shù)量單位

STATUS(1)  TYPE C,   "狀態(tài)

END OF ty_data.

DATA : GT_EBAN TYPE TABLE OF TY_DATA,

GS_EBAN TYPE TY_DATA.

DATA :V_EXC_REF TYPE REF TO CX_SY_NATIVE_SQL_ERROR,

V_ERRTXT TYPE STRING,

V_SQLERR_REF TYPE REF TO CX_SQL_EXCEPTION.


DATA:Z_CON_NAME TYPE CHAR40 ."VALUE 'BPM782'.


Z_CON_NAME  = 'BPM80'. "連接名稱       


CLEAR: GS_EBAN,GT_EBAN.

SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_EBAN

FROM EBAN

      WHERE WERKS = '171O'AND FRGKZ = 'X' AND  LOEKZ <> 'X'.

2.連接中間數(shù)據(jù)庫

*&---------------------------------------------------------------------*

*&     FRM_CONNECT_EXT_DB .

*&---------------------------------------------------------------------*

*      1.連接外部數(shù)據(jù)庫

*----------------------------------------------------------------------*

FORM FRM_CONNECT_EXT_DB .


  TRY.

      " 連接

      EXEC SQL.

        CONNECT TO :Z_CON_NAME   "連接名稱

      ENDEXEC.

    CATCH CX_SY_NATIVE_SQL_ERROR INTO V_EXC_REF.

      V_ERRTXT = V_EXC_REF->GET_TEXT( ).

    CATCH CX_SQL_EXCEPTION INTO V_SQLERR_REF.

      IF V_SQLERR_REF->DB_ERROR = 'X'.

        V_ERRTXT = V_SQLERR_REF->SQL_MESSAGE.

      ELSE.

        V_ERRTXT = V_SQLERR_REF->INTERNAL_ERROR.

      ENDIF.

  ENDTRY.

  IF V_ERRTXT IS NOT  INITIAL.

    E_STATUS = 'E'.

    E_MESSAGE =  V_ERRTXT.

  ELSE.

    E_STATUS = 'S'.

    E_MESSAGE =  '連接成功!'.

  ENDIF.


ENDFORM.

3.將取出PR數(shù)據(jù)推送至中間數(shù)據(jù)庫

*&---------------------------------------------------------------------*

*&   FRM_INSERT_EXT_DB

*&---------------------------------------------------------------------*

*  3.插入多條數(shù)據(jù)到外部數(shù)據(jù)庫

*----------------------------------------------------------------------*

FORM FRM_INSERT_EXT_DB .


  TRY.

    LOOP AT GT_EBAN INTO GS_EBAN.

      EXEC SQL.

        INSERT INTO ZPR_EBAN_DATA

        ( BANFN,

          BNFPO,

          MATNR,

          TXZ01,

          MENGE,

          MEINS,

          STATUS )


         VALUES

        ( :GS_EBAN-BANFN,

          :GS_EBAN-BNFPO,

          :GS_EBAN-MATNR,

          :GS_EBAN-TXZ01,

          :GS_EBAN-MENGE,

          :GS_EBAN-MEINS,

          :GS_EBAN-STATUS

        )

      ENDEXEC.


      IF SY-SUBRC = 0.

        EXEC SQL.

          COMMIT

        ENDEXEC.

      ELSE.

        EXEC SQL.

          ROLLBACK

        ENDEXEC.

      ENDIF.


    ENDLOOP.


  ENDTRY.


ENDFORM.

4.更新中間數(shù)據(jù)庫的值

*&---------------------------------------------------------------------*

*&   FRM_UPDATE_EXT_DB

*&---------------------------------------------------------------------*

*  4.更新外部數(shù)據(jù)庫

*----------------------------------------------------------------------*

FORM FRM_UPDATE_EXT_DB USING P_VBELN P_BNFPO .


  TRY.

      EXEC SQL.

        UPDATE ZPR_EBAN_DATA SET STATUS  =  1 WHERE BANFN = :P_BANFN AND BNFPO = :P_BNFPO    "更新表ZPR_EBAN_DATA中PR的狀態(tài)

      ENDEXEC.

      COMMIT WORK AND WAIT.

    CATCH CX_SY_NATIVE_SQL_ERROR INTO EXC_REF.

      ERROR_TEXT = EXC_REF->GET_TEXT( ).

      EXEC SQL.

        DISCONNECT :L_CON_NAME

      ENDEXEC.

      MESSAGE E006(Z001) WITH ERROR_TEXT.

  ENDTRY.


ENDFORM.                    "FRM_UPDATE_EXT_DB

5.查詢中間數(shù)據(jù)庫到SAP程序內(nèi)表

*&---------------------------------------------------------------------*

*&   FRM_SELECT_EXT_DB_ALL

*&---------------------------------------------------------------------*

*   5.1.查詢數(shù)據(jù),查詢多條數(shù)據(jù)到內(nèi)表

*----------------------------------------------------------------------*


FORM FRM_SELECT_EXT_DB_ALL .


  TRY.

    EXEC SQL PERFORMING FRM_APPEND_DATA.

      SELECT  BANFN,

              BNFPO,

              MATNR,

              TXZ01,

              MENGE,

              MEINS,

              STATUS

       INTO :GS_EBAN

       FROM ZPR_EBAN_DATA

    ENDEXEC.

  ENDTRY.


ENDFORM.                    "FRM_SELECT_EXT_DB_ALL


*&---------------------------------------------------------------------*

*&   FRM_APPEND_DATA.

*&---------------------------------------------------------------------*

*   5.2.查詢數(shù)據(jù),查詢多條數(shù)據(jù)到內(nèi)表

*----------------------------------------------------------------------*

FORM FRM_APPEND_DATA .

  APPEND GS_EBAN TO GT_EBAN.

  CLEAR  GS_EBAN.

ENDFORM.                    "FRM_APPEND_DATA

6.刪除中間數(shù)據(jù)庫

*&---------------------------------------------------------------------*

*&   FRM_APPEND_DATA.

*&---------------------------------------------------------------------*

*   6.刪除外部數(shù)據(jù)庫表數(shù)據(jù)

*----------------------------------------------------------------------*

FORM FRM_DELETE_DB .


  TRY.

      EXEC SQL.

        DELETE ZPR_EBAN_DATA.

      ENDEXEC.

      IF SY-SUBRC = 0.

        EXEC SQL.

          COMMIT

        ENDEXEC.

      ELSE.

        EXEC SQL.

          ROLLBACK

        ENDEXEC.

      ENDIF.

    CATCH CX_SY_NATIVE_SQL_ERROR INTO V_EXC_REF.

      V_ERRTXT = V_EXC_REF->GET_TEXT( ).

    CATCH CX_SQL_EXCEPTION INTO V_SQLERR_REF.

      IF V_SQLERR_REF->DB_ERROR = 'X'.

        V_ERRTXT = V_SQLERR_REF->SQL_MESSAGE.

      ELSE.

        V_ERRTXT = V_SQLERR_REF->INTERNAL_ERROR.

      ENDIF.

  ENDTRY.


ENDFORM.                    "FRM_DELETE_DB

7.斷開與中間數(shù)據(jù)庫連接

*&---------------------------------------------------------------------*

*&   FRM_DISCONNECT_EXT_DB .

*&---------------------------------------------------------------------*

*    7.關閉連接

*----------------------------------------------------------------------*

FORM FRM_DISCONNECT_EXT_DB .

  EXEC SQL.

    DISCONNECT :l_CON_NAME

  ENDEXEC.

ENDFORM.                    "FRM_DISCONNECT_EXT_DB


該文章在 2024/3/14 9:58:17 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved