Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Unicode errors

Former Member
0 Likes
853

Hi all,

While working with the UNICODE CONVERSION i am getting the follwoing wrror.

PAD34 and "I1001_EXT-ADATA" are not mutually convertible in a Unicode
program. program.

Can any one tell me how to fix this roor.

For the reffrence here is the Code.

*----


*

  • Ausbildungshistorie eines Teilnehmers *

*----


*

REPORT zhthist0 MESSAGE-ID pv NO STANDARD PAGE HEADING LINE-SIZE 131.

TABLES: objec, gdstr, gdset, pad25, pad34.

INFOTYPES: 1001 NAME i1001 MODE n.

INFOTYPES: 1031 NAME i1031 MODE n.

INCLUDE: rhreptop.

INCLUDE: rhodat00.

INCLUDE: rhrdat00.

INCLUDE: rhrdat10.

INCLUDE: rhauthtop.

INCLUDE: rhalvinc.

DATA alv_itab LIKE zhrv_rhthist0 OCCURS 0 WITH HEADER LINE.

DATA: save_patyp LIKE objec-otype,

$rkurs LIKE plog-objid,

$rplva LIKE plog-plvar,

tabix LIKE sy-tabix,

h_short LIKE hrvres-short,

h_stext LIKE hrvres-stext,

h_begda LIKE hrvres-begda,

h_endda LIKE hrvres-endda.

  • Tabelle: Ausbildungshistorie

DATA: BEGIN OF partic_training_tab OCCURS 0,

plvar LIKE hrsobid-plvar,

patyp LIKE hrvpartic-patyp, "Teilnehmertyp

parid LIKE hrvpartic-parid, "TeilnehmerID

parsh LIKE hrvpartic-parsh, "Teilnehmertext

partx LIKE hrvpartic-partx, "Teilnehmertext

evtyp LIKE hrvpartic-evtyp, "Veranstaltungs(typ)-Typ

eveid LIKE hrvpartic-eveid, "Veranstaltungs(typ)-ID

evsht LIKE objec-short, "Veranstaltungs(typ)-Text

evtxt LIKE objec-stext, "Veranstaltungs(typ)-Text

evbeg LIKE objec-begda, "Veranstaltungsbeginn

evend LIKE objec-endda, "Veranstaltungsende

  • Zusatzdaten

evday LIKE hrvsched-ndays, "eff.Veranst.dauer in Tagen

evhour LIKE hrvsched-nhours, "eff.Veranst.dauer in Stunden

kkost LIKE hrvkostl-kkost, "Veranstaltungspreis

kwaer LIKE hrvkostl-kwaer, "Währung für Teilnahmepreis

manzl LIKE hrvpad25-manzl, "Anzahl Buchungen

priox LIKE hrvpad25-priox, "Buchungspriorität

seqnr LIKE hrvpad25-seqnr, "Seq.Nr.

budat LIKE hrvpad25-budat, "Buchungsdatum

no_adata(1). "Keine Zusatzdaten

DATA: END OF partic_training_tab.

DATA: BEGIN OF de_check_tab OCCURS 0,

patyp LIKE hrvpartic-patyp,

parid LIKE hrvpartic-parid,

evtid LIKE hrvpartic-eveid,

evbeg LIKE objec-begda,

evend LIKE objec-endda.

DATA: END OF de_check_tab.

DATA: i1001_ext LIKE hri1001 OCCURS 1 WITH HEADER LINE,

patyp_tab LIKE hrvprotp OCCURS 1 WITH HEADER LINE,

multi_tab LIKE hrvprotp OCCURS 1 WITH HEADER LINE,

expart_tab LIKE hrvprotp OCCURS 1 WITH HEADER LINE,

ext_objects_tab LIKE hrsobid OCCURS 1 WITH HEADER LINE,

int_objects_tab LIKE hrobject OCCURS 1 WITH HEADER LINE,

partic_tab LIKE hrsobid OCCURS 1 WITH HEADER LINE,

event_tab LIKE hrobject OCCURS 1 WITH HEADER LINE.

DATA: BEGIN OF participant_tab OCCURS 1,

plvar LIKE hrsobid-plvar,

patyp LIKE hrvpartic-patyp,

parid LIKE hrvpartic-parid,

parsh LIKE hrvpartic-parsh,

partx LIKE hrvpartic-partx.

DATA: END OF participant_tab.

AT SELECTION-SCREEN.

PERFORM check_otype.

INITIALIZATION.

INCLUDE: rhoini00.

INCLUDE: rhrini00.

INCLUDE: rhrini10.

pchplvar = $plvar.

pchotype = $kurst.

pchtimed = 'P'.

PERFORM re77s0(mstt77s0) USING 'RAUM' 'RKURS'

$rkurs subrc.

PERFORM re77s0(mstt77s0) USING 'RAUM' 'RPLVA'

$rplva subrc.

PERFORM re77s0(mstt77s0) USING 'OTYPE' 'KURS'

$kurs subrc.

IF subrc NE 0.

$kurs = 'E'.

ENDIF.

PERFORM re77s0(mstt77s0) USING 'OTYPE' 'KURST'

$kurst subrc.

IF subrc NE 0.

$kurst = 'D'.

ENDIF.

PERFORM re77s0(mstt77s0) USING 'PPREL' 'PARTB'

