Application Development 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: 

type conflict when calling HR_FR_GET_EMPLOYEE An exception occurred

0 Kudos
TYPES: BEGIN OF ty_zapp,

manager TYPE zappraisal-manager, "manager name
appraiser TYPE zappraisal-appraiser, "appraiser (manager)
END OF ty_zapp.

TYPES: BEGIN OF ty_final,

manager TYPE pa0001-sname,

appraiser TYPE pa0001-name,

END OF ty_final.

DATA:lt_final TYPE TABLE OF ty_final WITH HEADER LINE,
ls_final TYPE ty_final,
lt_zapp TYPE TABLE OF ty_zapp WITH HEADER LINE,
ls_zapp TYPE ty_zapp.

DATA: sname TYPE pa0001-sname,

SELECT *
FROM zappraisal
INTO CORRESPONDING FIELDS OF TABLE lt_zapp
WHERE pernr = p0000-pernr.

IF lt_zapp[] IS NOT INITIAL .
LOOP AT lt_zapp WHERE pernr = p0000-pernr.
READ TABLE lt_zapp INTO ls_zapp WITH KEY pernr = p0000-pernr.

*---Get the name of manager using the PERNR from ZAPPRAISAL
PERFORM get_pernr_name USING ls_zapp-manager
CHANGING ls_final-manager.

*-- Get the name of appraiser using the PERNR from ZAPPRAISAL
PERFORM get_pernr_name USING ls_zapp-appraiser
CHANGING ls_final-appraiser.

*----------------------------------------------------------------------*
FORM get_pernr_name USING p_pernr TYPE zappraisal-manager
CHANGING p_name TYPE pa0001-sname.

DATA: lv_sname TYPE pa0001-sname.

CALL FUNCTION 'HR_FR_GET_EMPLOYEE'
EXPORTING
p_pernr = p_pernr
p_date = sy-datum
IMPORTING
p_employee = lv_sname
* P_TAB_ERROR =
* tables
* t0001 = p000
* T0002 = p0002
* T0006 =
* T0064 =
* T0217 =
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc = 0.
p_name = lv_sname.
CLEAR lv_sname.
ENDIF.
ENDFORM.
9 REPLIES 9

Eduardo-CE
Active Participant
0 Kudos

Hi,

P_PERNR should be TYPE PRELP-PERNR or PERNR_D, what type is zappraisal-manager?

Regards.

0 Kudos

zappraiser manager and appraiser id both type is pernr

Sandra_Rossi
Active Contributor
0 Kudos

Be careful with CODE. Better formatting:

TYPES: BEGIN OF ty_zapp,
         manager   TYPE zappraisal-manager, "manager name
         appraiser TYPE zappraisal-appraiser, "appraiser (manager)
       END OF ty_zapp.
TYPES: BEGIN OF ty_final,
         manager   TYPE pa0001-sname,
         appraiser TYPE pa0001-name,
       END OF ty_final.

DATA:lt_final TYPE TABLE OF ty_final WITH HEADER LINE,
     ls_final TYPE ty_final,
     lt_zapp  TYPE TABLE OF ty_zapp WITH HEADER LINE,
     ls_zapp  TYPE ty_zapp.
DATA: sname TYPE pa0001-sname.

SELECT *
    FROM zappraisal
    INTO CORRESPONDING FIELDS OF TABLE lt_zapp
    WHERE pernr = p0000-pernr.

IF lt_zapp[] IS NOT INITIAL .
  LOOP AT lt_zapp WHERE pernr = p0000-pernr.
    READ TABLE lt_zapp INTO ls_zapp WITH KEY pernr = p0000-pernr.

*---Get the name of manager using the PERNR from ZAPPRAISAL
    PERFORM get_pernr_name USING ls_zapp-manager
    CHANGING ls_final-manager.

*-- Get the name of appraiser using the PERNR from ZAPPRAISAL
    PERFORM get_pernr_name USING ls_zapp-appraiser
    CHANGING ls_final-appraiser.
  ENDLOOP.
ENDIF.

*----------------------------------------------------------------------*
FORM get_pernr_name USING p_pernr TYPE zappraisal-manager
CHANGING p_name TYPE pa0001-sname.

  DATA: lv_sname TYPE pa0001-sname.

  CALL FUNCTION 'HR_FR_GET_EMPLOYEE'
    EXPORTING
      p_pernr    = p_pernr
      p_date     = sy-datum
    IMPORTING
      p_employee = lv_sname
*     P_TAB_ERROR =
* tables
*     t0001      = p000
*     T0002      = p0002
*     T0006      =
*     T0064      =
*     T0217      =
    EXCEPTIONS
      error      = 1
      OTHERS     = 2.
  IF sy-subrc = 0.
    p_name = lv_sname.
    CLEAR lv_sname.
  ENDIF.
ENDFORM.

Sandra_Rossi
Active Contributor
0 Kudos

It seems that either you don't understand what the message means, or you don't know how to check by yourself.

Types of parameters HR_FR_GET_EMPLOYEE (in my system):

FUNCTION HR_FR_GET_EMPLOYEE.
*"----------------------------------------------------------------------
*"*"Interface locale :
*"  IMPORTING
*"     REFERENCE(P_PERNR) TYPE  PRELP-PERNR
*"     REFERENCE(P_DATE) TYPE  D
*"  EXPORTING
*"     REFERENCE(P_EMPLOYEE) TYPE  PFRL0_EMPLOYEE
*"     REFERENCE(P_TAB_ERROR) TYPE  P99SF_TAB_ERROR

You are passing these variables:

  • p_pernr = p_pernr
  • p_date = sy-datum
  • p_employee = lv_sname

Just make sure that the variables are declared with the same types as the parameters.

NB: it's well known by experienced developers that sy-datum is of type D too.

0 Kudos

Hi Sandra, I changed the types passing the same type as FM. But here Lv_sname I am getting employee ID as well as name I try to assign the name to my final structure of ALV but in ALV output it is printing 00000000. And I am new to ABAP. This is my first report.

0 Kudos

getting this output what mistake i did i don't know please help me on this.

0 Kudos

I have answered your initial question ("type conflict"), hopefully that solved the issue.

Now, you have a question concerning ALV, so please post a new question with your code to fill the ALV so that people can explain to you why it's wrong and how to fix it.

Also, please close this question, mark the best answer if there's one, etc. (more information in Rules of Engagement).

0 Kudos

Please post your Zappraiser Structure so we can understand where you are going wrong, thank you and follow sandra rose comments, thank you!!

0 Kudos
TYPES: BEGIN OF ty_zapp,
pernr TYPE zappraisal-pernr, "payroll_identifier
plans TYPE zappraisal-plans, "position id
orgeh TYPE zappraisal-orgeh, "organization unit
manager TYPE zappraisal-manager, "manager name
begda TYPE zappraisal-begda, "appraisal begin date
endda TYPE zappraisal-endda, "appraisal end date
objid TYPE zappraisal-objid, "appraisal objid id
appraiser TYPE zappraisal-appraiser, "appraiser (manager)
meeting_mid TYPE zappraisal-meeting_mid, "mid year meeting date
meeting TYPE zappraisal-meeting, "last meeting date
status TYPE zappraisal-status, "appraisal status (text based on value)
overall TYPE zappraisal-overall, "overall rating text
END OF ty_zapp.

TYPES: BEGIN OF ty_final,

manager TYPE pa0001-sname, "manager name - "manager id

appraiser TYPE pa0001-sname,

END OF ty_final,

Final structure i want to pass the name instead of ID. Kindly help me on this.