Git Product home page Git Product logo

abap-sdk-for-azure's Introduction

Build Status

ABAP SDK for Azure

ABAP SDK for Azure consists of ABAP objects/classes which simplify SAP and Azure Integration. Now using ABAP code, you can directly send SAP business process data to various Azure services without having to depend on middleware products and solutions. For more information on ABAP SDK for Azure and it’s installation process, Please check document ABAP SDK for Azure – Github

As of now, ABAP SDK supports direct integration with following Azure services,

  • Event hub
  • Service bus
  • Event Grid
  • Key vault
  • Active Directory
  • Blob
  • Cosmos DB
  • OMS Log Analytics
  • Microsoft Graph API
  • O365(sharepoint)
  • Azure Open AI.

Note: We are continuously enhancing these libraries and you may find few class methods unimplemented. These will be released in next versions.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

abap-sdk-for-azure's People

Contributors

bigld avatar flow23 avatar gregorwolf avatar jharna-agrawal avatar jharnaagrawal avatar krdash avatar larshp avatar lechnerc77 avatar martinpankraz avatar matt1as avatar mattiastrr avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar naveen-kurmadas avatar naveenkurmadas avatar prreddyc avatar sanjukum19 avatar tamandal avatar vikasbansal2022 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abap-sdk-for-azure's Issues

ABAP SDK for Azure integration with SLT

Hi,

The documentation for ABAP SDK for Azure GitHub under the Business Use cases mentions that this has an easy integration with ETL tools for data migration including SLT for real time replication from SAP source to Azure products like Event Hub etc.

Is there any documentation or blog where this is documented as I could not find anything related to SLT integration with ABAP SDK for Azure?

We have a requirement to have a real/near real time replication from SAP to Azure via Event Hub.

Any help is appreciated.

Thanks
Puneet Jhari

Getting error with ZADF_DEMO_AZURE_GRAPH

Hi,

I am using the ABAP SDK for Azure to trigger pipelines in Azure data factory as soon as there is change in SAP BW data in ADSO's

I have downloaded the ZIP file offline to create the ABAP SDK for creating blobs from SAP BW system. The blobs are created successfully.
I am trying to transport this change to test system where I see the below syntax error in ZADF_DEMO_AZURE_GRAPH program.
103 Program ZADF_DEMO_AZURE_GRAPH
Method "CREATE_USER" is unknown or PROTECTED or PRIVATE.
112 Program ZADF_DEMO_AZURE_GRAPH
Field "LV_USER_RESPONSE" is unknown.
113 Program ZADF_DEMO_AZURE_GRAPH
Field "LV_HTTP_STATUS" is unknown.
119 Program ZADF_DEMO_AZURE_GRAPH
Field "LV_USER_RESPONSE" is unknown.
132 Program ZADF_DEMO_AZURE_GRAPH
Method "GET_USERS" is unknown or PROTECTED or PRIVATE.
140 Program ZADF_DEMO_AZURE_GRAPH
Field "LV_HTTP_STATUS" is unknown.
141 Program ZADF_DEMO_AZURE_GRAPH
Field "LV_USER_RESPONSE" is unknown.
The ZADF_DEMO_AZURE_BLOB blob service program is not impacted by this error, but It gives the syntax error for the graph demo program. Could You please suggest what correction I need to do or should I have to download latest ZIP file which was committed 3 days before.
If I need to install from latest zip file, should I have to uninstall the existing ZABAPGIT or will it just just overwrite the changed objects. Please guide me the procedure to do this.
This is the first time I am using this so need your guidance.

Enhancement to the existing ABAP SDK -- All these enhancements are working perfectly.
Also I need to mention I have few objects created after enhancing from existing ZBAP SDK code for blob creation
I have created a copy of ZADF_DEMO_AZURE_BLOB program and a new Z table to integrate with the current ABAP SDK objects. This Z table holds list of all the ADSO from BW for which a trigger blob is placed in ADLS Gen2. Once the blob is placed in Gen2 the subsequent data ingestion happens from SAP BW to ADLS Gens using ADF pipelines.
Any new ADSO to be ingested in to Gen2 is added to this new Z table and the new ABAP program which is scheduled every 5 mts will take care of placing the blob file in Gen2.

