ABAP Objects BAdI per User Enhancement

Slides:



Advertisements
Presentazioni simili
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
Advertisements

Wikispaces, flipped rules in the classroom fiorluis[at]tin.it Luisanna Fiorini
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
21/09/2016Presentazione a cura di1 AVIPA 1. Il progetto delle interfacce: esempi di modelli Viterbo, 10 Dicembre 2008.
Effetti grafici con compiz-fusion Come ottenere un desktop accattivante su UBUNTU.
Programmare “per gioco” SCRATCH Lo programmerò. Programmerò solo per lei.
Nota: Questa brochure è pronta per la stampa. Prima di stampare su cartoncino, è consigliabile effettuare una prova di stampa su carta normale per assicurarsi.
Utilizzare il browser Firefox, altrimenti le mappe immagini non funzionano.
Pagamenti Elettronici
Basi di dati - Fondamenti
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Introduzione al backend di Sharepoint_P3
Configurazione Router IR794- IG601
IL SOFTWARE (FPwin 6.0).
Seleziona Bandi di mobilità
Corso «Nozioni di Informatica» – riepilogo di alcuni concetti visti
MANUALE spazio web comitati tecnici per AMMINISTRATORI e membri CT
Sss Tutorial Reader 2D Tutorial.
Primo corso per operatore ALPE NILDE hot topics
VISUAL BASIC.
Commissione Calcolo e Reti
Pic16f84 Assembly I/O.
Terza Lezione → Navigare nel file System → parte 2
Termini CINAHL/MeSH su EBSCOhost
how to use Windows SharePoint Services
Drupal tipi di contenuto
Sostenere lo sviluppo, guidare la crescita.
Job Application Monitoring (JAM)
I FILES AD ACCESSO SEQUENZIALE
Nuovo Portale Antidoti
Quick Tip Tutorial Come accedere alle statistiche di EBSCOhost e di EBSCO Discovery Service attraverso EBSCOadmin help.ebsco.com.
Qt by Examples LINUX DAY
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
2018/9/ /9/11 USER ENVIRONMENT 1 1.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
Come si acquisiscono queste informazioni?
SAS® OnDemand for Academics SAS Studio
Audio Riferimento rapido per Lync 2013 per Office 365
POWER POINT Il programma, all'interno del pacchetto Office della Microsoft, è quello dedicato alla realizzazione di audiovisivi. Consente di creare documenti.
1.
ABAP Objects Enhancement Points
Network per i centri assistenza
istalliamo l’ambiente di sviluppo - ide
ABAP Objects Object-Oriented programming in R/3
Processi e Thread Meccanismi di IPC (1).
Access.
Basi di dati - Fondamenti
INTRODUZIONE A EXCEL Il foglio elettronico o foglio di calcolo è una tabella che contiene parole e numeri che possono essere elaborati applicando formule.
suggerimenti Alma (solo per uso interno)
Claudio Rocchini - Interfacce
Come personalizzare il sito Web online di Microsoft SharePoint
PowerPoint.
ABAP Objects ALV Grid Mantova, 30 dicembre 2018.
BootCaT: Bootstrapping Corpora and Terminology
Progettare Una Presentazione
Operazioni per caricare dei documenti sul Portale
WORD 28/02/2019 Informatica - WORD.
Indicazioni: Usare queste diapositive e note per creare il progetto.
Excel 3 - le funzioni.
OLIMPYAWIN software utilizzato per gestire le gare sportive scolastiche in piena autonomia per varie discipline. modulo di iscrizioni on-line che permette.
Fase 1. REGISTRAZIONE 27 dicembre 2018 inizio fase di REGISTRAZIONE attraverso la quale ci si potrà iscrivere sul portale Iscrizioni Online del Ministero.
Unità 1 Programmi base.
Progettare Una Presentazione
N O E MODELLO GITA S Come progettare una gita in base alla destinazione da condividere con altri studenti. Un modello con cui gli studenti possono.
A-to-Z Consente di Localizzare e Accedere a tutte le risorse della biblioteca: riviste online riviste cartacee riviste nelle banche dati in full text riviste.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Docente: Sabato Bufano
Digitare qui i dettagli dell'evento
Ruolo: Redattore Corsi
Modello immagine social media
Transcript della presentazione:

ABAP Objects BAdI per User Enhancement Mantova, 2 dicembre 2018

