Ansicht
Dokumentation

C1F2_SUBSTANCES_DELETE - EHS: Löschen von Spezifikationsdaten

C1F2_SUBSTANCES_DELETE - EHS: Löschen von Spezifikationsdaten

General Data in Customer Master   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität aus der Sicht des Aufrufers

Allgemeines

Mit diesem Funktionsbaustein kann eine Menge von Spezifikationen oder eine Menge von Teilobjekten von Spezifikationen gelöscht werden. Dabei bedeutet Löschen, daß das Löschkennzeichen (Feld DELFLG) der Objekte gesetzt wird. Ein physisches Löschen wird nicht durchgeführt.

Das Setzen des Löschkennzeichens wird von diesem Baustein nur innerhalb der Pufferdaten durchgeführt. Erst ein Aufruf des Funktionsbausteins C1F2_SUBSTANCES_SAVE_TO_DB und ein anschließendes Absetzen eines COMMIT WORK schreibt die Modifikationen endgültig in die Datenbank fort.

Objekte, die (zur Zeit) in SAP-internen Datenbanktabellen abgelegt werden (z.B. Merkmalswerte und Langtexte) können von diesem Baustein (noch) nicht gelöscht werden.

Beim direkten Löschen von Bewertungsdaten werden nur solche Bewertungsinstanzen gelöscht, deren Verwendung der Benutzer bearbeiten darf.

Schnittstelle

Eingabe:

Mittels boolscher Parameter kann der Aufrufer festlegen, welche Teilobjekte welcher Spezifikationen er löschen möchte. Diese Parameter sind entsprechend der folgenden logischen Hierarchie angeordnet:

die boolschen Parameter:             | die korrospondierenden
                                     | Tabellenparameter:
-------------------------------------|---------------------------
                                     |
I_FLG_HEADER                         | X_API_HEADER_TAB
  |                                  |
  |--I_FLG_REFSUBS                   | X_API_REFSUBS_TAB
  |--I_FLG_IDENT                     | X_API_IDENT_TAB
  |    |                             |
  |    |--I_FLG_IDENT_SUBLIST        | X_API_IDENT_SUBLIST_TAB
  |                                  |
  |--I_FLG_MATJOIN                   | X_API_MATJOIN_TAB
  |--I_FLG_PROP_HEADER               | X_API_PROP_HEADER_TAB
      |                             |
       |--I_FLG_PROP                 | X_API_PROP_TAB
            |                        |
            |--I_FLG_PROP_COMP       | X_API_PROP_COMPONENT_TAB
            |--I_FLG_PROP_USAGE      | X_API_PROP_USAGE_TAB
            |--I_FLG_PROP_REL        | X_API_PROP_RELIABILITY_TAB
            |--I_FLG_PROP_SOURCE     | X_API_PROP_SOURCE_TAB
           |--I_FLG_PROP_FTEXT      | X_API_PROP_FTEXT_TAB
            |--I_FLG_PROP_TAB07      | X_API_PROP_TAB07_TAB
            |--I_FLG_PROP_TAB0B      | X_API_PROP_TAB0B_TAB
            |--I_FLG_PROP_TAB0D      | X_API_PROP_TAB0D_TAB
            |--I_FLG_PROP_TAB0F      | X_API_PROP_TAB0F_TAB

Der Aufrufer bestimmt zunächst, welche Teilobjekte er löschen will, indem er die zugehörigen boolschen Parameter auf TRUE setzt (TRUE und FALSE sind als Konstanten im Include CBUI09 definiert). Dann befüllt er die korrespondierenden Tabellenparameter mit den zu löschenden Teilobjekten. Dazu müssen die Tabellenparameter wie folgt befüllt werden:
  • In jeder Zeile muß das Feld RECN gefüllt sein.

  • Unterhalb der Spezifikationskopfebene muß in jeder Zeile das Feld RECNROOT gefüllt sein.

  • Unterhalb der Spezifikationskopfebene müssen die Fremdschlüsselfelder für die jeweils übergeordneten Teilobjekte gefüllt sein. (So müssen z.B. X_API_IDENT_SUBLIST_TAB-RECNTRI oder X_API_PROP_USAGE_TAB-NAMEMST und X_API_PROP_USAGE_TAB-RECNMST gefüllt sein. (Dabei ist (zur Zeit) in das Feld NAMEMST der Wert 'ESTVA' einzutragen.))