$partb subrc.

IF subrc NE 0.

$partb = 'B025'.

ENDIF.

PERFORM re77s0(mstt77s0) USING 'PPREL' 'KNOWA'

$knowa subrc.

IF subrc NE 0.

$knowb = 'B034'.

ELSE.

PERFORM $transform_relat(sapfh5an) USING $knowa $knowb.

ENDIF.

CLEAR: patyp_tab[], multi_tab[], expart_tab[].

  • erlaubten Teilnehmertypen

CALL FUNCTION 'RH_PART_TYPES_GET'

TABLES

patyp_tab = patyp_tab

EXCEPTIONS

OTHERS = 1.

IF sy-subrc = 0. ENDIF.

  • Sammelteilnehmertypen

CALL FUNCTION 'RH_PART_TYPES_MULTI'

TABLES

multi_tab = multi_tab

EXCEPTIONS

OTHERS = 1.

IF sy-subrc = 0. ENDIF.

  • externer Teilnehmertypen

CALL FUNCTION 'RH_PART_TYPES_EXT'

TABLES

expart_tab = expart_tab

EXCEPTIONS

OTHERS = 1.

IF sy-subrc = 0. ENDIF.

CLEAR: partic_training_tab[], participant_tab[], ext_objects_tab[],

int_objects_tab[].

alv_ddic = 'ZHRV_RHTHIST0'.

GET objec.

MOVE: objec-plvar TO participant_tab-plvar,

objec-otype TO participant_tab-patyp,

objec-realo TO participant_tab-parid,

objec-short TO participant_tab-parsh,

objec-stext TO participant_tab-partx.

IF participant_tab-partx IS INITIAL.

MOVE participant_tab-parsh TO participant_tab-partx.

ENDIF.

APPEND participant_tab.

IF objec-otype IN expart_tab.

MOVE: objec-plvar TO ext_objects_tab-plvar,

objec-otype TO ext_objects_tab-otype,

objec-realo TO ext_objects_tab-sobid.

APPEND ext_objects_tab.

ELSE.

MOVE: objec-plvar TO int_objects_tab-plvar,

objec-otype TO int_objects_tab-otype,

objec-objid TO int_objects_tab-objid.

APPEND int_objects_tab.

ENDIF.

END-OF-SELECTION.

IF NOT participant_tab IS INITIAL.

PERFORM read_1001_b025.

PERFORM read_1001_b034.

PERFORM alv_display.

ELSE.

MESSAGE s859.

ENDIF.

*&----


*

*& Form CHECK_OTYPE *

*&----


*

  • Prüfung: Objekttyp zulässig? *

*----


*

FORM check_otype.

IF NOT pchotype IN patyp_tab.

MESSAGE e456.

ELSE.

pchsvect = '12 '.

save_patyp = pchotype.

ENDIF.

ENDFORM. " CHECK_OTYPE

*&----


*

*& Form READ_1001_B034 *

*&----


*

  • Veranstaltungstypen die von Teilnehmer besucht wurden (B034) *

*----


*

FORM read_1001_b034.

CLEAR: i1001[], i1001_ext[], event_tab[].

IF save_patyp IN expart_tab. "externe Teilnehmertypen

CALL FUNCTION 'RH_READ_INFTY_1001_EXT'

EXPORTING

authority = 'DISP'

with_stru_auth = 'X'

istat = pchistat

extend = 'X'

subty = $knowb

begda = pchbegda

endda = pchendda

TABLES

i1001 = i1001_ext

objects = ext_objects_tab

EXCEPTIONS

nothing_found = 1

OTHERS = 3.

IF sy-subrc <> 1.

LOOP AT participant_tab.

LOOP AT i1001_ext WHERE plvar = participant_tab-plvar AND

otype = participant_tab-patyp AND

objid = participant_tab-parid.

*-----

READ TABLE de_check_tab WITH KEY patyp = participant_tab-patyp

parid = participant_tab-parid

evtid = i1001_ext-sobid

evbeg = i1001_ext-begda

evend = i1001_ext-endda

BINARY SEARCH.

IF sy-subrc = 0.

CONTINUE.

ENDIF.

*-----

CLEAR: pad34, partic_training_tab.

IF NOT rhthist0_auth_sobid IS INITIAL.

CALL FUNCTION 'RH_STRU_AUTHORITY_CHECK'

EXPORTING

fcode = stru_authority

plvar = i1001_ext-plvar

otype = i1001_ext-sclas

objid = i1001_ext-sobid

with_base_ac = base_authority

EXCEPTIONS

no_stru_authority = 1

no_stru_authority_hyper = 2

no_stru_authority_at_all = 3

no_base_authority = 4

OTHERS = 5.

IF sy-subrc >< 0.

DELETE i1001_ext.

CONTINUE.

ENDIF.

ENDIF.

MOVE: participant_tab-plvar TO partic_training_tab-plvar,

participant_tab-patyp TO partic_training_tab-patyp,

participant_tab-parid TO partic_training_tab-parid,

participant_tab-parsh TO partic_training_tab-parsh,

participant_tab-partx TO partic_training_tab-partx,

i1001_ext-sclas TO partic_training_tab-evtyp,

i1001_ext-sobid TO partic_training_tab-eveid,

