Homelab, Linux, JS & ABAP (~˘▾˘)~
 

[Fiori] Meine Formulare: Entgeltnachweise ausblenden “in Vertretung von” (onBehalf)

Möchte man Führungskräften die Möglichkeit geben, in der MyForms App die Formulare ihrer Mitarbeiter einzusehen, kann dies einfach über den HCMFAB_B_COMMON BAdI in der Methode GET_CONFIGURATION realisiert werden.

      IF iv_application_id = gc_application_id-myhrforms.
        ev_enable_onbehalf = boolc( go_employee_api->is_manager( iv_application_id = iv_application_id
                                                                 iv_pernr          = iv_employee_number ) = abap_true ).
      ENDIF.

Im Standard werden der Zeitnachweis und Entgeltnachweis angezeigt. Möchte man nun für die Führungskraft den Entgeltnachweis ausblenden, kann dies über den BAdI HCMFAB_BI_MYFORMS gemacht werden.

In der Methode GET_HIDE_REM_TIME_STATEMENT kann dies z.B. so realisiert werden.

        ev_hide_rem  = abap_false.
        ev_hide_time = abap_false.

        DATA(ownpernr) = go_employee_api->get_employeenumber_from_user( ).

        IF iv_pernr <> ownpernr.
          ev_hide_rem = abap_true.
        ENDIF.

Die Variable ev_hide_rem verhindert das Hinzufügen des Entgeltnachweises im folgenden, wie ab Zeile 25 zu sehen.

Jedoch ist nach meiner Beobachtung das noch nicht ausreichend, da in der Methode FILL_FORM_TYPES der Entgeltnachweis dann doch wieder hinzugefügt wird.

Daher habe ich den Entgeltnachweis zusätzlich noch in der Methode FILL_FORM_TYPES entfernt.

      DATA(ownpernr) = go_employee_api->get_employeenumber_from_user( ).

      IF iv_pernr <> ownpernr. " Manager dürfen nur Zeitnachweise ihrer Mitarbeiter sehen
        DELETE ct_form_types WHERE form_type <> 'SAP_INT_TIM_STM'.
        RETURN.
      ENDIF.

Die Führungskraft kann nun ausschließlich den Zeitnachweis des Mitarbeiters sehen. Er selbst kann alle Formulare wie gewohnt einsehen.

[FI-TV] Overview: Travel Management & My Travel and Expenses for Business Traveler (F6190)

Collection of useful resources, when working with the Fiori App: My Travel and Expenses for Business Traveler (F6190)

SAP Travel Management for SAP S/4HANA

SAP Help Travel Management (FI-TV)
FI-TV transactions
Reports
Tables
Good to Know: SAP Travel Management for SAP S/4HANA

Related notes:
2719018 – S4TWL – SAP Travel Management in SAP S/4HANA Suite 2022

Packet: PTRA_ADDON

My Travel and Expenses for Business Traveler (F6190)

Fiori Reference Library My Travel and Expenses for Business Traveler
SAP Help My Travel and Expenses
App Extensibility: My Travel and Expenses

Related notes:
3267811 – Default Travel Expense Start and End Date and Time settings with Travel Management S/4Hana Fiori application
3591806 – Fiori Apps Travel Management Version 3: Concurrent Employment not available → Helpful Attachment ExtensionTravelProfileVH.pdf
2164524 – Customizing of authorization object P_TRAVL for restricting creating/changing of expense reports
2633200 – Expense reports with and without mandatory travel requests
3406341 – Attachments in S4Hana Fiori apps MTE V3 and MTR V3

Packet: PAOC_TRV_S4

Workflow

Workflow Scenarios in Travel Management (FI-TV)
Approving a Trip
Standard WF for Approving Trips: WS20000040
Travel Management Workflow FAQ, Common Issues, Known Issues

Related notes:
2576990 – Workflow: Status of a trip after reject or send back for correction → Explanation, why the default workflows are a bit “uncomplete”

[Fiori] My Reporting (S/4HANA)


Kürzlich habe ich die My Reporting App in der S/4HANA Version auf einem System aktiviert. Nach der Einrichtung bin ich aber in die folgende generische Fehlermeldung gelaufen:

App kann nicht geöffnet werden, weil die SAP-UI5-Komponente der Anwendung nicht geladen werden konnte.
UI5-Komponente für Navigationsabsicht “#Manager-launchReports?scenarioId=SAP_EXAMPLE” wurde nicht geladen.

Ein Blick in die Konsole zeigte, dass versucht wurde, eine weitere Komponente namens hcm_reuselibs1 zu laden. Diese wird in der Fiori Reference Library zu der App nicht erwähnt, aber nach der Aktivierung, ließ sich die App erfolgreich laden.

