SAP FPM Reusable Wiring Model Architecture **Part 1**
This is Part 1 of the blog to give an overview on the basic wiring model. The part 2 will have step by step procedure to create a reusable wiring architecture. What reusable means is that the same wiring model can be used between any two UIBB’s to share any type of data.
In a FPM application a wire allows transfer of data from source UIBB to destination UIBB. Creating a wiring architecture can be complicated and its time consuming as well, especially if you create model every time for a new application. I write this blog to explain the basic fundamentals of wiring and then how to create your own reusable architecture which then can be used with any application.
The feeder model interface IF_FPM_FEEDER_MODEL is implemented by any feeder class to enable it to participate in a wiring data communication. However, before it can participate one has to configure it.
- GET_OUTPORTS: To set ports (Out-ports: Selection, Lead Selection or Collection). Why Get, why not Set, because the FPM standard calls your feeder class and asks for what out-ports do you have, hence GET_OUTPORTS. The exporting table type parameter is where you can set the various ports and depending upon what ports was set those will be available and visible in graphical editor.
- GET_OUTPORT_DATA: The FPM standard here gets the reference of an object which ideally contains data that needs to be transferred from one UIBB to another.
- SET_CONNECTOR: The FPM standard sets the reference of connector class; this connects the feeder with connector class during runtime. Notice that FPM is telling the feeder about the connector, hence SET.
- GET_NAMESPACE: The concept of namespace is important when developing new wiring model. This is important during the design time of the application when two UIBB’s are connected in editor via wire. Based upon the namespace value that FPM standard receives via this method: it shows via connector class options. This section will get clearer when we talk about the connector class.
- GET_INPORT_KEY: In-port key is an identifier. For each identifier you can have different data class object.
This class implements the interface IF_FPM_CONNECTOR which in turn implements interfaces IF_FPM_CONNECTOR_DEF and IF_FPM_CONNECTOR_RUN. To keep this simple I will not discuss all the methods exposed by these interfaces rather just the important ones.
- INITIALIZE: This is just like a constructor method which is called once. Here you can set thelabel for your wire between the UIBB’s. This can be done by assigning value to the interface attribute IF_FPM_CONNECTOR_DEF~MV_WIRE_LABEL.
- SET_INPUT: The FPM standard sets the reference of data object from source UIBB onto the connector class.
- GET_OUTPUT: The FPM standard gets the reference of data object for the destination UIBB from the connector class.
Once this reference of data object from source to finally the destination UIBB is established the work of wire is complete.