Está en la página 1de 40

WD Wiring in a Nutshell

Dr. Roland Schwaiger

10.05.2012

Dr. Roland Schwaiger / www.facet.at

Intro
Wiring is a directed connection between two different
UIBBs
Data is exchanged coming from a source sent to a target
A Connection is called a wire and through configuration the
target UIBB is connected to the source UIBB with the help
of a connector class
Furthermore a wire defines an outport-type and an
outport-identification
Outport-type: The data is sent as collection, lead-selection or
selection

GAF, OIF: Config is done through node beneath variant


OVP: Config is done through wire node below root-node in
hierarchy
10.05.2012

Dr. Roland Schwaiger / www.facet.at

Feeder Model
All UIBBs with own feeder-class may be used
directly if they implement the feeder-model<<interface>>
interface
IF_FPM_FEEDER_MODEL
IF_FPM_UIBB_MODEL
+ GET_MODEL_API( )

+ GET_INPORT_KEY()
+ GET_NAMESPACE()
+ GET_OUTPORT_DATA()
+ GET_OUTPORTS()
+ SET_CONNECTOR()

Implements WDCI
for Feeder-Model
UIBB
10.05.2012

Dr. Roland Schwaiger / www.facet.at

Connector Class
The connector class is responsible for the
transport of the data between source and
target
CONNECTOR
Class

implements

<<interface>>
IF_FPM_CONNECTOR

<<interface>>
IF_FPM_CONNECTOR_DEF
+ GET_PARAMETER_LIST()
+ GET_PARAMETER_VALUE_SET()
+ INITIALIZE()
+ SET_INPUT()
10.05.2012

Dr. Roland Schwaiger / www.facet.at

<<interface>>
IF_FPM_CONNECTOR_RUN
+ CREATE_ENTITY()
+ GET_OUTPUT()
+ IS_CREATE_ALLOWED()
4

Transaction
You may define a separate class for Transaction
Handling
It is assigned through config to a wire
Transaction
Class

<<interface>>
IF_FPM_WIRE_MODEL_TRANSACTION
+ AFTER_FLUSH()
+ AFTER_NEEDS_CONFIRMATION()
+ AFTER_PROCESS_BEFORE_OUTPUT()
+ AFTER_PROcESS_EVENT()
+ IS_DIRTY()
+ START()

Btw: not used in example


10.05.2012

Dr. Roland Schwaiger / www.facet.at

<<feeder class>>
ZCL_USER_LIST

Example
Access data
model

Select one
user

<<model>>
User
Management

<<GUIBB LIST>>
View of all users in system

Wiring

<<GUIBB FORM>>
Detail for one user

<<feeder class>>
ZCL_USER_DETAILS
10.05.2012

Dr. Roland Schwaiger / www.facet.at

Used Elements for


Example without Transaction Class
<<interface>>
IF_FPM_GUIBB_FORM

<<feeder class>>
ZCL_USER_DETAILS

<<interface>>
IF_FPM_FEEDER_MODEL

<<interface>>
IF_FPM_GUIBB_LIST

Holds the data for all users:


Attribute Key Table for
users

<<feeder class>>
ZCL_USER_LIST

Use CLASS_CONSTRUCTOR
to fill Table of users
<<data container class>>
ZCL_DATA_CONTAINER_WIRE
Holds the data for wire communication:
Dr. Roland Schwaiger / www.facet.at
Just Attribute Key for
user

10.05.2012

<<wire connector class>>


ZCL_WIRE_CONNECTOR
7

Class Diagram
<<feeder class LIST>>
ZCL_USER_LIST
+ GO_DATA_CONTAINER_WIRE
+ GET_OUTPORTS()
+ GET_OUTPORT_DATA()
+ GET_NAMESPACE()
+ GET_DATA()
+ GET_DEFINITION()
+ INITIALIZE()

<<feeder class FORM>>


ZCL_USER_DETAILS
+ GO_DATA_CONTAINER_WIRE
+ GO_WIRE_CONNECTOR
+ SET_CONNECTOR()
+ GET_NAMESPACE()
+ GET_DATA()
+ GET_DEFINITION()

<<data container class>>


ZCL_DATA_CONTAINER_WIRE
10.05.2012

Dr. Roland Schwaiger / www.facet.at

<<wire connector class>>


ZCL_WIRE_CONNECTOR
+ GO_DATA_CONTAINER
+ GET_OUTPUT()
+ SET_INPUT()
+ CLASS_CONSTRUCTOR() 8

Sequence without
Wire

--------------------- Start the application --------------------ZCL_USER_DETAILS->GET_PARAMETER_LIST


