Patent Abstract:
A method for deleting data sets contained in a data list from a table system comprises the following steps, said steps being carried out for all data sets of said data list: reading one data set; checking whether said read data set has a specified property; if said data set has said specified property: deleting said data set in said first table; and substituting the contents of said data set in said second table by a blank data set. Furthermore, there is provided a computer program product and a device.

Full Description:
PRIORITY CLAIM  
       [0001]     This application claims priority from European Patent Application No. 04009852.7-1225, filed Apr. 26, 2004, the contents of which are incorporated herein by reference.  
       TECHNICAL FIELD  
       [0002]     The present invention relates to a method, a computer program and a device for deleting data sets contained in a data list from a table system.  
       BACKGROUND  
       [0003]     When data which is being used in a plurality of instances of a system is deleted, problems occur if such data is deleted. In particular, such a deletion can lead to severe problems when operating the system.  
       SUMMARY  
       [0004]     It is therefore an object of the present invention to provide a method, a computer program and a device for deleting data sets contained in a data list from a table system enabling a better stability of the system in which the data is used.  
         [0005]     This object is solved according to the present invention by a method having the features disclosed in claim  1 , a computer program having the features disclosed in claim  4  and a device having the features disclosed in claim  5 . Preferred embodiments are subject of the dependent claims.  
         [0006]     According to the present invention there is provided a method for deleting data sets contained in a data list from a table system, comprising the following steps, said steps being carried out for all data sets of said data list: 
        reading one data set;     checking whether said read data set has a specified (predetermined or predeterminable) property;     if said data set has said specified property: 
            deleting said data set in said first table or section; and     substituting the contents of said data set in said second table or section by a blank data set.    
               
 
         [0012]     By substituting the contents of said data set in said second section by a blank data set, an operation using said data stored in said second section can still be performed as a data set (even if it is a blank data set) is present which can be addressed. Thus the running stability of the system can be enhanced.  
         [0013]     The method preferably further comprises the step of checking whether said data list has a specified (predetermined or predeterminable) property.  
         [0014]     This step is preferably performed before performing the steps mentioned above. In case said data list does not have the specified property, a deletion does not have to be performed.  
         [0015]     The data list preferably has a predetermined use period and said method further preferably comprises the step of checking whether said predetermined use period has elapsed.  
         [0016]     According to the invention there is furthermore provided a computer program product for deleting data sets contained in a data list from a table system comprising program parts for carrying out a method according to the present invention or a preferred embodiment thereof.  
         [0017]     Furthermore, there is provided a device for deleting data sets contained in a data list, said device comprising: 
        a storage medium for storing said data list;     a reading means for reading one data set;     a checking means for checking whether said read data set has a specified (predetermined or predeterminable) property;     a deleting means for: 
            deleting said data set in said first table or section; and     substituting the contents of said data set in said second table or section by a blank data set     if said data set has said specified property.    
               
 
         [0025]     Further features and advantages will become apparent from the following detailed description of preferred embodiments of the present invention with reference to the drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0026]      FIG. 1  schematically shows a system for importing an processing data.  
         [0027]      FIG. 2  shows a schematic overview of a method of uploading and processing data in a preferred table structure.  
         [0028]      FIGS. 3A-3H  show screen-shots of a user interface for operating the table structure.  
         [0029]      FIGS. 4A-4D  show screen-shots of a user interface provided for a mapping function.  
         [0030]      FIG. 5  shows a flowchart describing checks performed in data sets before they are used.  
         [0031]      FIG. 6  shows a flowchart describing the deletion of data sets.  
         [0032]      FIG. 7  shows a flowchart describing another alternative of the deletion of data sets 
     
    
     DESCRIPTION  
       [0033]     A user system  10  for importing an processing data is schematically shown in  FIG. 1 . The user system  10  comprises a first section  12  which can be used for importing and processing external data. The user system furthermore comprises at least one second section  14  in which data contained in the user system is processed.  
         [0034]     A table structure and method for importing and processing large amounts of data sets into said user system  10  will be described in the following. As a preferred embodiment, the importing and processing of address data in a system will be described hereinafter.  
         [0035]     External data comprising a plurality of data sets to be imported into a system are provided on an electronic storage medium, like a CD, or are received via ISDN, email, and so on. The data sets are provided in a predefined format in a data file e.g. ASCII, Excel, or dBase. The data sets comprise data segments of different categories. For address data such categories could be first name, last name, street, house number, city, etc. The segments of a data set are separated by a separator in the data file. The separator can be e.g. comma, semicolon, tab or any other character.  
         [0036]      FIG. 2  shows a schematic overview of a method of uploading and processing data in a preferred table structure.  
         [0037]     External data to be imported into the system are first uploaded without any further processing (step S 10 ). The data sets uploaded in the user system are referred to as “data list”. The uploaded data sets are mapped (step S 20 ). In particular the data structure of the uploaded data sets is transferred to the data structure of the system (to be described later). After mapping the data sets several checks are performed on the data sets in order to verify if particular properties of the data sets are correct. In the present case, as address data sets are used, a postal check (step S 30 ) and a duplicate check (step S 40 ) are performed. In the postal check it is verified whether the address data provided is correct with respect to general properties, e.g. it is checked whether the postal code correctly corresponds to the city given in one data set.  
         [0038]     During the duplicate check step, it is checked whether duplicate data sets, i.e. substantially identical data sets or data sets having a specified (predetermined or predeterminable) range of identical data fields are present. During this check it can be verified whether a newly imported data set is substantially identical to a data set already present in the system or whether two newly imported data sets are identical. The duplicate check can e.g. be performed by comparing the components of the one data set (last name, first name, street, . . . ) with the same components of another data set.  
         [0039]     After having performed the various checks, the imported data sets can be further processed (step S 50 ) as will be described later.  
         [0040]     In the following, a table structure used for importing and processing data and/or data sets will hereinafter be referred to as a “staging area”.  
         [0041]     The staging area comprises a plurality of tables into which data segments of the imported data sets and/or additional information relating to the data list is written.  
         [0042]     The external data stored on a data storage medium is read line by line (data set by data set) and stored in table CRMD_MKTLIST_C. During this step, the data is not processed in any way. This means that in CRMD_MKTLIST_C the data is stored in a form similar to the form of the provided data in the data file. The data segments separated by the separator are written into the table CRMD_MKTLIST_C substantially without an processing. Thus the data sets as a whole are transferred from the data storage medium to the table CRMD_MKTLIST_C without being split up into separate parts.  
         [0043]     The data stored in CRMD_MKTLIST_C is then mapped. During the mapping step the data sets stored in CRMD_MKTLIST_C are each divided up, whereby one or more segments of each data set are stored e.g. in either of tables CRMD_MKTLIST_ADR, CRMD_MKTLIST_ORG, CRMD_MKTLIST_PER, CRMD_MKTLIST_CEN. In CRMD_MKTLIST_ADR data segments of each data set relating to address properties (e.g. street, postal code, city, . . . ) of the data sets are stored. In CRMD_MKTLIST_ORG data segments of each data set relating to the data set&#39;s organizational properties (e.g. company name, . . . ) are stored. In CRMD_MKTLIST_PER data segments of each data set relating to the person (e.g. first name, last name, age, sex, . . . ) are stored. In CRMD_MKTLIST_CEN data segments of each data set relating to containing additional information (e.g. contact person of a company, . . . ) are stored.  
         [0044]     If the data sets relate to other types of data, other suitable tables can be used.  
         [0045]     A table CRMD_MKTLIST_E is provided in which error messages for errors which occur during the processing of the data are logged.  
         [0046]     Furthermore, there is provided a plurality of tables which form a so called “administrative area”. In the present system the following tables are provided: 
    CRMD_MKTLIST_H     CRMD_MKTLIST_T     CRMD_MKTLIST_PH     CRMD_MKTLIST_S     CRMD_MKTLIST_L     CRMD_MKTLIST_I    
 
         [0053]     In CRMD_MKTLIST_H header information and attributes (e.g. origin of the data, type of the data, costs) relating to the list are stored. In CRMD_MKTLIST_T additional information (e.g. short description, language dependent) relating to the list is stored. In CRMD_MKTLIST_PH package header information and attributes is stored, e.g. the mapping format used or the name of the provided file containing the data sets to be imported. In CRMD_MKTLIST_S the steps which have already been processed for a specific data list are indicated. In CRMD_MKTLIST_L builds the connection between the header and the list itself. In particular a reference to CRMD_MKTLIST_H is stored in this table. In CRMD_MKTLIST_I a link or reference to a created data object (to be described later) is stored for each data set.  
         [0054]     In the following, examples of the above mentioned tables are shown:  
                                             Header table CRMD_MKTLIST_H                Data type/-           Field   element   Meaning               CLIENT   MANDT   Client       LIST_GUID   RAW16   GUID of the list       LIST_ID   CHAR28   ID of the list       LIST_ID_LOGSYS   CHAR10   Logical system where               the list was created       ORIGIN   CHAR6   Origin of the list       TYPE   CHAR2   Type of the list (bought, rented)       VALID_DATE_TO   DATS8   Recommended End-of-Use Date       MAX_USAGE_NO   NUMC4   Permitted No. of Uses               for Address List       MAX_USAGE_DATE   DATS8   Permitted End-of-Use Date       NO_GROSS   NUMC8   Gross number       COSTS   CURR15   Costs       COSTS_CURRENCY   CUKY5   Currency of costs       CREATED_AT   DEC15   Creation date       CREATED_BY   CHAR12   Creation user       CHANGED_AT   DEC15   Change date       CHANGED_BY   CHAR12   Change user       DELETED   CHAR1   Flag which indicates that               list is deleted       APPL_LOG_ID   CHAR22   ID of application log of deletion                  
 
         [0055]    
       
         
               
             
               
               
               
             
           
               
                   
               
               
                   
               
               
                 Item table CRMD_MKTLIST_I 
               
             
          
           
               
                   
                 Data type/- 
                   
               
               
                 Field 
                 element 
                 Meaning 
               
               
                   
               
               
                 CLIENT 
                 MANDT 
                 Client 
               
               
                 ITEM_GUID 
                 RAW16 
                 GUID of the line 
               
               
                 LIST_GUID 
                 RAW16 
                 GUID of the list 
               
               
                 BP_GUID_ORG 
                 RAW16 
                 GUID of the assigned business partner 
               
               
                   
                   
                 (type organization) 
               
               
                 BR_GUID_PER 
                 RAW16 
                 GUID of the assigned business partner 
               
               
                   
                   
                 (type person) 
               
               
                 POSTAL 
                 CHAR1 
                 Flag that the entry has postal errors 
               
               
                 DUPLICATE 
                 CHAR1 
                 Flag that the entry is a duplicate 
               
               
                   
               
             
          
         
       
     
         [0056]    
       
         
               
             
               
               
               
               
             
           
               
                   
               
               
                   
               
               
                 Text table CRMD_MKTLIST_T 
               
             
          
           
               
                   
                   
                 Data type/- 
                   
               
               
                   
                 Field 
                 element 
                 Meaning 
               
               
                   
                   
               
               
                   
                 CLIENT 
                 MANDT 
                 Client 
               
               
                   
                 LIST_GUID 
                 RAW16 
                 GUID of the list 
               
               
                   
                 LIST_LG 
                 LANG1 
                 Language 
               
               
                   
                 LIST_DESCR 
                 CHAR60 
                 Description 
               
               
                   
                   
               
             
          
         
       
     
         [0057]    
       
         
               
             
               
               
               
             
           
               
                   
               
               
                   
               
               
                 Header table CRMD_MKTLIST_PH 
               
             
          
           
               
                   
                 Data type/- 
                   
               
               
                 Field 
                 element 
                 Meaning 
               
               
                   
               
               
                 CLIENT 
                 MANDT 
                 Client 
               
               
                 PACKAGE_GUID 
                 RAW16 
                 GUID of the package 
               
               
                 SET_GUID 
                 RAW16 
                 GUID of the profile set 
               
               
                 SET_DESCRIPTION 
                 CHAR72 
                 description of a profile set 
               
               
                 EXISTING_SET 
                 CHAR1 
               
               
                 PF_GUID 
                 RAW16 
                 GUID of a profile 
               
               
                 TG_GUID 
                 RAW16 
                 GUID of the target group 
               
               
                 TG_DESCRIPTION 
                 CHAR72 
                 description of a target group 
               
               
                 MAPPING_FORMAT 
                 CHAR6 
                 format of an external list 
               
               
                 SEPARATOR_TYPE 
                 CHAR1 
                 Field separator type 
               
               
                 SEPARATOR_CHAR 
                 CHAR1 
                 Field separator character 
               
               
                 FILE 
                 CHAR255 
                 Location of the file 
               
               
                 FILE_STORAGE 
                 CHAR1 
                 Storage place of file: 
               
               
                   
                   
                 workstation or server 
               
               
                   
               
             
          
         
       
     
         [0058]    
       
         
               
             
               
               
               
               
             
           
               
                   
               
               
                   
               
               
                 Package-List-Assignment table CRMD_MKTLIST_L 
               
             
          
           
               
                   
                   
                 Data type/- 
                   
               
               
                   
                 Field 
                 element 
                 Meaning 
               
               
                   
                   
               
               
                   
                 CLIENT 
                 MANDT 
                 Client 
               
               
                   
                 PACKAGE_GUID 
                 RAW16 
                 GUID of the package 
               
               
                   
                 LIST_GUID 
                 RAW16 
                 GUID of the list 
               
               
                   
                   
               
             
          
         
       
     
         [0059]    
       
         
               
             
               
               
               
             
           
               
                   
               
               
                   
               
               
                 Package-Workflow-Steps-Assignment table CRMD_MKTLIST_S 
               
             
          
           
               
                   
                 Data type/- 
                   
               
               
                 Field 
                 element 
                 Meaning 
               
               
                   
               
               
                 CLIENT 
                 MANDT 
                 Client 
               
               
                 PACKAGE_GUID 
                 RAW16 
                 GUID of the package 
               
               
                 STEP 
                 CHAR1 
                 Step (U, M, P, D, B, T, C, R) 
               
               
                 FLAG 
                 CHAR1 
                 flag, which indicates that step is 
               
               
                   
                   
                 selected 
               
               
                 STATUS 
                 CHAR1 
                 defines, what the process status of 
               
               
                   
                   
                 the step is (active, finished or error) 
               
               
                 ATTR_ERROR 
                 CHAR1 
                 Determines, what the workflow 
               
               
                   
                   
                 has to do, if the step has an error 
               
               
                   
                   
                 (break or continue) 
               
               
                 REPEAT_ALL 
                 CHAR1 
                 Determines: wants the user to repeat 
               
               
                   
                   
                 the step for all entries in the list 
               
               
                   
                   
                 or only for the failed, if in the step 
               
               
                   
                   
                 occurs an error 
               
               
                 APPL_LOG_ID 
                 CHAR22 
                 Application Log: Handle of a 
               
               
                   
                   
                 protocol 
               
               
                   
               
             
          
         
       
     
         [0060]     A graphical user interface for operating the staging area will be described with reference to  FIGS. 3A  to  3 H.  
         [0061]     The user interface comprises a field  30  for inputting an ID of a list to be created and a field  32  for inputting a description of the list. Furthermore, the user interface comprises a plurality of tab strips  34 - 42  for selecting specified input screens described hereinafter.  FIG. 3A  shows a basic screen for inputting basic data relating to the data file to be uploaded.  
         [0062]     If the user wants to upload a new data file he must create a new data list. The user enters an ID of the data list in field  30  (in the present case: PERSON_LIST) and a description of the list in field  32 . On tab strip  32  the user enters or can enter attributes such as the origin in field  44 , the type in field  46 , the costs in field  48 , the permitted number of uses in field  50  or permitted end of use date in field  52  (if the data sets can only be used for a predefined number of times and/or a predefined usage period, to be described later), recommended end of use date in field  54  and/or the gross number in field  56  (=number of expected data sets in the file). This information input in region  62  is stored in tables CRMD_MKTLIST_H and CRMD_MKTLIST_T.  
         [0063]     Furthermore, the user enters the file name (with complete path) in field  58  and the field separator used in the data file to be imported (comma, semicolon, tab, other character) in field  60 . A so called “package” is created and the information input in region  64  is stored in table CRMD_MKTLIST_PH.  
         [0064]      FIG. 3B  shows a screen for inputting information relating to process steps to be performed.  
         [0065]     On tab strip  36  the user can mark in the fields  68 - 74  the steps or processing that should be processed within one background job, i.e. in one run. In the shown screen, the user can select one, several or all of ‘Upload File’ (field  66 ), ‘Map Data’ (field  68 ), ‘Postal Check’ (field  70 ), ‘Duplicate Check’ (field  72 ), and two steps for further processing (fields  74 ,  76 ) (‘Business Partner Creation’ and ‘Target Group Creation’).  
         [0066]     If the step ‘Map Data’ (field  68 ) is marked a mapping format must be given (to be described later).  
         [0067]     The user can specify in field  80  the start type, i.e. whether the processing is to start immediately or at a specified later time.  
         [0068]     If the user presses the save button  78 , the entered data is saved.  
         [0069]     The input data is then written into tables CRMD_MKTLIST_PH and CRMD_MKTLIST_L by the system. Table CRMD_MKTLIST_S contains all steps for the package, wherein the status of every step is initial.  
         [0070]      FIG. 3C  shows a screen for inputting additional information relating to the list to be imported. On tab strip  38  there is provided a field  82  into which the user can enter a long text.  
         [0071]     In the following several examples for processing are given.  
         [0072]     The user marks the upload step (field  66 ), gives a start date/time (field  80 ) and saves the list (button  78 ). The file is read from application server and its content is stored in table CRMD_MKTLIST_C. in particular the data sets stored in the data file are read data set by data set and written into table CRMD_MKTLIST_C.  
         [0073]     In table CRMD_MKTLIST_S the status of step U (‘upload’) is updated. If errors occur the step can be repeated. In that case only those data sets of the file are processed which were not transferred to CRMD_MKTLIST_C earlier. If the step was processed without any error it cannot be repeated again.  
         [0074]     The user marks the mapping step (field  68 ), gives a start date/time (field  80 ) and saves the list (button  78 ). Once the input by the user is terminated and/or the start time is reached, the processing starts. The previously uploaded data is read from table CRMD_MKTLIST_C data set by data set, mapped and stored in the other tables of the staging area: 
    CRMD_MKTLIST_ORG     CRMD_MKTLIST_PER     CRMD_MKTLIST_ADR     CRMD_MKTLIST_CEN    
 
         [0079]     In particular, an iterative processing takes place in which respective data segments of each data set are read and subsequently written into one of the above tables.  
         [0080]     In table CRMD_MKTLIST_S the status of step M (‘mapping’) is updated. In table CRMD_MKTLIST_I the items are inserted. If errors occur the step can be repeated for all data sets or only for the erroneous. At start of the repetition for all data sets the entries in CRMD_MKTLIST_E, CRMD_MKTLIST_ADR, CRMD_MKTLIST_ORG, CRMD_MKTLIST_PER and CRMD_MKTLIST_CEN are deleted for the repeated data sets. New entries in CRMD_MKTLIST_E, CRMD_MKTLIST_ADR, CRMD_MKTLIST_ORG, CRMD_MKTLIST_PER and CRMD_MKTLIST_CEN are created during the processing. The entries in CRMD_MKTLIST_I are updated only.  
         [0081]     In case of repetition for erroneous data sets, only those data sets that are marked as erroneous (in table CRMD_MKTLIST_E) and those data sets that were not processed in previous execution are processed again. Entries in CRMD_MKTLIST_E are deleted just before creating new entries.  
         [0082]     The user marks the step for postal check (field  70 ), gives a start date/time (field  80 ) and saves the list (button  78 ). Once the input by the user is terminated and/or the start time is reached, the processing starts. The previously mapped data is read from tables of the staging area 
    CRMD_MKTLIST_ORG     CRMD_MKTLIST_PER     CRMD_MKTLIST_ADR     CRMD_MKTLIST_CEN 
 
 and checked against postal reference data. In table CRMD_MKTLIST_S the status of step P (‘Postal Check’) is updated. In table CRMD_MKTLIST_I the items are updated, field POSTAL is filled. This step is optional for the processing of the data. 
   
 
         [0087]     If errors occur the step can be repeated for all data sets s or only for the erroneous. At start of the repetition the entries in CRMD_MKTLIST_E are deleted for the repeated data sets. New entries in CRMD_MKTLIST_E are created during the processing. The entries in CRMD_MKTLIST_I are updated only.  
         [0088]     The user marks the step for duplicate check (field  72 ), gives a start date/time (field  80 ) and saves the list (button  78 ). Once the input by the user is terminated and/or the start time is reached, the processing starts. The previously mapped data is read from tables of the staging area 
    CRMD_MKTLIST_ORG     CRMD_MKTLIST_PER     CRMD_MKTLIST_ADR     CRMD_MKTLIST_CEN 
 
 and checked if data sets of the lists exist already as business partner in the system. In table CRMD_MKTLIST_S the status of step D (‘Duplicate Check’) is updated. In table CRMD_MKTLIST_I the items are updated, field DUPLICATE is filled. This step is optional for the processing of the data. 
   
 
         [0093]     If errors occur the step can be repeated for all data sets or only for the erroneous. At start of the repetition the entries in CRMD_MKTLIST_E are deleted for the repeated data sets. New entries in CRMD_MKTLIST_E are created during the processing. The entries in CRMD_MKTLIST_I are updated only.  
         [0094]      FIG. 3D  shows a corresponding to the screen shown in  FIG. 3B  after the processing of the data has taken place in which tab strip  36  is visible.  
         [0095]     After the marked steps are processed a traffic light  84 - 92  shows if errors occurred. By pressing the button associated with the traffic light  84 - 92  a popup window with detailed messages appears (see e.g.  FIG. 3F ).  
         [0096]     The processing of the steps can be repeated, the user must mark the step again. For some steps the user can mark a second flag  94 . If this flag  94  is marked all data sets are processed again, otherwise only the erroneous data sets are processed again.  
         [0097]     A summary log with status information of all processed steps can be opened by pressing the log button  96  (see  FIGS. 3A and 3E ).  
         [0098]      FIG. 3E  shows a summary log about status information of all processed steps and  FIG. 3F  shows a popup with detailed error information of a selected step.  
         [0099]      FIG. 3G  shows a screen with the tab strip  40 . After the step ‘Map Data’ (to be described later in detail) is processed the result can be checked on this tab strip  40 .  
         [0100]     In  FIG. 3H  shows a screen with the tab strip  42 . Here some key figures and administrative data are shown.  
         [0101]     The processed data stored in the tables of the staging area can be use used in the user system for creating data objects for each data set. These data objects can then be further processed in the user system.  
         [0102]     If a data object is created for a data set, a reference to the created data object is stored in the table CRMD_MKTLIST_I. The created data object is preferably stored centrally in the user system to be accessible for a plurality of applications. Table CRMD_MKTLIST_I establishes a link between the data sets stored in the staging area and the centrally stored data object.  
         [0103]     In the following a User Interface for mapping the read data sets stored in table CRMD_MKTLIST_C will be described with reference to  FIGS. 4A  to  4 D.  FIGS. 4A  to  4 D show screen-shots of a graphical user interface provided for the mapping function.  
         [0104]     Before a data list can be mapped a mapping format must be defined.  
         [0105]      FIG. 4A  shows a screen in which the user can edit some or more mapping features.  
         [0106]     In the general section M 10  there is provided a field  98  for inputting an ID of a mapping format to be used. A predefined mapping format previously stored can be used. Alternatively, a new mapping format can be created or an existing mapping format can be edited. Furthermore, in the field  100  a text description of the mapping format can be entered.  
         [0107]     The file name of the imported file is entered in the filed  102 . Furthermore, the type of field separator is to be chosen in field  104 .  
         [0108]     Moreover, there are table controls M 12  and M 14  placed side to side. The table control M 12  on the left (segment display section) has three fields  106 ,  108 ,  110  in which a position (column number of data segment in the imported file), a file preview (data segment of one data set in the file) and/or the target field name which indicates the target field to which the respective data segment is to be associated are displayed, respectively.  
         [0109]     When creating a new mapping format this table control M 12  is empty. When the data file for which the mapping format is to be used is selected, the file contents is read depending on the file separator selected. If a correct separator is selected the data is read and shown to the user in table control M 12  with each row R 1 , R 2 , R 3  in the table control M 12  showing individual column values (data segments) of one data set of the data file in field  108 . Since its only a preview, the first line of the data set is read and placed in the table control M 12 . If the user had chosen an invalid separator, the whole data set (first line) is shown in one single row (the first row R 1  of the table control M 12 ).  
         [0110]     The table control M 14  on the right (target display section) shows possible target fields defined in the staging area and their description. In the left table control M 12  for every column (position) in the file a target field can be assigned in field  110 .  
         [0111]     A category column (field  112 ) appears in this control M 14 , which clearly demarcates the target fields which belong to an organization, organization address, person, person address and contact person function, in the case if address data are used. In case other types of data are used, other specifications can be given for the target fields. This table control displays only target fields.  
         [0112]     Since now the user knows the file content for which the mapping has to be done, he can choose the target field by marking one of rows R 4 -R 6  on the table control M 14  and the source field by marking one of rows R 1 -R 3  on the table control M 12 ) and press the move button  114  which appears between these controls M 12 , M 14 .  
         [0113]     Some target fields only allow predefined values defined in a customizing table. For those target fields a value mapping can be defined as will be described hereinafter. For the value assignment the tab  116  is provided.  
         [0114]     As shown in  FIG. 4A , for the data segment “PERS_TITLE_KEY”, i.e. the title of the person, in the user system the values 0001 and 0002 are provided (column  123 ), 0001 representing “Mrs.” and 0002 representing “Mr.”. In the data sets provided, e.g. the title of a person is indicated by the usual expressions Mrs. and Mr. Therefore, these usual expressions need to be substituted by the values used in the user system when importing the data sets into the user system.  
         [0115]     Moreover, it is possible to assign a plurality of expressions used in the imported data sets to a specified (predetermined or predeterminable) value in the user system. A table control M 16  is provided where the user can assign multiple values to the possible values of the mapped field. In the present example, the expressions “Mr.”, “Mr”, “Mister” and “MR” are all assigned to the value 0002 representing “Mr.” in the user system.  
         [0116]     Furthermore, there can be provided a field in which all possible values of a particular data segment of all data sets of a file for which value mapping is to be provided are displayed (not shown in  FIG. 4A ). Thus, the user can see all possible expressions used in the data file and assign these respectively to the values given in the user system.  
         [0117]      FIG. 4B  shows a screen corresponding to the screen of  FIG. 4A , wherein the tab  118  is visible.  
         [0118]     For those target fields that should have the same value for all data sets in the file a constant assignment can be defined.  
         [0119]     The constant assignment can be used if all data sets of the data list should have the same value for a particular field. For example a data list has data sets only from the United States but the country information is not part of the file. The country field is assigned to the mapping format and the constant value US is assigned to this field.  
         [0120]     On tab strip  118  in field  124  the user can input the constant value to be assigned to all data sets.  
         [0121]      FIG. 4C  shows a screen corresponding to the screen of  FIG. 4A , wherein the tab  120  is visible.  
         [0122]     For those target fields that need a more complex mapping algorithm, a code can be programmed in field  126 . In the shown user interface a so called “ABAP code” (Advanced Business Application Programming) can be defined.  
         [0123]     The user interface does not allow the user to select this tab  120  unless and until the user selects a mapped field from the table control M 14 , which holds the mapping fields. Now, the user can see the names of the input structure and the output structure (this is like input parameter and output parameter of a function module). The user can write executable routines in ABAP Code for this mapping field in this control. Care must be taken that the values that come in, are always in the input parameter and the output after the conversion should be assigned to the output parameter.  
         [0124]     In the present example, the file contains no column with language information. Via coding the language information is derived from the country information.  
         [0125]      FIG. 4D  shows a screen corresponding to the screen of  FIG. 4A , wherein the tab strip  122  is visible.  
         [0126]     If global variables are needed for the ABAP coding they can be defined in tab strip  122  in field  128 .  
         [0127]     Data sets imported into the system can have a specified (predetermined or predeterminable) property. Such a property can be associated with a further constriction, e.g. that the data sets can only be used a specified (predetermined or predeterminable) number of times. In the present case, the specified property data can e.g. be that the data sets are rented from a data provider. Such rented data in general only have a limited number of uses and/or a limited time frame in which they can be used by the user. Therefore, the data have to be marked accordingly with a flag. In the present case, a so called “rented flag” is used. If a specified (predetermined or predeterminable) event occurs, e.g. a contacted person reacts to the an activity, the specified property of the data can be changed, i.e. the flag deleted.  
         [0128]     In order to be able to check if accordingly marked data sets have already been used the maximum number of times, and can thus not be used again, or if the data set can still be used, a counter is associated with each data set. The counter indicates how many times the respective data set has already been used.  
         [0129]     The checks to determine whether a data set can be used a further time have to be performed before the respective data set is used. However, such checks need only to be done if the data sets still has a specified property, i.e. is marked as rented in the present case.  
         [0130]     In the following it will be described with reference to  FIG. 5  how such checks are done.  
         [0131]     In step R 10  the processing of a specified data set starts. In step R 12  it is checked whether the respective data set has a specified property. In case the data set does not have the specified property (“no” in step R 12 ), the data set can be used without any further checks and the process proceeds to step R 22 . In case the data set has the specified property (“yes” in step R 12 ), a check is made whether the maximum usage time for the data set has elapsed (step R 14 ). If the maximum usage time for the data set has elapsed (“yes” in step R 14 ), the data set cannot be used and the process proceeds to step R 16 . If the maximum usage time for the data set has not yet elapsed (“no” in step R 14 ), a check is made whether the number of the counter associated with the data set is equal or larger than the maximum number of usage times of the data set (step R 18 ). If the counter is equal or larger than the maximum number of usage times (“yes” in step R 18 ), the data set cannot be used and the process proceeds to step R 16 . If the counter is less than the maximum number of usage times (“no” in step R 18 ), i.e. the data set can still be used, the counter is increased (step R 20 ) and the data set is used (step R 22 ).  
         [0132]     All actions already performed with a particular data set are separately stored in an action table or list so that each action can be tracked. Furthermore, in one preferred embodiment, the value of the counter is generated by summing up the number of already performed actions for a particular data set. By doing so, the data consistency can be enhanced as wrong values due to e.g. a system crash can be substantially avoided. In particular if e.g. an action is to take place, but the processing of the action is interrupted due to external factors.  
         [0133]     If the action to be done with the data set cannot be executed properly, the data set can be used again, i.e. the counter must be decreased. This can e.g. be done by providing a check of the action table.  
         [0134]     In case a specified reaction can be tracked in response to an action executed with a data set, the specified property can be removed from the respective data set. In such a case, the data set can be used freely substantially without the necessity of any of the above checks to be done.  
         [0135]     The data set can be used in different sections of the user system. As already mentioned above, the user system can comprise a first section for importing and processing the data sets and at least one second section in which the data sets are used for interaction with still other parts of the system. If the data sets have the above defined specified property, there are restrictions given with respect to their use, as already partly discussed above. In order to maintain a consistency of the data, the counter is preferably stored in the first section and all sections using respective data sets inquire with the first section whether a data set can be used or not if the data set has the specified property.  
         [0136]     In case the maximum usage time of a data list has run up and some or all of the data sets of this list still have the specified property, in many cases the data sets need to be removed from the system. However, as discussed above, it is possible that the data sets are also used in other sections of the system. As a consequence, the data not only has to be deleted in the first section into which the data has been imported but also in the other sections where the data sets are used.  
         [0137]     In the following, the basic process of deleting data sets having a specified property in the first section of the user system will be described with reference to  FIG. 6 . For the following description it is assumed that only data sets are used and no data objects have been created.  
         [0138]     The deletion of a data list is started in step D 10 . This process is in particular started if the maximum usage time of a data list has expired.  
         [0139]     In step D 12  it is checked whether the data list has the specified property. In the present case this is a check whether the data list is rented or not. If the data list does not have the specified property (“no” in step D 12 ), the data list does not have to be deleted (step D 14 ). If the data list has the specified property (“yes” in step D 12 ), step D 16  is performed as long as the end of the list in not reached, i.e. as long as there are data sets in the data list.  
         [0140]     In step D 16  the following steps are performed preferably for each data set of the data list. The data set is read from the data list (step D 18 ). It is checked, whether the read data set has the specified property (step D 20 ). If the data set does not have the specified property (“no” in step D 20 ), the data set does not have to be deleted (step D 22 ). If data set has the specified property (“yes” in step D 20 ), the data set is deleted in step D 24 . Furthermore, in this step an indicator or instruction set is sent to preferably all other sections of the system in which the data set is used. In the present case, the data sets are also used in the second section. Therefore an indicator is sent to the second section.  
         [0141]     In the second section the indicator from the first section is received and the respective data set is anonymized, in particular the contents of the data set is filled with blank fields.  
         [0142]     After having finished the processing described above, all data sets which had a specified property are removed from the system.  
         [0143]     In the following, there will be given a description of a deletion process for the case in which data objects have been created from the data sets. In this case, all data from the staging area needs to be deleted. Furthermore, the created data objects having a specified property need to be deleted. A flow chart for such a deletion process is shown in  FIG. 7 .  
         [0144]     In step D 100  the deletion of the data list is started and in step D 102  all data sets are deleted from the staging area, i.e. the tables CRMD_MKTLIST_E, CRMD_MKTLIST_C, CRMD_MKTLIST_ORG, CRMD_MKTLIST_PER, CRMD_MKTLIST_ADR, CRMD_MKTLIST_CEN.  
         [0145]     The data stored in CRMD_MKTLIST_H is read (step D 104 ), i.e. the ID of the list to be deleted is read. In step D 106  it is checked whether the data list has the specified property. In case the data list does not have the specified property (“no” in step D 106 ), the process proceeds to step D 118 . In case the data list has the specified property (“yes” in step D 106 ), the reference to the data objects is read from table CRMD_MKTLIST_I (step D 108 ).  
         [0146]     For every data object associated with the list to be deleted (step D 110 ), it is determined whether the data object has the specified property (step D 112 ). In case the data object does not have the specified property (“no” in step D 112 ), the process proceeds to step D 114  and the data object is not deleted. In case the data list has the specified property (“yes” in step D 112 ), the data object is deleted. Furthermore, in this step an indicator is sent to preferably all other sections of the system in which the data set is used. In the present case, the data sets are also used in the second section. Therefore an indicator is sent to the second section. In the second section a similar processing to the one described with reference to  FIG. 6  is done. Alternatively, a blank data set can be sent to the second section to replace the data set associated with the deleted data set.  
         [0147]     In step D 118  the data in the tables CRMD_MKTLIST_S, CRMD_MKTLIST_L, CRMD_MKTLIST_PH are deleted. Then, the data in the table CRMD_MKTLIST_I is deleted (step D 120 ). In the table CRMD_MKTLIST_H the delete flag is set (step D 122 ). After the deletion only the table CRMD_MKTLIST_H and CRMD_MKTLIST_T contain information about the deleted list.  
         [0148]     The above described system can furthermore be used for an enhanced reporting on the quality and success of the provided data.  
         [0149]     After having uploaded and mapped the data provided, the user can create business partners which are e.g. contacts to be used for acquiring new customers. The created business partners can then be assigned to created target group. Target groups are used during marketing campaigns. A target group can e.g. be persons who have a particular income level, age, etc.  
         [0150]     A campaign is defined and the created target group is assigned. During the execution of the campaign for all business partners in the target group Marketing outbound contacts (emails, phone calls, . . . ) are generated. The campaign information can be transferred to an accounting system for the closed loop analysis (sales revenue of a campaign &lt;-&gt; costs of a campaign).  
         [0151]     If a contacted business partner shows a positive reaction, the Inbound information is tracked via an activity. When the activity is saved, an additional action can be executed to remove the rented flag if the business partner is rented.  
         [0152]     If the contacted business partner orders a product, the sales order is created in the system (e.g. within Call Center by a call agent). The ID of the campaign is assigned to this sales order. The sales order can be transferred to an accounting system for the fulfillment. In the accounting system the sales order is delivered, the invoice is created, the sales revenue and the costs are collected. It is important that the sales orders are connected with the campaign.  
         [0153]     With the provided information, the sales success can be evaluated and the costs and revenues of the address list can be compared.  
         [0154]     The reporting function can e.g. comprise the following aspects: 
        How many of the acquired addresses have been acquired as new customers?       
 
         [0156]     How are these distributed over a defined period?
        On average, how many business activities were necessary to acquire the addresses as new customers?    How many of the addresses contacted were incorrect (for example, wrong telephone number, wrong email address)?    Which means of communication (email, fax, telephone, and so on) produced the most new customers (won customers per communication medium)?    How many duplicates were there in the acquired data?    How many new customers placed a purchase order?    What is the average order size of these new customers within a defined period?    What is the average sales revenue obtained from these new customers within a defined period? Compare these values with the cost of the acquired addresses.     How many of the addresses have been acquired as new customers compared with other (previously) acquired addresses (from the same provider/from other providers)?    In which region are the most customers won (comparison existing customers/won customers per region)?       
 
         [0166]     As discussed above, the sales success of an address list can be evaluated. The following can e.g. be evaluated: 
        Number of addresses that were created in the system and the number of contacts for these addresses     Number of addresses that are won as customers and which have therefore created revenue     Total sales and contribution margin     Total revenue, as well as average revenue per won customer        
 
         [0171]     Furthermore, the quality of an address list can be evaluated, e.g. the number of incorrect addresses and the number of duplicated addresses in an address list can be output.  
         [0172]     The above description has been given for the importing and processing of address data set into a user system. However, other types of data can also be processes by the described structures. Such data could e.g. be measurement data which are to be evaluated in an evaluation system.  
       LIST OF REFERENCE NUMERALS  
       [0173]      10  user system  
         [0174]      12  first section  
         [0175]      14  second section  
         [0176]      30  field  
         [0177]      32  field  
         [0178]      34 - 42  tab strip  
         [0179]      44 - 60  field  
         [0180]      62 ,  64  region  
         [0181]      66 - 76  field  
         [0182]      78  save button  
         [0183]      80 ,  82  field  
         [0184]      84 - 92  traffic light  
         [0185]      94  flag  
         [0186]      96  log button  
         [0187]      98 - 112  field  
         [0188]      114  move button  
         [0189]      116 - 122  tab strip  
         [0190]      124 - 128  field  
         [0191]     M 10 -M 16  table control  
         [0192]     R 1 -R 6  row

Technology Classification (CPC): 6