BAdI: Business Add-In Esistono dei punti all’interno dei processi standard di SAP in cui i programmi sono “aperti” alla possibilità di personalizzare il comportamento dei processi stessi Nella versione precedente l’istruzione CALL CUSTOMER-FUNCTION attivava dei Function Module dove era possibile inserire una parte di codice personalizzato per il cliente (User-Exit) – transaz. CMOD Le BAdI possono essere considerate come l’evoluzione delle User-Exit. L’istruzione CALL METHOD e la programmazione orientata agli oggetti sono usate per lo stesso scopo

Struttura di una BAdI Per costruire una BAdI servono: Una definizione (DEFINITION) – transazione SE18 Attributi generali e contenitore per una interfaccia Un’interfaccia (INTERFACE) – transazione SE18 Classe dell’interfaccia Creata dalla Definition per struttura generale e per avere accesso all’implementazione Un’implementazione (IMPLEMENTATION) – transazione SE19 Contiene il codice sviluppato per l’interfaccia Le implementazioni possono essere multiple e diverse l’una dall’altra La metodologia è leggermente diversa nella release ECC 6.0, si introduce il componente Enhancement Spot

INTERFACE – transaz. SE18 / SE24 Nella BAdI DEFINITION viene creato un ampliamento che verrà richiamato all'interno di sorgenti ABAP La BAdI INTERFACE è creata nello stesso momento della DEFINITION Un doppio-click sul nome dell'interfaccia ci porta nel Class Builder (SE24) per costruire la classe correlata alla nostra interfaccia Opzioni (tab strips): Interface: se indicata, eredita contenuti da quest'altra interfaccia Attributes: sono i nomi delle variabili (o parametri) utilizzati da tutti i metodi (come variabili globali) Methodes: Si dichiarano i metodi (una sorta di sub-routines) e i parametri per comunicare con essi Events: sono dei triggers che permettono di avviare particolari azioni Fino alla release 4.7

IMPLEMENTATION CLASS – transaz. SE24 Nel Class Builder (SE24) si crea la Classe, o le Classi, dove saranno implementati effettivamente I metodi che sono richiamati nei sorgenti standard SAP e a cui la BADI fa riferimento. Tutti I parametri di input/output e le Exceptions derivano dalla BADI.

IMPLEMENTATION – transaz. SE19 Una IMPLEMENTATION si crea con la transazione SE19 Inserire la DEFINITION richiesta (scegliere quella corrispondente alla INTERFACE chiamata nel codice) Opzioni: Inserire i FILTERS per i quali sarà attiva l'implementazione Scrivere il codice per i metodi nella Tab Interface - Methods Il codice inserito è valido localmente per l'implementazione in oggetto e non è condivisibile (shared) con altre implementazioni

Implementazione per SAP BAdI Enhancement In release 4.7 la definizione e l’interfaccia per la BAdI sono già state create e chiamate all’interno del codice standard L’unica cosa che possiamo creare e modificare è l’implementazione dei metodi in una o più Classi custom, che fanno riferimento all’interfaccia della BAdI Si possono creare quante implementazioni si vogliano, purchè si verifichino le seguenti condizioni Se usiamo i filtri o non impostiamo il flag multiple-use, Possiamo avere SOLO UNA implementazione attiva, le altre devono essere DEACTIVATED Se impostiamo il flag multiple-use, ogni volta che viene chiamato un metodo, saranno eseguite TUTTE le implementazioni valide per quel metodo, in ordine casuale

Classe CL_EXITHANDLER Per istanziare una interfaccia BADI, deve essere chiamato il metodo get_instance della Classe CL_EXITHANDLER Una volta fatta la DEFINITION, e completata l'INTERFACCIA, il codice relativo IMPLEMENTATION può essere scritto, ad esempio, in un programma ABAP

Classe CL_EXITHANDLER Codice esempio: CLASS CL_EXITHANDLER DEFINITION LOAD. DATA gv_interface_name TYPE REF TO <interface_name>. START-OF SELECTION. CALL METHOD cl_exithandler=>get_instance EXPORTING exit_name = 'Exit_name' null_instance_accepted = 'X' CHANGING instance = gv_interface_name. CALL METHOD gv_interface_name->method_name END-OF-SELECTION.

ENHANCEMENT SPOT – transaz. SE18 Un Enhancement Spot è un componente che può contenere una o più definizioni BADI (da release ECC 6.0) DEFINITION della BADI e dell’Interface: Transaz. SE18 – Selezionare opzione “Enhancement Spot”, per creare Selezionare tecnologia “BAdI Definition” e salvare Selezionare la tabstrip "Enhancement Spot Definitions“ Click sull’Icona "Create BADI" , dare un nome e una descrizione alla BADI Inserire il nome dell’interfaccia relativa alla BADI, e creare la BADI Interface “Create Filter” si trova col tasto destro del mouse sulla Definizione della BADI. Permette di inserire un filtro per il controllo dell’esecuzione della BADI Inserire: nome e tipo del filtro e una descrizione – salvare

