Zurück zu

Erweitertes Mapping

Ebenfalls in diesem Abschnitt

Bearbeitung im Mapper

Filtereinstellungen für Mapper

Fortgeschrittene Schleifenfunktionen

Daten validieren

Nach Liste validieren

„Rückgängig“ und „Alles rückgängig“

Mapping von Langtext

Anhängen von Dokumenten

Automatisches Mapping

Herunterladen von Daten aus SAP

Bearbeiten eines TRANSACTION-Skripts

Setzen von Bedingungen – IF-Anweisungen

Mit bedingten Ausführungsanweisungen können Sie das Hochladen von Daten nach SAP zusätzlich steuern. Ausführungsbedingungen wirken auf Feldebene und legen Bedingungen zur Ausführung ausgewählter Teile des Transaction-Skripts fest. Eine bedingte Ausführungsanweisung kann für eine einzelne Zeile oder einen Zeilenblock eingefügt werden. Sie können auch mehrere Ausführungsbedingungsblöcke einfügen, sofern diese andere, bereits bestehende Ausführungsbedingungsblöcke nicht beeinträchtigen.

Jede Zelle der angegebenen Spalte wird auf den angegebenen Festwert hin überprüft. Bei einem Lauf mit Ausführungsbedingung führt Transaction nur die Zeile aus, für welche die jeweilige Bedingung wahr ist.

Wird beispielsweise die Spalte H auf das Wort „Gutschrift“ überprüft, führt Transaction die in der IF-Bedingung enthaltenen Aktionen nur dann aus, wenn die Bedingung wahr ist. In diesem Fall wird ein Wert von H in die D/C-Spalte der FB50-Transaktion hochgeladen.

HINWEIS: Der Vergleich des in der bedingten Ausführungsanweisung angegebenen Festwerts mit dem Wert in einer Excel-Spalte hängt von den Standard-Datenleseeinstellungen in Microsoft Excel ab. Weitere Informationen dazu finden Sie unter „Anwendungsstandards“.

Nehmen wir z. B. an, die Spalte D des Excel-Arbeitsblattes enthält einen Dezimalwert und Transaction muss nur die Zeilen ausführen, die den Wert 3,141 (PI-Wert) in Spalte D enthalten. In diesem Fall ist Spalte D zur Anzeige von Zahlen mit nur einer Dezimalstelle formatiert. Intern werden in Spalte D aber bis zu drei Dezimalstellen gespeichert. Wenn die Datenleseeinstellungen auf „Wie gespeichert“ festgelegt sind, lautet die erforderliche Bedingung „D=3,141“. Ist diese Option jedoch auf „Wie angezeigt“ eingestellt, lautet die erforderliche Bedingung „D=3,1“.

Eine bedingte Ausführungsanweisung (Bedingungsausführung) im Mapper entspricht der Verwendung eines +IF SHUTTLEScript-Befehls.

Hinzufügen bedingter Ausführungsanweisungen

Die Einstellungen des Dialogfelds IF-Bedingungseigenschaften sind folgende:

Startzeile/Endzeile: Geben Sie die Start- und Endzeile ein, die verwendet werden soll, falls es sich um andere Zeilen bzw. einen anderen Zeilenbereich handelt als anfänglich in der Aufzeichnungsvorschau auf der Registerkarte Experte ausgewählt: Aufzeichnungsvorschau.

ELSE-Zeile: Geben Sie die ELSE-Zeile dort ein, wo der IF-ELSE-Zeilenwert gespeichert werden soll.

IF first transaction (IF-Erste-Transaktion): Diese Einstellung wird für SAP-Transaktionen verwendet, bei denen Dialogfelder beispielsweise nur im ersten Transaktionsdatensatz auftreten. Klicken Sie auf diese Einstellung, um die Zeilen auszuführen, die für die Bedingung „IF first transaction“ beim ersten Datensatz der Datenquelle angegeben wurden. Wenn etwa die Klassifizierungsansicht für ein Material geändert wird, wird das Dialogfeld Klassentyp nur beim ersten Datensatz und nicht bei den darauf folgenden Datensätzen angezeigt.

