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 の最初のパラメーターは KUNNR (Customer Number) に対応するためです。入力パラメーター名に変数を使用する RFC を実行するには、次の構文を使用します。
EXEC RFC_CUSTOMER_GET @KUNNR=@var1, @NAME1='Contoso'
という名前
@var1
のパラメーターを作成し、値を指定し、対応するコマンド オブジェクトにバインドする必要があります。 新しく作成されたパラメーター オブジェクトの既定の方向は ですinput
。BAPI を実行し、テーブルをパラメーターとして返すには、次の構文を使用します。
EXEC BAPI_COMPANYCODE_GETLIST @COMPANYCODE_LIST=@var1 OUTPUT
という名前
@var1
のパラメーターを作成し、値を指定し、対応するコマンド オブジェクトにバインドする必要があります。 新しく作成されたパラメーター オブジェクトの方向は、 またはOutput
であるInputOutput
必要があります。次の 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 パラメーター (テーブルと構造体) をサポートするには、次の 2 つの方法があります。
複合型のインライン 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;
制限事項
Data Provider for SAP には、複合型に関して次の制限があります。
DataTable を使用してパラメーターに複合型を渡す場合は、複合型のすべてのフィールド (列) を DataTable に含める必要があります。
Microsoft BizTalk Adapter for mySAP Business Suite では 、DbNull はサポートされていません。 DbNull をパラメーターの値として設定することはできません。