ZCL_USER_DETAILS->INITIALIZE
ZCL_USER_DETAILS->GET_DEFINITION
ZCL_USER_LIST->CLASS_CONSTRUCTOR
ZCL_USER_LIST->GET_PARAMETER_LIST
ZCL_USER_LIST->INITIALIZE
ZCL_USER_LIST->GET_DEFINITION
ZCL_USER_LIST->GET_DATA
ZCL_USER_DETAILS->GET_DATA
--------------------- Initial View Assembly is shown --------------------ZCL_USER_LIST->FLUSH
ZCL_USER_DETAILS->FLUSH
ZCL_USER_LIST->PROCESS_EVENT
ZCL_USER_DETAILS->PROCESS_EVENT
ZCL_USER_LIST->GET_DATA
ZCL_USER_DETAILS->GET_DATA
--------------------- Next View Assembly is shown --------------------10.05.2012

Dr. Roland Schwaiger / www.facet.at

Sequence with Wire


--------------------- Start the application --------------------ZCL_USER_DETAILS->GET_PARAMETER_LIST
ZCL_USER_DETAILS->INITIALIZE
ZCL_USER_DETAILS->GET_DEFINITION
ZCL_USER_LIST->CLASS_CONSTRUCTOR (Read List of Users from DB: GT_USERLIST)
ZCL_USER_LIST->GET_PARAMETER_LIST
ZCL_USER_LIST->INITIALIZE (Create GO_DATA_CONTAINER_WIRE )
ZCL_USER_LIST->GET_DEFINITION
ZCL_USER_DETAILS->SET_CONNECTOR ( Set GO_WIRE_CONNECTOR )
ZCL_USER_LIST->SET_CONNECTOR (empty method)
ZCL_USER_LIST->GET_DATA
ZCL_USER_LIST->GET_OUTPORT_DATA
ZCL_USER_DETAILS->GET_DATA (Set data in GO_DATA_CONTAINER_WIRE from
GO_WIRE_CONNECTOR->IF_FPM_CONNECTOR~GET_OUTPUT( ) )
--------------------- Initial View Assembly is shown --------------------ZCL_USER_LIST->FLUSH
ZCL_USER_DETAILS->FLUSH
ZCL_USER_LIST->PROCESS_EVENT
ZCL_USER_DETAILS->PROCESS_EVENT
ZCL_USER_LIST->GET_DATA
ZCL_USER_LIST->GET_OUTPORT_DATA
ZCL_USER_DETAILS->GET_DATA
10.05.2012
Dr. Roland Schwaiger / www.facet.at
--------------------- Next View Assembly is shown ---------------------

10

Configure
OIF

GUIBB LIST

GUIBB FORM

10.05.2012

Target Comp: FPM_FORM_UIBB


FeederClass (Target): ZCL_USER_DETAILS
SourceComp: FPM_LIST_UIBB
Port-Kind: Lead-Selection (LS)
Port-Identification: Standard
ConnectorClass: ZCL_WIRE_CONNECTOR

Dr. Roland Schwaiger / www.facet.at

11

ZCL_WIRE_CONNECTOR

10.05.2012

Dr. Roland Schwaiger / www.facet.at

12

ZCL_WIRE_CONNECTOR

10.05.2012

Dr. Roland Schwaiger / www.facet.at

13

ZCL_WIRE_CONNECTOR

10.05.2012

Dr. Roland Schwaiger / www.facet.at

14

ZCL_WIRE_CONNECTOR

10.05.2012

Dr. Roland Schwaiger / www.facet.at

15

ZCL_WIRE_CONNECTOR

10.05.2012

Dr. Roland Schwaiger / www.facet.at

16

ZCL_DATA_CONTAINER_WIRE

10.05.2012

Dr. Roland Schwaiger / www.facet.at

17

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

18

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

19

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

20

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

21

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

22

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

23

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

24

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

25

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

26

ZCL_USER_LIST

10.05.2012

Dr. Roland Schwaiger / www.facet.at

27

ZCL_USER_LIST
(cont.)

10.05.2012

Dr. Roland Schwaiger / www.facet.at

28

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

29

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

30

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

31

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

32

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

33

ZCL_USER_DETAILS

10.05.2012

Dr. Roland Schwaiger / www.facet.at

34

FPM App (OIF )

10.05.2012

Dr. Roland Schwaiger / www.facet.at

35

Application
Configuration

10.05.2012

Dr. Roland Schwaiger / www.facet.at

36

App + Component
Configuration

10.05.2012

Dr. Roland Schwaiger / www.facet.at

37

LIST + FORM GUIBB


+ Config

10.05.2012

Dr. Roland Schwaiger / www.facet.at

38

Wire Config

10.05.2012

Dr. Roland Schwaiger / www.facet.at

39

Result

10.05.2012

Dr. Roland Schwaiger / www.facet.at

40

También podría gustarte