i1001_ext-begda TO partic_training_tab-evbeg,

i1001_ext-endda TO partic_training_tab-evend,

i1001_ext-adata TO pad34,

i1001_ext-priox TO partic_training_tab-priox,

i1001_ext-seqnr TO partic_training_tab-seqnr,

pad34-manzl TO partic_training_tab-manzl,

pad34-ndays TO partic_training_tab-evday,

pad34-nhours TO partic_training_tab-evhour,

pad34-kkost TO partic_training_tab-kkost,

pad34-kwaer TO partic_training_tab-kwaer.

IF pad34 IS INITIAL.

MOVE 'X' TO partic_training_tab-no_adata.

IF NOT pc-otype IN multi_tab.

MOVE 1 TO partic_training_tab-manzl.

ENDIF.

ENDIF.

APPEND partic_training_tab.

MOVE: participant_tab-plvar TO event_tab-plvar,

i1001_ext-sclas TO event_tab-otype,

i1001_ext-sobid TO event_tab-objid.

COLLECT event_tab.

ENDLOOP.

IF sy-subrc = 4.

CLEAR partic_training_tab.

MOVE: participant_tab-plvar TO partic_training_tab-plvar,

participant_tab-patyp TO partic_training_tab-patyp,

participant_tab-parid TO partic_training_tab-parid,

participant_tab-parsh TO partic_training_tab-parsh,

participant_tab-partx TO partic_training_tab-partx.

APPEND partic_training_tab.

ENDIF.

ENDLOOP.

ENDIF.

ELSE. "interne Teilnehmertypen

CALL FUNCTION 'RH_READ_INFTY_1001'

EXPORTING

authority = 'DISP'

with_stru_auth = 'X'

istat = pchistat

extend = 'X'

subty = $knowb

begda = pchbegda

endda = pchendda

TABLES

i1001 = i1001

objects = int_objects_tab

EXCEPTIONS

nothing_found = 1

OTHERS = 3.

IF sy-subrc <> 1.

LOOP AT participant_tab.

LOOP AT i1001 WHERE plvar = participant_tab-plvar AND

otype = participant_tab-patyp AND

objid = participant_tab-parid.

*-----

READ TABLE de_check_tab WITH KEY patyp = participant_tab-patyp

parid = participant_tab-parid

evtid = i1001-sobid

evbeg = i1001-begda

evend = i1001-endda

BINARY SEARCH.

IF sy-subrc = 0.

CONTINUE.

ENDIF.

*-----

CLEAR: pad34, partic_training_tab.

IF NOT rhthist0_auth_sobid IS INITIAL.

CALL FUNCTION 'RH_STRU_AUTHORITY_CHECK'

EXPORTING

fcode = stru_authority

plvar = i1001-plvar

otype = i1001-sclas

objid = i1001-sobid

with_base_ac = base_authority

EXCEPTIONS

no_stru_authority = 1

no_stru_authority_hyper = 2

no_stru_authority_at_all = 3

no_base_authority = 4

OTHERS = 5.

IF sy-subrc >< 0.

DELETE i1001.

CONTINUE.

ENDIF.

ENDIF.

MOVE: participant_tab-plvar TO partic_training_tab-plvar,

participant_tab-patyp TO partic_training_tab-patyp,

participant_tab-parid TO partic_training_tab-parid,

participant_tab-parsh TO partic_training_tab-parsh,

participant_tab-partx TO partic_training_tab-partx,

i1001-sclas TO partic_training_tab-evtyp,

i1001-sobid TO partic_training_tab-eveid,

i1001-begda TO partic_training_tab-evbeg,

i1001-endda TO partic_training_tab-evend,

i1001-adata TO pad34,

i1001-priox TO partic_training_tab-priox,

i1001-seqnr TO partic_training_tab-seqnr,

pad34-manzl TO partic_training_tab-manzl,

pad34-ndays TO partic_training_tab-evday,

pad34-nhours TO partic_training_tab-evhour,

pad34-kkost TO partic_training_tab-kkost,

pad34-kwaer TO partic_training_tab-kwaer.

IF pad34 IS INITIAL.

MOVE 'X' TO partic_training_tab-no_adata.

IF NOT pc-otype IN multi_tab.

MOVE 1 TO partic_training_tab-manzl.

ENDIF.

ENDIF.

APPEND partic_training_tab.

MOVE: participant_tab-plvar TO event_tab-plvar,

i1001-sclas TO event_tab-otype,

i1001-sobid TO event_tab-objid.

COLLECT event_tab.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDIF.

  • Prüfung: Raumbelegung

DELETE partic_training_tab WHERE plvar EQ $rplva AND

eveid EQ $rkurs.

DELETE event_tab WHERE plvar EQ $rplva AND

objid EQ $rkurs.

  • Texte zu Veranstaltungstypen

IF NOT event_tab IS INITIAL.

CALL FUNCTION 'RH_TEXT_BUFFER_FILL'

EXPORTING

check_stru_auth = 'X'

with_extint = 'X'

TABLES

objects = event_tab.

LOOP AT event_tab.

CLEAR : h_short, h_stext.

CALL FUNCTION 'RH_READ_OBJECT'

EXPORTING

plvar = event_tab-plvar

otype = event_tab-otype

objid = event_tab-objid

istat = pc-istat