Namespaces

Hi,
The repository contains some objects with quite generic names, eg:
FUGR ZREST
TABL ZREGISTER
DOMA ZCLASSNAME
DTEL ZCHAR75
DTEL ZORIGINAL
DTEL ZURI
DTEL ZUNAME
For these, there is a theoretical chance that the customer already has an object with identical names in their system.

I recommend prefixing objects to lower the risk, eg.
FUGR Z_AZURE_REST
TABL Z_AZURE_REGISTER
DOMA Z_AZURE_CLASSNAME
DTEL Z_AZURE_CHAR75
DTEL Z_AZURE_ORIGINAL
DTEL Z_AZURE_URI
DTEL Z_AZURE_UNAME
or something similar

SUCU

see #89

Please move the other SUCU object to native abapGit

Commented code

Suggest removing commented code,

https://github.com/SAP/styleguides/blob/master/clean-abap/CleanABAP.md#delete-code-instead-of-commenting-it

./src/zadf/zcl_adf_service_aad.clas.abap[95, 1]              - Commented code (commented_code)
./src/zadf/zcl_adf_service_aad.clas.abap[97, 1]              - Commented code (commented_code)
./src/zadf/zadf_graph/zcl_adf_service_graph.clas.abap[61, 1] - Commented code (commented_code)
./src/zadf_demo/zadf_demo_azure_graph.prog.abap[115, 1]      - Commented code (commented_code)
./src/zrest/zcl_rest_framework.clas.abap[212, 1]             - Commented code (commented_code)
./src/zrest/zcl_rest_framework.clas.abap[250, 1]             - Commented code (commented_code)
./src/zrest/zcl_rest_framework.clas.abap[601, 1]             - Commented code (commented_code)
./src/zrest/zcl_rest_utility_class.clas.abap[568, 1]         - Commented code (commented_code)
./src/zrest/zcl_rest_utility_class.clas.abap[586, 1]         - Commented code (commented_code)
./src/zrest/zcl_rest_utility_class.clas.abap[1434, 1]        - Commented code (commented_code)
./src/zrest/zcl_rest_utility_class.clas.abap[1491, 1]        - Commented code (commented_code)
./src/zrest/zrest_monitor_archive_f01.prog.abap[54, 1]       - Commented code (commented_code)
./src/zrest/zrest_monitor_archive_f01.prog.abap[86, 1]       - Commented code (commented_code)
./src/zrest/zrest_monitor_archive_f01.prog.abap[98, 1]       - Commented code (commented_code)
./src/zrest/zrest_monitor_archive_f01.prog.abap[100, 1]      - Commented code (commented_code)
./src/zrest/zrest_sched_batch_f01.prog.abap[51, 1]           - Commented code (commented_code)
./src/zrest/zrest_screen.prog.abap[598, 1]                   - Commented code (commented_code)
./src/zrest/zrest_screen.prog.abap[664, 1]                   - Commented code (commented_code)
./src/zrest/zrest_screen.prog.abap[836, 1]                   - Commented code (commented_code)
./src/zrest/zrest_screen.prog.abap[839, 1]                   - Commented code (commented_code)

SUCU supported in core abapGit

Hi,
SUCU objects are now supported in core abapGit, abapGit/abapGit#2141

Pulling the old format still works, but suggest moving to the new native format. Users will have to use the latest abapGit for installing the new format. Pulling the old format in latest abapGit with plugins still works.

Response with status 500 and blocking send_request if sm59 configuration not set to SSL

I'm using the ABAP SDK for Azure for sending data to an event hub.

The documentation clearly describes how to configure the remote target (page 12 as of today):
grafik

However, if this configuration is wrong (SSL set to "inactive"). This configuration error is not catched by the ABAP SDK but instead the sending process

