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

[ABAP] ALV – Enable Excel Export

The “Excel export” functionality can easily be enabled using get_functions( )->set_all( abap_true )

SELECT * FROM sflight INTO TABLE @DATA(flights) UP TO 100 ROWS.

TRY.
    cl_salv_table=>factory( IMPORTING r_salv_table = DATA(lo_salv)
                            CHANGING  t_table      = flights ).

    lo_salv->get_functions( )->set_all( abap_true ).
    lo_salv->get_columns( )->set_optimize( abap_true ).
    lo_salv->get_display_settings( )->set_list_header( 'Flights' ).
    lo_salv->get_display_settings( )->set_striped_pattern( abap_true ).
    lo_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ).

    lo_salv->display( ).

  CATCH cx_root INTO DATA(e_txt).
    WRITE: / e_txt->get_text( ).
ENDTRY.

[Fiori] MyInbox – Custom App reloads infinitely

I recently had the situation, that after a standalone Gateway System got patched, a custom app in the My Inbox app did not load anymore, when clicking on a workitem. When opening the network tab in the dev tools, you could see three requests send over and over again. It called the manifest.json, a batch request to the OData Service and some i18n.properties calls. You could also see the app files in the sources tab, which means that app had already loaded correctly but could not be displayed because it kept restarting for some reason.

When searching via Perplexity, I found the following post in the SCN: https://community.sap.com/t5/technology-q-a/sapui5-custom-app-navigation-from-myinbox-calls-app-in-infinite-loop/qaq-p/690650
But moving the “parent” property did not help, although the described issue sound similar.

Since everything worked before the system patch and the custom app wasn’t changed, it must have been related to an updated My Inbox app or to the new UI5 version, which affected the custom app.

When scrolling through my bookmarks, I found this note: 2305401 – Integration of SAPUI5 Fiori Applications into My Inbox 2.0
When checking the attached PDF, I found the following in chapter 4:

This “repeatedly loading” was exactly my problem! And since the Gateway got patched, I guess a new My Inbox version came with it. When checking the manifest.json in the custom app, there was no async property at all.
After adding "async": true to the mainfest.json, the custom app started to load successful again. Nice!

[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.

[Firefox] Handy shortcuts I’ve learned recently

Over the past few months, I’ve picked up a few handy Firefox tricks.

Address Bar

  • Find open tabs: Press Ctrl + L (or Ctrl + T) to focus the address bar, then type @tabs or %, hit space, and start typing the tab’s name.
  • Search browsing history: Press Ctrl + L, type @history, hit space followed by your search term.
  • Duplicate the current tab: Focus the address bar with Ctrl + L, then press Ctrl + Shift + Enter. (It opens the same page in a new tab, but without keeping the original tab’s history.)

Tab Management

  • Quickly duplicate a tab: Hold Ctrl and drag a tab to another spot on the tab bar, or just middle‑click the refresh button.
  • Select multiple tabs: Use Ctrl + click to select specific tabs, or Shift + click to select a whole range.
  • Move selected tabs to a new window: After selecting tabs, simply drag them out of the tab bar.

[SAPUI5] Create app with full screen width / full screen layout

https://experience.sap.com/fiori-design-web/full-screen/

https://stackoverflow.com/questions/55832369/how-to-disable-or-enable-letterboxing-and-adjust-ui5-for-the-widescreen/56137602

Simply add appWidthLimited:false in your index.html

		<script>
			sap.ui.getCore().attachInit(function() {
					new sap.m.Shell({
						appWidthLimited:false,
						app: new sap.ui.core.ComponentContainer({
							height : "100%",
							name : "my.demo.app"
						})
					}).placeAt("content");
				);
			});
		</script>