begda = pc-begda

endda = pc-endda

langu = sy-langu

ointerval = 'X'

store = 'X'

check_stru_auth = 'X'

IMPORTING

short = h_short

stext = h_stext

EXCEPTIONS

not_found = 01.

IF sy-subrc NE 0.

CONTINUE.

ENDIF.

LOOP AT partic_training_tab WHERE plvar = event_tab-plvar AND

evtyp = event_tab-otype AND

eveid = event_tab-objid.

tabix = sy-tabix.

partic_training_tab-evsht = h_short.

IF NOT h_stext IS INITIAL.

partic_training_tab-evtxt = h_stext.

ELSE.

partic_training_tab-evtxt = h_short.

ENDIF.

MODIFY partic_training_tab INDEX tabix.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDFORM. " READ_1001_B034

*&----


*

*& Form READ_1001_B025 *

*&----


*

  • Buchungen der Teilnehmer (B025) *

*----


*

FORM read_1001_b025.

DATA: schedule_tab LIKE hrvsched OCCURS 10 WITH HEADER LINE,

kont_tab LIKE hrvkont_n OCCURS 30 WITH HEADER LINE,

h_kont_tab LIKE hrvkont_n OCCURS 30 WITH HEADER LINE,

kostl_tab LIKE hrvkont_n OCCURS 30 WITH HEADER LINE,

abl_days LIKE partic_training_tab-evday,

abl_hour LIKE partic_training_tab-evhour.

CLEAR: i1001[], i1001_ext[], event_tab[], h_kont_tab[].

IF save_patyp IN expart_tab. "externe Teilnehmertypen

CALL FUNCTION 'RH_READ_INFTY_1001_EXT'

EXPORTING

authority = 'DISP'

with_stru_auth = 'X'

istat = pchistat

extend = 'X'

subty = $partb

begda = pchbegda

endda = pchendda

TABLES

i1001 = i1001_ext

objects = ext_objects_tab

EXCEPTIONS

nothing_found = 1

OTHERS = 3.

IF sy-subrc <> 1.

LOOP AT participant_tab.

LOOP AT i1001_ext WHERE plvar = participant_tab-plvar AND

otype = participant_tab-patyp AND

objid = participant_tab-parid.

IF NOT rhthist0_auth_sobid IS INITIAL.

CALL FUNCTION 'RH_STRU_AUTHORITY_CHECK'

EXPORTING

fcode = stru_authority

plvar = i1001_ext-plvar

otype = i1001_ext-sclas

objid = i1001_ext-sobid

with_base_ac = base_authority

EXCEPTIONS

no_stru_authority = 1

no_stru_authority_hyper = 2

no_stru_authority_at_all = 3

no_base_authority = 4

OTHERS = 5.

IF sy-subrc >< 0.

DELETE i1001_ext.

CONTINUE.

ENDIF.

ENDIF.

pad25 = i1001_ext-adata.

partic_training_tab-plvar = participant_tab-plvar.

partic_training_tab-patyp = participant_tab-patyp.

partic_training_tab-parid = participant_tab-parid.

partic_training_tab-parsh = participant_tab-parsh.

partic_training_tab-partx = participant_tab-partx.

partic_training_tab-evtyp = i1001_ext-sclas.

partic_training_tab-eveid = i1001_ext-sobid.

partic_training_tab-manzl = pad25-manzl.

partic_training_tab-priox = i1001_ext-priox.

partic_training_tab-seqnr = i1001_ext-seqnr.

partic_training_tab-budat = pad25-budat.

APPEND partic_training_tab.

event_tab-plvar = participant_tab-plvar.

event_tab-otype = i1001_ext-sclas.

event_tab-objid = i1001_ext-sobid.

COLLECT event_tab.

MOVE-CORRESPONDING pad25 TO h_kont_tab.

h_kont_tab-plvar = i1001_ext-plvar.

h_kont_tab-patyp = i1001_ext-otype.

h_kont_tab-parid = i1001_ext-objid.

h_kont_tab-evtyp = i1001_ext-sclas.

h_kont_tab-eveid = i1001_ext-sobid.

h_kont_tab-evbgd = i1001_ext-begda.

h_kont_tab-evend = i1001_ext-endda.

h_kont_tab-priox = i1001_ext-priox.

h_kont_tab-seqnr = i1001_ext-seqnr.

APPEND h_kont_tab.

ENDLOOP.

ENDLOOP.

ENDIF.

ELSE. "interne Teilnehmertypen

CALL FUNCTION 'RH_READ_INFTY_1001'

EXPORTING

authority = 'DISP'

with_stru_auth = 'X'

istat = pchistat

extend = 'X'

subty = $partb

begda = pchbegda

endda = pchendda

TABLES

i1001 = i1001

objects = int_objects_tab

EXCEPTIONS

nothing_found = 1

OTHERS = 3.

IF sy-subrc <> 1.

LOOP AT participant_tab.

LOOP AT i1001 WHERE plvar = participant_tab-plvar AND

otype = participant_tab-patyp AND

objid = participant_tab-parid.

IF NOT rhthist0_auth_sobid IS INITIAL.

CALL FUNCTION 'RH_STRU_AUTHORITY_CHECK'

EXPORTING

fcode = stru_authority

plvar = i1001-plvar

