共用方式為


EXEC 陳述式的範例

本主題顯示各種 EXEC 語句的範例語法。

範例語句

  • 若要執行不採用任何輸入參數的 BAPI,請使用下列語法;資料是透過 DataReader 物件傳回:

    EXEC BAPI_COMPANYCODE_GETLIST  
    
  • 若要執行採用輸入參數的 RFC,請使用下列語法:

    EXEC RFC_CUSTOMER_GET @NAME1='Contoso'  
    
  • 若要執行採用指定為變數之輸入參數的 RFC,請使用下列語法:

    EXEC RFC_CUSTOMER_GET @var=@var  
    

    在此範例中,您必須建立名為 @var 的參數,並將值明確設定 (為 1001) ,因為 RFC_CUSTOMER_GET 的第一個參數會對應至 CUSTOMER Number (CUSTOMER Number)

  • 若要執行使用變數作為輸入參數名稱的 RFC,請使用下列語法:

    EXEC RFC_CUSTOMER_GET @KUNNR=@var1, @NAME1='Contoso'  
    

    您必須建立名為 @var1 的參數,指定值,然後將它系結至對應的命令物件。 新建立之參數物件的預設方向為 input

  • 若要執行 BAPI 並傳回資料表做為參數,請使用下列語法:

    EXEC BAPI_COMPANYCODE_GETLIST @COMPANYCODE_LIST=@var1 OUTPUT  
    

    您必須建立名為 @var1 的參數,指定值,並將它系結至對應的命令物件。 新建立的參數物件方向應該是 InputOutputOutput

  • 下列 EXEC 範例使用資料表複雜類型參數。 在此範例中, @fields 是 TABLE 參數。

    exec rfc_read_table @query_table='BNKA', @fields='<FIELDS xmlns='http://Microsoft.LobServices.Sap/2007/03/Rfc/'>  
                <RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
                  <FIELDNAME>BANKL</FIELDNAME>  
                </RFC_DB_FLD>  
                <RFC_DB_FLD  xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
                    <FIELDNAME>BANKS</FIELDNAME>  
                </RFC_DB_FLD>  
              </FIELDS>', @fields=@flds output  
    
  • 下列 EXEC 範例使用 STRUCT 複雜類型。 在此範例中, @equimaster 是 STRUCT 參數。

    exec BAPI_EQMT_MODIFY @equipment='000000000000000637', @equimaster='<EQUIMASTER>           
                <EQUIPMENT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">equip</EQUIPMENT>  
                <EQUICATGRY xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">E</EQUICATGRY>  
                <MATERIAL xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">mat</MATERIAL>  
              </EQUIMASTER >', @equimaster=@em output  
    

支援複雜參數類型

當您使用 Data Provider for SAP 時,有兩種方式可支援複雜的 RFC 參數 (資料表和結構) :

  • 提供複雜類型的內嵌 XML 值。 此範例示範如何將 XML 傳遞至複雜參數類型 欄位。 在下列範例中, @fields 是資料表參數。

    exec rfc_read_table @query_table='BNKA', @fields='<FIELDS xmlns='http://Microsoft.LobServices.Sap/2007/03/Rfc/'>  
                <RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
                  <FIELDNAME>BANKL</FIELDNAME>  
                </RFC_DB_FLD>  
                <RFC_DB_FLD  xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">  
                    <FIELDNAME>BANKS</FIELDNAME>  
                </RFC_DB_FLD>  
              </FIELDS>', @fields=@flds output  
    
  • 建立 DataTable 參數,其中包含複雜類型中欄位的資料行,並將 SAP 參數值設定為 DataTable。 此範例示範如何使用DataTable來設定 @fields 複雜類型。

    cmd.CommandText = "exec rfc_read_table @query_table='BNKA', @fields = @p_fields";  
    DataTable dt = new DataTable();  
    dt.Columns.Add("FIELDNAME");  
    SAPParameter p = new SAPParameter("@p_fields");  
    p.Value = dt;  
    

限制

適用于 SAP 的資料提供者對於複雜類型有下列限制。

  • 當您使用 DataTable在參數中傳遞複雜類型時,您必須在 DataTable中包含 (資料行的所有欄位) 。

  • Microsoft BizTalk Adapter for mySAP Business Suite 不支援 DbNull。 您無法將 DbNull 設定為參數的值。