> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SAP IDoc V1 端口（棄用）

> 使用 SAP IDoc V1 端口透過 NetWeaver RFC、Classic RFC、JCO 或 SOAP 連線方式傳送和接收 SAP IDoc 檔案。

export const SlasTab = ({siteName = "知行之桥"}) => <>
    <p><em>與配置服務級別協議 (SLA) 相關的設定。</em></p>
    <p>
      SLA 允許配置預期流程中端口傳送或接收的資料量，並設定預期達到該資料量的時間範圍。當 SLA 未達到時，{siteName} 會傳送電子郵件警告使用者，並將 SLA 標記為 <em>存在風險</em>，這意味著如果 SLA 未能儘快達到，則會被標記為 <em>已違反</em>。這讓使用者有機會介入並確定 SLA 未達到的原因，並採取適當的措施。如果在風險時間段結束時仍未達到 SLA，則會將 SLA 標記為已違反，並再次通知使用者。
    </p>
    <p>
      要定義 SLA，請啟用 <strong>預期資料量</strong>，然後點選 <strong>設定</strong> 索引標籤。
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>如果端口具有單獨的傳送和接收操作，請使用選項按鈕指定 SLA 適用的方向。</li>
      <li>在視窗的 <strong>預計至少</strong> 部分中：
        <ul>
          <li>設定預計處理的最小交易數量（交易量）</li>
          <li>使用 <strong>每個</strong> 欄位指定時間範圍</li>
          <li>指示 SLA 生效的時間。如果選擇 <strong>開始於</strong>，請填寫日期和時間欄位。</li>
          <li>勾選希望 SLA 生效的星期幾對應的核取方塊。如有必要，請使用下拉功能表選擇 <strong>每天</strong>。</li>
        </ul>
      </li>
      <li>在視窗的 <strong>將狀態設定為“有風險”</strong> 部分中，指定應將 SLA 標記為有風險的時間。
        <ul>
          <li>預設情況下，只有在違反 SLA 的情況下才會傳送通知。要更改此設定，請勾選 <strong>傳送“有風險”通知</strong>。</li>
        </ul>
      </li>
    </ul>
    <p>
      以下範例顯示了為端口配置的 SLA，該端口預計在週一至週五每天接收 1000 個檔案。如果尚未收到 1000 個檔案，則會在時間段結束前 1 小時傳送風險通知。
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      如果有必要，可以關閉 SLA 通知。這在維護視窗期間非常有用。點選導覽列上的 <strong>設定</strong>，然後跳轉到 <strong>通知 &gt; 通用通知</strong>。點選平板和鉛筆圖示進行編輯，並取消勾選 <strong>SLA 通知</strong> 設定。
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "知行之桥"}) => <>
    <p><em>與配置通知相關的設定。</em></p>
    <p>
      在執行服務級別協議 (SLA) 之前，需要設定電子郵件通知以接收通知。預設情況下，{siteNameShort} 使用 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/alerts">通知</a> 索引標籤上的全域設定。要為此端口使用其他設定，請啟用 <strong>覆蓋全域設定</strong>。
    </p>
    <p>
      預設情況下，錯誤通知處於啟用狀態，這意味著每當出現錯誤時都會傳送電子郵件。要關閉錯誤通知，請取消選中 <strong>啟用</strong> 核取方塊。
    </p>
    <p>
      輸入 <strong>主題</strong>（必填）。勾選<strong>允許在主題中使用 ArcScript</strong>，即可在<strong>主題</strong>欄位中使用 ArcScript。選中後會顯示 <strong>ArcScript 編輯器</strong>按鈕（<img src="/public/images/rest_arcscript_editor.png" alt="ArcScript 編輯器按鈕" style={{
  display: 'inline',
  verticalAlign: 'middle',
  margin: 0
}} />）。
    </p>
    <p>
      （可選）輸入以逗號分隔的<strong>收件人</strong>電子郵件地址清單。
    </p>
  </>;