CALL METHOD oref_eventhub->send
  EXPORTING
     request        = lv_xstring  "Input XSTRING of SAP Business Event data
     it_headers     = it_headers  "Header attributes
   IMPORTING
     response       = lv_response       "Response from EventHub
     ev_http_status = lv_http_status.   "Status

in synchronous, retry active mode (see table ZADF_CONFIG) is blocking the debugger for ~1 minute in my case. There is no exception thrown but the HTTP status code in lv_http_status is 500. The response body is empty. Took me quite a while, to find my own error. Maybe we could handle this edge case in the code.

Retry function using ZREST_UTIL has issues.

Retry function using ZREST_UTIL has issues.

  1. Irrelevant message while executing retry function. Changed the code in the local version which fixed the issue.
    image
  2. An invalid token is being generated for the retry scenario. Changed the code in the local version which fixed the issue.
    image

abapGit starting folder

Hi,
Cool to see another abapGit based project ✨

A tip:
If you like, you can set the starting folder under "Advanced" -> "Repo settings" the starting folder can be changed to eg "/src/" that way all the ABAP artifacts will end up in that folder.
And everything in "/ABAP SDK for Azure" will automatically be ignored

Issues during pulling from git

Hi,
there are several errors pulling the latest source from this git.

Error while parsing XML file zadf_demo_azure_graph.prog.xml
Import of object ZADF_DEMO_AZURE_GRAPH failed
Object type SUCU not supported, serialize
Import of object ZSDK S_TABU_DIS failed

Best regards,
Florian

Error in Importing SAS Key

Hi Team,

We have setup a landscape where we use SAP’s SLT system (a realtime table replication system) in order to replicate data into Azure Event Hub and store it on the storage as avro files for further processing.
The SAP SLT is tracking all the changes made to tables, i.e. Insert, Update or Delete statement, and is running on the SAP Application Layer. And we have a lot of customers who is eager to get their SAP data into Azure in realtime and perform various analytics and ML afterwards.
It is actually working pretty well for all the tables we have worked on from SAP ECC system.

However, we have an issue when we are using parallel jobs. Either parallel jobs for a single table or parallel jobs for multiple tables.
With SLT we are getting all the table changes and we then generate relevant json files that are sent to the Event Hub.
Multiple tables are being transferred into the same event hub (we normally have 200-600 tables we need to replicate), as we have changes to many tables in SAP all the time.
If I force SLT to only use 1 job to move table change to Event Hub, it is working fine. But then we see a delay in the processing as the system only process 1 table at a time.
But, as soon as we define i.e. 4 parallel jobs to move changes from 50 tables to the Event hub, we get errors when getting the SAS token.

The error message is: Error in Importing SAS Key

And we think the issue is coming from some of the programs you deliver:
We are sending data using zcl_adf_service_eventhub method send.
"Sending Converted SAP data to Azure Eventhub
CALL METHOD lr_eventhub->send
EXPORTING
request = <l_json>-json "Input XSTRING of SAP Business Event data
"request = lv_json_xstring "Input XSTRING of SAP Business Event data
it_headers = lt_response_headers "Header attributes
IMPORTING
response = lv_response "Response from EventHub
ev_http_status = lv_http_status. "Status

**Here it tries to get the token.
CLASS: ZCL_ADF_SERVICE_EVENTHUB.
method SEND.

TRY.
get_sas_token( EXPORTING iv_baseaddress = gv_uri
RECEIVING rv_sas_token = lv_sas_token ).
CATCH zcx_adf_service INTO lcx_adf_service.
lv_msg = lcx_adf_service->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.

**First step is to decode sign
CLASS: ZCL_ADF_SERVICE_EVENTHUB.
method GET_SAS_TOKEN.

DEFINE encrypt_key.
decode_sign( receiving rv_secret = lv_sas_key ).

** get connection encryption from memory
CLASS: ZCL_ADF_SERVICE.
METHOD decode_sign.
DEFINE decode_key.
**Import internal table as a cluster from INDX
IMPORT tab = lt_enveloped_data[]
FROM DATABASE zadf_con_indx(zd)
TO lw_indx
ID lv_srtfd.

IF NOT lt_enveloped_data[] IS INITIAL.

