This is a test message to test the length of the message box.
Login
BTP Application Job
Erstellt von Software-Heroes

BTP - Application Job (v2)

237

Der Application Job hat im ABAP Environment eine neue Version und damit neue Funktionen erhalten. In diesem Artikel schauen wir uns die Unterschiede an.

Werbung


In diesem Artikel werden wir uns den neuen Application Job im ABAP Environment anschauen, welche Unterschiede es gibt und wie du den neuen Typ für dich nutzen kannst.

 

Einleitung

Der Application Job ist der neue Job für die Erstellung von Hintergrundverarbeitungen in ABAP Cloud. Mit dem Release 2411 für das ABAP Environment, wurde nun eine neue Version ausgerollt, die die Integration im System einfacher macht. Und andere Vorteile mit sich bringt, die wir uns hier im Artikel genauer anschauen wollen.

 

Anlage

Bevor wir den Job Catalog erzeugen, müssen wir im ersten Schritt eine Klasse definieren. Dazu definieren wir eine normale Klasse mit dem neuen Interface IF_APJ_RT_RUN.

CLASS zcl_bs_demo_job_execute_v2 DEFINITION
  PUBLIC FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_apj_rt_run.
ENDCLASS.


CLASS zcl_bs_demo_job_execute_v2 IMPLEMENTATION.
  METHOD if_apj_rt_run~execute.
  ENDMETHOD.
ENDCLASS.

 

Das neue Interface hat die Methode EXECUTE, die bei Ausführung des Jobs gestartet wird. Um nun im nächsten Schritt Attribute für das Selektionsbild anzulegen, definieren wir nicht eine Struktur im Job, sondern öffentliche Attribute in der Klasse. Dazu legen wir uns verschiedene Attribute an, die wir im Nachgang testen wollen.

CLASS zcl_bs_demo_job_execute_v2 DEFINITION
  PUBLIC FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_apj_rt_run.

    TYPES tt_r_range TYPE RANGE OF zbs_demo_job_system.

    DATA md_user     TYPE c LENGTH 10.
    DATA mt_system   TYPE tt_r_range.
    DATA md_test     TYPE abap_boolean.
    DATA md_edate    TYPE d.
    DATA md_etime    TYPE t.
    DATA md_radio_de TYPE abap_boolean.
    DATA md_radio_en TYPE abap_boolean.
    DATA md_radio_fr TYPE abap_boolean.
ENDCLASS.


CLASS zcl_bs_demo_job_execute_v2 IMPLEMENTATION.
  METHOD if_apj_rt_run~execute.
  ENDMETHOD.
ENDCLASS.

 

Nun können wir den neuen "Application Job Catalog Entry" erzeugen. Dies kannst du einfach über den Project Explorer über das Kontextmenü auf dem Paket anlegen

 

Im nächsten Schritt geben wir dem Eintrag noch einen Namen und geben unsere Jobklasse an, die wir im Schritt zuvor angelegt haben.

 

Als Ergebnis erhalten wir eine neue Eingabemaske, wo unsere Attribute dargestellt werden, die wir in der Klasse definiert haben und weitere Klassen hinterlegt werden können. Der obere Teil sollte dir daher bekannt vorkommen, neu ist vor allem der untere Teil der Konfiguration.

 

Im letzten Schritt legen wir noch ein Application Job Template an, dieses wird vor allem genutzt, um Defaultwerte zu hinterlegen und wird in der "Application Job" App verwendet, um den Job zu starten.

 

Über die Eingabe kannst du die Defaultwerte für die Parameter oder Mehrfachselektionen definieren und speichern.

 

Schauen wir uns in der App den aktuellen Stand der Selektion an, erhalten wir bereits Eingabehilfen für Datum und Uhrzeit. Sonst fehlen aktuell noch Texte und auch die speziellen Felder sind nicht definiert.

 

Design

Über den Job Katalog haben wir nun die Möglichkeit die Felder zu definieren und das Aussehen, sowie das Verhalten zu ändern. Wir verwenden in einem Fall auch ein Datenelement, die Texte werden allerdings nicht automatisch herangezogen.

 

Felder

Wenn wir die einzelnen Felder editieren, dann stehen uns zahlreiche Möglichkeiten für Einstellungen zur Verfügung. So können wir den Text für das Element pflegen, die Eigenschaften des Felds ändern, eine Werthilfe hinterlegen oder es Gruppen zuordnen. Weitere Informationen findest du in der unten verlinkten SAP Help Dokumentation, wo die einzelnen Felder und Eigenschaften beschrieben sind.

 

Sektionen und Gruppen

Über Sektionen und Gruppen kannst du die Felder auf dem Bild anordnen. Verwendest du keine Sektionen oder Gruppen, werden alle Parameter einer allgemeinen Gruppe zugeordnet. Eine Gruppe bildet eine Überschrift ab, ähnlich einer Fieldgroup. Du kannst mehrere Gruppen einer Sektion zuordnen.

 

Aussehen

Im letzten Bild hatten wir die aktuellen Eigenschaften und Bereiche aufgeführt, dass finale Ergebnis der Selektion sieht, nun wie folgt aus.

 

Wertehilfen

Mit den neuen Jobkatalogen stehen nun auch endlich richtige Eingabehilfen zur Verfügung. Im Standard kannst du Festwerte aus Domänen verwenden oder Core Data Services zuordnen.

 