export const Message = () => <>
    <p><em>訊息設定確定端口如何搜尋訊息並在處理後管理它們。</em></p>
    <p><strong>注意：</strong>以下設定已棄用，預設處於隱藏狀態。只有先前已啟用這些設定或將其配置為非預設值的端口才會顯示它們。若要保留成功處理的檔案副本，請在工作流程中右鍵單擊該端口，選擇<strong>顯示成功路徑</strong>，然後將成功路徑連線到 <a href="/26.3/self-hosted/zh/connectors/file">File 端口</a>。</p>
    <table>
      <thead>
        <tr><th>設定</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>儲存到已傳送資料夾</strong>（已棄用）</td>
          <td>將端口處理的檔案複製到 Sent 資料夾。預設停用。儲存到 Sent 資料夾中的檔案不受<a href="/26.3/self-hosted/zh/getting-started/administration/settings/encryption-at-rest">靜態加密</a>保護。</td>
        </tr>
        <tr>
          <td><strong>已傳送資料夾方案</strong>（已棄用）</td>
          <td>按所選時間間隔對 <strong>Sent</strong> 資料夾中的檔案進行分組。僅在啟用<strong>儲存到已傳送資料夾</strong>時適用。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MiscConnector = () => <>
    <p><em>特殊設定適用於特定用例。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>其他設定</strong></td>
          <td>允許在以分號分隔的清單中配置隱藏的端口設定，例如 <code>setting1=value1;setting2=value2</code>。正常的端口用例和功能不需要使用這些設定。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const Logging = () => <>
    <p><em>用於管理日誌建立和儲存的設定。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>日誌級別</strong></td>
          <td>指定要記錄在端口日誌目錄中的資訊型別：
            <ul>
              <li><b>None</b> - 不建立任何日誌。</li>
              <li><b>Error</b> - 僅當端口遇到錯誤時才建立日誌。</li>
              <li><b>Warning</b> - 僅當端口發出警告時才建立日誌。</li>
              <li><b>Info</b> - 記錄工作流程的一般資訊，包括任何錯誤和警告（如果適用）。</li>
              <li><b>Debug</b> - 記錄成功和失敗工作流程的詳細偵錯資訊。</li>
              <li><b>Trace</b> - 記錄成功和失敗工作流程的詳細跟蹤資訊。</li>
            </ul>
            <strong>請注意：</strong><strong>Debug</strong> 和 <strong>Trace</strong> 級別的日誌可能會記錄敏感資訊，包括訊息內容和 SSL 憑證。儘管連線屬性（例如密碼）被遮蔽了，但在與您的組織外部共享它們之前，請檢視此級別的日誌以避免洩漏敏感資訊。</td>
        </tr>
        <tr>
          <td><strong>日誌資料夾結構</strong></td>
          <td>指示端口根據選定的時間間隔將日誌資料夾中的檔案分組。例如，<strong>Weekly</strong> 選項指示端口每週建立一個新的子資料夾，並將該周的所有日誌儲存在該資料夾中。空白設定告訴端口將所有日誌直接儲存在日誌資料夾中。對於處理許多交易的端口，使用子資料夾有助於保持日誌的有序性並提高效能。</td>
        </tr>
        <tr>
          <td><strong>保留訊息副本</strong></td>
          <td>指示端口在日誌目錄中儲存最新訊息副本的切換。請注意，端口每個子資料夾只保留一個訊息，並且端口在再次執行時會覆蓋以前儲存的訊息。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MacrosExamples = ({extraMacros = []}) => <>
    <p>
      某些宏（例如 %Ext% 和 %ShortDate%）不需要參數，但其他宏則需要。所有帶有參數的宏都使用以下語法：<code>%Macro:argument%</code>
    </p>

    <p>以下是帶有參數的宏的一些範例：</p>

    <ul>
      <li>%Header:headername%：其中 <code>headername</code> 是訊息上訊息頭的名稱。</li>
      <li>%Header:mycustomheader% 解析為輸入訊息上設定的 <code>mycustomheader</code> 訊息頭的值。</li>
      <li>%Header:ponum% 解析為輸入訊息上設定的 <code>ponum</code> 訊息頭的值。</li>
      <li>%RegexFilename:pattern%：其中 <code>pattern</code> 是規則運算式模式。例如，<code>%RegexFilename:^([\w][A-Za-z]+)%</code> 匹配並解析為檔名中的第一個單詞，並且不區分大小寫（<code>test_file.xml</code> 解析為 <code>test</code>）。</li>
      <li>%Vault:vaultitem%：其中 <code>vaultitem</code> 是 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/global-settings-vault">vault</a> 中專案的名稱。例如，<code>%Vault:companyname%</code> 解析為儲存在保管庫中的 <code>companyname</code> 項的值。</li>
      <li>%DateFormat:format%：其中 <code>format</code> 是可接受的日期格式（有關詳細資訊，請參閱 <a href="/26.3/self-hosted/zh/scripting/value-formatters/date-formatters#sample-date-formats">範例日期格式</a>）。例如，<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code> 解析為檔案上的日期和時間戳。</li>
      {extraMacros.filter(item => item.example).map(item => <li key={`ex-${item.name}`}>{item.example}</li>)}
    </ul>

    <p>還可以建立更復雜的宏，如以下範例所示：</p>

    <ul>
      <li>將多個宏組合在一個檔名中：<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%</code></li>
      <li>包括宏之外的文字：<code>MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code></li>
      <li>在宏中包含文字：<code>%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%</code></li>
    </ul>
  </>;