** does it’s thing correcrly.

ELSE.
**Raise Exception
RAISE EXCEPTION TYPE zcx_adf_service
EXPORTING
textid = zcx_adf_service=>error_import_sas_key
interface_id = gv_interface_id.
ENDIF.

So the issue seems to be that the lt_enveloped_data[] has not been retrieved from the memory.
Either it is being updated from another process with an incompatible memory area and then is unable to find it.
Or it is a timing issue where it is momentarily being updated.
When running a table in 4 parallel process, we sometimes get very fare into the process before it fails. E.g. 750 portions with 3 failed portions with this error after around 500 packages.
I guess this suggest it is some sort of timing issue.

Do you know how we might be able to work around this issue?

I hope this is the correct location to raise this issue.

Thanks a lot for the great tools we can use to move SAP data to Azure!

Orphaned includes

Hi,
It looks like the following includes:
ZREST_SCHED_BATCH_F01
ZREST_SCHED_BATCH_SEL
ZREST_SCHED_BATCH_TOP
ZTEST_HTTP_REST_FO1
ZTEST_HTTP_REST_I01
ZTEST_HTTP_REST_O01
ZTEST_HTTP_REST_TOP
are not used in any main programs, so it might be possible to delete these?

BADI implementation ZADF_EDIT_AUTH

Hi,
I know the code in the implementation is commented,
https://github.com/Microsoft/ABAP-SDK-for-Azure/blob/master/src/zadf/zcl_im_adf_edit_auth.clas.abap

But having the badi implementation in git, customers will install the badi implementation, https://github.com/Microsoft/ABAP-SDK-for-Azure/blob/master/src/zadf/zadf_edit_auth.sxci.xml
which can be seen as modifications to the SAP standard processes.

In this case it looks like the implementation is for enforcing internal Microsoft rules. I suggest moving the implementation to a different package in the Microsoft SAP system, so you still have it internally, but not part of the git repository.

Accessing SAP OData service from Azure app service C# project

Hello Team,

I am working on the implementation of Chatbot using the Microsoft Azure Bot service. We created the Chatbot and implemented the bot framework C# project. Also deployed the same in Azure app service. Now we need to get data from SAP using our Chatbot (like invoice status, Shipper status etc), where if user asks for that to the chatbot, it will ask for the relevant inputs from user and using that the bot will call the implemented OData REST service in SAP for getting the status.
Our organization wants the Chatbot to execute the OData service in SAP with the user ID of the user who is currently requesting for the status in Chatbot instead of a generic dedicated SAP user ID to call from C# end. This is to avoid SAP license issues and also to enhance the security on the usage of Chatbot with SAP system. Is there any way where we can get the token for that particular user using that we can call the OData service in SAP?
I saw the AAD authentication for sending data from SAP to Azure based applications using Azure SDK for ABAP, but this is the other way around, where we need to get the token (for that user) in azure that will be accepted by SAP for executing that OData services. Thanks in advance for your reply.

Regards,
Vignesh.

Use markdown for documents

This is a suggestion.

Use .doc/.docx/.pdf format for documents has a disadvantage: it cannot show diff. So over time, people cannot see the change history.

The suggestion is to use markdown for all the documents.

If it's OK, I can submit a PR.

Getting message “Error in importing encoded SAS KEY value for ADB2CTOKEN” when starting the report “ZADF_DEMO_AZURE_GRAPH” – different than issues #97 and #48?

Hi,
I’m trying to start the report zadf_demo_azure_graph. I used this documentation: ABAP-SDK-for-Azure/src/zadf/zadf_graph at master · microsoft/ABAP-SDK-for-Azure (github.com). When I’m starting the report, I always get the error message “Error in importing encoded SAS KEY value for ADB2CTOKEN”.
Inspecting the code, I found an import in the class ZCL_ADF_SERVICE.

  IMPORT tab  = lt_enveloped_data[]
         FROM DATABASE zadf_con_indx(zd)
         TO lw_indx
         ID lv_srtfd.
  IF NOT lt_enveloped_data[] IS INITIAL.

