Category Archive Blog

Sapscript – Local class to easily manage data in performs

Local class :


TYPES : ti_itcsy TYPE STANDARD TABLE OF itcsy WITH DEFAULT KEY.

CLASS lcl_sapscript DEFINITION.
*------------------------------
* Public section
*------------------------------
  PUBLIC SECTION.
    CLASS-METHODS init_tables IMPORTING input_table  TYPE ti_itcsy
                                        output_table TYPE ti_itcsy.
    CLASS-METHODS get_input_value IMPORTING iv_field        TYPE tdtprgname
                                  RETURNING VALUE(rv_value) TYPE tdsymvalue.
    CLASS-METHODS get_output_table RETURNING VALUE(rt_output) TYPE ti_itcsy.
    CLASS-METHODS set_output_value IMPORTING iv_field         TYPE tdtprgname
                                             iv_value         TYPE tdsymvalue
                                   RETURNING VALUE(rt_output) TYPE ti_itcsy.
  PRIVATE SECTION.
    CLASS-DATA : it_static_tbl_input  TYPE ti_itcsy,
                 it_static_tbl_output TYPE ti_itcsy.
ENDCLASS.

CLASS lcl_sapscript IMPLEMENTATION.
  METHOD init_tables.
    CLEAR : it_static_tbl_input, it_static_tbl_output.
    it_static_tbl_input = input_table.
    it_static_tbl_output = output_table.
  ENDMETHOD.
  METHOD get_input_value.
    READ TABLE it_static_tbl_input INTO DATA(ls_table) WITH KEY name = iv_field.
    IF sy-subrc = 0.
      rv_value = ls_table-value.
    ENDIF.
  ENDMETHOD.
  METHOD set_output_value.
    READ TABLE it_static_tbl_output ASSIGNING FIELD-SYMBOL(<fs_output>) WITH KEY name = iv_field.
    IF sy-subrc = 0.
      <fs_output>-value = iv_value.
    ENDIF.
    rt_output = it_static_tbl_output.
  ENDMETHOD.
  METHOD get_output_table.
    rt_output = it_static_tbl_output.
  ENDMETHOD.
ENDCLASS.

Example of use :

Read More

Get user default printer

Use FM GET_PRINT_PARAM.
Result will be in field E_USR01-SPLD.

Read More

WM: Customize print program

Check transaction OMVL

Check TVARVC value in 1 line

Since v7.40, it is possible to check if a value is into TVARVC table in 1 line of code 😎 :


IF NEW /dmbe/cli_db_tvarv( )->is_value_in_tvarv( i_variant = 'ZTVARVC_NAME' i_value = |{ lv_value }| ).
  " Your code here...
ENDIF.

This is one possibility, there are many others…

QM – Meaning of field STEUERKZ

Field STEUERKZ can be found in QM tables like QPMK.
It is divided into 30 charcacters. It corresponds to fields into structure QMKST.

Check this post to have the meaning of each position : https://blogs.sap.com/2013/08/05/control-indicators-in-qpmk-and-storage-in-field-qpmk-steuerkz/

Details:

Read More

Upload file with UTF8 or ANSi encoding

EDIT : Warning, solution below will work only if there is an accentuated caracter in first line.

Wrong encoding format file is a reccurent issue, especially when working on Windows.
If you don’t want to impose to end used an encoding format for text files, you can use the code below.

Read More

Sapscript – Center an include text

Let’s say we have a paragraph to center text declared as CS, to use this paragraph on an include text, add PARAGRAPH <paragraph name> at the end of INCLUDE TEXT declaration :


INCLUDE Z_SO10_TEXT OBJECT TEXT ID ST LANGUAGE FR PARAGRAPH CS

Get fullname from User-id

Use code below :


" ADRP-NAME_FIRST : First name
" ADRP-NAME_LAST  : Last name
" ADRP-NAME_TEXT  : Full name

DATA : lv_usrid     TYPE XUBNAME,
       lv_name_text TYPE ADRP-NAME_TEXT.

" [...]

SELECT SINGLE adrp~name_text INTO lv_name_text
  FROM usr21 JOIN adrp ON usr21~persnumber = adrp~persnumber
                      AND adrp~date_from   = '00010101'
                      AND adrp~nation      = ''
  WHERE usr21~bname = lv_usrid.