export const MacrosTable = ({siteName = "知行之桥", extraMacros = []}) => <>
    <p>
      在檔案命名策略中使用宏可以提高組織效率和對資料的上下文理解。透過將宏合併到檔名中，可以動態地包含相關資訊，例如識別碼、時間戳和訊息頭資訊，從而為每個檔案提供有價值的上下文。這有助於確保檔名反映對組織重要的詳細資訊。
    </p>

    <p>{siteName} 支援這些宏，它們都使用以下語法：<code>%Macro%</code>。</p>

    <table>
      <thead>
        <tr><th>宏</th><th>描述</th></tr>
      </thead>
      <tbody>
        <tr><td>ConnectorID</td><td>替換為端口的 ConnectorID。</td></tr>
        <tr><td>ConnectorName</td><td>替換為端口名稱。可用於在檔名或路徑中包含連線名稱，例如按生成備份檔案的資料庫連線標記檔案。</td></tr>
        <tr><td>Ext</td><td>替換為端口當前正在處理的檔案的副檔名。</td></tr>
        <tr><td>Filename</td><td>替換為端口當前正在處理的檔案的檔名（包括副檔名）。</td></tr>
        <tr><td>FilenameNoExt</td><td>替換為端口當前正在處理的檔案的檔名（不帶副檔名）。</td></tr>
        <tr><td>MessageId</td><td>計算端口輸出的訊息的 MessageId。</td></tr>
        <tr><td>RegexFilename:<em>pattern</em></td><td>將規則運算式模式應用於端口當前正在處理的檔案的檔名。</td></tr>
        <tr><td>Header:<em>headername</em></td><td>替換為端口正在處理的當前訊息的目標訊息頭（<code>headername</code>）的值。</td></tr>
        <tr><td>LongDate</td><td>以常規格式計算系統的當前日期時間（例如，2024 年 1 月 24 日星期三）。</td></tr>
        <tr><td>ShortDate</td><td>以 yyyy-MM-dd 格式計算系統的當前日期時間（例如 2024-01-24）。</td></tr>
        <tr><td>DateFormat:<em>format</em></td><td>以指定格式（<code>format</code>）計算系統的當前日期時間。有關可用的日期時間格式，請參閱 <a href="/26.3/self-hosted/zh/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">範例日期格式</a>。</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>計算指定保管庫專案的值。</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const Performance = () => <>
    <p><em>與端口資源分配相關的設定。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>描述</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>最大工作執行緒數</strong></td>
          <td>此端口上處理檔案時從執行緒池中消耗的最大工作執行緒數。如果設定，則會覆蓋 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings">進階設定</a> 頁面的 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings">效能設定</a> 部分的預設設定。</td>
        </tr>
        <tr>
          <td><strong>最大檔案數</strong></td>
          <td>分配給端口的每個執行緒傳送的最大檔案數。如果設定，則會覆蓋 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings">進階設定</a> 頁面的 <a href="/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings">效能設定</a> 部分的預設設定。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const siteNameShort = "知行之橋";

export const siteName = "知行之橋";

export const extraMacros = [{
  name: "ARCKEY",
  description: "替換為外部訊息存檔的金鑰。"
}, {
  name: "CIMTYP",
  description: "替換為使用者定義的自定義擴充套件。"
}, {
  name: "CREDAT",
  description: "替換為 IDoc 的建立日期。"
}, {
  name: "CRETIM",
  description: "替換為 IDoc 的建立時間。"
}, {
  name: "DIRECT",
  description: "替換為 IDoc 的方向（指示 IDoc 是入站還是出站）。"
}, {
  name: "DOCNUM",
  description: "替換為分配給 IDoc 的唯一編號。"
}, {
  name: "DOCREL",
  description: "替換為 IDoc 的 SAP 版本號。"
}, {
  name: "EXPRSS",
  description: "替換為 EXPRSS 標誌的值。"
}, {
  name: "IDOCTYP",
  description: "替換為 IDoc 基本型別的名稱。"
}, {
  name: "MANDT",
  description: "替換為用戶端編號。"
}, {
  name: "MESCOD",
  description: "替換為訊息程式碼。"
}, {
  name: "MESFCT",
  description: "替換為訊息函式。"
}, {
  name: "MESTYP",
  description: "替換為訊息型別。"
}, {
  name: "OUTMOD",
  description: "替換為輸出模式。"
}, {
  name: "RCVLAD",
  description: "替換為接收方的邏輯地址。"
}, {
  name: "RCVPFC",
  description: "替換為接收方的合作伙伴功能。"
}, {
  name: "RCVPOR",
  description: "替換為接收方端口值。"
}, {
  name: "RCVPRN",
  description: "替換為接收方合作伙伴編號。"
}, {
  name: "RCVPRT",
  description: "替換為接收方合作伙伴型別。"
}, {
  name: "RCVSAD",
  description: "替換為接收方的地址。"
}, {
  name: "REFGRP",
  description: "替換為訊息組（例如 EDI 訊息組）。"
}, {
  name: "REFINT",
  description: "替換為傳輸檔案（例如 EDI 交換）。"
}, {
  name: "REFMES",
  description: "替換為訊息（例如 EDI 訊息）。"
}, {
  name: "SERIAL",
  description: "替換為 EDI 序列化欄位。"
}, {
  name: "SNDLAD",
  description: "替換為傳送方的邏輯地址。"
}, {
  name: "SNDPFC",
  description: "替換為傳送方的合作伙伴功能。"
}, {
  name: "SNDPOR",
  description: "替換為傳送方端口。"
}, {
  name: "SNDPRN",
  description: "替換為傳送方合作伙伴編號。"
}, {
  name: "SNDPRT",
  description: "替換為傳送方合作伙伴型別。"
}, {
  name: "SNDSAD",
  description: "替換為傳送方地址。"
}, {
  name: "STATUS",
  description: "替換為 IDoc 的狀態。"
}, {
  name: "STD",
  description: "替換為指示 EDI 標準的標誌。"
}, {
  name: "STDMES",
  description: "替換為 EDI 訊息型別。"
}, {
  name: "STDVRS",
  description: "替換為 EDI 標準、版本和釋出版本。"
}, {
  name: "TABNAM",
  description: "替換為表結構的名稱。"
}, {
  name: "TEST",
  description: "替換為測試標誌的值。"
}];