Debugging the code lt_enveloped_data[] is always empty. In the result an exception was called. Looking for an export to fill zadf_con_indx I found nothing.
Perhaps the solution of my error is in issue #97 and #48 but I didn’t understand it. Could it be possible that the issues #97 and #48 handling another situation?
What am I doing wrong? Can someone help?

Regards
Henning

ZREST_UTIL has Corelation ID always set as 0 for servicebus POST

Transaction ZREST_UTIL has Corelation ID always set as 0 for service bus POST scenario and there is always only one entry in ZREST_UTIL as a result of this. I did some debugging and figured that the problem is in method SET_GUID of class ZCL_REST_FRAMEWORK. The return parament "GUID" never gets populated with any value within the method SET_GUID but the calling program of the method is expecting a value to be returned and the returned value is being used for further processing which happens to be null in this scenario.

Package Z_AZURE_ABAPSDK contains dev. objects and therefore cannot be a main package

I'm trying to install ABAP-SDK-for-Azure, but keep running into this problem. I have checked that Z_AZURE_ABAPSDK is not a main package, so I don't know where this is coming from.

I've followed the guide ABAP SDK for Azure - Github.pdf but still get the below error.

Package Z_AZURE_ABAPSDK contains dev. objects and therefore cannot be a main package

Message no. PAK019

Diagnosis

The package Z_AZURE_ABAPSDK contains development objects (except subpackages and package interfaces) and therefore cannot be a main package.

Main packages can only contain subpackages and package interfaces as development objects.

Error reading attributes for RFC destination

I followed the instuctions of the Imlementation Guid for Azure Event hub. When I run the demo report zadf_demo_azure_eventhub or run my own tests I get this error: Error in reading attributes of RFC destnation for DEMO_EHUB.

image

If I debug it the destination is empty in ZCL_ADF_SERVICE method GET_TARGET_HOST.
image

The parameter is supplied here. As far as I can see gv_rfc_destination isn't set anywhere.
image

How is that intended to work? Am I missing the obvious?
If I fill gv_rfc_destination with the RFC destination in the debugger it's works.

Documentation for Service Bus integration

Hi,

in the documentation it states that other types of Azure services are coming soon. I got a spec to integrate a service bus, is there any documentation available for it?

thanks and regards,
Cris

ABAP SDK For Azure installation with 750 version

Hi, I tried to install ABAP SDK for AZURE for users version. after connecting to Online repo, the objects got pulled into system and see below error after all the objects were activated.
"Object type SUCU not supported, serialize import of object ZSDK S_TABU_DIS failed."

not sure of which functionality effected by not importing the above object. Could you please tell wat are the next steps to address it?

ztvarvc doesn't exist

I've just tried to import the project into my NetWeaver 7.50 ABAP Developer edition. During activation there is an error in the method DECODE_SIGN of class ZCL_ADF_SERVICE that the type ztvarvc does not exist. There is a standard table tvarvc but there the field varname is called name. So either you can add the table ztvarvc to the project or use the standard table.

Does the interface type AAD - Azure Active Directory use the Azure Active Directory Graph API?

Unfortunately there is not yet an example on how to use the interface type AAD - Azure Active Directory. So I hope you can answer my question here via this issue. I've looked for the Azure Active Directory API and the first result that I've got was Azure Active Directory Graph API. But there it is strongly recomended to use the Microsoft Graph. So what API does does the interface type AAD - Azure Active Directory use? And where can I obtain the SAS Key to use this API?

OAUTH for Servicebus

I am using the ABAP SDK for sending events to the servicebus from Azure. In our landscape we are sending each event type to a different topic. This makes it rather complex to share OAUTH keys for all different topics, morover all config and all RFC destinations need to be define for each topic.

In order to solve this i have enhanced some of the classes so that we have a dynamic topic and added basic OAUTH capabilities. Are there any plans to extend the API with such a functionality, i.e. to be able to perform OAUTH authentication to service bus instead of SAS keys?

Deletion of logs (table ZREST_MO_PAYLOAD is growing very fast)

Hi,

