Programme SAP BUPTDTRANSMIT - Distribution of time-dependent business partner data

Purpose
In Release 6.40, time dependency is partially introduced for the SAPBusiness Partner, in the form of time constraints for bank details(table BUT0BK), business partner roles (BUT100), addresses (BUT020), andcommunication data for address usages (ADR2-13, ADRU), as well as fulltime dependency for address usages (BUT021_FS). In Release 7.0, fulltime dependency for the central data (BUT000_TD) as well as timedependency for EEW extensions was also introduced for the BusinessPartner. This could result in problems when business partner data isexchanged with other applications or systems, if they do not supporttime dependency, or cannot process time-dependent data.
Therefore when business partner data is saved, the data records whosevalidity start falls in the future or whose validity is restricted andfalls in the future, are saved in a separate table BUT_TDTRANS. Thusthis data is not distributed to applications that do not support timedependency.
The data records in question may distributed only when the validityactually begins or ends. Distribution takes place by means of the reportBUPTDTRANSMIT that distributes all entries from table BUT_TDTRANS thatare valid on the current date to applications registered in table TB048.Execute the report daily if possible in order to keep the dataup-to-date.
The table BUT_TDTRANS is filled only if at least one active applicationis registered in table TB048 when the data is saved. However it isalways possible to use the program BUPTDTRANSGEN to generate theBUT_TDTRANS entries subsequently.
In addition, it is necessary that an entry exists in table TB058 forevery table that is to be distributed. This entails defining for eachtable, the update structures needed for the interface modules, as wellas the modules for distributing and generating the distribution-relevantbusiness partner data.
Caution
No entries are written to the table BUT_TDTRANS for the central data(tables BUT000 and BUT000_TD). However, the central data that willbecome valid in the future is integrated into the scenario, because whenBUPTDTRANSMIT is run, a check is first carried out to determine whetherthere are records in the table BUT000 that are not valid on the currentdate. All of these records are exchanged for the relevant records fromthe table BUT000_TD that are valid on the current date. When the datathat has been exchanged is posted, all information on the new BUT000time slices is then distributed via the regular posting per BAdI. Ifthere was a complete integration of the tables BUT000 and BUT000_TD inthe process described above, the data would then be distributed twice.For this reason, integrating the BUT000 data in the table BUT_TDTRANSwould not only be unnecessary, it would actually be incorrect.

Integration
The entries in the table BUT_TDTRANS are generated using the reportBUPTDTRANSGEN.

Prerequisites
All applications that want to participate in the distribution oftime-dependent data using the report BUPTDTRANSMIT must registerthemselves in table TB048 (maintenance view V_TB048) as active applicati
ons. Function modules are defined here for transferring the data.
The standard SAP system contains the function module SAPBWBUPA_DEF_ADDRESS_DELTA_QUEUE_B (with active usage) and the functionmodule BUPA_OUTBOUND_TDTRANSMIT (with active usage), for example, foroutbound processing of the SAP Business Partner.
The relevant module is called by the report BUPTDTRANSMIT as follows:
call function lt_tb048-funcname
TABLES
t_but0bk = lt_but0bk
t_but020 = lt_but020
t_but021_fs = lt_but021_fs
t_but100 = lt_but100
t_adr2 = lt_adr2
.....
t_adr10 = lt_adr10
t_adr13 = lt_adr13
t_adru = lt_adru
EXCEPTIONS
others = 1.
The table entries are based on the TB058 entries, whereby not all tablesmust be contained in the interface (is determined dynamically by theprogram).
The modules assigned in table TB058 are called by report BUPTDTRANSMITor BUPTDTRANSGEN with pre-defined interfaces. The modulesBUPA_TRANS_SELECT_SINGLE and BUPA_BUTTDTRANS_GENERATE can serve as anexample for the central data.

Features
The program BUPTDTRANSMIT can be started for any selection of theapplications listed in table TB048. Initially, all the records that havebecome valid in the meantime are determined from table BUT_TDTRANS andare read subsequently together with the table key of the respectivebusiness partner tables. If the record is not found in the table, thenthis is a case of a deletion operation; meaning that the updateindicator of the table record is filled with 'D'. If the record onlybecomes valid for that date, the indicator 'I' for Insert istransferred. If it is a move that does not coincide with the deletiondate or validity start data, a 'U' is transferred.
The table records determined in this way are transferred to the selectedapplications using the module defined in table TB048.
If a record cannot be processed, the application returns it with theupdate indicator 'E'. If the transfer module triggers an exception thatis marked as containing errors by at least one application, then all therecords are treated as containing errors.
All records that are marked as containing errors by at least oneapplication, are recorded application-specifically in the tableBUT_TDMISS. Only when a record has been distributed successfully to allapplications is it deleted from the table BUT_TDTRANS (and if necessaryalso from BUT_TDMISS).
The date of the last erroneous and the last successful BUPTDTRANSMIT runis recorded subsequently in table BUT_TDAPPLI for each application.

1575784Business partner: Object address and synchronization
759926BP/XI/IN: Business partners are updated incompletely