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

Creating Employee

Former Member
0 Likes
1,006

Hi, i got some kind of problem creating a Employee in HCM using HR_MAINTAIN_MASTERDATA.

The Goal ist to create the employee with the minimun necesarry data. Currently i am using as mentioned the HR_MAINTAIN_MASTERDATA. The problem ist that i still get to the user-interaction screens although i am using proposed values.

Ist this the best known way to do this or is there another maybe more simple way?

Thanks!

FUNCTION Z_CREATE_PERSNR.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(IV_PERSNR) TYPE  PRELP-PERNR
*"     REFERENCE(IT_INFTYP0000) TYPE  P0000
*"     REFERENCE(IT_INFTYP0001) TYPE  P0001
*"     REFERENCE(IT_INFTYP0002) TYPE  P0002
*"     REFERENCE(IV_BEGDA) TYPE  PRELP-BEGDA
*"     REFERENCE(IV_ENDDA) TYPE  PRELP-ENDDA
*"  EXPORTING
*"     REFERENCE(EV_RETURN) TYPE  CHAR255
*"----------------------------------------------------------------------

*******************************************************************************
*
* Erstellt einen neuen Mirarbeiter mit der Übergebenen Personalnummer
* mit den Infotypen 0000, 0001 und 0002.
*
* Company: mindsquare GmbH
* Created: 19.11.2012
* Changed: 19.11.2012
*
*******************************************************************************


*& Variablen zum Debuggen.

   data lv_return1 type bapireturn1.
   data lv_key type bapipakey.
   data hr_return TYPE HRHRMM_MSG.

*& Variablen für den Programmablauf.
   DATA lt_proposed_values TYPE TABLE OF PPROP.
   DATA ls_proposed_values TYPE PPROP.
   DATA lv_return          TYPE bapireturn.

*******************************************************************************
*& Fügt die Informationen zum Infotyp 0000 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-INFTY'.
   ls_proposed_values-fval  = '0000'.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-STAT2'.
   ls_proposed_values-fval  = IT_INFTYP0000-STAT2.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-MASSG'.
   ls_proposed_values-fval  = IT_INFTYP0000-massg.
   append ls_proposed_values to lt_proposed_values.


*******************************************************************************
*& Fügt die Informationen zum Infotyp 0001 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-BUKRS'.
   ls_proposed_values-fval  = IT_INFTYP0001-BUKRS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-BTRTL'.
   ls_proposed_values-fval  = IT_INFTYP0001-BTRTL.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-KOSTL'.
   ls_proposed_values-fval  = IT_INFTYP0001-KOSTL.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-PLANS'.
   ls_proposed_values-fval  = IT_INFTYP0001-PLANS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-MSTBR'.
   ls_proposed_values-fval  = IT_INFTYP0001-MSTBR.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-ABKRS'.
   ls_proposed_values-fval  = IT_INFTYP0001-ABKRS.
   append ls_proposed_values to lt_proposed_values.


*******************************************************************************
*& Fügt die Informationen zum Infotyp 0002 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-NACHN'.
   ls_proposed_values-fval  = IT_INFTYP0002-NACHN.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-VORNA'.
   ls_proposed_values-fval  = IT_INFTYP0002-VORNA.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-ANRED'.
   ls_proposed_values-fval  = IT_INFTYP0002-ANRED.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-INITS'.
   ls_proposed_values-fval  = IT_INFTYP0002-INITS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-GBDAT'.
   ls_proposed_values-fval  = IT_INFTYP0002-GBDAT.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-NATIO'.
   ls_proposed_values-fval  = IT_INFTYP0002-NATIO.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-FAMST'.
   ls_proposed_values-fval  = IT_INFTYP0002-FAMST.
   append ls_proposed_values to lt_proposed_values.


