Fonction SAP BAPI_ADDRESSPERS_CHANGE - BAPI to change person addresses

Paramètre Reférence Type Long. Valeur par déf. Facultatif Description
ACCEPT_ERROR BAPI4002_1-ACCEPT_ERR C 1 SPACE X Regional structure error messages as warning
CONTEXT BAPI4002_1-CONTEXT N 4 4 X Semantic meaning of the addresses (-> constants)
IV_CHECK_ADDRESS BAPI4002_1-CHECK_ADDR C 1 'X' X Indicator: Check Address?
IV_TIME_DEPENDENT_COMM_DATA BAPI4002_1-TIMEDEPCOM C 1 SPACE X Indicator: Take time validity for communication data into account
OBJ_ID BAPI4002_1-OBJKEY C 70 Person object BOR object key
OBJ_ID_EXT BAPI4002_1-EXTENSION C 70 SPACE X BOR object key extension (GUID)
OBJ_TYPE BAPI4002_1-OBJTYPE C 10 Person object BOR object type
SAVE_ADDRESS BAPI4002_1-SAVE_ADDR C 1 'X' X Indicator: Save Address?

Paramètre Reférence Type Long. Description
ADDRESS_NUMBER BAPI4002_1-ADDR_NO C 10 Address number in target system
PERSON_NUMBER BAPI4002_1-PERS_NO C 10 Person number in target system

Paramètre Reférence Long. Facultatif Description
BAPIAD2VL BAPIAD2VL 1302 X BAPI structure person address (w/o. comm.)
BAPIAD2VL_X BAPIAD2VLX 83 X Change reference structure for BAPIAD2VL
BAPIADFAX BAPIADFAX 143 X BAPI structure fax numbers
BAPIADFAX_X BAPIADFAXX 16 X Change reference structure for BAPIADFAX
BAPIADPAG BAPIADPAG 136 X BAPI structure pager numbers
BAPIADPAG_X BAPIADPAGX 15 X Change reference structure for BAPIADPAG
BAPIADPRT BAPIADPRT 40 X BAPI structure printer addresses
BAPIADPRT_X BAPIADPRTX 9 X Change reference structure for BAPIADPRT
BAPIADRFC BAPIADRFC 69 X BAPI structure RFC addresses
BAPIADRFC_X BAPIADRFCX 10 X Change reference structure for BAPIADRFC
BAPIADRML BAPIADRML 63 X BAPI structure R/Mail addresses
BAPIADRML_X BAPIADRMLX 13 X Change reference structure for BAPIADRML
BAPIADSMTP BAPIADSMTP 300 X BAPI Structure Internet Addresses
BAPIADSMT_X BAPIADSMTX 13 X Change reference structure for BAPIADSMTP
BAPIADSSF BAPIADSSF 2391 X BAPI structure SSF addresses
BAPIADSSF_X BAPIADSSFX 22 X Change reference structure for BAPIADSSF
BAPIADTEL BAPIADTEL 142 X BAPI structure telephone numbers
BAPIADTEL_X BAPIADTELX 15 X Change reference structure for BAPIADTEL
BAPIADTLX BAPIADTLX 72 X BAPI structure telex numbers
BAPIADTLX_X BAPIADTLXX 12 X Change reference structure for BAPIADTLX
BAPIADTTX BAPIADTTX 72 X BAPI structure teletex numbers
BAPIADTTX_X BAPIADTTXX 12 X Change reference structure for BAPIADTTX
BAPIADURI BAPIADURI 2219 X BAPI structure URI addresses
BAPIADURI_X BAPIADURIX 19 X Change reference structure for BAPIADURI
BAPIADUSE BAPIADUSE 46 X BAPI Structure for Communication Usages (BAS)
BAPIADUSE_X BAPIADUSEX 7 X Change Reference Structure for BAPIADUSE
BAPIADX400 BAPIADX400 948 X BAPI structure X400 addresses
BAPIADX40_X BAPIADX40X 36 X Change reference structure for BAPIADX400
BAPIAD_REM BAPIAD_REM 55 X BAPI structure address comments
BAPIAD_RE_X BAPIAD_REX 5 X Change reference structure for BAPIAD_REM
BAPICOMREM BAPICOMREM 60 X BAPI Structure Communication Comments
BAPICOMRE_X BAPICOMREX 6 X Change reference structure for BAPICOMREM
RETURN BAPIRET2 548 X Message/error return table

Functionality
The person address for the specified object type and key is found, andupdated with the specified address and communication data, if required.
This module differs from a standard change BAPI in that not only canexisting entries be changed, address attribute telephone numbers, faxnumbers, etc. can also be deleted or inserted.
Reference structures (checkboxes) are used to select entries to bechanged.

