1 1 1 1 1 Rating 0% (0 Votes)
As I promised I will show how to use the methods we've prepared in previous parts of this tread. I will write simple program that calls the method get_objects_of_class and then loops through the results of it. But before I'll prepare program I need to have classification with some characteristics and an object to which I will add classification. So lets start with CL01 to create our test classification. I'll name it ECM_CLASS1, and I'll add one characteristic for each data type so NUM, CURR, CHAR, DATE and TIME.
 
 
Then I'll classify change number in CC02 for two change numbers available there (of course we can do it for how many objects we want) .
Read more ...

1 1 1 1 1 Rating 0% (0 Votes)
In previous article ( Classifications - Part 2 - Get Object Details ) I've created a method to get characteristics values for an object to our dynamic structure, in this part I will show how to use this method and FM CLAF_OBJECTS_OF_CLASS  to get the characteristics values for all of objects that are classified by given class. I will firstly read all assignments to the class, then I will loop through all returned objects and I will get all characteristics values to dynamic structure.
 
Importing:

i_class type klah-class -> class number
i_classtype type klah-klart -> class type
i_key_date type sy-datum  default sy-datum -> key date for classification

Exporting:

value( et_objects ) type standard table of clobjekte -> table of objects assigned to class
et_data type ref to data -> table with characteristics data for all objects assigned to class
e_tablestr type ref to cl_abap_tabledescr  -> table type structure
e_structure type ref to cl_abap_structdescr -> structure

Exceptions:

fetch_values_error
structure_error

Implementation:
Add a comment
Read more ...

1 1 1 1 1 Rating 0% (0 Votes)
 
In the first part I show how to create a structure on a base of class characteristics, now I will describe how to get the characteristics values for a object and how to fill the structure we've created in part 1. To get the characteristics values for an object I will use FM BAPI_OBJCL_GETDETAIL, then using field-symbols I will move the data from its result tables to our structure. I will use also cl_abap_typedescr to get the type of the field (needed for proper conversion) and FM KKEK_CONVERT_FLOAT_TO_CURR to convert currency values stored as float on database into currency fields.
 
Importing:

i_object type bapi1003_key-object -> key of object to be classified
i_class type klah-class -> class number
i_classtype type klah-klart -> class type
i_objecttable type bapi1003_key-objecttable optional -> name of database table for object
i_key_date type sy-datum  default sy-datum -> key date for classification
i_structure type ref to cl_abap_structdescr optional -> structure

Exporting:

et_objvaluesnum  type tt_bapi1003_alloc_values_num -> table with num characteristics
et_objvalueschar type tt_bapi1003_alloc_values_char -> table with char characteristics
et_objvaluescurr type tt_bapi1003_alloc_values_curr -> table with curr characteristics
e_data type ref to data -> filled structure for object with all characteristics

Exceptions:

fetch_values_error -> error while trying to receive object characteristics value
structure_error -> structure has wrong fields

Implementation:
Read more ...

1 1 1 1 1 Rating 0% (0 Votes)
Today I'll start to show you how you can prepare some methods to be able to read classification data without carrying each time about the kind of characteristics. If you follow my suggestions then you'll be able to use this methods each time you deal with classifications. In this part I will show you how to prepare a method to create a structure and table for classification data. I know that some of you can say we can create such structure manually with data or types statement directly in each of our development, but one day you'll see that sometimes it's easier to prepare a function or method which will do it for you so you can keep the logic in each of your program without doing maual work.
 
To create the structure of the class I will use FM BAPI_CLASS_READ  to read class data, then I will use FM BAPI_CHARACT_GETDETAIL to read the characteristics and in each step I'll be using classes cl_abap_elemdescr, cl_abap_structdescr and cl_abap_tabledescr to create the structure I need.
 
Import:

i_classtype klah-class-> class number
i_classtypetype klah-klart ->class type
i_key_datetype sy-datum  default sy-datum-> key date for class

Export:

e_structuretype ref to cl_abap_structdescr-> structure for our class
et_datatype ref to data -> table created on a base of class structure
e_tabletype ref to cl_abap_tabledescr-> table type for our class

Exceptions:

class_classtype_fetch_error
error_creating_table
characteristics_error

Implementation of method:
Read more ...

5 1 1 1 1 1 Rating 100% (6 Votes)
We know already how to use chart designer and we're able to save/read it's result to/from standard texts. So let's go for most interesting part - rendering the chart. Of course we will need some data but I will use dummy one just to show you how to create the chart, you can replace this part with loop on your internal table or even better change it in the way that you'll pass internal table.
In the method provided bellow I firstly create custom container object (cl_gui_custom_container) to place the chart in it, then I create chart engine (cl_gui_chart_engine), then using if_xml I create an xml data container which in fact can be written using simple concatenate statement but it's not nice to change and easy to mess.

So after we receive an xml with data then I will pass it to chart engine, then I will run the method prepared in previous part (Create a nice looking chart with CL_GUI_CHART_ENGINE - Part 2 - Customization ) to read the customization of the chart and I will pass it also to engine. Finally I will render the chart.
Read more ...

1 1 1 1 1 Rating 0% (0 Votes)
In part one for this tutorial I quickly shown you how to create a chart customizing using Chart Designer, in this part I will show how I store and use such customizing. For the beginning I'll tell you that there are many ways to store the customizing, you can keep it in GOS, or in APP server or load it directly from PC, but my favorite one is to keep the customizing in standard texts (SO10) and read it from there. It's easy to do changes there and it can be restricted in authorizations who can do changes for such text.
So I'll go to SO10 and create new text for customization there:
Read more ...

5 1 1 1 1 1 Rating 100% (2 Votes)
At the beginning of my work with SAP I was disappointed with the charts that was available in standard transactions. In fact I am still :) But when I have to create own program with nice looking chart then it's no longer a problem as we can use CL_GUI_CHART_ENGINE together with chart designer provided by SAP. Chart designer is a tool which allows you to create a customizing for your chart and save it in XML file which can be used in ABAP after.

So first of all we need to download chart designer from SDN so you can google "sap chart designer" to get it. After you'll have it just run one of the versions available there (640 or 700) depending on your GUI version. All files which you'll find in the package are shown below, XML Format.pdf file will tell you how to prepare chart data depending on chart type.
 
Read more ...

5 1 1 1 1 1 Rating 100% (1 Vote)
In article Save variant for single selection screen subscreen I've shown you how to save a variant for single selection-screen subscreen with a little help of FM RS_ISOLATE_1_SELSCREENRS_CREATE_VARIANT. If you use method shown there it may happen that when you're loading a variant to a screen it overrides also values from other fields. To avoid that I've prepared a method to fill only fields from one subscreen. I will use here FM RS_VARIANT_CATALOG to allow user to select variant for subscreen, FM RS_VARIANT_CONTENTS to read it's content, FM RS_ISOLATE_1_SELSCREEN to get the fields of subscreen and field-symbols to put them on place. So let's start.
 
As input parameter I will use only subscreen number:

i_dynnr type sy-dynnr  -> subscreen number

Read more ...
Page 4 of 5