Quantcast
Channel: SCN : All Content - User Interface Development in ABAP
Viewing all 540 articles
Browse latest View live

Dynamically assign function keys to gui-status

$
0
0

Hi all,

 

I have a function module pretty much like "POPUP_TO_CONFIRM". I would like to ask if it is possible to dynamically assign function keys to the buttons on the popup dialog. The assigned function keys would have to change according to the question / button coding, see the examples below

 

Example 1:

Question: "Do you want to execute?"

Button 1: Execute (Function key should be F8)

Button 2: Abort (Function key should be F12)

 

Example 2:

Question: "Do you want to save?"

Button 1: Yes (Function key should be F5)

Button 2: No (Function key should be F3)

 

So: Is it possible to change the linked function key in the gui status dynamically?

 

Thanks a lot

 

Cheers

 

Jens


Email Program - Batch Job Completion

$
0
0

Hi

 

My requirement is that I have a batch program and as soon as it is completed, an email needs to be sent to user informing that the job has been completed.

 

My questions are below

 

1. Do i need to create a Z program that sends email and add it in the steps of the batch job ?

 

2. Is there a possibility of any alert settings done for specific job to trigger email rather than Z program?

 

3. Can I develop the Z program as generic so that it can be added as a step to any batch job and that it needs to capture the batcj job name and send it in email? if so, how do i do this

 

4. Any other ideas are also appreciated.

 

Regards

Sam

Webapplication UI5 or XSapp

$
0
0

Hi,

 

I have a table called ZMATERIAL,

If I want to insert the data into this table I have to write a SQL query, INSERT INTO ZMATERIAL VALUES ('Material1')

My client requirement is, they want a web application like below and want to create the materials through the same.

User.png

What is the best approach to achieve the same? 

- UI5 or XSapp?

UI5_731 vs UI2_731 on ECC 6.0 Ehp6 - System

$
0
0

Hello Experts

 

 

Referring this link :

User Interface Add-On for SAP NetWeaver - SAP Library

 

Under - ABAP, we can see -

 

UI5_731; can be installed -

>>> SAP NetWeaver 7.3 EHP1,

>>> SAP NetWeaver 7.0 EHP3,

 

 

Our ECC System is with below components, we tried many times to generate XML for installation of UI5_731. it is never picking / showing UI5_731 component for add-on installation. In this context can we really install UI5_731 on SAP_BASIS 731/SP8 System or not. i

 

if yes - why MOPZ is not pikcing

if no -  why URL link referering UI5_731

 

I have one more observation .

Under - UI ADD-ON 1.0 FOR NW 7.03 (Support Packages and Patches)

i do not see UI5_731 component at all.

 

 

In this Juncture -

Can we really install UI5_731 component on below system or not + with some gyan on the same thing is highly appreciated

 

Pl Help

 

PR

 

 

 

 

Our System SP level info

------------------------------------------

 

 

SAP_BASIS        731    0008    SAPKB73108

SAP_ABA            731    0008    SAPKA73108

PI_BASIS              731    0008    SAPK-73108INPIBASIS

IW_BEP            200    0006    SAPK-20006INIWBEP

SAP_BW            731    0008    SAPKW73108

UISAPUI5    100    0004    SAPK-10004INUISAPUI5

UI2_SRVC    100    0004    SAPK-10004INUI2SRVC

UI2_FND        100    0004    SAPK-10004INUI2FND

UI2_731        100    0004    SAPK-10004INUI2731

UI2_702        100    0004    SAPK-10004INUI2702

UI2_701        100    0004    SAPK-10004INUI2701

UI2_700        100    0004    SAPK-10004INUI2700

UI_INFRA    100    0004    SAPK-10004INUIINFRA




Dynamic documents: disable two input fields results into error

$
0
0

Hello experts,

 

I used the first time dynamic documents, to put input fields into containers. If i want to disable both input fields with the Method set_display, the one on the bottom will not be rendered.

 

Unbenannt.PNG

If i disable only one input field, both will be displayed correctly. I searched for sap notes already, but couldn't find one.

 

Here is the code i'm using:

 

