0% found this document useful (0 votes)
491 views13 pages

CK13N

This document defines variables and data types used to generate an ALV report from a database table. It performs the following steps: 1. Gets data from the keko database table based on selection screen criteria and stores it in internal tables. 2. Reads additional data from other tables to populate fields in the report data structure. 3. Loops through the structure table to collect component costs and stores each record in a report table. 4. Defines the field catalog, events, and layout to display the report table in an ALV grid.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
491 views13 pages

CK13N

This document defines variables and data types used to generate an ALV report from a database table. It performs the following steps: 1. Gets data from the keko database table based on selection screen criteria and stores it in internal tables. 2. Reads additional data from other tables to populate fields in the report data structure. 3. Loops through the structure table to collect component costs and stores each record in a report table. 4. Defines the field catalog, events, and layout to display the report table in an ALV grid.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 13

*&---------------------------------------------------------------------*

*& Report ZCOCK13N


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zcock13n.

INCLUDE <icon>.

* Cargar la tabla de la base de datos


TABLES: keko,cki64a.

* Cargamos los datos tipo slis


TYPES: slis.
*-------------------------------------------------------------------
DATA:
ld_anza_keko TYPE sy-tfill ,
it_t_matnr TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_matnr LIKE LINE OF it_t_matnr ,
it_t_werks TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_werks LIKE LINE OF it_t_werks ,
it_t_class TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_class LIKE LINE OF it_t_class ,
it_t_type TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_type LIKE LINE OF it_t_type ,
it_t_wrktyp TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_wrktyp LIKE LINE OF it_t_wrktyp ,
it_t_klvar TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_klvar LIKE LINE OF it_t_klvar ,
it_t_tvers TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_tvers LIKE LINE OF it_t_tvers ,
it_t_fehsta TYPE STANDARD TABLE OF string,"TABLES PARAM
wa_t_fehsta LIKE LINE OF it_t_fehsta ,
it_t_keko TYPE STANDARD TABLE OF keko,"TABLES PARAM
wa_t_keko LIKE LINE OF it_t_keko .

DATA : ld_such_datun TYPE c.

*-----------------------------------------------------------------------

DATA:
ld_f_keko TYPE keko ,
ld_f_header_mat TYPE ck_strukturtab_header ,
ld_s_aufl_unvollstaendig TYPE c ,
it_strukturtabelle TYPE ck_strukturtab ,"TABLES PARAM
wa_strukturtabelle LIKE LINE OF it_strukturtabelle ,
it_t_keko_imp TYPE STANDARD TABLE OF keko,"TABLES PARAM
wa_t_keko_imp LIKE LINE OF it_t_keko_imp .
DATA: lv_menge TYPE ckis-menge,
lv_losgr TYPE keko-losgr.

*-----------------------------------------------------------------------
DATA:
ld_e_makt TYPE makt ,
ld_e_mara TYPE mara .
*-----------------------------------------------------------------------*
DATA: lv_lines1 TYPE i,
lv_lines2 TYPE i,
lv_index1 TYPE i,
lv_index2 TYPE i.
DATA: lv_t001w TYPE t001w.
* REPORTE
TYPES: BEGIN OF st_report,
kalnr TYPE keko-kalnr, "
werks TYPE cki64a-werks, "
werksname TYPE cki64a-werksname,
kokrs TYPE keko-kokrs,
kadat TYPE cki64a-kadat,
bwvar TYPE cki64a-bwvar,
tvers TYPE cki64a-tvers,
matnr TYPE cki64a-matnr,
matkx TYPE cki64a-maktx,
val_totmt TYPE cki64a-h_wertv8,
losgr TYPE cki64a-losgr,
meins TYPE t006a-mseh3,
kalst TYPE C LENGTH 4,
stlan TYPE cki64a-stlan,
stnum TYPE cki64a-stnum,
stalt TYPE cki64a-stalt,
component TYPE stpo_api02-component,
item_text1 TYPE stpo_api02-item_text1,
val_tot TYPE cki64a-h_wertv8,
waers TYPE cki64a-waers,
val_calc TYPE cki64a-h_wertv8,
peinh TYPE bapiitemizationlist-quantity,
meins2 TYPE t006a-mseh3,
recurso TYPE stpo_api02-item_text1,
END OF st_report,

gty_t_reporte TYPE STANDARD TABLE OF st_report.

DATA:
gt_reporte TYPE gty_t_reporte.

DATA : lwa_reporte TYPE st_report.

* Definición de variables
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.

* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.

* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
g_st_fieldcat TYPE slis_fieldcat_alv,
user_command TYPE slis_formname VALUE 'ALV_USER_COMMAND'.

START-OF-SELECTION.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : so_matnr FOR keko-matnr NO INTERVALS,