Is there a clean-up job / program created for this table? How do we maintain this table (that is, from transaction ZREST_UTIL, we see that that the log selected is being marked as deleted. However, we cannot do multiple selection of rows)?

Thanks,
Allaine

Follow-up on deletion of logs (table ZREST_MO_PAYLOAD is growing very fast)

Hi,

We do not have issues on executing the programs for deletion (ZREST_MONITOR_ARCHIVE and ZREST_TABLES_ARCHIVE) and it seems to work okay. Thanks.

However, we would like to ask if there are any options for the log not to write to ZREST_MO_PAYLOAD table? That is, we prefer to have the log entries but not the payload.

Thanks again,
Allaine

Final token concatenation not correct

Hello,

Final token concatenation is not correct in class zcl_rest_utility_class line 904.

The sig parameter is repeated and sr is missing:
CONCATENATE 'SharedAccessSignature sig=' lv_encoded_base_address '&sig=' lv_sign '&se=' lv_new_expiry_adf '&skn='wa_policy-policy INTO lv_final_token.

Should be corrected for:
CONCATENATE 'SharedAccessSignature sr=' lv_encoded_base_address '&sig=' lv_sign '&se=' lv_new_expiry_adf '&skn='wa_policy-policy INTO lv_final_token.

Thanks for this framework, it save my day.
Nuno Morais

Start 2FA process on an authenticated user

Hello,

Do you know if there is the posibility to start the 2FA process for the user that is already logged in?

Imagine that I'm in an SAP Gui application and I have two buttons, approve & reject, if user press approve I want to raise only the 2FA for the current user, previously that user was authenticated with OAUTH 2 agains azure aad.

Thanks & regards

Syntax error / Issue when activating the class ZCL_ADF_SERVICE_DEFAULT_CONFIG

Hi,

We just recently pulled the ABAP-SDK-for-Azure repository and are trying to activate the objects. However, we are activating the class ZCL_ADF_SERVICE_DEFAULT_CONFIG, we got the following error below:

Class ZCL_ADF_SERVICE_DEFAULT_CONFIG,Method CONSTRUCTOR
Field "VALUE" is unknown. It is neither in one of the specified tables
nor defined by a "DATA" statement. "DATA" statement.

Do you know what might have caused this?

Thanks

double up for class zcl_adf_service_graph

Hi,
The class with name "zcl_adf_service_graph" currently exists twice in the repo,

https://github.com/microsoft/ABAP-SDK-for-Azure/blob/master/src/zadf/zcl_adf_service_graph.clas.abap

https://github.com/microsoft/ABAP-SDK-for-Azure/blob/master/src/zadf/zadf_graph/zcl_adf_service_graph.clas.abap

found via https://travis-ci.org/dotabap/dotabap-list/builds/641600521, I run duplicate filename checks across the entire http://dotabap.org ecosystem daily.
Currently not part of the CI check, but will be implemented in abaplint/abaplint#729

Object Type SUCU not supported, serialize - error

Hello,

I'm using ABAPGit to pull the ABAP-SDK-for-Azure into my system.
When executing the pull, I get the following error : "Object Type SUCU not supported, serialize".

I noticed a strange file in named 'zres s_tabu_dis.sucu.xml'. Maybe this is the cause of the error?

Greetings,
Bart

Primary Key for EventHub connection in table ZADF_CONFIG cannot be updated using sm30

The EventHub documentation says:

Every time you generate a new SAS key in portal, you need to change in this config
table.

But when I'm trying to update the SAS key stored in table ZADF_CONFIG using transaction sm30 the input field turns red, no matter what value I entered.
grafik

Seems like you cannot update the secret directly. A workaround is to delete the entry, save and exit and then create a new entry with the same key as the old one. The disadvantage is that this requires manually re-entering other connection properties, too (like interface type, asynchronous/synchronous, retry true/false).

Improvements for IMPLEMENTATION GUIDE ON ABAP SDK FOR AZURE V1.0

