‎2007 Sep 24 12:02 PM
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]
‎2007 Sep 24 12:08 PM
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
‎2007 Sep 24 12:19 PM
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
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
‎2007 Sep 24 12:41 PM
‎2007 Sep 25 5:56 AM
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