Showing posts with label Editor. Show all posts
Showing posts with label Editor. Show all posts

Friday, 12 February 2016

Basics of ABAP Webdynpro: Getting familiar with Webdynpro jargons part 3

Internal/Context mapping: We can define context node at any of the available controller. However as WD component controller works as a global one, context node defined there is accessible in any other controller. We just have to drag and drop those WD component controller context node to the controller we want them to be used. In that case, if we define any value to this node at WD component level, this value will flow to the other controller where it has been used. And also if we make any changes in that context node in controller where it is mapped, that value will flow to WD component level also.

External/Cross component context mapping: In one of the earlier posts we have seen what component usage is all about. Suppose we are using WDC1 into WDC2 through component usage. Now context mapping between a context node, which is in interface controller of WDC1, and a context node of WDC2 will be known as external mapping. In that case context node data from WDC2 will flow to WDC1.

Hook methods: As soon as you create a WD component, many hook methods will be automatically will be available at WD component level, view level, Window Level. In one of my post, I have very elaborately described about the Hook methods and their order of triggering in normal as well as in special scenarios. To know more ClickHere and Here

Singleton Node: We will understand this with one example. Suppose there is one node which will have sales order header related information. Now this node has another sub/child node which is meant for the item level information. In normal scenario if both of these nodes are normal node, if the parent node has 10 header records, child node will have the item level information of all the 10 sales order.

Now in case the child node is defined as singleton node, this child node will only contain item level information for the sales order which is currently selected. This is huge success in improving the overall application performance.

Supply function: While defining the context node we can give the supply function also. This supply function is meant for providing a value to the context node. Supply function will gets triggered if the data of the context node is being used and its value is either initial or invalid. Context node’s value will be invalid if it’s a singleton node and the lead selection of the parent node has changed. In that case supply function will get triggered and will calculate the new value based on the parent node’s data.

Apart from the ABAP Webdynpro terms I covered in last 3 posts, I have already shared many ABAP Webdynpro related posts in my blogs. While you can go through the blog to find more, here are few links of the important posts.

Deploy ABAPWebdynpro application in SAP Enterprise portal 

Default leadselection in ALV in ABAP webdynpro

Disable empty rowscoming in Webdynpro ALV

Dump (System_name :is not a valid attribute type) in starting the Webdynpro Application 

Radio button as a cell editor for a column in Table UI element - Part 1 

Radio button as acell editor for a column in Table UI element - Part 2 

Different types ofwindow creation in Webdynpro

Cell Variant: A wayto use multiple editor in a single table column in webdynpro ALV 

Floor Plan Manager:FPM application using OIF


Use ofIF_FPM_UI_BUILDING_BLOCK interface in FPM and triggering sequence of itsmethods 


I’ll continue posting more basic concepts and exercises in my further post. Till then Happy Learning :)

Monday, 28 September 2015

Cell Variant: A way to use multiple editor in a single table column in webdynpro ALV

Cell Variant is a concept which comes handy when multiple cell editors need to be used for a single table column. 

Let's say we have a table with few columns. Now while using table as UI element, we create binding and while creating binding, we give information for cell editor also that this column of table will be say of type TextView, that column will be of type InputField. So as per the binding table columns will be displayed accordingly. 

That is the static way of creating cell editor for a particular column. Now one can have the requirement of using a different cell editor (than one which we have given during creation of binding) for a particular row based on some condition. At this point cell variant comes into picture. 

The context node which we will be displaying in table will have one extra attribute for cell variant key. This attribute's value will decide which cell editor will be coming into picture for a particular row. So we have to do our calculation in coding and assign appropriate value to this attribute.  

Column, which will be hosting different cell editors, will have the property 'selectedCellVariant' bind to the cell variant key attribute. Cell variant we can insert by right clicking on the column and further by right clicking on the cell variant we can insert the cell editor. In cell variant we have to give value to the property 'variantKey'. In run time for every record, cell variant attribute's value will be matched with this property's value. If it get's matched, corresponding cell editor will be displayed. Please make note that this value is case sensitive, so NOTE and Note will be considered different. 

So We will be doing a simple example on this. Example will have one table with 2 columns. First columns will have some numeric value and based on the first column's value, 2nd column will have different cell editors.

Make one WD component and in main view in context have one node with 2 attribute like below. 2nd attribute will serve the purpose of cell variant key.



In layout insert a table UI element and bind with the context node. In second column set the properties like below.


Under 2nd column insert cell variant like below. Insert one cell editor also per cell variant.








Do coding like below in WDDOINIT method of the view.





Do create one application and test it.


In case for any record the value of cell variant key attribute doesn't match with any existing cell variant's 'variantKey' property, below dump will occur.



Happy Learning :)