[FI-TV] Travel Expense Workflow not triggered

Recently I had to configure the Travel Fiori Apps on a H4S4 System.

My Travel Requests for Business Traveler (MTR)
My Travel and Expenses for Business Traveler (MTE)
My Inbox – Approve Travel Requests
My Inbox – Approve Travel Expenses

This was pretty easy and after enabling the Apps, I activated the default Workflows WS20000050 (Approve Travel Request) and WS20000040 (Approve Trip) as well. I also checked SWE2 for BU2089 and everything looked good.

But when testing, only the Travel Request Workflow started successfully. When creating a Trip Expense, no Workflow started, instead the Trip Expense directly went to status “Trip Approved” instead of “Trip Completed“. Here you can find an overview of the possible statuses: Trip Status Directory

Initially I thought, this is somehow a Workflow issue or the BUS2089 connection does throw the right event. I also found a note related to this: 2792991.
But it turned out to be a customizing problem and the answer was only one click away from the Trip Status Directory in the chapter Trip Status Assignment. Here the Feature TRVPA is mentioned. And when looking into the system and reading the documentation via PE03 I found the following

Turned out, for Feature TRVPA and Entry WRP the value 4 was set. After changing it to 3, the right trip status got set and the workflow got triggered.

As always, the solution is quite simple once you know it, but it took quite a while to figure it out.

[Workflow] Unbearbeitete Inbox Workitems eines Users ermitteln

Regelmäßig bekomme ich die Anfrage, wie unbearbeitete Inbox Items (offene Dialog Workitems) ermittelt und weitergeleitet werden können. Das kann zum Beispiel erforderlich sein, wenn eine Führungskraft ein Unternehmen verlässt und vorher nicht alle Workitems in der Inbox abgearbeitet hat. Diese sollen daher dann meistens der neuen Führungskraft zugewiesen werden. Es gibt verschiedene Wege diese Workitems zu ermitteln und weiterzuleiten.

Mit dem Fuba SAP_WAPI_CREATE_WORKLIST kann man sich den Inbox-Content zu einem User anzeigen lassen (siehe hier), meist scheitert das aber an den Berechtigungen auf der Produktion. Ist aber ein praktisches Mittel, um sich einen schnellen Überblick über die Inbox eines Users zu machen.

Geht es z.B. speziell nur um Abwesenheitsantrage, könnte man in der PTARQ schauen. Mit dem Report “Belege anzeigen” kann man dann auf die Führungskraft filtern, dazu einfach den Radiobutton “Nächsten Bearbeiter” auswählen und die Personalnummer der Führungskraft eingeben. Hier gibt es einen direkten Absprung in das Workflow-Log und man kann sich die Workitem ID des Dialogschritts über Springen → Technische Workitem-Anzeige holen, um damit in der SWIA weiterleiten zu können.

Ich nutze für diese Aufgabe aber vorwiegend die SWI5. Typ US auswählen + die User ID und weiter unten auf “Zu erledigende Workitems” stellen. Optional noch auf einen speziellen Aufgabentyp filtern.

Als Ergebnis erhält man eine Liste mit Aufgaben IDs und zugehörigen Workitem IDs. Und da es direkt die Workitem ID des Dialogschritts ist, kann man damit direkt in der SWIA selektieren und das Workitem weiterleiten.

[HR] Personalisierungsdaten pflegen

Paket: FPB_PERSONALIZATION
Fuba: FPB_PERS_POST_FOR_DIALOG
Tabelle: FPB_PERSPARM

https://launchpad.support.sap.com/#/notes/0001622954

Beispiel: Reisebeauftragter (RBA) für das Travelmanagement via Dialog CO-CCA-TR

Anlegen:
Tcode FPB_MAINTAIN_PERS_S
Dialog DIA_CO-CCA-TR

Löschen:
Tcode FPB_DELETE_PERS_DATA
Dialog CO-CCA-TR

Anzeigen:
Tcode: FPB_SHOW_PERS_DATA

Siehe weitere Transaktionen im Paket.

[ABAP] Get MOLGA for PERNR

" Option 1
TRY.
    cl_hrpa_masterdata_factory=>get_read_molga( IMPORTING read_molga = DATA(lr_molga) ).
    DATA(molga) = lr_molga->read_molga_by_pernr( pernr ).
  CATCH cx_hrpa_violated_assertion.
ENDTRY.

" Option 2
TRY.
    DATA(employee_api) = cl_hcmfab_employee_api=>get_instance( ).
    DATA(molga)        = employee_api->get_molga( pernr ).
  CATCH cx_hcmfab_common.
ENDTRY.