I've worked through the implementation guide and got the connection to EventHub working. But I would suggest the following corrections and suggestions:

  • Suggestion: Please provide the guide as a md file. That would allow easier improvements by sending a pull request
  • Suggestion: Provide links to the general documentation of the service that is accessed to provide more context
  • Correction: 4.1 Remote function call Destination Creation
    The sample Target Host is testhub.servicesbus.windows.net. The correct domain is .servicebus.windows.net. I would suggest that the documentation uses <Your-namespace>.servicebus.windows.net.
    Only after I've removed the Path Prefix from the SM59 destination the send of messages worked. So either this topic in the documentation needs to be adjusted or the path had to be left out in the sample report
  • Correction: 4.3 Usage of ABAP SDK for Azure EventHub
    The constant gc_interface is set to value 'DEMO_EHUB'. But for the configuration DEMO_HUB is used.
  • Suggestion: Provide also an example how the sent message can be read. I've used the node.js example:
var azure = require('azure');
var serviceBusService = azure.createServiceBusService();

var queueName = 'test123';

serviceBusService.receiveQueueMessage(queueName, function(error, receivedMessage){
    if(!error){
        console.log("Message received and deleted");
        console.log(receivedMessage);
    } else {
        console.log("Error: ");
        console.log(error);        
    }
});

Direct to Blob storage example

It would be good if someone can add a Direct to Blog storage example that works. I've made an attempt (to block storage), and it's giving me a success message, however in Azure whilst the 'Modified' date and time for the Blob is updated (meaning that it was touched) I find that the size is zero. However when I use the ZREST_UTIL transaction which is provided, I can see the payload exists against the REST call. If I get mine working I can commit that, however if anyone has a working version that would be appreciated. And yes I did add the relevant configuration in tables ZADF_CONFIG, ZREST_CONF_MISC and ZREST_CONFIG and with a new SM59 connection with associated access token.

I did manage to get the sample using Azure Event Hubs to work, And yes I did activate Event Hub Capture to funnel the data to Blob storage. The reason why I'd like to trial direct to Blob storage is that Event Hub may not always be the appropriate path.

Append BLOB

Is there a demo/sample where the AppendBlob mode is working?
I tried the ZADF_DEMO_AZURE_BLOB program which works fine in BlockBlob mode and able to update the file.
When I change BlobType to AppendBlob ('A'), I can see the file created in the Container, however no data written to file. Keep getting the response code "500 Network connection broken"
Below are the steps I am following:-

  1. Calling factory method to instantiate Blob Storage Client (ZCL_ADF_SERVICE_FACTORY=>CREATE)
  2. Setting Expiry time (ZCL_ADF_SERVICE_FACTORY->ADD_EXPIRY_TIME)
  3. Forming String-to-sign for SAS token generation (ZCL_ADF_SERVICE_BLOB->STRING_TO_SIGN)
  4. Create Blob for Blob Storage (ZCL_ADF_SERVICE_BLOB->CREATE_APPEND_BLOB)
  5. Sending Converted SAP business data to BLOB Storage in Azure (ZCL_ADF_SERVICE_FACTORY=>SEND)

Thanks in advance.

Distribution of Encryption in Framework

The logic for en- and decryption is distributed in several classes in DECODE_KEY and ENCRYPT_KEY macros (e. g. ZCL_ADF_SERVICE, ZCL_ADF_SERVICE_BLOB, ZCL_ADF_SERVICE_EVENTHUB, ZCL_SSF_UTILITY).
As this logic is an essential ingredient it should be centralized in one class for the sake of maintainability. I think the class ZCL_SSF_UTILITY had the original intention to do so but seems to be unfinished.

Ignore pdf files

The pdf files are constantly shown as diff because they aren't pulled in abapGit.
image

I'd suggest to add them in the ignore section of .abapgit.xml

Object name conflict with Customer Objects

Hello,

I'm trying to import this into our Dev environment and there are objects in there that have naming conflicts with existing objects our system. This is the Data Element ZPSTATUS and Domain ZPSTATUS. In our system, we already have ZPSTATUS created for holding print statuses.

Any possibility of renaming these to something more unique to the SDK which will not potentially affect existing objects?

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.