Code: Alles auswählen.
DATA: ls_p0000 TYPE p0000.
DATA: ls_p0001 TYPE p0001.
DATA: ls_p0002 TYPE p0002.
DATA: ls_p0006 TYPE p0006.
DATA: ls_return TYPE bapireturn1.
DATA: l_pernr TYPE p0000-pernr.
DATA: l_key TYPE bapipakey.
START-OF-SELECTION.
CLEAR l_pernr. “Personalnummer leer damit neue Nummer generiert wird
ls_p0000-pernr = l_pernr.
ls_p0000-infty = '0000'.
ls_p0000-endda = '99991231'.
ls_p0000-begda = sy-datum
ls_p0000-massn = '01'. “Einstellung
* Hier schon einige Daten für die organisatorische Zuordnung
* vorbelegen
ls_p0001-werks = '<Personalbereich>'.
ls_p0001-persk = '<Mitarbeiterkreis>'.
ls_p0001-persg = '<Mitarbeitergruppe>'.
* Set-Get-Parameter für organisatorische Zuordnung verwenden,
* weil diese schon bei Infotyp 0000 dunkel abgefragt werden.
SET PARAMETER ID 'PBR' FIELD ls_p0001-werks.
SET PARAMETER ID 'PRG' FIELD ls_p0001-persg.
SET PARAMETER ID 'PKR' FIELD ls_p0001-persk.
SET PARAMETER ID 'SUB' FIELD ls_p0000-massn.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0000'
number = l_pernr
* SUBTYPE =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_p0000-endda
validitybegin = ls_p0000-begda
* RECORDNUMBER =
record = ls_p0000
operation = 'INS'
* TCLAS = 'A'
dialog_mode = '0'
* NOCOMMIT = ''
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
return = ls_return
key = l_key.
IF ls_return-type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
RETURN.
ENDIF.
l_pernr = l_key-employeeno. “Neue Personalnummer übernehmen
ls_p0001-pernr = l_pernr.
ls_p0001-infty = '0001'.
ls_p0001-endda = '99991231'.
ls_p0001-begda = sy-datum
ls_p0001-btrtl = '<Personalteilbereich>'.
ls_p0001-bukrs = '<Buchungskreis>'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0001'
number = l_pernr
* SUBTYPE =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_p0001-endda
validitybegin = ls_p0001-begda
* RECORDNUMBER =
record = ls_p0001
operation = 'INS'
* TCLAS = 'A'
dialog_mode = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
return = ls_return
* KEY
.
IF ls_return-type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
RETURN.
ENDIF.
ls_p0002-pernr = l_pernr.
ls_p0002-infty = '0002'.
ls_p0002-endda = '99991231'.
ls_p0002-begda = sy-datum.
ls_p0002-anred = '<Anrede>'.
ls_p0002-vorna = '<Vorname>'.
ls_p0002-nachn = '<Nachname>'.
ls_p0002-gbdat = '<Geburtsdatum>'.
ls_p0002-natio = '<Nationalität>'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0002'
number = l_pernr
* SUBTYPE =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_p0002-endda
validitybegin = ls_p0002-begda
* RECORDNUMBER =
record = ls_p0002
operation = 'INS'
* TCLAS = 'A'
dialog_mode = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
return = ls_return
* KEY
.
IF ls_return-type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
RETURN.
ENDIF.
ls_p0006-pernr = l_pernr.
ls_p0006-infty = '0006'.
ls_p0006-endda = '99991231'.
ls_p0006-begda = sy-datum.
ls_p0006-ort01 = '<Wohnort>'.
ls_p0006-land1 = '<Land>'.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0006'
number = l_pernr
* SUBTYPE =
* OBJECTID =
* LOCKINDICATOR =
validityend = ls_p0006-endda
validitybegin = ls_p0006-begda
* RECORDNUMBER =
record = ls_p0006
operation = 'INS'
* TCLAS = 'A'
dialog_mode = '0'
* NOCOMMIT =
* VIEW_IDENTIFIER =
* SECONDARY_RECORD =
IMPORTING
return = ls_return
* KEY
.
IF ls_return-type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
RETURN.
ENDIF.
WRITE: / l_pernr, ‘angelegt’.