SAP IDoc 端口支援向各種 SAP 系統傳送 IDoc 檔案並從中接收 IDoc 檔案。它是一個資料容器，用於在 SAP 與能夠理解資料語法和語義的其他處理程序之間交換資訊。

## 概覽

IDoc 端口可以使用以下方法連線到 SAP：

**Windows**

* NetWeaver RFC SDK
* Classic RFC SDK
* 支援 Unicode 的 Classic RFC SDK
* SOAP（僅傳送）

**Java**

* Java Connector (JCO)
* SOAP（僅傳送）

IDoc 端口可以傳送和檢索原始 IDoc 或 IDoc XML 格式的檔案。

## 端口配置

本節包含所有可配置的端口屬性。

### 設定索引標籤

#### 主機配置

*與建立 SAP 系統連線相關的設定。*

| 設定         | 說明                                            |
| ---------- | --------------------------------------------- |
| **端口 ID**  | 端口的靜態唯一識別碼。                                   |
| **端口型別**   | 顯示端口名稱及其功能說明。                                 |
| **端口描述**   | 可選欄位，用於自由描述端口及其在工作流程中的作用。                     |
| **連線型別**   | 連線到 SAP 的方法。請參閱[建立連線](#建立連線)部分，瞭解你的方法對應的其他資訊。 |
| **SAP 主機** | 目標 SAP 系統的主機名或 IP 地址。                         |
| **系統編號**   | 用於定義目標 SAP 系統的編號。有效值為 0-99，通常應為 0。            |

#### 用戶端身分驗證

*與針對 SAP 系統進行身分驗證相關的設定。*

| 設定      | 說明                  |
| ------- | ------------------- |
| **用戶端** | 向 SAP 系統進行身分驗證的用戶端。 |
| **使用者** | 用於身分驗證的使用者名稱憑據。     |
| **密碼**  | 指定使用者的密碼。           |

#### 接收設定

*與接收 IDoc 檔案相關的設定。*

| 設定           | 說明                                    |
| ------------ | ------------------------------------- |
| **IDoc 接收器** | 端口是否應從 SAP 檢索 IDoc 檔案。                |
| **程式 ID**    | 一個用於向 SAP 系統標識 {siteNameShort} 的唯一名稱。 |
| **IDoc 格式**  | 是否以原始 IDoc 或 IDoc XML 接收檔案。           |

#### 控制記錄資訊選項

本節允許你在將 IDoc 檔案傳送到 SAP 之前覆蓋 IDoc 檔案的控制頭。當從一個 SAP 系統接收 IDoc 檔案並將其傳送到另一個 SAP 系統時，這非常有用：在這種情況下，應在不更改 IDoc 檔案資料的情況下更改控制記錄。有關詳細資訊，請參閱[向 SAP 傳送 IDocs](#向-sap-傳送-idocs)。

### 進階選項卡

#### 語言設定

*與通訊語言相關的設定。*

| 設定     | 說明                                               |
| ------ | ------------------------------------------------ |
| **語言** | 連線到 SAP 系統時使用的語言值。將其設定為 SAP 系統所用語言的 ISO 639-1 值。 |

#### 閘道器

*與透過閘道器和 SAP 通訊相關的設定。*

| 設定        | 說明                    |
| --------- | --------------------- |
| **閘道器主機** | 要透過其連線的閘道器主機名或 IP 地址。 |
| **閘道器服務** | 要使用的閘道器服務。            |

#### 登入負載平衡

*與以組方式登入 SAP 系統以啟用負載平衡相關的設定。*

| 設定        | 說明          |
| --------- | ----------- |
| **訊息伺服器** | 負載平衡器的服務名稱。 |
| **系統 ID** | 標識 SAP 系統。  |
| **登入組**   | 負載平衡時要使用的組。 |

#### 安全網路通訊 (SNC)

*與使用外部安全產品增強 SAP 連線安全性相關的設定。*

| 設定             | 說明                    |
| -------------- | --------------------- |
| **SNC 名稱**     | 發起連線的機器的 SNC 名稱。      |
| **SNC 夥伴名稱**   | 端口所連線 SAP 系統的 SNC 名稱。 |
| **SNC 保護質量等級** | SNC 產品增加的保護等級。        |
| **SNC 庫**      | 外部安全產品庫的路徑。           |

#### 進階設定

*不包含在上述類別中的設定。*

| 設定         | 說明                                                                                                                                         |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **延遲處理**   | 放置在**交易**索引標籤中的檔案的處理將延遲的時間（秒）。這是舊版設定。最佳做法是[使用 File 端口](../flows/designing-a-flow#interacting-with-the-local-file-system)管理本地檔案系統，而不是使用此設定。 |
| **重新整理範本** | 啟用後，端口會在發生解析錯誤時嘗試更新其用於解析的範本。端口會連線 SAP 系統並查詢相應範本來執行更新。                                                                                      |

#### 訊息

<Message />

#### 日誌

<Logging />

#### 其他設定

<MiscConnector />

### 自動化索引標籤

#### 自動化設定

*與端口自動處理檔案相關的設定。*

| 設定         | 說明                |
| ---------- | ----------------- |
| **傳送**     | 到達端口的檔案是否自動傳送。    |
| **重試間隔**   | 傳送失敗後再次嘗試傳送之前的時間。 |
| **最大嘗試次數** | 傳送失敗後重試的最大次數。     |

#### 效能

<Performance />

### 警示索引標籤

<AlertsTab />

### SLA 索引標籤

<SlasTab />

## 建立連線

### 使用 NetWeaver RFC SDK

必須將 NetWeaver RFC SDK 中的以下庫放入 {siteNameShort} 的 `www\bin\x64` 資料夾（32 位作業系統上為 `www\bin\x86`）：

* sapnwrfc.dll
* icudt30.dll
* icuin30.dll
* icuuc30.dll
* libicudecnumber.dll
* libsapucum.dll

<Note>
  - 根據安裝的 SAP RFC SDK 版本，.dll 名稱可能不同。上面的範例適用於 3.0 版本。

  - 需要將 `sapgw00` 服務新增到列出的服務中，NetWeaver SDK 連線才能在用戶端機器上工作。可以將其新增到 `C:\Windows\System32\drivers\etc\services` 中的 services 檔案。
</Note>

### 使用 Classic RFC SDK

非 Unicode 庫除 librfc32.dll 外不需要其他內容。將 librfc32.dll 放入 {siteNameShort} 的 `www\bin\x64` 資料夾（32 位作業系統上為 `www\bin\x86`）。

<Note>這些庫同時提供 x86 和 x64 版本，因此必須使用與處理程序相同的平臺。如果應用程式在 64 位 Windows 上執行，則該處理程序為 64 位。</Note>

### 使用支援 Unicode 的 Classic RFC SDK

必須將 SAP RFC SDK 中的以下庫放入 {siteNameShort} 的 `www\bin\x64` 資料夾（32 位作業系統上為 `www\bin\x86`）：

* librfc32u.dll
* icudt30.dll
* icuin30.dll
* icuuc30.dll

<Note>
  - 根據安裝的 SAP RFC SDK 版本，.dll 名稱可能不同。上面的範例適用於 3.0 版本。

  - 這些庫同時提供 x86 和 x64 版本，因此必須使用與處理程序相同的平臺。如果應用程式在 64 位 Windows 上執行，則該處理程序為 64 位。
</Note>

### 使用 Java Connector

要使用 Java 端口，請將 sapjco3.jar 新增到 Java servlet 容器的 `lib` 資料夾中。

### 使用 SOAP

SOAP 只能用於向 SAP *傳送* IDoc。必須使用其他連線型別才能從 SAP *接收* IDoc。

<Note>這需要在 SAP 系統上啟用 SOAP 連線。</Note>

### 服務配置

除了上述依賴項外，還必須將以下服務新增到 `%WINDIR%\system32\drivers\etc\services`；如果系統執行 Linux 或 Mac OS X，則新增到 `/etc/services`。如果機器上已安裝 SAP NetWeaver，則無需進一步操作。

| 服務名稱    | 端口號/協議   |
| ------- | -------- |
| sapdp00 | 3200/tcp |
| sapdp01 | 3201/tcp |
| sapdp02 | 3202/tcp |
| sapdp03 | 3203/tcp |
| sapdp04 | 3204/tcp |
| sapdp05 | 3205/tcp |
| sapdp06 | 3206/tcp |
| sapdp07 | 3207/tcp |
| sapdp08 | 3208/tcp |
| sapdp09 | 3209/tcp |
| sapdp10 | 3210/tcp |
| sapdp11 | 3211/tcp |
| sapdp12 | 3212/tcp |
| sapdp13 | 3213/tcp |
| sapdp14 | 3214/tcp |
| sapdp15 | 3215/tcp |
| sapdp16 | 3216/tcp |
| sapdp17 | 3217/tcp |
| sapdp18 | 3218/tcp |
| sapdp19 | 3219/tcp |
| sapdp20 | 3220/tcp |
| sapdp21 | 3221/tcp |
| sapdp22 | 3222/tcp |
| sapdp23 | 3223/tcp |
| sapdp24 | 3224/tcp |
| sapdp25 | 3225/tcp |
| sapdp26 | 3226/tcp |
| sapdp27 | 3227/tcp |
| sapdp28 | 3228/tcp |
| sapdp29 | 3229/tcp |
| sapdp30 | 3230/tcp |
| sapdp31 | 3231/tcp |
| sapdp32 | 3232/tcp |
| sapdp33 | 3233/tcp |
| sapdp34 | 3234/tcp |
| sapdp35 | 3235/tcp |
| sapdp36 | 3236/tcp |
| sapdp37 | 3237/tcp |
| sapdp38 | 3238/tcp |
| sapdp39 | 3239/tcp |
| sapdp40 | 3240/tcp |
| sapdp41 | 3241/tcp |
| sapdp42 | 3242/tcp |
| sapdp43 | 3243/tcp |
| sapdp44 | 3244/tcp |
| sapdp45 | 3245/tcp |
| sapdp46 | 3246/tcp |
| sapdp47 | 3247/tcp |
| sapdp48 | 3248/tcp |
| sapdp49 | 3249/tcp |
| sapdp50 | 3250/tcp |
| sapdp51 | 3251/tcp |
| sapdp52 | 3252/tcp |
| sapdp53 | 3253/tcp |
| sapdp54 | 3254/tcp |
| sapdp55 | 3255/tcp |
| sapdp56 | 3256/tcp |
| sapdp57 | 3257/tcp |
| sapdp58 | 3258/tcp |
| sapdp59 | 3259/tcp |
| sapdp60 | 3260/tcp |
| sapdp61 | 3261/tcp |
| sapdp62 | 3262/tcp |
| sapdp63 | 3263/tcp |
| sapdp64 | 3264/tcp |
| sapdp65 | 3265/tcp |
| sapdp66 | 3266/tcp |
| sapdp67 | 3267/tcp |
| sapdp68 | 3268/tcp |
| sapdp69 | 3269/tcp |
| sapdp70 | 3270/tcp |
| sapdp71 | 3271/tcp |
| sapdp72 | 3272/tcp |
| sapdp73 | 3273/tcp |
| sapdp74 | 3274/tcp |
| sapdp75 | 3275/tcp |
| sapdp76 | 3276/tcp |
| sapdp77 | 3277/tcp |
| sapdp78 | 3278/tcp |
| sapdp79 | 3279/tcp |
| sapdp80 | 3280/tcp |
| sapdp81 | 3281/tcp |
| sapdp82 | 3282/tcp |
| sapdp83 | 3283/tcp |
| sapdp84 | 3284/tcp |
| sapdp85 | 3285/tcp |
| sapdp86 | 3286/tcp |
| sapdp87 | 3287/tcp |
| sapdp88 | 3288/tcp |
| sapdp89 | 3289/tcp |
| sapdp90 | 3290/tcp |
| sapdp91 | 3291/tcp |
| sapdp92 | 3292/tcp |
| sapdp93 | 3293/tcp |
| sapdp94 | 3294/tcp |
| sapdp95 | 3295/tcp |
| sapdp96 | 3296/tcp |
| sapdp97 | 3297/tcp |
| sapdp98 | 3298/tcp |
| sapdp99 | 3299/tcp |
| sapgw00 | 3300/tcp |
| sapgw01 | 3301/tcp |
| sapgw02 | 3302/tcp |
| sapgw03 | 3303/tcp |
| sapgw04 | 3304/tcp |
| sapgw05 | 3305/tcp |
| sapgw06 | 3306/tcp |
| sapgw07 | 3307/tcp |
| sapgw08 | 3308/tcp |
| sapgw09 | 3309/tcp |
| sapgw10 | 3310/tcp |
| sapgw11 | 3311/tcp |
| sapgw12 | 3312/tcp |
| sapgw13 | 3313/tcp |
| sapgw14 | 3314/tcp |
| sapgw15 | 3315/tcp |
| sapgw16 | 3316/tcp |
| sapgw17 | 3317/tcp |
| sapgw18 | 3318/tcp |
| sapgw19 | 3319/tcp |
| sapgw20 | 3320/tcp |
| sapgw21 | 3321/tcp |
| sapgw22 | 3322/tcp |
| sapgw23 | 3323/tcp |
| sapgw24 | 3324/tcp |
| sapgw25 | 3325/tcp |
| sapgw26 | 3326/tcp |
| sapgw27 | 3327/tcp |
| sapgw28 | 3328/tcp |
| sapgw29 | 3329/tcp |
| sapgw30 | 3330/tcp |
| sapgw31 | 3331/tcp |
| sapgw32 | 3332/tcp |
| sapgw33 | 3333/tcp |
| sapgw34 | 3334/tcp |
| sapgw35 | 3335/tcp |
| sapgw36 | 3336/tcp |
| sapgw37 | 3337/tcp |
| sapgw38 | 3338/tcp |
| sapgw39 | 3339/tcp |
| sapgw40 | 3340/tcp |
| sapgw41 | 3341/tcp |
| sapgw42 | 3342/tcp |
| sapgw43 | 3343/tcp |
| sapgw44 | 3344/tcp |
| sapgw45 | 3345/tcp |
| sapgw46 | 3346/tcp |
| sapgw47 | 3347/tcp |
| sapgw48 | 3348/tcp |
| sapgw49 | 3349/tcp |
| sapgw50 | 3350/tcp |
| sapgw51 | 3351/tcp |
| sapgw52 | 3352/tcp |
| sapgw53 | 3353/tcp |
| sapgw54 | 3354/tcp |
| sapgw55 | 3355/tcp |
| sapgw56 | 3356/tcp |
| sapgw57 | 3357/tcp |
| sapgw58 | 3358/tcp |
| sapgw59 | 3359/tcp |
| sapgw60 | 3360/tcp |
| sapgw61 | 3361/tcp |
| sapgw62 | 3362/tcp |
| sapgw63 | 3363/tcp |
| sapgw64 | 3364/tcp |
| sapgw65 | 3365/tcp |
| sapgw66 | 3366/tcp |
| sapgw67 | 3367/tcp |
| sapgw68 | 3368/tcp |
| sapgw69 | 3369/tcp |
| sapgw70 | 3370/tcp |
| sapgw71 | 3371/tcp |
| sapgw72 | 3372/tcp |
| sapgw73 | 3373/tcp |
| sapgw74 | 3374/tcp |
| sapgw75 | 3375/tcp |
| sapgw76 | 3376/tcp |
| sapgw77 | 3377/tcp |
| sapgw78 | 3378/tcp |
| sapgw79 | 3379/tcp |
| sapgw80 | 3380/tcp |
| sapgw81 | 3381/tcp |
| sapgw82 | 3382/tcp |
| sapgw83 | 3383/tcp |
| sapgw84 | 3384/tcp |
| sapgw85 | 3385/tcp |
| sapgw86 | 3386/tcp |
| sapgw87 | 3387/tcp |
| sapgw88 | 3388/tcp |
| sapgw89 | 3389/tcp |
| sapgw90 | 3390/tcp |
| sapgw91 | 3391/tcp |
| sapgw92 | 3392/tcp |
| sapgw93 | 3393/tcp |
| sapgw94 | 3394/tcp |
| sapgw95 | 3395/tcp |
| sapgw96 | 3396/tcp |
| sapgw97 | 3397/tcp |
| sapgw98 | 3398/tcp |
| sapgw99 | 3399/tcp |

### 登入 SAP

連線 SAP 系統需要以下[設定](#設定索引標籤)。

| 設定         | 說明                                                                                                                                    |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **SAP 主機** | 目標系統的主機名。主機名可以是 `hosts` 檔案中定義的常規主機名、類似 `123.123.123.123` 的 IP 地址，或類似 `/H/hostname/S/connector/H/host/S/connector/...` 的 SAProuter 地址。 |
| **系統編號**   | 用於定義目標系統的編號。有效範圍為 0 到 99，但通常為 0。                                                                                                      |
| **用戶端**    | 向 SAP 系統進行身分驗證的用戶端。                                                                                                                   |
| **使用者**    | 向 SAP 系統進行身分驗證的使用者。                                                                                                                   |
| **密碼**     | 身分驗證使用者的密碼。                                                                                                                           |

#### 閘道器

透過閘道器連線到 SAP 時，請使用**高階**索引標籤 的[閘道器](#閘道器)部分中的選項。

#### 負載平衡

要透過負載平衡登入，請在**高階**索引標籤 的[登入負載平衡](#登入負載平衡)部分中設定屬性。

#### 安全網路通訊 (SNC)

要啟用安全網路通訊，請在**高階**索引標籤 的[安全網路通訊 (SNC)](#安全網路通訊-snc)部分選中**啟用 SNC** 框。將 **SNC 庫**設定為用於連線 SAP 的 SNC 庫 .dll。

## 向 SAP 傳送 IDocs

配置 IDoc 端口以連線到 SAP 系統後，即可開始向 SAP 傳送 IDoc 檔案。IDoc 端口可以傳送原始 IDoc 或 XML IDoc 格式的檔案。

可以將端口配置為自動將控制記錄資訊插入到傳送給 SAP 的 IDoc 中，例如 DOCREL、SNDPOR、SNDPRT 等。這使傳出 IDoc 更容易由已配置的系統處理。在**設定**索引標籤 的[控制記錄資訊選項](#控制記錄資訊選項)部分配置這些設定。

向 SAP 系統傳送 IDoc 之前，請確保已在 SAP 中正確配置合作伙伴配置檔案。如果 SAP 中沒有合作伙伴配置檔案與正在傳送的 IDoc 中的控制記錄資訊匹配，SAP 系統將不會處理這些資料。有關設定合作伙伴配置檔案的更多資訊，請參閱[測試向 SAP 傳送 IDoc](#測試向-sap-傳送-idoc)。

<Tip>可以使用交易程式碼 WE60 搜尋不同 IDoc 型別的段文件。</Tip>

### 測試向 SAP 傳送 IDoc

要測試向 SAP 傳送 IDoc，首先需要將 SAP 系統配置為具有 {siteNameShort} 的合作伙伴配置檔案。以下步驟介紹如何使用 ORDERS IDoc 完成此操作。

1. *建立合作伙伴：* 轉到交易程式碼 WE20 並定義合作伙伴配置檔案。將客戶的**合作伙伴型別**設定為 **KU**，並將**合作伙伴編號**設定為有效的客戶編號。

   <img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/sap-send-profiles.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=c07c1cb2374db2410207a041fdf329f6" alt="建立合作伙伴" width="806" height="734" data-path="public/images/sap-send-profiles.png" />

2. *為 ORDERS 文件新增入站參數：* 此文件的訊息型別為 ORDERS。在**入站選項**索引標籤上，將**處理程式碼**設定為 **ORDE**，以告知 SAP 系統在收到採購訂單 ORDERS 文件時如何建立銷售訂單。

   <img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/sap-send-params.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=891428fb3fd92511c76aef991a6f15f1" alt="設定參數" width="699" height="611" data-path="public/images/sap-send-params.png" />

3. *將客戶分配到銷售部門：* 步驟 1 中配置的客戶必須分配給銷售組織、分銷渠道和部門。轉到交易 VOE2，在 EDSDC 表中配置這些設定。

## 從 SAP 接收 IDocs

配置 IDoc 端口以連線到 SAP 系統後，即可開始從 SAP 接收 IDoc 檔案。IDoc 端口可以接收原始 IDoc 或 XML IDoc 格式的檔案。

要從 SAP 接收檔案，請為 {siteNameShort} 建立一個 RFC 目標。然後，可以在設定索引標籤 的[接收設定](#接收設定)部分勾選**啟用 IDoc 接收器**，並輸入你在 SAP 系統中為 {siteNameShort} 註冊的**程式 ID**。

### 測試從 SAP 接收 IDoc

此範例介紹如何配置 SAP 系統，以便向 {siteNameShort} 傳送 MATMAS IDoc。

1. *定義邏輯系統：* 首先，進入交易 SALE。然後導航到 基本設定 > 邏輯系統 > 定義邏輯系統。建立一個具有有效名稱（例如 {siteNameShort}）和描述的新項目。

2. *建立 RFC 目標：* 開啟交易程式碼 SM59。單擊建立按鈕，並填寫下述 RFC 目標欄位。

   | 設定         | 說明                                   |
   | ---------- | ------------------------------------ |
   | **RFC 目標** | 新目標的唯一名稱（例如 {siteNameShort}\_DEST）。  |
   | **連線型別**   | **T** 表示 TCP/IP。                     |
   | **描述**     | 目標的描述。                               |
   | **程式 ID**  | 將在 {siteNameShort} 中設定的唯一名稱，用於標識該目標。 |
   | **啟用型別**   | 選擇**註冊伺服器程式**。                       |

   <img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/sap-rec-dest.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=7a13058f676b738eb9d4e0977fd96868" alt="" width="762" height="778" data-path="public/images/sap-rec-dest.png" />

   儲存設定後，測試連線以確保可以成功連線到 {siteNameShort}。

3. *建立處理端口：* 轉到交易程式碼 WE21。建立一個新的交易性 RFC 端口，使用唯一名稱以及你在步驟 2 中建立的同一目標。

   <img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/sap-rec-connector.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=7671ed7ecc05d03e42783fb178ef54e5" alt="" width="879" height="457" data-path="public/images/sap-rec-connector.png" />

4. *建立合作伙伴配置檔案：* 開啟交易 WE20。為步驟 1 中新增的邏輯系統建立一個合作伙伴配置檔案。接下來，為 MATMAS 文件新增一個出站參數。將**訊息型別**設定為 **MATMAS**。在**出站選項**索引標籤上，將**接收方端口**設定為步驟 3 中配置的端口值，將**輸出模式**設定為 **Transfer IDoc Immed**，並將 IDoc **基本型別**設定為 **MATMAS05**。

   <img src="https://mintcdn.com/qiao/3lMD3uYuGJqErRlJ/public/images/sap-rec-param.png?fit=max&auto=format&n=3lMD3uYuGJqErRlJ&q=85&s=a7ac1c1157e86af9fb760279f11599fe" alt="" width="743" height="692" data-path="public/images/sap-rec-param.png" />

5. *傳送測試 IDoc：* 使用交易 BD10 向 {siteNameShort} 傳送指定物料編號的測試 IDoc。傳送訊息之前，需要配置**訊息型別**和**邏輯系統**。使用交易 BD87 監控傳出訊息，並在必要時再次處理它們。

## 宏

<MacrosTable extraMacros={extraMacros} />

### 範例

<MacrosExamples extraMacros={extraMacros} />