IF NOT first transaction (IF-NICHT-Erste-Transaktion): Ähnlich der Einstellung „IF first transaction“ wird diese Bedingung bei SAP-Transaktionen verwendet, in denen Dialogfelder beispielsweise nach der ersten Transaktion auftreten. Klicken Sie auf diese Einstellung, um die Zeilen auszuführen, die für die Bedingung „IF NOT first transaction“ bei allen Datensätzen nach dem ersten Datensatz in der Datenquelle angegeben wurden.

IF on SAP field (IF-auf-SAP-Feld): Ähnlich wie die IF-Bedingung. Die Bedingung gilt nur für aktivierte SAP-Felder. Sie kann nur dann auf deaktivierte Felder angewendet werden, wenn der entsprechende Bildschirm im Mapper aktiviert wurde. Allerdings gilt „IF on SAP field“ nicht für SAP-Eingabefelder. „IF on SAP field“ ist nicht für Aufzeichnungen im Batch-Input-Modus verfügbar.

IF on index field (IF-auf-Indexfeld): „IF on index field“ steht nur für Skripte zur Verfügung, die im GUI-Skripterstellungsmodus aufgezeichnet wurden. Verwenden Sie „IF on index field“ mit Schleifen, damit basierend auf mehreren Suchwerten gesucht und aktualisiert wird. Mit „IF on index field“ können Sie eine Zeile basierend auf einem Wert in einer bestimmten Spalte suchen. Wählen Sie bei der Zuordnung nur die Felder aus, die aktualisiert werden müssen. Wählen Sie „IF on index field“ im IF-Bedingungs-Eigenschaftenfeld. Wählen Sie unter „Feld auswählen“ das Feld bzw. die SAP-Zeile aus, in dem bzw. der gesucht werden soll, wählen Sie dann den Operator aus und geben Sie den Wert oder die Excel-Spalte ein, ab dem bzw. der die Suchwerte gelesen werden sollen. Um den Wert für alle zugeordneten Instanzen dieses Felds zu ändern, klicken Sie auf Alle finden.

Hinweis: „IF on index field“ unterstützt nur Textwerte.

IF on verify text (IF-auf-Textüberprüfung): Diese Option steht für importierte A1 Dataloader-Skripte und für Transaction-Skripte zur Verfügung, die mit dem GUI erstellt wurden. Sie bestätigt, dass ein Wert in Excel mit einem Wert in SAP übereinstimmt. Die Daten werden weder geändert noch entfernt.

IF: Klicken Sie auf die IF-Einstellung, wenn die Bedingung auf Grundlage einer für diese Bedingung festgelegten Excel-Spalte oder Access-Tabelle/Spalte, bzw. bei Version 10.6.1 XML-Datei, erstellt werden soll. Wenn IF ausgewählt ist, werden die Felder zum Auswählen von Spalten, Operatoren und Werten am unteren Bildschirmrand angezeigt.

Folgende Operatoren sind zulässig:

=, >, <, >=, <=, <>, {BLANK}, {NOT BLANK}, {STARTS WITH}, {CONTAINS}, {ENDS_WITH}, {BETWEEN}

Wählen Sie Spalte, Operator, Wert: Wenn die IF-Bedingung ausgewählt ist, wählen Sie die Excel-Spalte oder Access-Tabelle/Spalte, die Sie für diese Bedingung verwenden möchten, wählen den Operator für die Bedingung und geben dann den Wert (Text oder Zahl) für diesen Vergleich ein. Wenn Sie eine Spalte auswählen, werden das Bildschirmfeld und die Bedingung als QuickInfo angezeigt.

Compare with Column (Mit Spalte vergleichen): Markieren Sie dieses Kontrollkästchen, um die Auswahlspalte (Excel-Spalte oder Access-Tabelle/Spalte) mit der von Ihnen ausgewählten Spalte zu vergleichen. Wenn Sie das Kontrollkästchen Mit Spalte vergleichen markieren, zeigt das Wertfeld eine Auswahlliste der für diesen Vergleich verfügbaren Spalten an. Die folgenden Operatoren sind zulässig:

<> und =