otype = i1001-sclas

objid = i1001-sobid

with_base_ac = base_authority

EXCEPTIONS

no_stru_authority = 1

no_stru_authority_hyper = 2

no_stru_authority_at_all = 3

no_base_authority = 4

OTHERS = 5.

IF sy-subrc >< 0.

DELETE i1001.

CONTINUE.

ENDIF.

ENDIF.

pad25 = i1001-adata.

partic_training_tab-plvar = participant_tab-plvar.

partic_training_tab-patyp = participant_tab-patyp.

partic_training_tab-parid = participant_tab-parid.

partic_training_tab-parsh = participant_tab-parsh.

partic_training_tab-partx = participant_tab-partx.

partic_training_tab-evtyp = i1001-sclas.

partic_training_tab-eveid = i1001-sobid.

partic_training_tab-manzl = pad25-manzl.

partic_training_tab-priox = i1001-priox.

partic_training_tab-seqnr = i1001-seqnr.

partic_training_tab-budat = pad25-budat.

APPEND partic_training_tab.

event_tab-plvar = participant_tab-plvar.

event_tab-otype = i1001-sclas.

event_tab-objid = i1001-sobid.

COLLECT event_tab.

MOVE-CORRESPONDING pad25 TO h_kont_tab.

h_kont_tab-plvar = i1001-plvar.

h_kont_tab-patyp = i1001-otype.

h_kont_tab-parid = i1001-objid.

h_kont_tab-evtyp = i1001-sclas.

h_kont_tab-eveid = i1001-sobid.

h_kont_tab-evbgd = i1001-begda.

h_kont_tab-evend = i1001-endda.

h_kont_tab-priox = i1001-priox.

h_kont_tab-seqnr = i1001-seqnr.

APPEND h_kont_tab.

ENDLOOP.

ENDLOOP.

ENDIF.

ENDIF.

  • Prüfung: Raumbelegung

CLEAR i1031. REFRESH i1031.

CALL FUNCTION 'RH_READ_INFTY_NNNN'

EXPORTING

  • AUTHORITY = 'DISP'

  • WITH_STRU_AUTH = 'X'

infty = '1031'

  • ISTAT = ' '

  • EXTEND = 'X'

  • SUBTY = ' '

begda = pchbegda

endda = pchendda

  • CONDITION = '00000'

  • INFTB = '1'

  • SORT = 'X'

TABLES

innnn = i1031

objects = event_tab

EXCEPTIONS

nothing_found = 1

wrong_condition = 2

OTHERS = 3.

IF sy-subrc EQ 0.

LOOP AT i1031.

DELETE: partic_training_tab WHERE eveid EQ i1031-objid,

event_tab WHERE objid EQ i1031-objid,

h_kont_tab WHERE eveid EQ i1031-objid.

ENDLOOP.

ENDIF.

  • Texte und Gültigkeit zu Veranstaltungen lesen

IF NOT event_tab IS INITIAL.

CALL FUNCTION 'RH_TEXT_BUFFER_FILL'

EXPORTING

check_stru_auth = 'X'

with_extint = 'X'

TABLES

objects = event_tab.

LOOP AT event_tab.

CLEAR: h_begda, h_endda, h_short, h_stext.

CALL FUNCTION 'RH_READ_OBJECT'

EXPORTING

plvar = event_tab-plvar

otype = event_tab-otype

objid = event_tab-objid

istat = pc-istat

begda = pc-begda

endda = pc-endda

langu = sy-langu

ointerval = 'X'

store = 'X'

check_stru_auth = 'X'

IMPORTING

obeg = h_begda

oend = h_endda

short = h_short

stext = h_stext

EXCEPTIONS

not_found = 01.

IF sy-subrc NE 0.

CONTINUE.

ENDIF.

LOOP AT partic_training_tab WHERE plvar = event_tab-plvar AND

evtyp = event_tab-otype AND

eveid = event_tab-objid.

tabix = sy-tabix.

partic_training_tab-evsht = h_short.

IF NOT h_stext IS INITIAL.

partic_training_tab-evtxt = h_stext.

ELSE.

partic_training_tab-evtxt = h_short.

ENDIF.

partic_training_tab-evbeg = h_begda.

partic_training_tab-evend = h_endda.

MODIFY partic_training_tab INDEX tabix.

ENDLOOP.

ENDLOOP.

ENDIF.

  • Preise

LOOP AT h_kont_tab.

CLEAR: kont_tab, kostl_tab.

REFRESH: kont_tab, kostl_tab.

MOVE-CORRESPONDING h_kont_tab TO kont_tab.

APPEND kont_tab.

CALL FUNCTION 'RH_GET_PRICE_DATA'

EXPORTING

with_price = 'X'

TABLES

kont_tab_in = kont_tab

kont_tab_out = kostl_tab

EXCEPTIONS

nothing_found = 1

no_price_found = 2

OTHERS = 3.

IF NOT sy-subrc BETWEEN 1 AND 2.

READ TABLE partic_training_tab WITH KEY plvar = h_kont_tab-plvar

evtyp = $kurs

eveid = h_kont_tab-eveid

patyp = h_kont_tab-patyp

parid = h_kont_tab-parid

priox = h_kont_tab-priox

seqnr = h_kont_tab-seqnr

manzl = h_kont_tab-manzl

