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
的參數,指定值,並將它系結至對應的命令物件。 新建立的參數物件方向應該是InputOutput
或Output
。下列 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 設定為參數的值。