ENHANCEMENT SPOT – transaz. SE19 IMPLEMENTATION della BADI/Interface: Transaz. SE19 – Scegliere il nome della “Enhancement Spot”, e click su “Create Implementation” Doppio-click su “Implementing Class” per creare la Classe di implementazione Se necessario inserire I valori dei filtri con click su “Filter Val.”

GET BADI/CALL BADI – rel. ECC 6.0 Nella nuova rel. ECC 6.0 esistono le istruzioni GET BADI e CALL BADI per richiamare I metodi di una BAdI (sostituisce la classe CL_EXITHANDLER). GET BADI <BADI Name> FILTERS <filter> = <filter var>. TRY. CALL BADI <BADI Name> -> <BADI method> EXPORTING <paramter> = <variable> CATCH CX_SY_DYN_CALL_ILLEGAL_METHOD. ENDTRY. CATCH intercetta le Exception, altrimenti rischio DUMP

BAdI Enhancements Nel menu di customizing IMG (transaz SPRO), si possono trovare le BAdI disponibili nei diversi moduli SAP. Molte volte sono allocate sotto un menu chiamato “System Enhancements” La definizione si trova eseguendo l’attività del menu IMG. Ad esempio: se si vuole inserire un controllo sui campi prima della Order Confirmation, si può cercare una BAdI utile nel path Plant Maintenance and Customer Service > System Enhancements and Data Transfers > Business Add-Ins Nell'esempio, la definizione della BAdI è WORKORDER_CONFIRM Se ci sono implementazioni già fatte, saranno visibili. Se vi viene chiesto di creare una implementazione significa che per quell'interfaccia non ne esistono ancora.

ESEMPIO BAdI Enhancements in MM Standard BADI con esempio di implementazione Transazione MM02 – Modifica Materiale Programma LMGMMI12 – line 182 BADI name: W_RETAILSYSTEM_IDENT Interfaccia CL_EX_W_RETAILSYSTEM_IDENT BADI Implementation ZW_RETAILSYSTEM_IDENT

BAdI Enhancements Altre cose che si possono aggiungere con BAdI Menu enhancements nuovi function codes possono essere aggiunti nella tab FCODEs di una definizione (non devono essere attivati nè filtri nè multiple-use flag) il codice deve essere gestito nella chiamata all'applicazione SAP, che può puntare a uno specifico metodo Screen enhancements permette di aggiungere campi o cambiare l'elaborazione di uno screen. Vedi il tab Subscreen nella Definition (se multiple-use non è settato)

Esempio pratico - Definition Creare una BAdI che restituisca il codice currency di una Sales Organization La BadI sarà inserita in un programma custom, quindi è necessario creare tutti I componenti Il processo di ricerca della currency potrebbe essere diverso per ciascuna Sales Organization Definire la BAdI con SE18: Z_BADI_CURRxx_EX Mark filter-depend, Filter type VKORG Il sistema propone il nome della interfaccia ZIF_EX_<nome della definition> Definire I parametri dell’interfaccia ci si arriva dalla SE18 Method GET_CURRENCY (Level: instance) Il metodo è qui solo dichiarato per nome, è codificato nella implementation Importing parameter: FLT_VAL, Type VKORG Changing parameter: WAERS, type WAERS

Esempio pratico - Implementation Definire due diverse implementazioni con SE19 Per due diverse sales organizations Implementation Z_BADI_CURRxx_IMP_EX_SO01 Riferimento alla stessa definizione Z_BADI_CURRxx_EX Definire I filtri di ciascuna implementation con il valore della rispettiva Sales Organization Significa che verrà eseguita solo l’implementation relativa al filtro passato come parametro FLT_VAL al metodo GET_CURRENCY Il metodo eseguito sarà quindi quello contenuto nella interfaccia valida in quel momento Con doppio-click sul nome del metodo, si apre l’editor per inserire il codice ABAP Verificare la CLASSE di ogni interfaccia e il rispettivo codice ABAP Ogni implementation avrà un codice diverso che imposta il parametro di output in modo diverso

Esempio pratico – Activate/Deactivate Una volta inserito il codice, l'implementazione deve essere attivata. Bisogna ritornare allo screen della implememtation per attivare tutti gli elementi. Se sarà necessario modificare un qualsiasi componente dell'implementazione, questa deve essere disattivata prima di inserire le modifiche e al termine attivata.