Non ho alcun documento da condividere su questi loop nidificati e non faccio più parte del team di progetto, quindi tutto ciò che posso dire è fuori dalla mia testa. Quindi spero che capirai perché non posso dire troppi dettagli qui.
Fondamentalmente ho dovuto eseguire tre diversi tipi di ricerca sulla stessa tabella per una cosiddetta regola personalizzata nel software di gestione dei dati di test (TDM). Queste regole personalizzate sono implementate come mapplet e devono contenere solo trasformazioni passive. Nessun router, nessun filtro, nessun aggregatore, nessuna trasformazione Java attiva, solo espressioni, trasformazioni di ricerca e simili.
Ora per le due regole personalizzate più complesse, ho dovuto implementare diverse tabelle ausiliarie che contenevano i dati di ricerca a diversi livelli di aggregazione. Riempire queste tabelle da PowerCenter non è stato troppo facile perché il file sorgente è costituito da 4,5 GB di testo (app. 43 milioni di record); le tabelle di ricerca contengono dati a tre diversi livelli di aggregazione con criteri di ricerca diversi. E non volevo dividere la mappatura in tre. Quindi ho dovuto occuparmi dell’identificazione dello “stesso” record basato da solo, non potevo usare gli aggregatori da solo.
Per quanto ricordo, in un linguaggio di programmazione tradizionale come Java avrei avuto bisogno di fino a cinque loop nidificati per analizzare i dati di origine e creare i rispettivi record di ricerca da questi dati di input. L’esecuzione di diversi livelli di aggregazione con diversi variabile di porte in un unico EXP non è troppo facile da mantenere, ma le mie prove iniziali hanno rivelato che questo era ancora la scelta migliore, come detto avrei potuto dividere la mappatura in tre, ma ogni mappatura avrebbe avuto quasi lo stesso livello di complessità, come quello “generale” EXP, quindi io non considero la pena lo sforzo di mantenere tre diversi percorsi di carico in questa mappatura.
Sono fiducioso che tutti con una certa esperienza in PowerCenter possano – dopo qualche riflessione – inventare una storia simile di requisiti di mappatura non banali dalla propria pratica. Potremmo anche non essere consapevoli di tale complessità, ma è ancora lì.
Ad esempio, prendi un thread del 2014 o del 2015 in cui qualcuno ha chiesto come generare numeri primi in PowerCenter. Non troppo facile. Chi costruisce una tale soluzione deve pensare (e lavorare) al di fuori dei percorsi conosciuti. Questo è senza dubbio un risultato straordinario in PowerCenter. Quindi questo potrebbe non essere un grande esempio, ma può essere un buon esempio di logica di mappatura più complessa.
Come altro esempio, guarda qualsiasi sistema per coordinare l’esecuzione dei flussi di lavoro in un determinato ordine. Forse con alcune condizioni aggiuntive, come “numero di record con proprietà XYZ uguale al valore ABC”. Tutte queste cose possono diventare arbitrariamente complesse, e – come detto sopra-sono fiducioso che molte persone hanno costruito qualcosa di simile complesso una o più volte anche se non lo hanno riconosciuto.