Der Funktionsbaustein ermittelt selbständig zu jedem zu löschenden Teilobjekt die jeweils abhängigen Teilobjekte und löscht diese ebenfalls. Ferner werden alle notwendigen Sperren gesetzt.
Bis einschließlich dem SAP-EH&S-Release 2.7B, Support Package 01, war es nicht sinnvoll zugleich eine Tabelle und eine dazu untergeordnete Tabelle (gemäß der obigen Hierarchie) zu befüllen. Denn der Baustein löscht den Inhalt der untergeordneten Tabelle und befüllt ihn neu mit den Teilobjekten, die von dem Inhalt der übergeordneten Tabelle abhängen. Ab dem EH&S-Release 2.7B, Support Package 02, wird der Inhalt der untergeordneten Tabelle jedoch nicht mehr gelöscht, sondern ebenfalls mit berücksichtigt.

Ausgabe:

Boolsche Parameter weisen darauf hin, ob bei der Verarbeitung von Teilobjekten Fehler aufgetreten sind.

Grobe Beschreibung der Ablauflogik

Vorbedingungen

-

Ablauf

  1. Eingabedaten werden geprüft.
  2. Sperren werden abgesetzt und Eingabedaten dahingehend vervollstädigt, daß stets komplette Teilobjekte von Spezifikationen gelöscht werden. (Die Daten werden mittels C1F2_SUBSTANCES_READ gelesen.)
  3. Löschkennzeichen werden mittels der BUF_WRITE-Funktionen der Pufferschicht gesetzt (z.B. mit C1A0_ESTRH_BUF_WRITE).

Nachbedingungen

-

mögliche Ausnahmen

-

Beispiel

Löschen von Spezifikationslistenzuordnungen:

 DATA: ADDINF                LIKE RCGADDINF,
        FLG_LOCKFAIL          TYPE BOOLEAN,
        FLG_ERROR             TYPE BOOLEAN,
       FLG_WARNING           TYPE BOOLEAN,
        API_IDENT_SUBLIST_TAB TYPE ESPRH_APIRL_TAB_TYPE
                              WITH HEADER LINE.

  ADDINF-VALDAT = SY-DATUM.

* fill API_IDENT_SUBLIST_TAB (fill RECN, RECNROOT, RECNTRI)
  ...

* delete the data
  CALL FUNCTION 'C1F2_SUBSTANCES_DELETE'
       EXPORTING
            I_ADDINF                      = ADDINF
*           I_FLG_CHECK_ONLY              = ESP1_FALSE
*           I_FLG_OWNID_SRSID_KEEP        = ESP1_FALSE
*           I_FLG_HEADER                  = ESP1_FALSE
*           I_FLG_REFSUBS                 = ESP1_FALSE
*           I_FLG_IDENT                   = ESP1_FALSE
            I_FLG_IDENT_SUBLIST           = TRUE
*           I_FLG_IDENT_LONGTEXT          = ESP1_FALSE
*           I_FLG_MATJOIN                 = ESP1_FALSE
*           I_FLG_PROP_HEADER             = ESP1_FALSE
*           I_FLG_PROP                    = ESP1_FALSE
*           I_FLG_PROP_DATA               = ESP1_FALSE
*           I_FLG_PROP_COMP               = ESP1_FALSE
*           I_FLG_PROP_USAGE              = ESP1_FALSE
*           I_FLG_PROP_REL                = ESP1_FALSE
*           I_FLG_PROP_SOURCE             = ESP1_FALSE
*           I_FLG_PROP_FTEXT              = ESP1_FALSE
*           I_FLG_PROP_FTEXT_LONGTEXT     = ESP1_FALSE
*           I_FLG_PROP_TAB07              = ESP1_FALSE
*           I_FLG_PROP_TAB0B              = ESP1_FALSE
*           I_FLG_PROP_TAB0D              = ESP1_FALSE
*           I_FLG_PROP_TAB0F              = ESP1_FALSE
       IMPORTING
            E_FLG_LOCKFAIL                = FLG_LOCKFAIL
            E_FLG_ERROR                   = FLG_ERROR
            E_FLG_WARNING                 = FLG_WARNING
       TABLES
*           X_API_HEADER_TAB              =
*           X_API_REFSUBS_TAB             =
*           X_API_IDENT_TAB               =
*           X_API_IDENT_LONGTEXT_TAB      =
            X_API_IDENT_SUBLIST_TAB       = API_IDENT_SUBLIST_TAB