so_feccc FOR cki64a-amdat NO INTERVALS OBLIGATORY DEFAULT sy-
datlo,
so_klvar FOR keko-klvar NO INTERVALS NO-EXTENSION OBLIGATORY
DEFAULT 'ZPRM',
so_werks FOR keko-werks NO INTERVALS NO-EXTENSION OBLIGATORY,
so_kokrs FOR keko-kokrs NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK b1.

**&---------------------------------------------------------------------*
*& end-of-selection.
*&---------------------------------------------------------------------*
END-OF-SELECTION.

PERFORM get_data.
PERFORM build_fieldcatlog.
PERFORM build_events.
PERFORM build_layout.
PERFORM list_display.

*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .

LOOP AT so_matnr INTO so_matnr.


PERFORM keko_tab USING so_matnr-low
so_werks-low
so_feccc-low
so_klvar-low.

DO ld_anza_keko TIMES.
lv_index1 = lv_index1 + 1.
READ TABLE it_t_keko INTO wa_t_keko INDEX lv_index1.
IF sy-subrc EQ 0.

lwa_reporte-kalnr = wa_t_keko-kalnr.
lwa_reporte-werks = wa_t_keko-werks.
SELECT SINGLE * FROM t001w INTO lv_t001w WHERE werks EQ wa_t_keko-werks.
IF sy-subrc EQ 0.
lwa_reporte-werksname = lv_t001w-name1.
ENDIF.
lwa_reporte-kokrs = wa_t_keko-kokrs.
lwa_reporte-kadat = wa_t_keko-kadky.
lwa_reporte-bwvar = wa_t_keko-bwvar.
lwa_reporte-tvers = wa_t_keko-tvers.
lwa_reporte-matnr = wa_t_keko-matnr.
PERFORM mara_read USING lwa_reporte-matnr CHANGING lwa_reporte-matkx.

lwa_reporte-meins = wa_t_keko-meins.
lwa_reporte-kalst = wa_t_keko-kalst.
lwa_reporte-stalt = wa_t_keko-stalt.
lwa_reporte-stnum = wa_t_keko-stnum.
lwa_reporte-stlan = wa_t_keko-stlan.

PERFORM struc_cost_mat USING so_klvar-low


wa_t_keko-kalnr
wa_t_keko-kadky
wa_t_keko-tvers
wa_t_keko-werks.

lwa_reporte-val_totmt = ld_f_header_mat-wrtfw_kpf.

DESCRIBE TABLE it_strukturtabelle LINES lv_lines2.

DO lv_lines2 TIMES.
lv_index2 = lv_index2 + 1.
READ TABLE it_strukturtabelle INTO wa_strukturtabelle INDEX lv_index2.
IF sy-subrc EQ 0.
IF wa_strukturtabelle-baugr EQ 'X'.
lwa_reporte-kalst = 'X'.
lv_menge = wa_strukturtabelle-menge.
lv_losgr = wa_strukturtabelle-losgr.
lwa_reporte-val_tot = wa_strukturtabelle-wrtfw_kpf.
lwa_reporte-peinh = wa_strukturtabelle-menge.
lwa_reporte-val_calc = wa_strukturtabelle-wrtfw_kpf /
wa_strukturtabelle-menge.
ELSE.
lwa_reporte-kalst = wa_strukturtabelle-stufe.
lwa_reporte-peinh = ( lv_menge * wa_strukturtabelle-menge ) /
lv_losgr.
lwa_reporte-val_tot = ( lwa_reporte-peinh * wa_strukturtabelle-
wrtfw_kpf ) / wa_strukturtabelle-menge.
ENDIF.

lwa_reporte-losgr = wa_strukturtabelle-losgr.
lwa_reporte-component = wa_strukturtabelle-matnr.
lwa_reporte-item_text1 = wa_strukturtabelle-ltext.
lwa_reporte-waers = wa_strukturtabelle-fwaer_kpf.

PERFORM convert_unit_output USING wa_strukturtabelle-meeht CHANGING


lwa_reporte-meins2.
IF wa_strukturtabelle-meeht EQ 'STD'.
CONCATENATE wa_strukturtabelle-kostl wa_strukturtabelle-arbpl
wa_strukturtabelle-lstar INTO lwa_reporte-recurso SEPARATED BY space.
ELSE.
CONCATENATE wa_strukturtabelle-fwaer_kpf wa_strukturtabelle-matnr
INTO lwa_reporte-recurso SEPARATED BY space.
ENDIF.

ENDIF.
APPEND lwa_reporte TO gt_reporte.
ENDDO.
CLEAR:lwa_reporte,lv_index2.
ENDIF.
ENDDO.
ENDLOOP.
ENDFORM. "get_data

