pdf file - rfse.nl

FPM Development
Robin Fillerup
[email protected]
[email protected]
Agenda
• OO/Model verwerking
• WebDynpro Abap
• FloorPlan Manager
Model Verwerking, MVC
Model
• Model:
•
•
•
•
•
•
•
Data
Methodes/Acties
Events
Associaties
State, e.g. New, Blocked, Overdrawn -> Actions
Instantieren via Factory(instance/associatie management)
Meta Informatie, e.g RTTI voor Model
Model zonder Associaties
Model met Associaties
Factory
WebDynpro ABAP(WDA)
•
•
•
•
•
•
•
•
Component
Component Controller
Context
Window/View
Context Mapping
Context Binding naar UI Elements
Configuratie
Reuse
WebDynpro Component
Data+Methods+Events, geen SE24 Class!
Aanroepbaar vanuit Andere Component
Bevat UI Elementen
Bevat View(s), reusable door andere Comp.
Start Component+Window
WDA Context
WDA Configuratie(1)
WDA Configuratie(2)
WebDynpro Reuse
FPM
•
•
•
•
•
•
•
Main FPM Components
Main FPM Configuration
UIBB, ‘Freestyle’ Component
UIBB, Generieke Component(GUIBB)
Wiring
Application Controller
Application Configuration Controller
Main FPM Component(OIF)
Main FPM Component(GAF)
Main FPM Component(OVP)
Main FPM Configuratie(1)
Main FPM Configuratie(2)
Freestyle Component
• WebDynpro Component die Component Interface
IF_FPM_UI_BUILDING_BLOCK Implementeert:
•
•
•
•
•
AFTER_FAILED_EVENT
FLUSH
NEEDS_CONFIRMATION
PROCESS_BEFORE_OUTPUT
PROCESS_EVENT
• Component is afhankelijk van ID’s in Configuratie, bvb:
waarde van FPM Event Id (nadeel)
• Component Controller kan geen events afhandelen van Model
Object (nadeel)
Generieke Component
• Configureerbare SAP Component: List, Form, Tree, Search,
Panel, Chart(7.40), HTML5 Container(7.40),
FormRepeater(7.40) etc
• In de Configuratie wordt(meestal) een Feeder Class
opgegeven, eventueel met parameters
• Feeder Class heeft controle over de Generieke Component
tijdens Configuratie en Runtime(voordeel)
• Feeder Class kan Configuratie gedurende Runtime wijzigen
• Feeder heeft referentie naar Model Object, en kan Events
afhandelen(voordeel)
GUIBB Configuratie
Feeder Class Interfaces
• IF_FPM_GUIBB
• INITIALIZE
• GET_PARAMETER_LIST
• IF_FPM_GUIBB_[TYPE]
•
•
•
•
•
•
FLUSH
PROCESS_EVENT
GET_DATA
GET_DEFINITION
GET_DEFAULT_CONFIG
CHECK_CONFIG
FPM Wiring(1)
FPM Wiring(2)
• IF_FPM_FEEDER_MODEL
•
•
•
•
•
GET_INPORT_KEY
GET_OUTPORTS
GET_OUTPORT_DATA
SET_CONNECTOR (IO_CONNECTOR/IF_FPM_CONNECTOR_RUN)
GET_NAMESPACE
• IF_FPM_GUIBB_[TYPE]
• GET_DEFAULT_CONFIG
• CHECK_CONFIG
• Kan Dynamisch als Model Associatie Info heeft en geeft
Application Controller
• Een Class of WD Component die de (Component)Interface
IF_FPM_APP_CONTROLLER Implementeert:
•
•
•
•
•
•
•
•
•
•
AFTER_AFTER_FAILED_EVENT
AFTER_FLUSH
AFTER_NEEDS_CONFIRMATION
AFTER_PROCESS_BEFORE_OUTPUT
AFTER_PROCESS_EVENT
BEFORE_AFTER_FAILED_EVENT
BEFORE_FLUSH
BEFORE_NEEDS_CONFIRMATION
BEFORE_PROCESS_BEFORE_OUTPUT
BEFORE_PROCESS_EVENT
Application Conf. Contr.
• Een Class of WD Component die FPM Component de
(Component)Interface IF_FPM_[MAIN_FPM_TYPE]_CONF_EXIT
Implementeert
• OVERRIDE_EVENT_GAF
• OVERRIDE_EVENT_OIF
• OVERRIDE_EVENT_OVP
Conclusies
• Standaard WEB Dynpro: flexibele UI door configuratie en
Binding, veel UI Elementen maar hergebruik val tegen.
• FPM: GUIBB! Maar de Feeder Classes moeten Generiek! Dat kan
alleen met een Model Laag(BOBF/BOL/SPI/Maatwerk) data dat
mogelijk maakt, anders eindig je met erg veel classes! Voor
een Wiring Enabled Form Feeder 3 classes, met redelijk wat
code in de implementatie
Dank U!
• Vragen?
• Contact: [email protected]