Considerazioni sull'uso dell'adattatore Oracle-Business Suite con SharePoint
Questo argomento contiene informazioni sui problemi che potrebbero verificarsi durante l'uso dell'adapter Microsoft BizTalk per Oracle E-Business Suite con Microsoft Office SharePoint Server, insieme alle risoluzioni. I problemi sono divisi in due categorie:
Problemi generali
Problemi relativi alle web part personalizzate
Problemi generali
Questa sezione contiene problemi che non hanno alcuna risoluzione.
Problema 1: i dati di tipo semplice restituiti dal servizio WCF non vengono visualizzati
Spiegazione: Microsoft Office SharePoint Server prevede che i dati restituiti dal servizio WCF siano solo di tipo DataSet o Collection. Se i dati restituiti dal servizio WCF sono di tipo semplice, Microsoft Office SharePoint Server non visualizza i dati.
Risoluzione: nessuna risoluzione. Si tratta di una limitazione nota con Microsoft Office SharePoint Server.
Problema 2: viene visualizzato un messaggio di errore se i dati restituiti dal servizio WCF sono NULL
Spiegazione: se i dati restituiti dal servizio WCF sono un valore NULL, in Microsoft Office SharePoint Server viene visualizzato un messaggio di errore. Si supponga, ad esempio, di usare la web part Elenco dati business per l'istanza del metodo Finder e di cercare i clienti in Oracle E-Business Suite in base a un'espressione di ricerca. L'espressione di ricerca specificata recupera un valore NULL. In questo caso, Verrà visualizzato un messaggio di errore in Microsoft Office SharePoint Server.
Risoluzione: nessuna risoluzione. Si tratta di una limitazione nota con Microsoft Office SharePoint Server.
Problema 3: non viene visualizzata una matrice di tipo semplice restituito dal servizio WCF
Spiegazione: se i dati restituiti dal servizio WCF sono una matrice di tipo semplice, Microsoft Office SharePoint Server non visualizza i dati. Inoltre, quando si esegue un'istanza del metodo in Business Data Catalog Definition Editor che restituisce una matrice di tipo semplice, viene visualizzato il messaggio di errore seguente: "L'adattatore di sistema back-end ha restituito una struttura incompatibile con i metadati corrispondenti (MethodInstance, Parameter o TypeDescriptor)."
Risoluzione: nessuna risoluzione. Si tratta di una limitazione nota con Microsoft Office SharePoint Server e l'Editor definizioni di Data Catalog business.
Problema 4: Impossibile importare un file di definizione dell'applicazione contenente un parametro di tipo complesso con più di 300 campi
Spiegazione: Microsoft Office SharePoint Server non può importare un file di definizione dell'applicazione con più di 300 campi nel parametro di tipo complesso restituito dal servizio WCF e visualizza un messaggio di errore se si tenta di eseguire questa operazione. Ciò è dovuto alla limitazione di Microsoft Office SharePoint Server di non essere in grado di visualizzare più di 300 campi di un parametro di tipo complesso.
Soluzione: usare Business Data Catalog Definition Editor per limitare il numero di campi del parametro di tipo complesso a un valore minore o uguale a 300. A seconda delle esigenze, è possibile eliminare i campi del parametro di tipo complesso in Business Data Catalog Definition Editor che non è necessario visualizzare in Microsoft Office SharePoint Server. In alternativa, è anche possibile esportare il file di definizione dell'applicazione da Business Data Catalog Definition Editor con tutti i campi e quindi modificare il file di definizione dell'applicazione in un Blocco note o in qualsiasi applicazione di creazione XML per eliminare i campi non necessari per limitare il numero di campi a 300.
Problemi relativi alle web part personalizzate
Questa sezione contiene problemi che richiedono l'uso della web part personalizzata per una risoluzione. Per informazioni dettagliate sull'uso di una web part personalizzata per risolvere i problemi che potrebbero verificarsi durante l'utilizzo dell'adapter Oracle E-Business e di Microsoft Office SharePoint Server, vedere Come usare una web part personalizzata con Oracle E-Business Suite.
Problema 1: Limitazione con la visualizzazione di un singolo record in Microsoft Office SharePoint Server in base a più valori
Spiegazione: se si desidera visualizzare un singolo record in Microsoft Office SharePoint Server in base a più valori (parametri di input) da Oracle E-Business Suite, non è possibile utilizzare alcuna delle tre web part (Elenco dati business, Elemento dati business e Elenco correlato ai dati business) specificati nel passaggio 3: Creare un'applicazione SharePoint per recuperare dati da Oracle E-Business Suite in Esercitazione: Presentare i dati di Oracle E-Business Suite in un sito di SharePoint.
Soluzione: per eseguire questa operazione, è necessario usare una web part personalizzata. Per informazioni sull'uso di una web part personalizzata, vedere Come usare una web part personalizzata con Oracle E-Business Suite. In "Passaggio 1: Creare una web part personalizzata" di tale argomento, è possibile usare l'esempio di codice seguente nel passaggio 5. L'esempio di codice seguente accetta BankCountry e BankKey come parametri di input e quindi li visualizza come un singolo record in 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>");
}
}
Nota
Il file di definizione dell'applicazione deve contenere l'istanza del metodo Finder specifico . Un metodo Finder specifico trova un record specifico basato su un identificatore. Per informazioni sulla creazione di un'istanza del metodo Finder specifico , vedere "Requisito 2: Recuperare i dettagli per un cliente specifico dall'elenco dei clienti" nel passaggio 2: Creare un file di definizione dell'applicazione per gli artefatti oracle E-Business Suite in Esercitazione: Presentare i dati di Oracle E-Business Suite in un sito di SharePoint.
Problema 2: Impossibile specificare valori per gli elementi della matrice
Spiegazione: se il parametro di input del servizio WCF è una matrice, non è possibile specificare valori per gli elementi della matrice usando filtri definiti nel file di definizione dell'applicazione creato usando Business Data Catalog Definition Editor. Implica che non è possibile utilizzare la web part Business Data List o Business Data Item in Microsoft Office SharePoint Server per specificare i valori per questi parametri di input (elementi della matrice) al servizio WCF. Ciò è dovuto alla modalità di definizione delle matrici nel file di definizione dell'applicazione.
Soluzione: usare una web part personalizzata per assegnare valori agli elementi della matrice. Per informazioni sull'uso di una web part personalizzata, vedere Come usare una web part personalizzata con Oracle E-Business Suite. Ad esempio, è possibile usare l'esempio di codice seguente nel passaggio 3 in "Problema 1: Limitazione con la visualizzazione di un singolo record in Microsoft Office SharePoint Server in base a più valori" per assegnare valori agli elementi della matrice.
/***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
Problema 3: Limitazione con la specifica di valori NULL ai parametri di tipo complessi
Spiegazione: se non si specifica alcun valore per un parametro di tipo complesso da una web part in Microsoft Office SharePoint Server, null deve essere passato come valore per il parametro di tipo complesso al servizio WCF. Tuttavia, viene passato un valore non NULL per il parametro di tipo complesso e NULL viene passato per i relativi elementi figlio (di tipo semplice). Ciò causa una mancata corrispondenza tra lo schema del messaggio previsto e lo schema del messaggio passato al servizio WCF. Di conseguenza, l'adapter Oracle E-Business potrebbe visualizzare un messaggio di errore.
Nota
Per individuare il valore predefinito di un parametro di tipo complesso quando non viene passato alcun valore da una web part in Microsoft Office SharePoint Server, usare il passaggio 2 nell'esempio di codice indicato in "Problema 1: Limitazione con la visualizzazione di un singolo record in Microsoft Office SharePoint Server in base a più valori".
Soluzione: usare una web part personalizzata per assegnare un valore NULL al parametro di tipo complesso. Per informazioni sull'uso di una web part personalizzata, vedere Come usare una web part personalizzata con Oracle E-Business Suite.