|
Functionality The organization address is determined from the specified object typeand object key, and updated with the specified address andcommunication data, if required. This module differs from a standard change BAPI in that not only canexisting entries be changed, but address attribute telephone numbers,fax numbers, etc. can also be deleted or inserted. Reference structures (checkboxes) are used to select entries to bechanged. Example * Change an organization address: * Change, delete and add a telephone number DATA: objtype LIKE bapi4001_1-objtype, obj_id LIKE bapi4001_1-objkey, obj_id_ext LIKE bapi4001_1-extension, context LIKE bapi4001_1-context, address_number LIKE adrc-addrnumber, 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 a main customer * address objtype = 'KNA1'. obj_id = <(><<)>customer number>. obj_id_ext = ' '. context = '0001'. * Get existing data by calling, e.g. FM 'BAPI_ADDRESSORG_GETDETAIL' ... * Enter the reference structure data * The telephone number with serial number '002' is to be deleted and * the one with serial number '003' updated CLEAR: bapiadtel, bapiadtel_x. bapiadtel-consnumber = '002'. bapiadtel_x-updateflag = 'D'. APPEND: bapiadtel, bapiadtel_x. "Delete entry CLEAR: bapiadtel, bapiadtel_x. bapiadtel-consnumber = '003'. 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 change module CALL FUNCTION 'BAPI_ADDRESSORG_CHANGE' EXPORTING obj_type = objtype obj_id = obj_id obj_id_ext = obj_id_ext context = context IMPORTING address_number = address_number TABLES bapiadtel = bapiadtel bapiadtel_x = bapiadtel_x return = return. * Errors and warnings are in the RETURN table. If successful, the * organization address and its communication data are now updated * in the system. * The adress number is in the ADDRESS_NUMBER field. Notes To delete, e.g. a telephone number in the table of existing telephonenumbers for an address, the 'UPDATEFLAG' field in the associatedreference structure line must contain 'D'. To create an entry, this field must contain 'I' and the data to beinserted must be passed. All new 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 taken intoaccount as far as possible. It is not significant whether, e.g. alltelephone number comments are followed by fax number comments as changedata, or vice versa; only the sequence among entries with the same keyis significant, unless you pass only some or no communication addressor comment serial numbers, in which case the data sequence issignificant . The key fields are: Structure | Fields --------------------------------- BAPIAD1VL | ADDR_VERS, FROM_DATE BAPIAD_REM | ADDR_VERS, LANGU BAPIADTEL | CONSNUMBER ... | ... BAPIADPAG | CONSNUMBER BAPICOMREM | COMM_TYPE, LANGU You can pass the communication address and comment serial numbersempty, in which case the sequence of the data passed is significant,for example if you want to delete the telephone number in the secondposition in the in ascending order of serial numbers sorted existingtelephone numbers, in the database, you must pass a dummy telephonenumber with update flag (U) in the first position, without selectingfields to update, and a telephone number with delete flag (D) in thesecond position. The communication addresses in the database are usually not sorted byserial numbers, so you must first determine the sequence of thecommunication addresses sorted by serial numbers. This procedure is not advisable because it is easy to make datasequence errors. Specifying serial numbers as key 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 in another language than the creation language is to assignedto a communication address.) Then the first telephone number comment inGerman flagged for insertion (I) is assigned to the first telephonenumber to be inserted. The third fax number comment in English to beinserted (I) is assigned to the third fax number to be insertedspecified. 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_ADDRESSORG_GETDETAIL), if communication data are also to bechanged, to get the communication data serial numbers. The address number of the organization address for the object type andkey is returned in the export parameter ADDRESS_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': treat all errors as warnings ' ': treat errors as errors Default The flag is not set, i.e. is ' '. |