Wenn Sie das Dialogfeld IF-Bedingungs-Eigenschaften ausfüllen, zeigt der Mapper Ihre Änderungen unter Verwendung von zwei  Bedingungsausführungssymbolen, die durch eine Linie verbunden sind, an.

IF-Aussagen in .txrs für Webdienste (verfügbar in Version 10.6 Aktualisierung 1)

IF-Aussagen sind jetzt für Webdienste verfügbar. Sie können z. B. eine IF-Aussage hinzufügen, damit bei Eingabe eines bestimmten Werts ein Skript ausgeführt wird.

Wenn Sie die IF-Bedingung zum Skript hinzufügen, wird damit das Feld angelegt, für das die Bedingung gilt. Alle Operatoren sind verfügbar und Sie können auch auswählen, dass der eingegebene Wert mit dem Wert eines anderen Feldes verglichen werden soll. Wenn beim Ausführen die IF-Bedingung nicht erfüllt wird, wird eine ähnliche Meldung wie „Keine Rückmeldung von SAP“ oder „Kein Batch zurückgegeben“ angezeigt.

Wenn die Datenquelle XML ist, kann nur eine IF-Aussage verwendet werden. Wenn die Datenquelle ein SAP-Wert ist, muss ein „IF on SAP statement“ verwendet werden.

Bedingungsabhängige Felder in Schleifen hinzufügen

In einer Schleife kann dasselbe benutzerdefinierte Feld der IF-Bedingung in der Kopfzeile und innerhalb der Schleife hinzugefügt werden, das Feld wird dann wie zwei verschiedene Felder behandelt. Das Feld der IF-Bedingung in der Kopfzeile wird als Einzelwert-Feld angelegt, das Feld der IF-Bedingung in einer Schleife dagegen als Wiederholungswerte-Feld. Um denselben Feldwert in Kopfzeile und Schleife zu verwenden, müssen die Werte im Formular-Designer miteinander verknüpft werden.

IF-Bedingung in einem Webdienst hinzufügen

  1. Legen Sie in Transaction ein neues Skript an oder öffnen Sie ein bestehendes Skript.
  2. Wählen Sie im Mapper die Felder, in denen die Bedingung gelten soll, und klicken Sie auf die Schaltfläche Bedingungsausführung.
  3. Wählen Sie IF im IF-Bedingungs-Eigenschaftenfeld.
  4. Geben Sie im Kästchen Feldname eingeben eine Bezeichnung für das Feld ein. Beachten Sie, dass Sonderzeichen und Leerzeichen in Namen für benutzerdefinierte Felder nicht zulässig sind und dass es hilfreich ist, eine Bezeichnung zu wählen, die sich von den SAP-Feldnamen unterscheidet. Alternativ können Sie ebenfalls ein Feld hinzufügen, das in einer anderen IF-Bedingung verwendet wurde.

    Das Bedingungsfeld wird nicht im Mapper angezeigt, sondern erst, wenn der Webdienst als Formular veröffentlicht wird.

  5. Wählen Sie einen Operator aus der Liste.
  6. Führen Sie einen der folgenden Vorgänge aus:
    • Geben Sie im Kästchen Wert einen Wert für die Bedingung ein.

      – oder –

    • Um den Feldwert mit dem eines anderen Feldes zu vergleichen, klicken Sie auf Vergleichen mit Feld und geben Sie anschließend den Namen des Feldes für den Vergleich ein. Klicken Sie auf OK. Ein benutzerdefiniertes Feld kann nicht mit einer Spalte in einem Webdienst verglichen werden.
  7. Nehmen Sie alle weiteren erforderlichen Änderungen der Zuordnung vor und veröffentlichen Sie das Skript anschließend im Webdienst.

    Das benutzerdefinierte Feld wird als weitere Tabellenspalte zu dem veröffentlichten Formular hinzugefügt.

Aus BAPIs nach .txrs extrahierte IF-Anweisungen

Hinzufügen von Notizen

Sie können in der Mapper-Notizen-Spalte Notizen zu IF-Bedingungszeilen hinzufügen. Die Notizen sind jedoch nicht sichtbar, wenn das Skript mit einer früheren Version der Anwendung geöffnet wird.