*           X_API_MATJOIN_TAB             =
*           X_API_PROP_HEADER_TAB         =
*           X_API_PROP_TAB                =
*           X_API_PROP_DATA_TAB           =
*           X_API_PROP_COMPONENT_TAB      =
*           X_API_PROP_USAGE_TAB          =
*           X_API_PROP_RELIABILITY_TAB    =
*           X_API_PROP_SOURCE_TAB         =
*           X_API_PROP_FTEXT_TAB          =
*           X_API_PROP_FTEXT_LONGTEXT_TAB =
*           X_API_PROP_TAB07_TAB          =
*           X_API_PROP_TAB0B_TAB          =
*           X_API_PROP_TAB0D_TAB          =
*           X_API_PROP_TAB0F_TAB          =
      EXCEPTIONS
           NO_OBJECT_SPECIFIED           = 1
            PARAMETER_ERROR               = 2
            INTERNAL_ERROR                = 3
            OTHERS                        = 4.
  IF SY-SUBRC <> 0.
    ...
  ENDIF.

* save the data
  CALL FUNCTION 'C1F2_SUBSTANCES_SAVE_TO_DB'
       IMPORTING
            E_FLG_ERROR = FLG_ERROR
       EXCEPTIONS
            OTHERS      = 1.
  IF SY-SUBRC <> 0.
    ...
  ENDIF.

  COMMIT WORK.

Hinweise zur Wartung des Bausteines

Zentral für die Verarbeitung der Eingabedaten ist die Routine L_DELETE_INTERFACE_CORRECT (in C1F2). Sie bereitet die Daten so auf, daß jeweils komplette Teilobjekte gelöscht werden. Dazu verwendet sie den Baustein C1F2_SUBSTANCES_READ. Mit diesem werden einerseits alle abhängigen Daten gelesen und andererseits auch alle erforderlichen Sperren gesetzt. (Die Form ermittelt auch selber die RECN-Werte der involvierten Spezifikationsköpfe.)





Parameter

E_FLG_ERROR
E_FLG_LOCKFAIL
E_FLG_WARNING
I_ADDINF
I_FLG_APPLSCP
I_FLG_ASSESSMENT_CHECK
I_FLG_CHECK_ONLY
I_FLG_HEADER
I_FLG_HEADER_USAGE
I_FLG_IDENT
I_FLG_IDENT_LONGTEXT
I_FLG_IDENT_SUBLIST
I_FLG_IDENT_USAGE
I_FLG_IGN_DATA_CORPSES
I_FLG_INHED_DATA_DEL
I_FLG_KEY_DATE_SWITCH_ONLY
I_FLG_MATJOIN
I_FLG_NO_AUTH_CHECK
I_FLG_OWNID_SRSID_KEEP
I_FLG_PROP
I_FLG_PROP_CARR
I_FLG_PROP_COMP
I_FLG_PROP_DATA
I_FLG_PROP_FTEXT
I_FLG_PROP_FTEXT_LONGTEXT
I_FLG_PROP_HEADER
I_FLG_PROP_PACK
I_FLG_PROP_REL
I_FLG_PROP_SOURCE
I_FLG_PROP_SPROV
I_FLG_PROP_TAB07
I_FLG_PROP_TAB0B
I_FLG_PROP_TAB0D
I_FLG_PROP_TAB0F
I_FLG_PROP_USAGE
I_FLG_REFSUBS
I_FLG_TPLREL
I_FLG_VAL_CHECK_BY_STATUS
I_VALFR
I_VALTO
X_API_APPLSCP_TAB
X_API_HEADER_TAB
X_API_IDENT_LONGTEXT_TAB
X_API_IDENT_SUBLIST_TAB
X_API_IDENT_TAB
X_API_MATJOIN_TAB
X_API_PROP_CARR_TAB
X_API_PROP_COMPONENT_TAB
X_API_PROP_DATA_TAB
X_API_PROP_FTEXT_LONGTEXT_TAB
X_API_PROP_FTEXT_TAB
X_API_PROP_HEADER_TAB
X_API_PROP_PACK_TAB
X_API_PROP_RELIABILITY_TAB
X_API_PROP_SOURCE_TAB
X_API_PROP_SPROV_TAB
X_API_PROP_TAB
X_API_PROP_TAB07_TAB
X_API_PROP_TAB0B_TAB
X_API_PROP_TAB0D_TAB
X_API_PROP_TAB0F_TAB
X_API_PROP_USAGE_TAB
X_API_REFSUBS_TAB
X_API_TPLREL_TAB

Ausnahmen

INTERNAL_ERROR
INTERVAL_ACCESS_ERROR
KEYDATE_OR_CHANGENUMBER_ERROR
NO_OBJECT_SPECIFIED
PARAMETER_ERROR
STATUS_AND_VAL_AT_SAME_TIME

Funktionsgruppe

C1F2

PERFORM Short Reference   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 27797 Date: 20240523 Time: 112827     sap01-206 ( 201 ms )