*&*****************************************************************************
*& Aufruf des Funktionsbausteins zum Erstellen einer neuen Angestellten mit der
*& übergebenen Personalnummer.
*& Das Sperren und Entsperren der Personalnummer wird im FB gemacht.
*******************************************************************************

   CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
    EXPORTING
      PERNR                    = IV_PERSNR
      MASSN                    = IT_INFTYP0000-MASSN
      ACTIO                    = 'INS'
      TCLAS                    = 'A'
      BEGDA                    = IT_INFTYP0000-BEGDA
      ENDDA                    = IT_INFTYP0000-ENDDA
*    OBJPS                    =
*    SEQNR                    = '000'
*    SPRPS                    =
*    SUBTY                    =
      WERKS                    = IT_INFTYP0001-WERKS
      PERSG                    = IT_INFTYP0001-PERSG
      PERSK                    = IT_INFTYP0001-PERSK
      PLANS                    = IT_INFTYP0001-PLANS
      DIALOG_MODE              = '1'
      LUW_MODE                 = '1'
      NO_EXISTENCE_CHECK       = 'X'
    IMPORTING
      RETURN                   = lv_return
*     RETURN1                  = lv_return1
*     HR_RETURN                = hr_return
     TABLES
       proposed_values          = lt_proposed_values.


*******************************************************************************
*& Setzen des Rückgabe Wertes.
*******************************************************************************

   EV_RETURN = lv_return-message.
*
*  write lv_return-message.
*  write lv_return1-message.
*  write /.
*  write lv_key.
*  write /.
*  write: hr_return-MSGV1, hr_return-MSGV2, hr_return-MSGV3, hr_return-MSGV4.

ENDFUNCTION.

Hi, i got some kind of problem creating a Employee in HCM using HR_MAINTAIN_MASTERDATA.

The Goal ist to create the employee with the minimun necesarry data. Currently i am using as mentioned the HR_MAINTAIN_MASTERDATA. The problem ist that i still get to the user-interaction screens although i am using proposed values.

Ist this the best known way to do this or is there another maybe more simple way?

Thanks!

FUNCTION Z_CREATE_PERSNR.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(IV_PERSNR) TYPE  PRELP-PERNR
*"     REFERENCE(IT_INFTYP0000) TYPE  P0000
*"     REFERENCE(IT_INFTYP0001) TYPE  P0001
*"     REFERENCE(IT_INFTYP0002) TYPE  P0002
*"     REFERENCE(IV_BEGDA) TYPE  PRELP-BEGDA
*"     REFERENCE(IV_ENDDA) TYPE  PRELP-ENDDA
*"  EXPORTING
*"     REFERENCE(EV_RETURN) TYPE  CHAR255
*"----------------------------------------------------------------------

*******************************************************************************
*
* Erstellt einen neuen Mirarbeiter mit der Übergebenen Personalnummer
* mit den Infotypen 0000, 0001 und 0002.
*
* Company: mindsquare GmbH
* Created: 19.11.2012
* Changed: 19.11.2012
*
*******************************************************************************


*& Variablen zum Debuggen.

   data lv_return1 type bapireturn1.
   data lv_key type bapipakey.
   data hr_return TYPE HRHRMM_MSG.

*& Variablen für den Programmablauf.
   DATA lt_proposed_values TYPE TABLE OF PPROP.
   DATA ls_proposed_values TYPE PPROP.
   DATA lv_return          TYPE bapireturn.

*******************************************************************************
*& Fügt die Informationen zum Infotyp 0000 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-INFTY'.
   ls_proposed_values-fval  = '0000'.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-STAT2'.
   ls_proposed_values-fval  = IT_INFTYP0000-STAT2.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0000'.
   ls_proposed_values-fname = 'P0000-MASSG'.
   ls_proposed_values-fval  = IT_INFTYP0000-massg.
   append ls_proposed_values to lt_proposed_values.