Example
* Change a person address:
* Change, delete and add a telephone number
DATA: objtype LIKE bapi4002_1-objtype,
obj_id LIKE bapi4002_1-objkey,
obj_id_ext LIKE bapi4002_1-extension,
context LIKE bapi4002_1-context,
address_number LIKE adrc-addrnumber,
person_number LIKE adrp-persnumber,
bapiadtel LIKE bapiadtel OCCURS 0 WITH HEADER LINE,
bapiadtel_x LIKE bapiadtelx OCCURS 0 WITH HEADER LINE,
return LIKE bapiret2 OCCURS 0.
* Assign the following object type and object key to the
* private address of a customer contact person
objtype = 'BUS1006001'
obj_id =
obj_id_ext = ' '
context = '0004'
* Get the existing data by calling e.g. FM 'BAPI_ADDRESSPERS_GETDETAIL'
...
* Enter the reference structure data
* The telephone number with serial number '002', is to be deleted
* the with serial number '003' updated
* soll aktualisiert werden.
CLEAR: bapiadtel[], bapiadtel_x[].
CLEAR: bapiadtel, bapiadtel_x.
bapiadtel_x-updateflag = 'D'.
APPEND: bapiadtel, bapiadtel_x. "Delete entry
CLEAR: bapiadtel, bapiadtel_x.
bapiadtel-extension = '77733'.
bapiadtel_x-extension = 'X'.
bapiadtel_x-updateflag = 'U'.
APPEND: bapiadtel, bapiadtel_x. "Update entry
CLEAR: bapiadtel, bapiadtel_x.
bapiadtel-telephone = '06227'.
bapiadtel-extension = '11111'.
bapiadtel_x-updateflag = 'I'.
APPEND: bapiadtel, bapiadtel_x. "Insert new entry
* call the change module
CALL FUNCTION 'BAPI_ADDRESSPERS_CHANGE'
EXPORTING
obj_type = objtype
obj_id = obj_id
obj_id_ext = obj_id_ext
context = context
IMPORTING
address_number = address_number
person_number = person_number
TABLES
bapiadtel = bapiadtel
bapiadtel_x = bapiadtel_x
return = return.
* Errors and warnings are in the table RETURN. If successful, the
* person address and its communication data are updated.
* The address number is in the field ADDRESS_NUMBER, the person number
* in the field PERSON_NUMBER.

Notes
To delete e.g. a telephone number in the table of existing Telephonenumbers of an address, the field 'UPDATEFLAG' in the correspondingreference structure line must contain 'D'.
To insert an entry it must be 'I', and be accompanied by the data to beinserted.
All lines to be inserted (I), and their reference structures, must beafter all entries to be changed (U) and deleted (D).
Change data key fields must always be filled and are used as far aspossible. It is not significant whether e.g. all telephone numbercomments are followed by fax number comments, or vice versa; only thesequence among entries with the same key is important, unless youspecify communication address or comment serial numbers partially ornot at all, when the sequence is significant.
The key fields are:
Structure | Fields
---------------------------------
BAPIAD2VL | ADDR_VERS, FROM_DATE
BAPIAD_REM | ADDR_VERS, LANGU
BAPIADTEL | CONSNUMBER
... | ...
BAPIADPAG | CONSNUMBER
BAPICOMREM | COMM_TYPE, CONSNUMBER, LANGU
You can pass communication address and comment serial numbers empty.The data sequence is then significant. For example to delete thetelephone number in the second position in the in ascending order ofserial number sorted existing telephone numbers, in the database, youmust pass a dummy telephone number with an update flag (U) in the firstposition, without selecting fields to update, und a telephone numberwith delete flag (D) in the second position.
The communication addresses in the database are not usually sorted byserial number, so you must first determine the sequence ofcommunication addresses sorted by serial number.
This is not advisable because you can easily make date sequence errors.Specifying serial numbers as keys is safer.
You should assign your own serial numbers for communication addressesand their comments to be inserted (I), so that the communicationaddress - comment assignment is clear. Ensure that the serial numbersare not already used in the database, unless you want to assign acomment explicitly to an existing communication address. If you assignno numbers, it is assumed that all comments to be inserted belong tothe communication addresses to be inserted, and they are assigned bythe sequence of the data passed. (This would be appropriate if acomment is to be inserted for another language than the creationlanguage of a communication address). Then the first telephone numbercomment in German flagged for insertion (I) is assigned to the firsttelephone number to be inserted. The third fax number comment inEnglish to be inserted (I) is assigned to the third fax number to beinserted specified.
In this case you cannot assign a comment to an existing communicationaddress. You need a serial number to do this.
If one type of communication address and its comments has serialnumbers and another does not, this does not affect the overallfunctionality. All communication types are processed separately, i.e.if all addresses of a communication type have serial numbers, they areused, even if there are no serial numbers for all or some addresses ofanother communication type. The addresses of such communication typesare processed in the order of their data.
You can specify serial numbers for communication addresses to beinserted (I) and omit them for communication addresses to be updated(U) and deleted (D), and vice versa. They are processed separatelyusing serial numbers or the data sequence as appropriate. Communicationaddresses to be updated (U) or delete (D) must both be passed eithercompletely with or completely without serial numbers.
You are on the safe side if you always pass a serial number.
You must first read the data to be changed (e.g. using FMBAPI_ADDRESSPERS_GETDETAIL), if communication data is also to bechanged to get the communication data serial numbers.
The address number of the person address for the object type and key,is returned in the export parameter ADDRESS_NUMBER, the person numberin the field PERSON_NUMBER.
Processing warnings and errors are in the table RETURN.
INCLUDE ADDRESS_TSADOBJ_AND_BAPIS OBJECT DOKU ID TX
INCLUDE ADDR_NO_COMMIT_IN_BAPI OBJECT DOKU ID TX
INCLUDE ADDR_RETURN_CONSNUMBERS OBJECT DOKU ID TX
INCLUDE ADDRESS_CONSNUMBERS_IN_BAPIS OBJECT DOKU ID TX

Description
If the ACCEPT_ERROR parameter is set, all regional structure checkerror messages are treated as warnings.

Value range
'X': all errors are treated as warnings
' ': errors are treated as errors

Default
The flag is not set, i.e. is ' '.