Syntaxe d’une instruction EXEC dans SAP
La section suivante décrit les spécifications grammaticales pour l’implémentation d’instructions EXEC sur le fournisseur de données .NET Framework pour mySAP Business Suite. Notez que dans plusieurs cas, la syntaxe est quelque peu différente de la syntaxe Transact-SQL.
EXEC rfc_name {<argument_element>} [ , …n ] {;}[0,1] [ OPTION <disabledatavalidation>, <firstresultset> ]
où :
rfc_name spécifie le nom de l’appel de fonction à exécuter.
<>argument_element ::= @param_name = [0,1] <const> {[ INPUT | OUTPUT ]}[0,1]
param_name spécifie le nom du paramètre défini dans l’interface de fonction.
<const> ::= integer | real | string | ? | NULL | xml_element
OPTION fournit une option sur la façon dont vous souhaitez présenter les données. Options disponibles :
l’option disabledatavalidation définit la propriété de liaison EnableSafeTyping dans l’adaptateur SAP sous-jacent. Lorsque la saisie sécurisée est activée, les types de données DATS, TIMS et NUMC sont représentés sous forme de chaînes. Pour plus d’informations sur cette propriété de liaison, consultez En savoir plus sur les propriétés de liaison de l’adaptateur BizTalk pour mySAP Business Suite.
firstresultset spécifie le premier jeu de résultats retourné par le fournisseur de données pour SAP. Quand une instruction est exécutée sur une source de fournisseur ADO, seul le premier jeu de résultats retourné est disponible. Pour les scénarios RFC EXEC, plusieurs paramètres de table sont généralement retournés, mais si seul le premier jeu de résultats est disponible pour le programme client, ce qui peut ne pas être utilisé. En spécifiant le « firstresultset » mot clé dans le cadre de la clause OPTION, les clients peuvent spécifier le premier paramètre de table qu’ils souhaitent que le fournisseur retourne. Par exemple :
EXEC Z_TEST_ALL_TYPES @P_IN='TestInput' OPTION 'disabledatavalidation', firstresultset TAB_ALLTYPES'
Dans cet exemple, l’instruction EXEC spécifie que le premier paramètre de table retourné doit être TAB_ALLTYPES.
Important
Vous devez toujours fournir les valeurs de l’option mot clé entre guillemets uniques, par exemple, « disabledatavalidation ».
Dans la syntaxe précédente, xml_element peut être utilisé pour fournir une entrée pour les types complexes. La structure des éléments xml sera différente pour les structures et les tables. Le xml_element de structure ressemble à ce qui suit :
<PARAM_NAME>
<FIELDNAME_1 xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">value</FIELDNAME_1>
<FIELDNAME_2 xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">value</FIELDNAME_2>
...
...
</ PARAM_NAME>
Le xml_element pour la table ressemble à ce qui suit :
<PARAM_NAME>
<STRUCT_NAME xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<FIELDNAME_1>value</FIELDNAME_1>
<STRUCT_NAME/>
<STRUCT_NAME xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<FIELDNAME_1>value</FIELDNAME_1>
<STRUCT_NAME/>
...
...
</ PARAM_NAME>
Par exemple, l’élément XML d’un type de structure ressemble à ce qui suit :
<INOUT_STRUCT>
<ACCPFIELD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">2006</ACCPFIELD>
<CHARFIELD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">John</CHARFIELD>
</INOUT_STRUCT>
De même, l’élément XML d’un type de table ressemble à ce qui suit :
<TAB_ALLTYPES>
<ZZSTRUCTALLTYPES_RFC xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<ACCPFIELD>2006</ACCPFIELD>
<CHARFIELD>John</CHARFIELD>
</ZZSTRUCTALLTYPES_RFC>
<ZZSTRUCTALLTYPES_RFC xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
<ACCPFIELD>2007</ACCPFIELD>
<CHARFIELD>James</CHARFIELD>
</ZZSTRUCTALLTYPES_RFC>
</TAB_ALLTYPES>
Pour obtenir des exemples d’instructions, consultez Exemples d’instruction EXEC.
Gestion des paramètres nommés
Voici des instructions pour spécifier des paramètres nommés dans les requêtes EXEC :
Vous devez spécifier les paramètres en les nommant (par exemple, @param_name=value).
Notes
Les paramètres sans nom ne sont pas pris en charge
Lorsqu’un paramètre est défini à l’aide d’une valeur par défaut, vous pouvez exécuter la procédure sans spécifier de paramètre.
Les requêtes EXEC ne prennent pas en charge l’utilisation de paramètres avec les propriétés suivantes :
Structures imbriquées (structures qui contiennent des structures en tant que champs).
Tables imbriquées.
Table contenant une structure.
Structure contenant une table.
Structure ou table qui a des champs avec des types de chaînes composites, par exemple
SSTRING
ouRAWSTRING
.Le tableau suivant répertorie les mappages logiques entre les types de paramètres RFC et les directions des paramètres lors de l’exécution d’une RFC.
RFC Param Type Mot clé de requête Direction des paramètres Importer des paramètres Rien Paramdirection.Input Paramètres d’exportation Output Paramdirection.Output Paramètres de table Sortie/Rien InputOutput Voici des instructions générales pour la gestion des paramètres :
Vous pouvez spécifier des valeurs de paramètre sous forme de constantes ou à l’aide d’espaces réservés dans la requête.
Lorsque vous utilisez des espaces réservés dans la requête, vous devez créer un
SAPParameter
objet et l’ajouter à l’objet de commande correspondant. Vous passez ensuite le nom de l’espace réservé au constructeur ; la direction et la valeur dépendent du contexte.Pour
Input
les paramètres, ne spécifiez pas dans la requête une mot clé pour la direction du paramètre. Levalue
champ de l’objet de paramètre doit être défini, sinon le fournisseur lève une exception. Vous ne devez pas définir explicitement ledirection
champ de l’objet de paramètre, car le fournisseur a laInput
valeur par défaut .Pour les autres paramètres, utilisez le formulaire
@paramname=@placeholder
et spécifiez explicitement leOutput
mot clé dans la requête. Vous devez ensuite ajouter unSAPParameter
qui correspond à l’espace réservé et définir explicitement la direction du paramètre surParamDirection.Output
ouParamDirection.InputOutput
, en fonction du type de paramètre.
Les noms de paramètres et les noms d’espace réservé ne respectent pas la casse.
Les noms de paramètres ne peuvent pas être répétés dans une requête, sauf s’ils ont des directions différentes.
Les noms d’espace réservé ne peuvent pas être répétés dans une requête.
Considérations relatives à l’appel d’une instruction EXEC
Cette section répertorie les points que vous devez garder à l’esprit lorsque vous utilisez l’instruction EXEC avec le fournisseur de données pour SAP.
Pour une instruction EXEC, le fournisseur de données pour SAP retourne
TIMS
des valeurs de champ en tant qu’objets .NETSystem.DateTime
.Notes
Pour une instruction SELECT, le fournisseur de données pour SAP retourne
TIMS
des valeurs de champ en tant qu’objets .NETSystem.TimeSpan
. Pour plus d’informations sur l’instruction SELECT, consultez Syntaxe d’une instruction SELECT dans SAP.
Voir aussi
À propos du fournisseur de données .NET Framework pour mySAP Business Suite