METHOD initialize_document.

  DATA: lo_form  TYPE REF TO cl_dd_form_area,

        lo_input TYPE REF TO cl_dd_input_element.

 

  DATA: lo_table    TYPE REF TO cl_dd_table_element,

        lo_column_1 TYPE REF TO cl_dd_area,

        lo_column_2 TYPE REF TO cl_dd_area.

 

  CREATE OBJECT go_document.

 

  CALL METHOD go_document->display_document

    EXPORTING

      parent = go_split->get_container( row    = 1

                                        column = 1 ).

 

* Create Table

  CALL METHOD go_document->add_table

    EXPORTING

      no_of_columns = 2

      border        = '0'

    IMPORTING

      table         = lo_table.

 

  CALL METHOD lo_table->add_column

    IMPORTING

      column = lo_column_1.

 

  CALL METHOD lo_table->add_column

    IMPORTING

      column = lo_column_2.

 

* Create first row

  CALL METHOD lo_column_1->add_text

    EXPORTING

      text = 'Gruppe'(003).

 

  CALL METHOD lo_column_1->add_gap

    EXPORTING

      width = 2.

 

  CALL METHOD lo_column_2->add_form

    IMPORTING

      formarea = lo_form.

 

  CALL METHOD lo_form->add_input_element

    EXPORTING

      value         = go_gname->get_gname( )

      name          = 'GNAME'

      size          = 30

      maxlength     = 20

    IMPORTING

      input_element = lo_input.

 

  CALL METHOD lo_input->set_display

    EXPORTING

      disabled = abap_true.

 

* Create second row

  CALL METHOD lo_table->new_row.

 

  CALL METHOD lo_column_1->add_text

    EXPORTING

      text = 'Bezeichnung'(001).

 

  CALL METHOD lo_column_1->add_gap

    EXPORTING

      width = 2.

 

  CALL METHOD lo_column_2->add_form

    IMPORTING

      formarea = go_form.

 

  CALL METHOD go_form->add_input_element

    EXPORTING

      value         = go_gname->get_text( )

      name          = 'TEXT'

      size          = 90

      maxlength     = 60

    IMPORTING

      input_element = go_input.

 

  CALL METHOD go_input->set_display

    EXPORTING

      disabled = abap_true.

 

* Merge and display document

  CALL METHOD go_document->merge_document.

 

  CALL METHOD go_document->display_document

    EXPORTING

      reuse_control      = abap_true

      reuse_registration = abap_true.

 

* Hide document border

  CALL METHOD go_document->html_control->set_ui_flag

    EXPORTING

      uiflag = cl_gui_html_viewer=>uiflag_no3dborder.

ENDMETHOD.

Custom Program in BTE

$
0
0

Hi,

 

I have a requirement to use BTE functionality for FI invoice.

A custom program has been created to achieve the invoice output which is a smartform.

Can we link custom program with BTE?

Kindly advice.

 

Thanks & Regards

Brijo.

CONVERT SAP SCRIPT TO PDF AND SEND MAIL

$
0
0

Hi,

 

I got the requirement to convert a SAP Script to PDF and a Mail to SOST.

 

But for me Mail is going to SOST, And the PDF options came . But when i click On PDF i couldn't open the Form. Its shows some Error.

 

 

  CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT 
= RESULT
tables
otfdata
= lt_otf
EXCEPTIONS
OTHERS  = 1.

************************************************************************************
** Convert the OTF File Obtained in a PDF File
************************************************************************************
data: lv_binstr type XSTRING.

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT                      = 'PDF'
MAX_LINEWIDTH              
= 132
PDF_DELETE_OTFTAB          
= ' '
IMPORTING
bin_filesize               
= lv_file_size
bin_file                   
= lv_binstr
TABLES
otf                        
= lt_otf
lines                                                 = lt_pdf
.

************************************************************************************
** Convert the Xstring To BINARY
************************************************************************************
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer     = lv_binstr
TABLES
binary_tab
= lt_binary_tab.




CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data                   
= ls_gd_doc_data
PUT_IN_OUTBOX                   
= 'X'
COMMIT_WORK                     
= 'X'
tables
packing_list                    
= lt_packing_list
OBJECT_HEADER                   
= lt_mail_head
CONTENTS_BIN                    
= lt_mail_bin
CONTENTS_TXT                    
= lt_mailtext
contents_hex                    
= lt_binary_tab
receivers                       
= lt_receivers
EXCEPTIONS
TOO_MANY_RECEIVERS              
= 1
DOCUMENT_NOT_SENT               
= 2
DOCUMENT_TYPE_NOT_EXIST         
= 3
OPERATION_NO_AUTHORIZATION      
= 4
PARAMETER_ERROR                 
= 5
X_ERROR                         
= 6
ENQUEUE_ERROR                   
= 7
OTHERS                           = 8
.
ENDFORM.                    " ZSEND_MAIL

 

 

  LEAR:   ls_mail_bin, ls_mail_head, ls_packing_list.


DESCRIBE TABLE lt_mailtext LINES TAB_LINES.
READ TABLE lt_mailtext Into ls_mailtext INDEX TAB_LINES.
ls_gd_doc_data
-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( ls_mailtext ).

*#  Creation of the entry for the compressed document CLEAR MAILPACK-TRANSF_BIN.
ls_packing_list
-HEAD_START = 1.
ls_packing_list
-HEAD_NUM = 0.
ls_packing_list
-BODY_START = 1.
ls_packing_list
-BODY_NUM = TAB_LINES.
ls_packing_list
-DOC_TYPE = 'RAW'.
APPEND ls_packing_list to lt_packing_list.
CLEAR ls_packing_list.


***********************************************************************************
** To Get the OTF
***********************************************************************************

*PERFORM get_otf.


LOOP AT lt_SOLISTI1 INTO ls_SOLISTI1.
MOVE-CORRESPONDING ls_SOLISTI1 TO lt_mail_bin.
APPEND ls_mail_bin to lt_mail_bin.
CLEAR ls_mail_bin.
ENDLOOP.

DESCRIBE TABLE lt_mail_bin LINES TAB_LINES.
ls_mail_head
= 'TEST.OTF'.
APPEND ls_mail_head to lt_mail_head.
CLEAR ls_mail_head.

*  Creation of the entry for the compressed attachment
ls_packing_list
-TRANSF_BIN = 'X'.
ls_packing_list
-HEAD_START = 1.
ls_packing_list
-HEAD_NUM = 1.
ls_packing_list
-BODY_START = 1.
ls_packing_list
-BODY_NUM = TAB_LINES.
ls_packing_list
-DOC_TYPE = 'OTF'.
ls_packing_list
-OBJ_NAME = 'TEST'.
ls_packing_list
-OBJ_DESCR = 'Subject'.
*MAILPACK-DOC_SIZE = TAB_LINES * 255.
APPEND ls_packing_list to lt_packing_list.
CLEAR ls_packing_list.

endform

 

 

 

Regards,

Sadiq K

CONVERT SAP SCRIPT TO PDF AND SEND MAIL

$
0
0

Hi,

 

I got the requirement to convert a SAP Script to PDF and a Mail to SOST.

 

But for me Mail is going to SOST, And the PDF options came . But when i click On PDF i couldn't open the Form. Its shows some Error.

 

 

  CALL FUNCTION 'CLOSE_FORM'
IMPORTING
RESULT 
= RESULT
tables
otfdata
= lt_otf
EXCEPTIONS
OTHERS  = 1.

************************************************************************************
** Convert the OTF File Obtained in a PDF File
************************************************************************************
data: lv_binstr type XSTRING.

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT                      = 'PDF'
MAX_LINEWIDTH              
= 132
PDF_DELETE_OTFTAB          
= ' '
IMPORTING
bin_filesize               
= lv_file_size
bin_file                   
= lv_binstr
TABLES
otf                        
= lt_otf
lines                                                 = lt_pdf
.

************************************************************************************
** Convert the Xstring To BINARY
************************************************************************************
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer     = lv_binstr
TABLES
binary_tab
= lt_binary_tab.




CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data                   
= ls_gd_doc_data
PUT_IN_OUTBOX                   
= 'X'
COMMIT_WORK                     
= 'X'
tables
packing_list                    
= lt_packing_list
OBJECT_HEADER                   
= lt_mail_head
CONTENTS_BIN                    
= lt_mail_bin
CONTENTS_TXT                    
= lt_mailtext
contents_hex                    
= lt_binary_tab
receivers                       
= lt_receivers
EXCEPTIONS
TOO_MANY_RECEIVERS              
= 1
DOCUMENT_NOT_SENT               
= 2
DOCUMENT_TYPE_NOT_EXIST         
= 3
OPERATION_NO_AUTHORIZATION      
= 4
PARAMETER_ERROR                 
= 5
X_ERROR                         
= 6
ENQUEUE_ERROR                   
= 7
OTHERS                           = 8
.
ENDFORM.                    " ZSEND_MAIL

 

 

 

 

 

 

Regards,

Sadiq K


GOS: How to display attachment?

$
0
0

Hello,

 

I want to display the first attachment. I found the function GOS_ATTACHMENT_LIST_POPUP, but I haven't found a possibility to display an attachment directly. Does anybody know how to do this?

 

Please help.

 

Have a nice day. Bye.

 

Frank

BUS-Screen Framework - A short introduction

$
0
0

In a world of Web Dynpro and cool UI5 libraries, I still find myself working with ABAP Reports and classic Dynpros. Being a techie, it is easy to imagine why I don't see these kinds of tasks very intriguing. Yet I wish to make it interesting by exploring modern (and better) ways to improve development.

So... This is a short guide on how to implement an ABAP report using the BUS-Screen Framework. Although this was initially intended for internal SAP usage only, it is not publicly available.

 

Misconception

If you search online on how to use BUS-Screen Framework, besides not getting a lot of results, you will also get some wrongful information. BUS-Screen Framework cannot dynamically create Dynpros. It is merely a way to structure reports in an object-oriented way.

 

Still interested? ... Great!

First and foremost, I have to recommend the book Anwendungsentwicklung mit ABAP Objects by Thorsten Franz and Tobias Trapp, which contains a whole subchapter dedicated to the BUS-Screen Framework.

 

All SAP objects related to this framework can be found in package BUS_TOOLS. This package also contains a small demo transaction, but I think it's a little unclear.

bus_tools.png

 

The following steps describe the basis for a screen implementation using BUS-Screen Framework:

- Create a new report with a normal screen. (I've named my screen '2000').

In the Flow Logic of Screen 2000, call modules dynpro_pbo for output, respectively dynpro_pai for input.

 

PROCESS BEFORE OUTPUT.     MODULE dynpro_pbo.
PROCESS AFTER INPUT.     MODULE dynpro_pai.

- Declare these two modules either directly in the report or inside an include.

 

MODULE dynpro_pbo OUTPUT.     cl_bus_abstract_screen=>dynpro_pbo(          iv_dynpro_number    = sy-dynnr          iv_program_name     = sy-repid ).
ENDMODULE.
MODULE dynpro_pai INPUT.     cl_bus_abstract_screen=>dynpro_pai(          iv_dynpro_number    = sy-dynnr          iv_program_name     = sy-repid ).
ENDMODULE.

NOTE: These modules must only be declared once and then reused for every screen (both normal and sub screens).

 

- One of the conditions for instantiating screens using this framework is to declare a form routine inside the program.

 

FORM bus_screen_create USING value(im_program_name) TYPE bus_screen-program_name                                                       value(im_dynpro_number) TYPE bus_screen-dynpro_number                                           CHANGING ch_screen ##called.     CASE im_dynpro_number.          WHEN '2000'.
" This is the name of the wrapper class for Screen 2000
" If the called iv_dynpro_number is not found and the ch_screen is not instantiated,
" a dummy screen of type CL_BUS_ABSTRACT_SCREEN will be return.               CREATE OBJECT ch_screen TYPE lcl_demo_main_screen                    EXPORTING                         iv_program_name  = im_program_name                         iv_dynpro_number = im_dynpro_number.     ENDCASE.
ENDFORM.

- Now it's time to define the screen logic in an object-oriented way using a local ABAP class.

 

NOTE: Although class CL_BUS_ABSTRACT_SCREEN is the base, it is important to implement the correct inheritance. In this case, CL_BUS_ABSTRACT_MAIN_SCREEN must be used since 2000 is a normal screen. (For sub screens, the corresponding CL_BUS_ABSTRACT_SUB_SCREEN should be used)

 

CLASS lcl_demo_main_screen DEFINITION             INHERITING FROM cl_bus_abstract_main_screen             FINAL.     PUBLIC SECTION.
" The constructor method can be used for initializations.          METHODS constructor               IMPORTING                    value(iv_program_name) TYPE bus_screen-program_name                    value(iv_dynpro_number) TYPE bus_screen-dynpro_number.     PROTECTED SECTION.
" The following two methods must be redefined as ABAP Objects
" does not support the CALL SCREEN statement.          METHODS call_screen REDEFINITION.          METHODS call_screen_starting_at REDEFINITION.     PRIVATE SECTION.
" This method is the central handling for all PAI events in this screen.          METHODS handle_pai FOR EVENT process_after_input OF cl_bus_abstract_main_screen                                                IMPORTING iv_function_code.
ENDCLASS.
CLASS lcl_demo_main_screen IMPLEMENTATION.     METHOD constructor.          super->constructor(               EXPORTING                    iv_program_name = iv_program_name                    iv_dynpro_number = iv_dynpro_number ).
" The GUI Title of the application is set using the following method          set_title( 'DEMO BUS-Screen Framework' ).          SET HANDLER handle_pai FOR me.     ENDMETHOD.     METHOD call_screen.          CALL SCREEN iv_dynpro_number.     ENDMETHOD.     METHOD call_screen_starting_at.          CALL SCREEN iv_dynpro_number                                   STARTING AT iv_xstart iv_ystart                                       ENDING AT iv_xend iv_yend.     ENDMETHOD.     METHOD handle_pai.          CASE iv_function_code.
" For the default GUI Status, global constants can be used to evaluate the function code.
" However, if you set your own GUI Status using method set_status( ),
" then you will have to evaluate your specific function codes.               WHEN gc_function_code_back                    OR gc_function_code_exit.                         leave( ).               WHEN gc_function_code_cancel.                         LEAVE PROGRAM.          ENDCASE.     ENDMETHOD.
ENDCLASS.

- Now that our screen is defined, we can call it. For this, the following code should be used in the START-OF-SELECTION event:

 

DATA lo_main_screen TYPE REF TO lcl_demo_main_screen.
" This statement will try to call the BUS_SCREEN_CREATE form routine that we previously defined.
cl_bus_abstract_screen=>get_screen(     EXPORTING iv_program_name = sy-repid                           iv_dynpro_number = '2000'     IMPORTING ev_screen = lo_main_screen ).
IF lo_main_screen IS BOUND.     lo_main_screen->show( ).
ENDIF.

 

This pretty much sums up the basic functionality. In the next blogs, I will show you how to use the tabstrip wrapper (CL_BUS_TABSTRIP and CL_BUS_TABSTRIP_TAB classes) and also how to handle messages (CL_BUS_MESSAGE).

How I can use one submit report with an specific Tcode when exists more than one for same report?

$
0
0

Hi,

 

I have one report (rmcb0300) with five tcodes differently and tcode by default when I execute by SE38 is MCBE. I need execute the tcode MC.9 when I use the submit report (SUBMIT rmcb0300 EXPORTING LIST TO MEMORY  AND RETURN), but I  can't this.

Someone have one idea whow can do it?

 

Regards,


Sérgio Silva

DYNP_VALUES_READ & DYNP_VALUES_UPDATE at Selection-Screen Output

$
0
0

Hello Friends

 

I've noticed that if I invoke either of FM's DYNP_VALUES_READ & DYNP_VALUES_UPDATE that they do not work during the event At Selection-Screen Output.

 

The Scenario

 

I created a class that provides F4 help to the user to open and/or save files either to the file server or on the local machine.  When the user invokes F4 help, the F4 help object already knows which file the user is asking help for.  At this time, the object invokes DYNP_VALUES_READ and pre-populates fields in a dialog box.  When the dialog step is complete, the object invokes DYNP_VALUES_UPDATE to return the values back to the selection screen.

 

So far so good.

 

The Problem

 

We use logical files for files located on the file server.  What I would like to do is pretty much the same thing as above except without the dialog step in between.  In other words, take the screen defaults (i.e. logical file + filename) determine the full path using FILE_GET_NAME and populate the full path on the screen.  If the user wants to change this later, s/he can do so using F4 help.

 

But when I use DYNP_VALUES_READ during At Selection-Screen Output it doesn't return the current screen parameter values, so I replaced it with FM RS_REFRESH_FROM_SELECTOPTIONS.  This works, but then DYNP_VALUES_UPDATE did not update the screen even though I can see the internal table for DYNPFIELDS is populated.  The function appears to work correctly and SY-SUBRC = 0, but the field is blank.

 

I know the code works because I invoke the same methods during F4 and this does populate the screen.

 

Is what I am doing not possible during At Selection-Screen Output?

BUS-Screen Framework - Message handling

$
0
0

Continuing the introduction into the BUS-Screen Framework, I will describe the basis for message handling.

 

IMPORTANT: First, please make sure you've read and understood my previous BUS-related blog post: http://scn.sap.com/community/abap/user-interface-development/blog/2015/03/24/bus-screen-framework--a-short-introduction/

 

 

In order to demonstrate how messages are handle using BUS-Screen Framework, we will create a dummy input field in our previously defined main screen (2000). We will check the value of this field and throw a message.

input_field.png

Notice the input field name corresponds to a public static attribute in our demo class. Therefore, we also have to define it there:

 

CLASS lcl_demo_main_screen DEFINITION           INHERITING FROM cl_bus_abstract_main_screen             FINAL.     PUBLIC SECTION.
" Screen fields are static as all screens are instantiated as Singletons          CLASS-DATA cv_field TYPE char10.
* ...

NOTE: Except control declarations (which are not supported in OO-context), all field bindings can and should be defined as public static attributes in their corresponding wrapper class.

 

In order to check the attribute value and throw a message, we will add an extra WHEN section in our previously defined HANDLE_PAI method.

 

METHOD handle_pai.
* ...     DATA lo_message TYPE REF TO cl_bus_message.     DATA lv_message TYPE string ##needed.
* ...     CASE iv_function_code.          WHEN gc_function_code_enter.               IF cv_field NE 'ABC123'.                    MESSAGE e100(sap_guidelines) INTO lv_message.
" Using a dummy statement MESSAGE ... INTO ... can be helpful
" when accessing the 'Where-Used' functionality in a message class.
*                    CREATE OBJECT lo_message                         EXPORTING
*                              is_message = ...
" Optional: MOVE-CORRESPONDING sy TO ls_message, where ls_message is of type symsg.                              iv_cursor_screen    = me                              iv_highlighted_field = 'CL_DEMO_MAIN_SCREEN=>CV_FIELD'.
" Passing the SY-MSG structure to the BUS message instance is optional.
"If empty, syst fields will be automatically used. Alternatively, the ls_message structure can be filled manually.
* ...

The idea is to let the PAI processing continue even if faulty and only display messages in the PBO section.

 

For the actual message display, we will redefine method PAI_END in the public section of our local demo class.

pbo_end.png

METHODS pbo_end REDEFINITION.

NOTE: Although the message-relevant functions are available in the CL_BUS_ABSTRACT_SCREEN base class, the actual display of the message should only be performed (ONCE) in the current instance of CL_BUS_ABSTRACT_MAIN_SCREEN.

 

METHOD pbo_end.     super->pbo_end( ).
*
" Attribute gt_messages is filled automatically by passing reference 'me'
" as parameter iv_cursor_screen in the CONSTRUCTOR of CL_BUS_MESSAGE.     cl_bus_message=>get_most_severe_message(          EXPORTING it_message = gt_messages          IMPORTING ev_message = gv_message ).
*     IF gv_message IS BOUND.          MESSAGE ID gv_message->gs_message-msgid TYPE 'S'                             NUMBER gv_message->gs_message-msgno                             TYPE gv_message->gs_message-msgv1                                        gv_message->gs_message-msgv2                                        gv_message->gs_message-msgv3                                        gv_message->gs_message-msgv4                             DISPLAY LIKE gv_message->gs_message-msgty.
"
*
" After displaying the message, the buffer should be refreshed.          clear_messages( ).     ENDIF.
ENDMETHOD.

NOTE: It is important to understand the order in which PBO and PAI methods are called, and how to redefine them in your classes.

 

In the next blog post, I will show you how to implement the logic of a tabstrip and sub screens using the BUS-Screen Framework.

How to create Graphical Planning Dashboard in SAP ABAP?

$
0
0

Hi,

 

I need to create a Graphical Planning Dashboard as attached below.

 

GWOS Planning in SAP PM.PNG

 

Can anyone guide me how to proceed for the above development.

 

Thanks in advance.

 

Regards,

Ramana.

Maintaining variants for dynpro application

$
0
0

Hi guys, question for the pro!

 

I have created a transaction called ZMB21 similar to MB21. I have only one screen and instead of using a step loops for the items, I used a table control. Now I want to add a functionnality to save variants, this will save the header fields and items fields of my transaction, user will be able to delete, save, manage variants like in standard report. Is it possible using the standard FM RS_VARIANT*. I did some research, I know is it possible but I don't know for the table control (items) if we could save this kind of data into the variant. How can I do that or is it possible using SAP standard FM?

 

thanks

 

Alex


Enhancement in for block GR for Repaired Materials in T.code IW8W.

$
0
0

Hello Guru's,

 

I want to write an Enhancement for Blocking the Goods Receipt for no issues Repaired Materials in T.Code: IW8W.

 

Could you please let me know how many Enhancments / userexits / BADIs are available for for Transaction:  IW8W .

 

Regards,

Sankarbabu

ALV grid header (using)OOPs

$
0
0

Hi Experts,

 

I am using class CL_DD_DOCUMENT in my ALV Grid(using OOPS) to write heading lines

top of the page.

 

I need to get my output as below:

 

 

Vendor No : 1234567          Vendor Name    : XYZ Pharma Inc

Date       :09/12/2008     Date Desc             : Delivery Dt

Profile No     : BMC12          Prof Name             : BMC professional

 

 

I am using CL_DD_DOCUMENT->ADD_GAP to create a GAP between Profile No & Profile Name.

Now, the problem is that when Profile no has more or less chars, the profile name is pushed left or right.

as below :

 

Vendor No : 1234567          Vendor Name    : XYZ Pharma Inc

Date       :09/12/2008     Date Desc             : Delivery Dt

Profile No     : AB     Prof Name             : BMC professional

 

Can someone help me with this?

 

Thanks

Dan

Required to configure Custom Program and output for F.62

$
0
0

Hi,

 

I have requirement to change the output in standard T-code f.62.

Here i have to display a smartform output instead of the current SAP Script and the correspondence type is either ZMAL or ZPRIT. I have created a driver program and smartform to achieve this functionality.

If the correspondence type is ZMAL, the output has to change to PDF format and it has to sent as an e-mail to the set of recipients. If the Correspondence is ZPRIT spool output can be used.

 

I have the following questions:-

  1. 1. How to configure the custom program in f.62.
  2. 2. If the correspondence type is ZMAL how to configure the BTE  to achieve the E-mail functionality. As i am using the custom program can i use e-mail functionality in the custom program itself.

 

Thanks & Regards

Brijo

Backgroud color for table control cell

$
0
0

Hi all,

 

I have developed module pool with table control, the requirement is to highlight some columns with background color.

I tried to use SCREEN-COLOR field but it is not usedful.  Please let me know how to achieve this requirements..

 

Pts are assured.

regards,

mahantesh

Copying standard screen area of IW51 into custom

$
0
0


Hi All,

 

I need to copy the standard screen area (shown in screenshot) to a custom screen area and add\

new fields to it.

What are the steps that I need to perform?

 

Thanks,

Faiz

11.png

Viewing all 540 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>