Calling browser with ABAP in Cloud system possible? - abap

Any chance to call a browser window from ABAP in an ABAP Cloud system, e.g. like it is possible with cl_abap_browser in OP systems, e.g. to display a string or suchlike (other than the console display option via if_oo_adt_classrun)?

The class cl_abap_browser is used to open a browser inside of a SAP GUI Dynpro Session. In the BTP ABAP Environment or S/4 HANA Cloud System there is no SAP GUI access.
If you'd expose the data as an OData Service then you can easily show it in a browser as the client is itself a webbrowser.

Related

What does it mean that a website supports xAPI?

I have a normal website where user can login and logout, I want to be able to launch xAPI content from this website supposing that the xAPI courses are stored on some cloud service and created by an authoring tool that supports xAPI like storyline.
I've read that launching should work basically by providing the right launch URL which is made of the link to the course besides endpoint from the LRS and some other informations like activity_id.
since launching works only by providing this url, what is the purpose of making the platform supports xAPI and what does that mean to the platform? is it the connection between the platform and the LRS? and how can I achieve that?
another thing I would like to know, who is usually responsible for making the send statement functions that send statements to the LRS, the instructional designer during creating the content or the web developper? because I was reading here in tincan php library and seems like he is making those statements inside the app code.

How can I connect a community connector (apps script) to a GA4 property so that it functions like it did with Advanced services and UA?

I am currently trying to connect a community connector (apps script) to GA4 in order to retrieve data and modify it before sending it to data studio. I have done this for Universal Analytics properties easily with advanced services; However, Since the Advanced services Analytics option does not work for GA4 properties I have been looking into retrieving data from analytics using fetchUrl. I am wondering if this is the best/only way to connect to GA4?
I have received input for my current code (basic fetchUrl code) which suggested that I would need to access the cloud api for authentication. Now I am wondering if I actually have to do these extra steps to connect to a google source from app script? The reason why I am unsure is because supermetrics has a GA4 connector which does not require any extra steps and of course connects to a GA4 property with a simple authentication method. I would like to essentially create that same connection in app script. Any advice would also be appreciated.
Also I would love to hear if there is any information on when we can expect advanced services to work for GA4.
Currently you will need to use the new Google Analytics Data API (GA4), however in this moment it is an early preview version of the API and is subject to change.
I don't know what the supermetrics plugin does specifically, however i recommend to link the automatic export of GA4 data in BigQuery and connect to it.
Google has not released any deadline for the release of this advanced service. I believe that before this it will have to make this whole new system stable since every week it undergoes updates and adjustments.

How does API based data integration work?

I am managing a web application which have to be integrated with other systems such as SAP/Oracle ERP. I am pretty familiar with the middleware method of data integration where I use my stored procedures to read/write data from/to the middleware database and the other system(SAP/Oracle ERP,etc) use their methods or custom applications to read/write their data from/to the middleware DB.
Now I know that these companies like SAP have their own API for integration.So i want to understand how does API based integrations work. Can you guys please help ?.
One of the best resources for SAP integration is the SAP API Business Hub: https://api.sap.com/. You can use it to search for predefined APIs that are available within the SAP system. To use these APIs, you will need to configure and activate them in the SAP system. These predefined solutions are designed to be used for a particular business process. For instance, to send/receive employee data for HR records, or to send/receive purchase orders. SAP aims to provide sufficient APIs that almost any integration needs can be met with their predefined solutions.
Regarding the types of API solutions SAP uses, SAP allows for the creation and consumption of OData, an open protocol for REST based APIs. This blog series contains a good introduction to how OData is used in SAP: https://blogs.sap.com/2016/02/08/odata-everything-that-you-need-to-know-part-1/. OData uses HTTP requests, so the two systems can interact using the standard CRUD operations (create, read, update, delete). Two important transaction codes to work with IDocs are:
SEGW (gateway service builder): create OData services
/IWFND/MAINT_SERVICE (activate and maintain services): activate and query the services
In addition to this, as you mentioned, SAP has its own API technologies. Two key SAP technologies for integration are:
IDoc (Intermediate Documents):
This is a document format that you can use to send data to external systems (outbound) and receive data from external systems (inbound).
You set up partner profiles for the system you are sending data to (t code WE20).
There are predefined IDoc types that define the data contained in the IDoc (this is the 'basic type' and 'message type'). IDoc data is organised into segments and, for a given IDoc type, you can append the segments so that only the specific data you require is sent.
You will need to map the data structure from the outbound and inbound systems using your middleware.
For a detailed guide to IDocs I strongly recommend the ALE (application link enabling) e-book on the SAP Learning Hub if you have access. You can use t code WEDI to browse the relevant ALE t codes.
BAPI (Business Application Programming Interfaces):
These are similar to function modules, but, unlike function modules, they can be called remotely. Like IDocs, they use RFC (remote function call).
BAPIs can be executed using SE37. You need to set up a test sequence (Test -> Test Sequences) because BAPIs do not automatically commit. Give the name of the BAPI, then 'BAPI_TRANSACTION_COMMIT'. Then execute the sequence to use the BAPI.
Many pre-existing BAPIs are already in SAP. You can browse them using t code 'BAPI' (BAPI Explorer).
Please see this guide for further information on BAPIs and for instructions to make your own BAPI from scratch. https://www.guru99.com/all-about-bapi.html

User Emulation for app testing in Dynamics 365

In the Service Now platform there is a feature that emulates users. Is there a one in Dynamics 365 ? As of now, I am opening multiple tabs in different browsers to test user apps/forms/solutions.
No out of the box feature for this.
Couple of ideas;
Use Firefox in conjunction with Multi-Account Containers. This allows you to effectively have multiple active sessions for different users open within a single browser. This might be easier to manage.
Use a single user, but write code to automate the switching of security roles. This way you can rapidly switch between different user roles.
Unfortunately, there is no way to do User experience emulation of different persona by OOB or with community tools. Only way is different browser window with different credentials (In-cognito or Run as different user).
Only simulator available is in Form editor - Preview option, to see how the Form looks-like with Tab/Section/Fields in Create/Update/Read-Only mode for Desktop Client.
With some Chrome Addins, we can impersonate a different user only on Unified Interface (UCI) not on web UI. Read more
Essentially, we just need to add the MSCRMCallerID header to every API request.  One way to do this is using the "ModHeader" extension for Google Chrome.  Once you have it installed, create a new profile to add the header to all requests for your environment.  It should look something like this...the MSCRMCallerID is the GUID of the user you want to impersonate.

Windows Explorer extension: how to handle opening links?

I'm working on a specific document management system (DMS) which has, for design sake, a Tortoise-like Explorer extension. The simple part (custom context menu) is done, because there are a lot of resources, describing how to do it. (For instance, http://www.codeproject.com/Articles/830/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens).
But I have faced a feature request to handle opening .lnk files (in Windows Explorer, of course) and process them (if needed) using the DMS instead of the standard verbs. I'm not sure whether it's possible at all using a COM callback interface (due to security reasons). I would avoid low-level techniques like hooks at all costs. Anyway it's supposed that our users work as admins, have all privileges etc.
Regards,