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]
© Copyright 2024 ExpyDoc