budat = h_kont_tab-budat.

tabix = sy-tabix.

IF sy-subrc = 0.

partic_training_tab-kkost = kostl_tab-kkost.

partic_training_tab-kwaer = kostl_tab-kwaer.

MODIFY partic_training_tab INDEX tabix.

ENDIF.

ENDIF.

ENDLOOP.

  • Veranstaltungsdauer

CLEAR: schedule_tab, schedule_tab[].

CALL FUNCTION 'RH_READ_EVENT_SCHEDULE'

TABLES

eventlist = event_tab

schedule_tab = schedule_tab

EXCEPTIONS

nothing_found = 1

OTHERS = 2.

IF sy-subrc = 0. ENDIF.

LOOP AT event_tab.

CLEAR : abl_days, abl_hour.

LOOP AT schedule_tab WHERE plvar = event_tab-plvar AND

otype = event_tab-otype AND

objid = event_tab-objid.

abl_days = schedule_tab-ndays.

abl_hour = schedule_tab-nhours.

EXIT.

ENDLOOP.

LOOP AT partic_training_tab WHERE plvar = event_tab-plvar AND

evtyp = event_tab-otype AND

eveid = event_tab-objid.

partic_training_tab-evday = abl_days.

partic_training_tab-evhour = abl_hour.

MODIFY partic_training_tab.

ENDLOOP.

ENDLOOP.

PERFORM fill_table_for_douple_check TABLES partic_training_tab

event_tab.

ENDFORM. " READ_1001_B025

*&----


*

*& Form ALV_DISPLAY

*&----


*

FORM alv_display.

DATA: l_event TYPE evtid,

l_pernr TYPE pernr_d,

l_fname TYPE stext.

g_repid = sy-repid.

SORT partic_training_tab.

REFRESH alv_itab.

LOOP AT partic_training_tab.

CLEAR alv_itab.

alv_itab-patyp = partic_training_tab-patyp.

alv_itab-parid = partic_training_tab-parid.

alv_itab-parsh = partic_training_tab-parsh.

alv_itab-partx = partic_training_tab-partx.

IF partic_training_tab-evtyp EQ $kurs.

alv_itab-kurs = 'X'.

alv_itab-kurst = ' '.

ELSE.

alv_itab-kurs = ' '.

alv_itab-kurst = 'X'.

ENDIF.

alv_itab-evtyp = partic_training_tab-evtyp.

alv_itab-eveid = partic_training_tab-eveid.

alv_itab-evsht = partic_training_tab-evsht.

alv_itab-evtxt = partic_training_tab-evtxt.

alv_itab-evbeg = partic_training_tab-evbeg.

alv_itab-evend = partic_training_tab-evend.

alv_itab-ndays = partic_training_tab-evday.

alv_itab-nhours = partic_training_tab-evhour.

alv_itab-kkost = partic_training_tab-kkost.

alv_itab-kwaer = partic_training_tab-kwaer.

alv_itab-manzl = partic_training_tab-manzl.

alv_itab-priox = partic_training_tab-priox.

  • Add additonal fields

CLEAR: l_event, l_pernr.

IF alv_itab-evtyp = 'E'.

l_event = alv_itab-eveid.

ENDIF.

IF alv_itab-patyp = 'P'.

l_pernr = alv_itab-parid.

ENDIF.

CALL FUNCTION 'ZPTEMREPORT'

EXPORTING

event = l_event

pernr = l_pernr

IMPORTING

location = alv_itab-location

admin = alv_itab-admin

instructor = alv_itab-instructor

room = alv_itab-room

days = alv_itab-zdays

hours = alv_itab-zhours

mstbr = alv_itab-supno

snachn = alv_itab-snachn

svorna = alv_itab-svorna

jobcode = alv_itab-jobcode

jobcode_txt = alv_itab-jobcode_txt

werks = alv_itab-werks

werks_txt = alv_itab-werks_txt

btrtl = alv_itab-btrtl

btrtl_txt = alv_itab-btrtl_txt

supervflag = alv_itab-supervflag

kostl = alv_itab-ccntr

kostl_txt = alv_itab-ccntr_txt

fname = l_fname.

IF NOT l_fname IS INITIAL.

  • Format name for Japanese employees

alv_itab-partx = l_fname.

ENDIF.

APPEND alv_itab.

ENDLOOP.

SORT alv_itab BY parsh partx parid

evbeg DESCENDING

evend kurs kurst evsht evtxt.

PERFORM display_alv TABLES alv_itab

USING ' '.

ENDFORM. " ALV_DISPLAY

*&----


*

*& Form INIT_FIELDCAT *

*&----


*

FORM init_fieldcat.

DATA: lv_prog LIKE sy-repid VALUE 'RHTHIST0'.

DATA: lt_tab LIKE textpool OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF ls_key,

id LIKE textpool-id,

key LIKE textpool-key,

END OF ls_key.

CLEAR lt_tab. REFRESH lt_tab.

ls_key-id = 'I'.

READ TEXTPOOL lv_prog INTO lt_tab LANGUAGE sy-langu.

LOOP AT gt_fieldcat.

CASE gt_fieldcat-fieldname.

WHEN 'PATYP'.

gt_fieldcat-no_out = yes.

WHEN 'PARID'.