Domäne

Für unser Beispiel hatten wir ein eigenes Datenelement und eine Domäne mit Festwerten definiert. Wenn wir diese in der Konfiguration des Feldes MD_SYSTEM hinterlegen, dann erhalten wir diese in der App.

 

Der Aufruf der Suchhilfe sieht nun wie folgt aus, die Werte werden entsprechend angezeigt.

 

Core Data Service

Für das Beispiel definieren wir einen Core Data Service, der für unsere Suche zur Verfügung stehen soll. Hier solltest du dir die Dokumentation (unten verlinkt) anschauen, welche Annotationen für die Suchhilfe benötigt werden.

@EndUserText.label: 'Business Partner (Value Help)'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.dataCategory: #VALUE_HELP
@Search.searchable: true
define view entity ZBS_I_DMOPartnerVH
  as select from I_BusinessPartnerVH
{
      @Search.defaultSearchElement : true
      @ObjectModel.text.element: [ 'FirstName' ]
  key BusinessPartner,
      BusinessPartnerName,
      @Search.defaultSearchElement : true
      FirstName,
      @Search.defaultSearchElement : true
      LastName
}

 

Wir hinterlegen die Suchhilfe in der Konfiguration des Feldes MD_USER. Zusätzlich stellen wir die Ausgabe auf "List Box". Dies solltest du normalerweise machen, wenn du weniger als 500 Werte hast, da nur die ersten 500 geladen werden.

 

Die Ausgabe des Feldes sieht nun wie folgt aus, dabei können wir auch nach dem Namen eingrenzen. Der Schlüssel wird in dieser Einstellung ausgeblendet und nur der Text angezeigt.

 

Debugging

Über das Jobtemplate steht nun die Möglichkeit zur Verfügung, den Application Job zu starten und zu Debuggen. Dabei werden die Defaultwerte des Templates verwendet, wenn der Job gestartet wird. Du findest den "Ausführen" Button im Template in der Aktionsleiste.

 

Dazu solltest du in der Klasse auch einen Breakpoint setzen. Sollte der Breakpoint nicht durchlaufen werden und der Debugger nicht starten, dann solltest du die Systemeinstellung fürs Debugging prüfen. Hier muss das Flag bei "Allow debugging of tool requests" gesetzt sein.

 

Grundsätzlich werden vor dem Start auch die Pflichtfelder geprüft, falls diese in deiner Variante nicht gesetzt sind.

 

Übersetzung

Texte können über den Jobkatalog angelegt werden, ein hinterlegtes Datenelement in den Attributen der Klasse wird aktuell ignoriert. Nachdem wir nun ein Übersetzungsprojekt im System angelegt haben und uns die Texte heruntergeladen haben, mussten wir allerdings feststellen, dass der Jobkatalog nicht zur Übersetzung angeboten wird. Damit ist eine Mehrsprachigkeit im Selektionsbild des Jobs aktuell nicht möglich.

 

Vollständiges Beispiel

Das vollständige Beispiel aus diesem Artikel findest du in diesem GitHub Repository, dort sind alle Objekte synchronisiert und können noch einmal eingesehen werden. Der passende Commit enthält die aktuellen Änderungen.

 

Übersicht

Hier noch einmal die Unterschiede zum alten Application Job in einer kurzen Liste zusammengefasst:

  • Neues Interface für die Jobanlage IF_APJ_RT_RUN
  • Anlage des Selektionsbilds über öffentliche Attribute der Klasse 
  • Das Design kann freier gestaltet werden
  • Es stehen Wertehilfen für die Eingabe zur Verfügung
  • Jobs können debuggt werden

 

Fazit

Der neue Application Job bringt viele Vorteile mit und ist einfacher zu bedienen. Neue Jobs im ABAP Environment werden automatisch über diesen Weg angelegt. Möchtest du die Funktionen im alten Job haben, musst du hier allerdings die Objekte erst migrieren.

 

Quelle:
Customer & Partner Roundtable #18
SAP Help - Editing Application Job Catalog
SAP Help - CDS Value Help


Enthaltene Themen:
BTPApplication JobVersion 2ABAP Environment
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


RAP - API Pattern

Kategorie - ABAP

In diesem Artikel schauen wir uns das API-Pattern für RAP an und wie du es flexibel in der ABAP Entwicklung einsetzen kannst, um Schnittstellen zur Verfügung zu stellen.

20.06.2025

BTP - External Entities

Kategorie - ABAP

Was machen eigentlich External Entities in ABAP und wie kannst du damit einfach per SDA Daten aus einer On-Prem Datenbank lesen? Mehr Details in diesem Artikel.

20.05.2025

RAP - Mehrere Filter und Einstellungen

Kategorie - ABAP

Wie sieht es eigentlich aus, wenn wir in RAP mehrere Filter und Felder als Standard setzen wollen und dazu noch eine standardmäßige Sortierung benötigen?

16.05.2025

RAP - Länge von Meldungen

Kategorie - ABAP

Deine Meldung wird bei der Ausgabe mit RAP abgeschnitten? Lass uns das Problem und eine Lösung anschauen.

13.05.2025

RAP - Suchhilfe und Schlüssel optimieren

Kategorie - ABAP

In diesem Artikel optimieren wir unsere Suchhilfen im Custom Pattern, verwenden das Additional Binding und machen unsere RAP Anwendung fit für den Endanwender.

06.05.2025