Loading…

Applicazione gestione Ordini di vendita SO_MNG

In questo articolo si espone la modalità per creare app più complesse partendo da semplici applicazioni di ricerca e dettaglio molto semplici e veloci da costruire ma a volta insufficienti da sole a rappresentare uno scenario più ampio, quale ad esempio può essere la gestione vendite in sap. In questo articolo non si andrà a gestire tutto il processo ma semplicemente l’asse Clienti, Ordini e Materiali.

SI parte dalle BasicApps costruite in precedenza:

KUST

si occupa della ricerca e gestione dei clienti

SALES_ORDER

gestisce la ricerca la gestione degli ordini di vendita

MATERIALS

visualizza i materiali

MOD_KUST_SEARCH, MOD_KUST_DETAIL

MOD_SO_SEARCH, MOD_SO_DETAIL, MOD_SO_POS_DETAIL

MOD_MATERIAL_SEARCH, MOD_MATERIAL_DETAIL

Come primo passo si procede a creare l’applicazione completa ExtendedApps. Iniziando come al solito dal customizing ramo:
EasyBP® Abap*4Web->Front-End Configurations->Application&Navigation

Profili di navigazione

Gruppi di navigazione

Applicazione e gruppo di navigazione

Ramo “EasyBP® Abap*4Web->Front-End Configurations->Components Configurationsi procede alla copia dei componenti di interesse delle tre applicazioni, indicando il nome della nuova applicazione. Questa Azione copierà anche gli oggetti subordinati, quindi è bene prestare attenzione a copiare in precedenza gli elementi dipendenti e poi gli elementi primari. Per esempio i button in genere sono dipendenti da elementi quali form e/o griglie quindi andrebbero copiati e salvati prima di copiare i widget. I moduli hanno anche il loro componente indicato in questo ramo, ma al momento verrà tralasciato per effettuare la copia nel prossimo step.

Potrebbe essere necessario specificare le configurazioni dei componenti nelle EasyBP® Abap*4Web->Front-End Configurations->Components Specific Configuration e nel ramo EasyBP® Abap*4Web->Front-End Configurations->Components Type

Nel ramo “EasyBP® Abap*4Web->Front-End Configurations->Modules Configuration, invece si selezioneranno singolarmente i moduli di interesse e nel ramo “Applicazioni Associate” si copia l’applicazione esistente inserendo il nome della nuova App cosi facendo si copiano anche tutti i sottocomponenti

Si seleziona l’inserimento SALES_ORDER e si clicca sul button copia in modo da copiare tutti i sottomenu

Completata questa fase la nuova app sarà raggiungibile ed eseguibile al link costruito in base al seguente pattern: http://<proprio_sistema>/bc/bsp/sap/zstc_webui_min/index.html?_APP=SO_MNG

L’applicazione strutturalmente si presenta strutturalmente completa, se le BAdI dei moduli hanno come filtro solo il nome del modulo le applicazioni saranno perfettamente funzionanti senza però essere collegate fra loro in quanto è necessaria la codifica in SAP tramite le BAdI Enhancement.

Workbench: enhancement ZSTC_EI_SO_MNG

Creato l’enhancement per l’applicazione complessa si procede con l’implementazione delle badi per i moduli, in numerp pari al numero dei moduli copiati, nel nostro caso 7.

Ogni BAdI avrà una nuova classe di implementazione, la quale però a differenza di quanto detto in BAdI Implementation – Moduli, avrà come superclasse la classe di implementazione della BAdI originale del corrispettivo modulo applicazione Basic, in modo da mantenere inalterato il comportamento delle singole applicazioni.

Dopo aver completato il punto 3 il comportamento di ogni sotto menu saranno attivi ma seguiranno i comportamenti delle applicazioni basic, senza collegamenti

Per far dialogare i model tra di loro è necessario compiere un’azione di customizing per creare le azioni e i button necessari ed un azione di workbench per ridefinire i metodi ereditati dalle rispettive superclassi

Customizing: si creano 3 action

  • ACTN_KUST_SEARCH_ODV che partendo dal model KUST cerca gli ordini del cliente
  • ACTN_SO_KUST_DETAIL che dal dettaglio dell’ordine visualizza il dettaglio del committente
  • ACTN_SO_MATERIAL che dalla posizione dell’ordine visualizza il dettaglio del materiale

Naturalmente occorrerà definire anche dei button e le dovute dipendenze.

Workbench:

le nuove azioni devono essere associate alla tabella t_action dei moduli come descritto in “BAdI Implementation Moduli” quindi è necessario ridefinire il metodo map_Actions per chiamare innanzitutto il predecessore ovvero il map_actions super e poi aggiungere la nuova azione. Inoltre per le BAdI interessate :

  • Si implementa un nuovo metodo che richiama la ricerca degli ordini nella badi del modulo dettaglio cliente,
  • Si implementa un nuovo metodo per lanciare il modulo KUST DETAIL
  • Si implementa un nuovo metodo per lanciare il modulo Material DETAIL
  • In tutte le classi si deve ridefinire il metodo map_action per inserire la nuova action e il rispettivo token
  • Tempo totale impiegato per definire una app completa mezza giornata per l’implementazione partendo dalle tre applicazioni basic, aggiungere il tempo per i vari test