gt_fieldcat-no_out = yes.

  • WHEN 'PARSH'.

WHEN 'PARTX'.

gt_fieldcat-ddictxt = 'M'.

WHEN 'KURS'.

gt_fieldcat-checkbox = yes.

WHEN 'KURST'.

gt_fieldcat-checkbox = yes.

WHEN 'EVTYP'.

gt_fieldcat-no_out = yes.

ls_key-key = '015'.

READ TABLE lt_tab WITH KEY

id = ls_key-id

key = ls_key-key.

IF sy-subrc = 0.

gt_fieldcat-seltext_l = lt_tab-entry.

ENDIF.

WHEN 'EVEID'.

gt_fieldcat-no_out = yes.

ls_key-key = '016'.

READ TABLE lt_tab WITH KEY

id = ls_key-id

key = ls_key-key.

IF sy-subrc = 0.

gt_fieldcat-seltext_l = lt_tab-entry.

ENDIF.

WHEN 'EVSHT'.

ls_key-key = '017'.

READ TABLE lt_tab WITH KEY

id = ls_key-id

key = ls_key-key.

IF sy-subrc = 0.

gt_fieldcat-seltext_l = lt_tab-entry.

ENDIF.

WHEN 'EVTXT'.

gt_fieldcat-no_out = yes.

WHEN 'EVBEG'.

gt_fieldcat-ddictxt = 'M'.

WHEN 'EVEND'.

gt_fieldcat-ddictxt = 'M'.

WHEN 'NDAYS'.

gt_fieldcat-do_sum = yes.

WHEN 'NHOURS'.

gt_fieldcat-do_sum = yes.

WHEN 'KKOST'.

gt_fieldcat-do_sum = yes.

  • WHEN 'KWAER'.

WHEN 'MANZL'.

gt_fieldcat-do_sum = yes.

ENDCASE.

MODIFY gt_fieldcat.

ENDLOOP.

ENDFORM.

*&----


*

*& Form TOPOFPAGE

*&----


*

FORM topofpage.

DATA: date1(10) TYPE c,

date2(10) TYPE c.

*-header----


*

  • Typ H: Heading

  • Typ S: Body

REFRESH alv_header.

alv_header-typ = 'H'.

alv_header-info = sy-title.

APPEND alv_header.

alv_header-typ = 'S'.

alv_header-key = text-tim. "'Auswahlzeitraum'.

WRITE pchbegda DD/MM/YYYY TO date1.

WRITE pchendda DD/MM/YYYY TO date2.

CONCATENATE date1 '-' date2 INTO alv_header-info SEPARATED BY space.

APPEND alv_header.

  • Aufruf

PERFORM alv_header.

*-header----


*

ENDFORM. "TOPOFPAGE

*&----


*

*& Form cua_exit

*&----


*

  • set cua for alv grid

*----


*

FORM cua_exit USING ce_func_exclude TYPE slis_t_extab.

DATA fcode_attrib_tab LIKE smp_dyntxt OCCURS 4 WITH HEADER LINE.

CLEAR: fcode_attrib_tab, fcode_attrib_tab[].

PERFORM dynamic_report_fcodes(rhteiln0) TABLES fcode_attrib_tab

USING ce_func_exclude

no no.

SET PF-STATUS 'ALVLIST' EXCLUDING ce_func_exclude

OF PROGRAM 'RHTEILN0'.

ENDFORM. " CUA_EXIT

*&----


*

*& Form ucomm_exit

*&----


*

  • handle alv user-commands

*----


*

FORM ucomm_exit USING ue_ucomm LIKE sy-ucomm

ue_selfield TYPE slis_selfield.

ENDFORM. " UCOMM_EXIT

*&----


*

*& Form FILL_TABLE_FOR_DOUPLE_CHECK

*&----


*

  • -->TRAINING_TAB

  • -->EVENT_TAB

*----


*

FORM fill_table_for_douple_check

TABLES training_tab STRUCTURE partic_training_tab

event_tab STRUCTURE hrobject.

DATA: local_1001 LIKE i1001 OCCURS 0 WITH HEADER LINE.

CLEAR: de_check_tab, de_check_tab[].

CALL FUNCTION 'RH_READ_INFTY_1001'

EXPORTING

authority = ' '

with_stru_auth = ' '

  • ISTAT = ' '

  • EXTEND = 'X'

subty = $speca

begda = pchbegda

endda = pchendda

  • CONDITION = '00000'

  • SORT = 'X'

  • WITH_EV = ' '

adata = ' '

  • AUTH_SOBID = ' '

TABLES

i1001 = local_1001

objects = event_tab

EXCEPTIONS

OTHERS = 0.

SORT local_1001 BY objid.

LOOP AT training_tab.

READ TABLE local_1001 WITH KEY objid = training_tab-eveid

BINARY SEARCH.

IF sy-subrc = 0.

CLEAR de_check_tab.

de_check_tab-patyp = training_tab-patyp.

de_check_tab-parid = training_tab-parid.

de_check_tab-evtid = local_1001-sobid.

de_check_tab-evbeg = training_tab-evbeg.

de_check_tab-evend = training_tab-evend.

APPEND de_check_tab.

ENDIF.

ENDLOOP.

SORT de_check_tab.

ENDFORM. " FILL_TABLE_FOR_DOUPLE_CHECK[/code]

