Anfang des InhaltsbereichsDiese Grafik wird im zugehörigen Text erklärt Synchronisation von Wertehilfen steuern (Beispiel) Dokument im Navigationsbaum lokalisieren

Verwendung

Sie wollen die Wertehilfen im XML-Repository bei der Synchronisation nicht mit den Wertehilfen überschreiben, die SAP R/3 nach CATS notebook überträgt. Stattdessen möchten Sie die Aktualisierung der Wertehilfen folgendermaßen gestalten:

Vorgehensweise

  1. Definieren Sie eine eigene Klasse ZsynchronizationInboundHandler. Diese Klasse muß das Interface IsynchronizationInboundHandler implementieren
  2. Implementieren Sie die Methode getObjectName.
  3. Implementieren Sie die Methode handleInboundContainer.

Java-Quelltext

package com.sap.mycats.customer.examples;

import com.sap.mycats.basics.database.badi.*;

import com.sap.mycats.basics.tools.badi.*;

import com.sap.mycats.basics.customer.synchronization.ISynchronizationInboundHandler;

/**

 * This example of an ISynchronizationInboundHandler appends or updates

 * received elements. The standard handler would replace all records with the

 * received table.

 */

public class ZSynchronizationInboundHandler

    implements ISynchronizationInboundHandler

{

    public final static String ZPICKLIST_WBS = "ZPICKLIST_POSID";

 

    public ZSynchronizationInboundHandler () {

    }

 

    public String getObjectName () {

        return ZPICKLIST_WBS;

    }

 

    public void handleInboundContainer (ITableReadOnly anInboundContainer) {

        DatabaseCustomer database = DatabaseCustomer.getInstance();

        for (int i = 0; i < anInboundContainer.getRowCount(); i++) {

            IRecordReadWrite record = null;

            try {

                record = RecordFactory.createRecord(ZPICKLIST_WBS);

            } catch (Exception e) {

                return;

            }

            record.setCorrespondingFields(anInboundContainer.getRecordReadOnly(i));

            ITableReadWrite oldRecords

                = database.select(ZPICKLIST_WBS, "primary", record, record);

            for (int j = 0; j < oldRecords.getRowCount(); j++) {

                database.delete(ZPICKLIST_WBS, oldRecords.getRecordReadWrite(j));

            }

            database.insert(ZPICKLIST_WBS, record);

        }

    }

}

Ende des Inhaltsbereichs