*&---------------------------------------------------------------------*
*& Form alv_user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM alv_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.

* Aqui hago el tratamiento del evento doble click


* CUANDO SE HACE DOBLE CLICK SE VIENE A ESTA SUBRUTINA
*HAY QUE PREGUNTAR CUAL ES LA CELDA QUE SE HA PINCHADO.
*HACIENDO WHEN '
*SE USA RS_SELFIELD (CAMPO SELECCIONADO)

ENDFORM. "alv_user_command
*&---------------------------------------------------------------------*
*& Form build_fieldcatlog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_fieldcatlog.
* Datos del fieldcat para el ALV

g_st_fieldcat-fieldname = 'KALNR'. "Nombre del campo de la tabla


g_st_fieldcat-seltext_m = 'Número de CC'. "Descripción media
* g_st_fieldcat-key = gc_x.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'WERKS'.
g_st_fieldcat-seltext_m = 'Centro'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'WERKSNAME'.
g_st_fieldcat-seltext_m = 'Nombre'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'KOKRS'.
g_st_fieldcat-seltext_m = 'Sociedad CO'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'KADAT'.
g_st_fieldcat-seltext_m = 'Fecha CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'BWVAR'.
g_st_fieldcat-seltext_m = 'Variante CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'TVERS'.
g_st_fieldcat-seltext_m = 'Versión CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'MATNR'.
g_st_fieldcat-seltext_m = 'Material Principal'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'MATKX'.
g_st_fieldcat-seltext_m = 'Descripción'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'VAL_TOTMT'.
g_st_fieldcat-seltext_m = 'Valor Total'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'LOSGR'.
g_st_fieldcat-seltext_m = 'Tamaño de lote CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'MEINS'.
g_st_fieldcat-seltext_m = 'UMV'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'KALST'.
g_st_fieldcat-seltext_m = 'Nivel de CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'STLAN'.
g_st_fieldcat-seltext_m = 'Utilización LM'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'STNUM'.
g_st_fieldcat-seltext_m = 'Lista Materiales'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'STALT'.
g_st_fieldcat-seltext_m = 'Alternativa'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'COMPONENT'.
g_st_fieldcat-seltext_m = 'Componente'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'ITEM_TEXT1'.
g_st_fieldcat-seltext_m = 'Descripción'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'VAL_TOT'.
g_st_fieldcat-seltext_m = 'Valor Total'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'WAERS'.
g_st_fieldcat-seltext_m = 'Moneda'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'VAL_CALC'.
g_st_fieldcat-seltext_m = 'Valor Calculado'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = 'PEINH'.
g_st_fieldcat-seltext_m = 'Cantidad'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = ' MEINS2'.


g_st_fieldcat-seltext_m = 'UMB'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.

g_st_fieldcat-fieldname = ' RECURSO'.


g_st_fieldcat-seltext_m = 'Recurso'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
ENDFORM. "build_fieldcatlog