*******************************************************************************
*& Fügt die Informationen zum Infotyp 0001 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-BUKRS'.
   ls_proposed_values-fval  = IT_INFTYP0001-BUKRS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-BTRTL'.
   ls_proposed_values-fval  = IT_INFTYP0001-BTRTL.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-KOSTL'.
   ls_proposed_values-fval  = IT_INFTYP0001-KOSTL.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-PLANS'.
   ls_proposed_values-fval  = IT_INFTYP0001-PLANS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-MSTBR'.
   ls_proposed_values-fval  = IT_INFTYP0001-MSTBR.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0001'.
   ls_proposed_values-fname = 'P0001-ABKRS'.
   ls_proposed_values-fval  = IT_INFTYP0001-ABKRS.
   append ls_proposed_values to lt_proposed_values.


*******************************************************************************
*& Fügt die Informationen zum Infotyp 0002 der Tabelle hinzu.
*******************************************************************************

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-NACHN'.
   ls_proposed_values-fval  = IT_INFTYP0002-NACHN.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-VORNA'.
   ls_proposed_values-fval  = IT_INFTYP0002-VORNA.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-ANRED'.
   ls_proposed_values-fval  = IT_INFTYP0002-ANRED.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-INITS'.
   ls_proposed_values-fval  = IT_INFTYP0002-INITS.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-GBDAT'.
   ls_proposed_values-fval  = IT_INFTYP0002-GBDAT.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-NATIO'.
   ls_proposed_values-fval  = IT_INFTYP0002-NATIO.
   append ls_proposed_values to lt_proposed_values.

   ls_proposed_values-infty = '0002'.
   ls_proposed_values-fname = 'P0002-FAMST'.
   ls_proposed_values-fval  = IT_INFTYP0002-FAMST.
   append ls_proposed_values to lt_proposed_values.


*&*****************************************************************************
*& Aufruf des Funktionsbausteins zum Erstellen einer neuen Angestellten mit der
*& übergebenen Personalnummer.
*& Das Sperren und Entsperren der Personalnummer wird im FB gemacht.
*******************************************************************************

   CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
    EXPORTING
      PERNR                    = IV_PERSNR
      MASSN                    = IT_INFTYP0000-MASSN
      ACTIO                    = 'INS'
      TCLAS                    = 'A'
      BEGDA                    = IT_INFTYP0000-BEGDA
      ENDDA                    = IT_INFTYP0000-ENDDA
*    OBJPS                    =
*    SEQNR                    = '000'
*    SPRPS                    =
*    SUBTY                    =
      WERKS                    = IT_INFTYP0001-WERKS
      PERSG                    = IT_INFTYP0001-PERSG
      PERSK                    = IT_INFTYP0001-PERSK
      PLANS                    = IT_INFTYP0001-PLANS
      DIALOG_MODE              = '1'
      LUW_MODE                 = '1'
      NO_EXISTENCE_CHECK       = 'X'
    IMPORTING
      RETURN                   = lv_return
*     RETURN1                  = lv_return1
*     HR_RETURN                = hr_return
     TABLES
       proposed_values          = lt_proposed_values.


*******************************************************************************
*& Setzen des Rückgabe Wertes.
*******************************************************************************

   EV_RETURN = lv_return-message.
*
*  write lv_return-message.
*  write lv_return1-message.
*  write /.
*  write lv_key.
*  write /.
*  write: hr_return-MSGV1, hr_return-MSGV2, hr_return-MSGV3, hr_return-MSGV4.

ENDFUNCTION.

5 REPLIES 5
Read only

Former Member
0 Likes
941

Hi,

If I understood your problem correctly you are getting the screen just the way you run a BDC in foreground.. The dialogue mode you are using in HR_MAINTAIN_MASTERDATA is controlling that. I think you should pass "0" instead of "1".

Hope it solves your problem.

Read only

0 Likes
941

That wont solve the problem since '1' for dialoge mode means that it only pops up wegen there ist an error. If i use '0' then it runs through but it will make a rollback and nothing is changed. '"' means full dialog mode.

Read only

0 Likes
941

If you need synchronous commit then you should also use LUW_MODE = "2"

Read only

0 Likes
941

doesnt change anything

Read only

kesavadas_thekkillath
Active Contributor
0 Likes
941

Please try it with program RHALTD00