Considérations relatives à l’utilisation de l’adaptateur Oracle-Business Suite avec SharePoint
Cette rubrique contient des informations sur les problèmes que vous pouvez rencontrer lors de l’utilisation de l’adaptateur Microsoft BizTalk pour Oracle E-Business Suite avec Microsoft Office SharePoint Server, ainsi que des résolutions. Les problèmes sont répartis en deux catégories :
Problèmes d’ordre général
Problèmes impliquant des composants WebPart personnalisés
Problèmes généraux
Cette section contient les problèmes qui n’ont pas été résolus.
Problème 1 : Les données de type simple retournées par le service WCF ne sont pas affichées
Explication : Microsoft Office SharePoint Server s’attend à ce que les données retournées par le service WCF soient de type DataSet ou Collection uniquement. Si les données retournées par le service WCF sont de type simple, Microsoft Office SharePoint Server n’affiche pas les données.
Résolution : Aucune résolution. Il s’agit d’une limitation connue avec Microsoft Office SharePoint Server.
Problème 2 : un message d’erreur s’affiche si les données retournées par le service WCF sont NULL
Explication : Si les données retournées par le service WCF sont une valeur NULL, Microsoft Office SharePoint Server affiche un message d’erreur. Par exemple, supposons que vous utilisez le composant WebPart Liste de données métiers pour la méthode Finder instance et que vous recherchez des clients dans Oracle E-Business Suite en fonction d’une expression de recherche. L’expression de recherche que vous avez spécifiée extrait une valeur NULL. Dans ce cas, Microsoft Office SharePoint Server affiche un message d’erreur.
Résolution : Aucune résolution. Il s’agit d’une limitation connue avec Microsoft Office SharePoint Server.
Problème 3 : Un tableau de type simple retourné par le service WCF n’est pas affiché
Explication : Si les données retournées par le service WCF sont un tableau de type simple, Microsoft Office SharePoint Server n’affiche pas les données. En outre, lorsque vous exécutez une méthode instance dans l’Éditeur de définition Data Catalog d’entreprise qui retourne un tableau de type simple, le message d’erreur suivant s’affiche : « L’adaptateur système principal a retourné une structure incompatible avec les métadonnées correspondantes (MethodInstance, Parameter ou TypeDescriptor). »
Résolution : Aucune résolution. Il s’agit d’une limitation connue avec Microsoft Office SharePoint Server et Business Data Catalog Definition Editor.
Problème 4 : Impossible d’importer un fichier de définition d’application qui contient un paramètre de type complexe comportant plus de 300 champs
Explication : Microsoft Office SharePoint Server ne peut pas importer un fichier de définition d’application contenant plus de 300 champs dans le paramètre de type complexe retourné par le service WCF et affiche un message d’erreur si vous essayez de le faire. Cela est dû à la limitation de Microsoft Office SharePoint Server qui ne peut pas afficher plus de 300 champs d’un paramètre de type complexe.
Résolution : utilisez l’Éditeur de définition de Data Catalog d’entreprise pour limiter le nombre de champs du paramètre de type complexe à 300. Selon vos besoins, vous pouvez supprimer les champs du paramètre de type complexe dans l’Éditeur de définition Data Catalog d’entreprise dont vous n’avez pas besoin pour être affichés dans Microsoft Office SharePoint Server. Vous pouvez également exporter le fichier de définition d’application à partir de Business Data Catalog Definition Editor avec tous les champs, puis modifier le fichier de définition d’application dans un bloc-notes ou toute application de création XML pour supprimer les champs qui ne sont pas requis afin de limiter le nombre de champs à 300.
Problèmes impliquant des composants WebPart personnalisés
Cette section contient les problèmes qui nécessitent l’utilisation d’un composant WebPart personnalisé pour une résolution. Pour plus d’informations sur l’utilisation d’un composant WebPart personnalisé pour résoudre les problèmes qui peuvent survenir lors de l’utilisation de l’adaptateur Oracle E-Business et de Microsoft Office SharePoint Server, voir Utilisation d’un composant WebPart personnalisé avec Oracle E-Business Suite.
Problème 1 : Limitation de l’affichage d’un enregistrement unique dans Microsoft Office SharePoint Server basé sur plusieurs valeurs
Explication : Si vous souhaitez afficher un seul enregistrement dans Microsoft Office SharePoint Server en fonction de plusieurs valeurs (paramètres d’entrée) à partir d’Oracle E-Business Suite, vous ne pouvez utiliser aucun des trois composants WebPart (Liste de données métiers, Élément de données métiers et Liste liée aux données métiers) spécifiés à l’Étape 3 : Créer une application SharePoint pour récupérer des données à partir d’Oracle E-Business Suite dans le tutoriel : Présenter des données d’Oracle E-Business Suite sur un site SharePoint.
Résolution : Pour ce faire, vous devez utiliser un composant WebPart personnalisé. Pour plus d’informations sur l’utilisation d’un composant WebPart personnalisé, consultez Guide pratique pour utiliser un composant WebPart personnalisé avec Oracle E-Business Suite. Dans « Étape 1 : Créer un composant WebPart personnalisé » de cette rubrique, vous pouvez utiliser l’exemple de code suivant à l’étape 5. L’exemple de code suivant prend BankCountry et BankKey comme paramètres d’entrée, puis les affiche en tant qu’enregistrement unique dans Microsoft Office SharePoint Server.
namespace CustomWebPart
{
public class CustomWebPart : WebPart
{
private string displayText = "Hello World!";
[WebBrowsable(true), Personalizable(true)]
public string DisplayText
{
get { return displayText; }
set { displayText = value; }
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
string BankCountry = "US";
string BankKey = "134329042";
/***Step 1: Get the required entity and method.***/
LobSystem newSystem = ApplicationRegistry.GetLobSystems()["BAPI_BANK_GETDETAIL"]; // Name specified in application definition file
LobSystemInstance newSystemInstance = newSystem.GetLobSystemInstances()["BAPI_BANK_GETDETAIL_Instance"]; // Name specified in application definition file
Entity CategoryEntity = newSystem.GetEntities()["Entity"]; // Name specified in application definition file
Method newMethod = CategoryEntity.GetMethods()["BAPI_BANK_GETDETAIL"]; // Name specified in application definition file
MethodInstance methodInstance = newMethod.GetMethodInstances()["MethodInstance"]; // Name specified in application definition file
/***Step 2: Get the list of input parameters.***/
Object[] args = methodInstance.GetMethod().CreateDefaultParameterInstances(methodInstance); //Get the default values of the input parameters.
Object[] ArgsInput = new Object[args.Length];
/***Step 3: Assign them required values.***/
Type t = null;
char[] myString = BankCountry.ToCharArray();
String s = new String(myString);
t = s.GetType();
ArgsInput[0] = Activator.CreateInstance(t, myString);
myString = BankKey.ToCharArray();
s = new String(myString);
t = s.GetType();
ArgsInput[1] = Activator.CreateInstance(t, myString);
/***Step 4: Execute the particular method instance using the required value.***/
IEntityInstance IE = (IEntityInstance)CategoryEntity.Execute(methodInstance, newSystemInstance, ref ArgsInput); //Method instance of type Specific Finder is being used here.
/***Step 5: Display the output on the custom Web Part in Microsoft Office SharePoint Server.***/
writer.Write("<table>");
writer.Write("<tr>");
foreach (Field f in CategoryEntity.GetFinderView().Fields)
{
writer.Write("<td>");
writer.Write(IE[f]);
writer.Write("</td>");
}
writer.Write("</tr>");
writer.Write("</table>");
}
}
Notes
Le fichier de définition d’application doit contenir la méthode Finder spécifique instance. Une méthode Specific Finder recherche un enregistrement spécifique en fonction d’un identificateur. Pour plus d’informations sur la création d’une méthode Finder spécifique instance, consultez « Condition requise 2 : Récupérer les détails d’un client spécifique à partir de la liste des clients » à l’étape 2 : créer un fichier de définition d’application pour les artefacts Oracle E-Business Suite dans le tutoriel : Présenter des données à partir d’Oracle E-Business Suite sur un site SharePoint.
Problème 2 : Impossible de spécifier des valeurs pour les éléments du tableau
Explication : Si le paramètre d’entrée du service WCF est un tableau, vous ne pouvez pas spécifier de valeurs aux éléments du tableau à l’aide de filtres définis dans le fichier de définition d’application créé à l’aide de l’Éditeur de définition de Data Catalog métier. Cela implique que vous ne pouvez pas utiliser le composant WebPart Liste de données métiers ou Élément de données métiers dans Microsoft Office SharePoint Server pour spécifier des valeurs pour ces paramètres d’entrée (éléments de tableau) dans le service WCF. Cela est dû à la façon dont les tableaux sont définis dans le fichier de définition d’application.
Résolution : utilisez un composant WebPart personnalisé pour affecter des valeurs à des éléments de tableau. Pour plus d’informations sur l’utilisation d’un composant WebPart personnalisé, consultez Guide pratique pour utiliser un composant WebPart personnalisé avec Oracle E-Business Suite. Par exemple, vous pouvez utiliser l’exemple de code suivant à l’étape 3 dans « Problème 1 : Limitation de l’affichage d’un enregistrement unique dans Microsoft Office SharePoint Server basé sur plusieurs valeurs » pour affecter des valeurs à des éléments de tableau.
/***Assign required values to parameters of type array.***/
/***Assumption is that the ith parameter of Method is of type Array and all the simple type elements in the array are of string type.***/
Type t = asm.GetType(args[i].GetType().ToString()); // Get type of the parameter
Type TElement = t.GetElementType(); // Getting type of element of array
int index = 5; //Size of Array
Array ElementArray = Array.CreateInstance(TElement, index); //Creating an array of length: index
for (int ind = 0; ind < index; ind++)
{
//Creating an instance of an element of array
object ElementType = Activator.CreateInstance(TElement);
FieldInfo[] FI = ElementType.GetType().GetFields();
for (int f = 0; f \< FI.Length; f++)
{
ElementType.GetType().GetFields()[f].SetValue(ElementType, (Object)"ElementValue");
}
ElementArray.SetValue(ElementType, ind);
}
ArgsInput[i] = (object)ElementArray; // As shown in sample, ArgsInput is fed as input while executing Method Instance
Problème 3 : Limitation de la spécification de valeurs NULL aux paramètres de type complexes
Explication : si vous ne spécifiez aucune valeur pour un paramètre de type complexe à partir d’un composant WebPart dans Microsoft Office SharePoint Server, NULL doit être transmis comme valeur du paramètre de type complexe au service WCF. Toutefois, une valeur non NULL est passée pour le paramètre de type complexe, et NULL est passé pour ses éléments enfants (de type simple). Cela entraîne une incompatibilité entre le schéma de message attendu et le schéma de message transmis au service WCF. Par conséquent, l’adaptateur Oracle E-Business peut afficher un message d’erreur.
Notes
Pour connaître la valeur par défaut d’un paramètre de type complexe lorsqu’aucune valeur n’est transmise à partir d’un composant WebPart dans Microsoft Office SharePoint Server, utilisez l’étape 2 dans l’exemple de code mentionné dans « Problème 1 : Limitation de l’affichage d’un enregistrement unique dans Microsoft Office SharePoint Server basé sur plusieurs valeurs ».
Résolution : utilisez un composant WebPart personnalisé pour affecter une valeur NULL au paramètre de type complexe. Pour plus d’informations sur l’utilisation d’un composant WebPart personnalisé, consultez Guide pratique pour utiliser un composant WebPart personnalisé avec Oracle E-Business Suite.
Voir aussi
Utiliser l’adaptateur Oracle E-Business Suite avec SharePoint