*&---------------------------------------------------------------------*
*& Form list_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM list_display .
DATA:
l_program TYPE sy-repid.
l_program = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = l_program
i_callback_user_command = user_command
is_layout = w_layout
it_fieldcat = g_it_fieldcat[]
it_events = i_events
TABLES
t_outtab = gt_reporte[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " list_display

*&---------------------------------------------------------------------*
*& Form build_events
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_events.
CLEAR :
w_events, i_events[].
w_events-name = 'TOP_OF_PAGE'."Event Name
w_events-form = 'TOP_OF_PAGE'."Callback event subroutine
APPEND w_events TO i_events.
CLEAR w_events.

ENDFORM. "build_events

*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_layout .

w_layout-colwidth_optimize = 'X'.
w_layout-zebra = 'X'.

ENDFORM. "build_layout
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page.

DATA :
li_header TYPE slis_t_listheader,
w_header LIKE LINE OF li_header.
DATA:
l_date TYPE char10.
WRITE sy-datum TO l_date.
w_header-typ = 'H'.
CONCATENATE ' Reporte CK13N MASIVO' ':' 'From Date' l_date INTO w_header-info
SEPARATED BY space.
APPEND w_header TO li_header.
CLEAR w_header.

w_header-typ = 'S'.
w_header-info = space.
APPEND w_header TO li_header.
CLEAR w_header.

w_header-typ = 'A'.
w_header-info = sy-uname.
APPEND w_header TO li_header.
CLEAR w_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
it_list_commentary = li_header.

ENDFORM. "top_of_page
*----------------------------------------------------------------------------------
----------------------------------------------------------------------------

FORM keko_tab USING matnr TYPE keko-matnr


werks TYPE keko-werks
feccc TYPE cki64a-amdat
klvar TYPE keko-klvar.
IF so_klvar-low EQ 'PPC1'.
ld_such_datun = ' '.
ELSE.
ld_such_datun = 'X'.
ENDIF.

CALL FUNCTION 'CK_F_MAT_COST_SELECT_SCREEN'


EXPORTING
p_matnr = matnr
p_werks = werks
p_klvar = klvar
p_amdat = feccc
p_tvers = '01'
p_fehsta = 'KA'
s_suche_sonstige = 'X'
s_suche_mit_datum = ld_such_datun
s_ohne_mengengeruest = 'X'
s_additive = 'X'
s_mit_screen = ' '
p_winx1 = 12
p_winy1 = 3
p_keko_anzahl_info = 30
s_auswahl_mit_ohne_add = 'X'
s_auswahl_additive = 'X'
IMPORTING
anza_keko = ld_anza_keko
TABLES
t_keko = it_t_keko
EXCEPTIONS
no_data_found = 1
no_data_wanted = 2
wrong_call = 3
sonstiges = 4
. " CK_F_MAT_COST_SELECT_SCREEN

IF sy-subrc EQ 0.
"All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 2. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 3. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 4. "Exception
"Add code for exception here
ENDIF.
ENDFORM. "keko_tab

*& Form struc_cost_mat


*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->KLVAR text
* -->KALNR text
* -->KADKY text
* -->TVERS text
* -->WERK text
*----------------------------------------------------------------------*
FORM struc_cost_mat USING klvar TYPE cki64a-klvar
kalnr TYPE keko-kalnr
kadky TYPE keko-kadky
tvers TYPE keko-tvers
werk TYPE cki64a-werks
.

CALL FUNCTION 'CK_F_CSTG_STRUCTURE_EXPLOSION'


EXPORTING
klvar = klvar
kalnr = kalnr
kadky = kadky
tvers = tvers
werk = werk
sicht = '01'
s_losgr = ''
* s_bezugsmenge = ld_s_bezugsmenge
* s_bezugsmengeneinheit = ld_s_bezugsmengeneinheit
s_accept_nullmenge = 'X'
s_aufloesungstiefe = 0
s_read_only_db = 'X'
s_only_mat_pos = ' '
s_explode_kf_too = 'X'
s_explode_raw = ' '
s_skip_totals = 'X'
s_use_kke3_cache = 'X'
s_explode_bpo = 'X'
s_vuc_read_only_db = 'X'
IMPORTING
f_keko = ld_f_keko
f_header_mat = ld_f_header_mat
s_aufl_unvollstaendig = ld_s_aufl_unvollstaendig
TABLES
strukturtabelle = it_strukturtabelle
t_keko_imp = it_t_keko_imp
EXCEPTIONS
invalid_bzobj = 1
keko_not_found = 2
meta_model_error = 3
ckhs_not_found = 4
. " CK_F_CSTG_STRUCTURE_EXPLOSION

IF sy-subrc EQ 0.
"All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 2. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 3. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 4. "Exception
"Add code for exception here
ENDIF.

ENDFORM. "struc_cost_mat

*&---------------------------------------------------------------------*
*& Form mara_read
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->MATNR text
* <--MAKTX text
*----------------------------------------------------------------------*
FORM mara_read USING matnr TYPE mara-matnr
CHANGING maktx TYPE makt-maktx.

CALL FUNCTION 'MARA_READ'


EXPORTING
i_matnr = matnr
i_sprache = sy-langu
IMPORTING
e_makt = ld_e_makt
e_mara = ld_e_mara
EXCEPTIONS
no_entry = 1
. " MARA_READ

IF sy-subrc EQ 0.
maktx = ld_e_makt-maktx. "All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ENDIF.
ENDFORM. "mara_read
*&---------------------------------------------------------------------*
*& Form convert_char_num
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LV_CHAR text
* <--LV_NUM text
*----------------------------------------------------------------------*
FORM convert_char_num USING lv_char TYPE clike
CHANGING lv_num TYPE p.

CALL FUNCTION 'MOVE_CHAR_TO_NUM'


EXPORTING
chr = lv_char
IMPORTING
num = lv_num
EXCEPTIONS
convt_no_number = 1
convt_overflow = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "convert_char_num

*&---------------------------------------------------------------------*
*& Form convert_unit_output
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->UMB_IN text
* <--UMB_OUT text
*----------------------------------------------------------------------*
FORM convert_unit_output USING umb_in TYPE t006a-msehi
CHANGING umb_out TYPE any.

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'


EXPORTING
input = umb_in
language = sy-langu
IMPORTING
* LONG_TEXT =
output = umb_out
* SHORT_TEXT =
EXCEPTIONS
unit_not_found = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM. "convert_unit_output

You might also like