Condividi tramite


Limitazioni relative alle query e al recupero di elenchi

L'architettura di comunicazione di JD Edwards OneWorld è un'architettura a messaggio singolo e a risposta singola. Non è possibile restituire un elenco di messaggi o una matrice. Il codice sottostante è C++, che effettua una chiamata con un puntatore a una singola struttura, apporta modifiche alla struttura e quindi esce.

Query e recupero di elenchi

Non è possibile eseguire una query e recuperare elenchi di record in base a criteri di ricerca mediante l'adapter Microsoft BizTalk per JD Edwards OneWorld a causa di una limitazione relativa all'architettura delle funzioni di business di JD Edwards OneWorld.

In JD Edwards OneWorld, la connettività ai database viene stabilita utilizzando un set di chiamate di funzione interna proprietaria (e complessa). Queste chiamate mascherano la versione del database sottostante richiedendo chiamate molto esplicite e di livello basso per creare elenchi di colonne da recuperare o aggiornare e creare strutture specializzate per l'ordinamento o la selezione. I set di API non vengono esposti tramite il metodo di connettività Java (o qualsiasi altro). I set di record non possono pertanto essere gestiti tramite le funzioni di business.

All'interno del set di strumenti di JD Edwards OneWorld, è possibile creare funzioni di business che gestiscono un singolo record o operano su un gruppo di record. Tuttavia, l'accesso a elenchi di elementi al di fuori degli strumenti di JD Edwards OneWorld è molto difficile.

Per risolvere questo problema, è possibile creare una funzione di business personalizzata che restituisca un elenco di chiavi record in base a una query. È necessario segmentare gli elenchi, perché in JDENET (l'API di messaggistica proprietaria interna di JD Edwards OneWorld) esiste una limitazione relativa alla dimensione del buffer dei messaggi per la gestione di set di risultati di grandi dimensioni o non associati. Il codice client deve scorrere (eseguire ripetutamente) le chiamate successive alla funzione di business, finché non viene restituito un indicatore che informa che l'elenco è completo.

Controllo dell'iterazione

Tutte le chiamate alle funzioni di business di JD Edwards OneWorld sono senza stato e pertanto la funzione di business non può mantenere un cursore aperto e restituire più righe su richiesta. Le informazioni sul posizionamento devono essere passate alla funzione di business di JD Edwards OneWorld XE a ogni chiamata.

Di seguito è riportato un elenco di tecniche per il controllo dell'iterazione:

  • Nell'ambito di JD Edwards OneWorld scrivere il set di risultati in un file di archiviazione temporaneo che restituisce un ID (ad esempio, un nome file o un numero di processo) che può essere assegnato durante le chiamate successive, insieme al numero di record per il posizionamento del cursore. Le chiamate successive vengono posizionate all'interno dell'elenco in base al numero di record passato.

    Nota

    Sebbene sia possibile bilanciare il carico delle chiamate eseguite tramite l'adapter BizTalk per JD Edwards OneWorld, le chiamate vengono gestite da un solo server applicazioni in base alle credenziali e alla funzione di business chiamata. Se pertanto una chiamata crea un file temporaneo su un server, le altre chiamate vengono gestite dallo stesso server. Per ulteriori informazioni, vedere la sezione relativa al mapping di configurazione degli oggetti nelle guide di JD Edwards OneWorld CNC.

  • Le informazioni sulla posizione (ad esempio, un valore di chiave primaria) possono essere restituite durante la seconda chiamata e quelle successive e la query può essere nuovamente eseguita in base alla chiave come parametro aggiuntivo. Questo metodo viene utilizzato nel codice di esplorazione del repository per l'adapter BizTalk per JD Edwards OneWorld.

    Nota

    Delle prime due tecniche, il metodo consigliato consiste nell'utilizzo dei valori di chiave primaria e nella riesecuzione della query. Questo metodo richiede una quantità minima di codice e fa dipendere dal database l'ottimizzazione e la memorizzazione nella cache.

  • Nell'applicazione chiamante è possibile archiviare un elenco di chiavi primarie (ad esempio, un riferimento incrociato). Se, ad esempio, un sistema CRM (Customer Relationship Management) crea un record cliente e quindi lo aggiunge a JD Edwards OneWorld mediante una chiamata a una funzione di business, la funzione di business che aggiunge un record cliente imposta il valore per il campo AN8 (numero indirizzo breve) ed è visibile nel buffer restituito. Questo numero può quindi essere scritto in un campo di riferimento del record cliente originale o archiviato in una tabella di riferimenti incrociati personalizzati.

  • La maggior parte dei record master in JD Edwards OneWorld si basa sul concetto di ricerca o chiave alternativa. Questa chiave può essere utilizzata per archiviare le informazioni importanti dal sistema chiamante. Le funzioni di business possono eseguire la ricerca nell'ambito di JD Edwards OneWorld. Quando i parametri vengono passati alla funzione di business per creare un record cliente, viene impostato il valore di chiave lungo.

    Per ulteriori informazioni su questi concetti, vedere l'argomento relativo all'interoperabilità nel sistema della Guida di JD Edwards OneWorld.

Vedere anche

Pianificazione e architettura