4 REPLIES 4
Read only

Former Member
0 Likes
706

Hi,

In unicode you need to specify the particular files in which you want to write the data of a strucutre to another.

e.g.: i1001-adata TO pad34,

Here you need to specify like this:

i1001-adata TO pad34-adata.

<b><REMOVED BY MODERATOR></b>

Ashvender

Message was edited by:

Alvaro Tejada Galindo

Read only

Former Member
0 Likes
706

Hi

check this

The Link will be helpful to you.

Very good document:

http://www.doag.org/pub/docs/sig/sap/2004-03/Buhlinger_Maxi_Version.pdf

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d37d1ad9-0b01-0010-ed9f-bc322231...

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/589d18d9-0b01-0010-ac8a-8a228520...

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f8e316d9-0b01-0010-8e95-829a58c1...

You need to use the transaction UCCHECK.

The report documentation is here

ABAP Unicode Scan Tool UCCHECK

You can use transaction UCCHECK to examine a Unicode program set for syntax errors without having to set the program

attribute "Unicode checks active" for every individual program. From the list of Unicode syntax errors, you can go

directly to the affected programs and remove the errors. It is also possible to automatically create transport

requests and set the Unicode program attribute for a program set.

Some application-specific checks, which draw your attention to program points that are not Unicode-compatible, are

also integrated.

Selection of Objects:

The program objects can be selected according to object name, object type, author (TADIR), package, and original

system. For the Unicode syntax check, only object types for which an independent syntax check can be carried out are

appropriate. The following object types are possibilities:

PROG Report

CLAS Class

FUGR Function groups

FUGX Function group (with customer include, customer area)

FUGS Function group (with customer include, SAP area)

LDBA Logical Database

CNTX Context

TYPE Type pool

INTF Interface

Only Examine Programs with Non-Activated Unicode Flag

By default, the system only displays program objects that have not yet set the Unicode attribute. If you want to use

UCCHECK to process program objects that have already set the attribute, you can deactivate this option.

Only Objects with TADIR Entry

By default, the system only displays program objects with a TADIR entry. If you want to examine programs that don't

have a TADIR entry, for example locally generated programs without a package, you can deactivate this option.

Exclude Packages $*

By default, the system does not display program objects that are in a local, non-transportable package. If you want

to examine programs that are in such a package, you can deactivate this option.

Display Modified SAP Programs Also

By default, SAP programs are not checked in customer systems. If you also want to check SAP programs that were

modified in a customer system (see transaction SE95), you can activate this option.

Maximum Number of Programs:

To avoid timeouts or unexpectedly long waiting times, the maximum number of program objects is preset to 50. If you

want to examine more objects, you must increase the maximum number or run a SAMT scan (general program set

processing). The latter also has the advantage that the data is stored persistently. Proceed as follows:

- Call transaction SAMT

- Create task with program RSUNISCAN_FINAL, subroutine SAMT_SEARCH

For further information refer to documentation for transaction SAMT.

Displaying Points that Cannot Be Analyzed Statically

If you choose this option, you get an overview of the program points, where a static check for Unicode syntax errors

is not possible. This can be the case if, for example, parameters or field symbols are not typed or you are

accessing a field or structure with variable length/offset. At these points the system only tests at runtime whether

the code is sufficient for the stricter Unicode tests. If possible, you should assign types to the variables used,

otherwise you must check runtime behavior after the Unicode attribute has been set.

To be able to differentiate between your own and foreign code (for example when using standard includes or generated

includes), there is a selection option for the includes to be displayed. By default, the system excludes the

standard includes of the view maintenance LSVIM* from the display, because they cause a large number of messages

that are not relevant for the Unicode conversion. It is recommended that you also exclude the generated function

group-specific includes of the view maintenance (usually L<function group name>F00 and L<function group name>I00)

from the display.

Similarly to the process in the extended syntax check, you can hide the warning using the pseudo comment ("#EC *).

Application-Specific Checks

These checks indicate program points that represent a public interface but are not Unicode-compatible. Under

Unicode, the corresponding interfaces change according to the referenced documentation and must be adapted

appropriately.

View Maintenance

Parts of the view maintenance generated in older releases are not Unicode-compatible. The relevant parts can be

regenerated with a service report.

UPLOAD/DOWNLOAD

The function modules UPLOAD, DOWNLOAD or WS_UPLOAD and WS_DOWNLOAD are obsolete and cannot run under Unicode. Refer

to the documentation for these modules to find out which routines serve as replacements.

Regards

Anji

Read only

Pawan_Kesari
Active Contributor
0 Likes
706

on which line this error is coming?

Read only

uwe_schieferstein
Active Contributor
0 Likes
706

Hello Vamsi

I assume the Unicode error occurs here:

          MOVE: participant_tab-plvar TO partic_training_tab-plvar,
...
                i1001_ext-adata       TO pad34,
...

Further I assume that ADATA is an unstructured CHAR-like field whereas PAD34 is a structure. Unicode does not allow a move like that (and vice versa).

However, there is a class available which solves this problem: <b>CL_ABAP_CONTAINER_UTILITIES</b>

Always use the static methods of this class if you have to move data from <b>structured -> unstructured or vice versa</b>. For details please refer to thread

Regards

Uwe