{"id":19403147,"url":"https://github.com/watson-developer-cloud/abap-sdk-nwas","last_synced_at":"2025-07-09T21:33:03.150Z","repository":{"id":49061796,"uuid":"213519442","full_name":"watson-developer-cloud/abap-sdk-nwas","owner":"watson-developer-cloud","description":"ABAP code for using IBM Watson Developer Services with SAP NetWeaver Application Server, imported via abapGit","archived":false,"fork":false,"pushed_at":"2023-12-14T22:36:37.000Z","size":766,"stargazers_count":18,"open_issues_count":0,"forks_count":5,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-24T07:43:52.599Z","etag":null,"topics":["abap","abapgit","netweaver","s4hana","sap","sap-watson","watson","watson-developer-cloud"],"latest_commit_sha":null,"homepage":null,"language":"ABAP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/watson-developer-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-08T01:16:16.000Z","updated_at":"2024-10-02T11:23:13.000Z","dependencies_parsed_at":"2024-11-10T11:27:57.189Z","dependency_job_id":"59b280c0-70cc-4d9a-925c-1b8ec120cb78","html_url":"https://github.com/watson-developer-cloud/abap-sdk-nwas","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/watson-developer-cloud/abap-sdk-nwas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson-developer-cloud%2Fabap-sdk-nwas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson-developer-cloud%2Fabap-sdk-nwas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson-developer-cloud%2Fabap-sdk-nwas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson-developer-cloud%2Fabap-sdk-nwas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/watson-developer-cloud","download_url":"https://codeload.github.com/watson-developer-cloud/abap-sdk-nwas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watson-developer-cloud%2Fabap-sdk-nwas/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264503951,"owners_count":23618762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abap","abapgit","netweaver","s4hana","sap","sap-watson","watson","watson-developer-cloud"],"created_at":"2024-11-10T11:27:23.543Z","updated_at":"2025-07-09T21:33:03.132Z","avatar_url":"https://github.com/watson-developer-cloud.png","language":"ABAP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CLA assistant](https://cla-assistant.io/readme/badge/watson-developer-cloud/abap-sdk-nwas)](https://cla-assistant.io/watson-developer-cloud/abap-sdk-nwas)\n\n# ABAP SDK for IBM Watson, using SAP NetWeaver\n\nABAP client library to use the [IBM Watson APIs][wdc]. This is a Community SDK written by ABAPers for the ABAPers in the Open Source community, to provide easy usage of IBM Watson Developer Services in innovation initiatives combined with any SAP Application which is run on SAP NetWeaver 7.50 and above, such as SAP Business Suite or SAP S/4HANA on-premises edition. It is the choice and responsibility of application developers how this Community SDK is used.\n\nAdditionally, as the ABAP SDK is a community release it is not updated with the same schedule as IBM-supported SDKs. Please see more information in [Questions](#questions).\n\n# Choose ABAP SDK release for the applicable ABAP Runtime\n\n| **abap-sdk-nwas** | [abap-sdk-scp](https://github.com/watson-developer-cloud/abap-sdk-scp) |\n|---|---|\n| for SAP NetWeaver AS ABAP 7.50+ | for SAP Cloud Platform ABAP Environment 2002+ |\n| tested on SAP Business Suite and SAP S/4HANA on-premises edition |  |\n| `this repository` |  |\n\n---\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n- [Announcements](#announcements)\n- [Before you begin](#before-you-begin)\n- [Installation](#installation)\n- [SAP System Configuration](#sap-system-configuration)\n  - [SAP Profile Parameters](#sap-profile-parameters)\n  - [Proxy configuration](#proxy-configuration)\n  - [SSL Certificates](#ssl-certificates)\n    - [Determine required certificate](#determine-required-certificate)\n    - [Add an SSL certificate to the PSE](#add-an-ssl-certificate-to-the-pse)\n    - [Restart the ICM (Internet Communication Manager)](#restart-the-icm-internet-communication-manager)\n- [Credentials](#credentials)\n- [Configuration table](#configuration-table)\n- [IAM Authentication](#iam-authentication)\n- [Usage](#usage)\n- [API Reference](#api-reference)\n- [Questions](#questions)\n- [License](#license)\n- [Contributors](#contributors)\n- [Acknowledgements](#acknowledgements)\n\n\u003c/details\u003e\n\n## ANNOUNCEMENTS\n### Major version 2.0.0 released\nVersion v2.0.0 of the SDK has been released and includes breaking changes - see what's changed in the [migration guide](MIGRATION-V2.0.0.md).\n\n## Before you begin\n* You need an [IBM Cloud][ibm_cloud_onboarding] account.\n\n## Installation\n\nThe client library is provided as ABAP Git Repository. Proceed as follows to clone the ABAP SDK code to your SAP system.\n1. Install [abapGit][abapgit], using the [abapGit Docs][abapgit_docs]\n2. Use abapGit to clone the ABAP SDK Git repository into your SAP system.\n3. Assign the ABAP SDK to the package `ZIBMC` when performing setup of the abapGit repository.\n\n## SAP System Configuration\n\n### SAP Profile Parameters\nThe following SAP profile parameter settings are recommended.\n```\nicm/HTTPS/client_sni_enabled = TRUE\nssl/ciphersuites = 135:PFS:HIGH::EC_P256:EC_HIGH\nssl/client_ciphersuites = 150:PFS:HIGH::EC_P256:EC_HIGH\nwdisp/ssl_ignore_host_mismatch = TRUE\n```\n\n### Proxy configuration\nThe client library respects the ABAP proxy settings. If you are using a central proxy server that is not already configured in your SAP system, proceed as follows.\n1. Logon to the SAP system and call transaction SICF.\n2. Click *Execute* (or press F8).\n3. Select menu item *Client* \u0026rarr; *Proxy Settings*.\n4. On tab *Global Settings*: Select *Proxy Setting is Active* and *No Proxy Setting for Local Server*.\n5. On tabs *HTTP Protocol* and *HTTPS Protocol* specify the proxy *Host Name* and *Port*. If the proxy server requires logon credentials, also specify *User Name* and *Password*.\n6. Click *Execute (F8)* and *OK*.\n\n\n### SSL Certificates\nCommunication between SAP and the IBM Cloud is secured by the Transport Layer Security (TLS) protocol, also known as Secure Sockets Layer (SSL). SSL requires certificates that must be stored on the SAP application server in the Personal Security Environment (PSE). Transaction STRUST is used to maintain the PSE.\n\n#### Determine required certificate\nIf a call to an IBM Cloud service failed due to a missing SSL certificate, check the ICM trace file to find the required certificate. To do so, call transaction SMICM and select menu item *Goto* \u0026rarr; *Trace File* \u0026rarr; *Display End*. Alternatively, call transaction AL11 and navigate to file DIR_HOME/dev_icm.\nFind last entry in trace file that indicates error *SSSLERR_PEER_CERT_UNTRUSTED*, as shown in the example below.\n```\n[Thr nn] Peer not trusted\n[Thr nn] Certificate:\n[Thr nn]  Certificate:\n[Thr nn]   Subject:                CN=*.watsonplatform.net, O=INTERNATIONAL BUSINESS MACHINES CORPORATION, L=Armonk, SP=New York, C=US\n[Thr nn]   Issuer:                 CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US\n[Thr nn]   Serial Number:          05:1C:46:1B:6E:C2:29:48:BD:F0:03:B3:A6:87:1A:5B\n[Thr nn]  Verification result:\n[...]\n[Thr nn]    SignerCert:\n[Thr nn]     Certificate:\n[Thr nn]      Subject:                CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US\n[Thr nn]      Issuer:                 CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US\n[Thr nn]      Serial Number:          05:46:FE:18:23:F7:E1:94:1D:A3:9F:CE:14:C4:61:73\n[Thr nn]     Verification result:\n[...]\n[Thr nn]       SignerCert:\n[Thr nn]        Certificate:\n[Thr nn]         Subject:                CN=DigiCert Global Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US\n[...]\n[Thr nn] \u003c\u003c ---------- End of Secu-SSL Errorstack ----------\n[Thr nn]   Target Hostname=\"stream.watsonplatform.net\"\n[Thr nn]   SSL NI-hdl 463: local=9.152.20.145:56542  peer=169.48.115.62:443\n[Thr nn] \u003c\u003c- ERROR: SapSSLSessionStartNB(sssl_hdl=3fef0000c70)==SSSLERR_PEER_CERT_UNTRUSTED\n[Thr nn] *** ERROR =\u003e SSL handshake with stream.watsonplatform.net:443 failed: SSSLERR_PEER_CERT_UNTRUSTED (-102)\n[Thr nn] The peer's X.509 Certificate (chain) is untrusted\n```\nThe SSL error stack shows the SSL certificate chain, which in the example above looks like follows:\n\n| Certificate Authority Type | Certificate Authority (CA) |\n|:--------------------------:|:-------------------------- |\n| end-user                   | *.watsonplatform.net       |\n| intermediate               | GeoTrust RSA CA 2018       |\n| root                       | DigiCert Global Root CA    |\n\nYou can install any of these SSL certificates. However, it is recommended to install the root CA certificate.\u003cbr\u003e\nDownload the appropriate SSL certificate from the provider's website, for example https://www.digicert.com/digicert-root-certificates.htm. Store the certificate file on your computer.\n\n\n#### Add an SSL certificate to the PSE\n\nProceed as follows to add the downloaded SSL certificate to your SAP system's *Standard SSL Client PSE*.\n1. Logon to the SAP system and call transaction STRUST.\n2. Switch to edit mode (press according tool bar icon).\n3. If a local PSE file does not exist already, create it by right-clicking on `SSL client SSL Client (Standard)` and selecting *Create* from context menu. Keep all default settings in next popup dialog.\n4. In *Certificate* section, click *Import* (alternatively select menu item *Certificate* \u0026rarr; *Import*). Choose the certificate file that you have downloaded and import the certificate.\n5. Click button *Add to Certificate List*.\n6. Click *Save (F3)*.\n\n\n#### Restart the ICM (Internet Communication Manager)\n\nIt is recommended to restart the ICM after a new SSL certificate has been applied to the PSE. To do so, proceed as follows.\n1. Logon to the SAP system and call transaction SMICM.\n2. Select menu item *Administration* \u0026rarr; *ICM* \u0026rarr; *Restart* \u0026rarr; *Yes*.\n\n## Credentials\n\nBefore you can access a specific service from your SAP system, you must create a service instance in the IBM Cloud and obtain credentials. The credentials can be shared among multiple end users of the SAP system, but you must ensure that the selected plan is sufficient to support the expected number of calls or the expected data volume. Please note that some plans may have restrictions on the allowed methods, so make sure to select the right plan for your purpose.\n\nAll currently supported services support IAM authentication (see below). Service credentials consist of an API Key and a URL. Both the API Key and the URL are character values that can be viewed through the IBM Cloud dashboard and need to be provided as parameters `i_apikey` and `i_url` to method `zcl_ibmc_service_ext=\u003eget_instance`.\n\nYou can store the values with your application, but it is suggested to do that in an encrypted format. Using cloud services usually creates costs based on usage for the owner of the service instance, and anyone with the credentials can use the service instance at the owner's expenses. If you want to distribute the costs over multiple cost centers, you need to create a service instance and provide service credentials for each cost center separately.\n\n\n## Configuration table\n\nService credentials and other parameters that must be specified at Watson service wrapper ABAP class instantiation can also be provided in table `ZIBMC_CONFIG`. This table has three keys:\n\n| Table Key    | Description                                                                                                                            |\n|:------------ |:-------------------------------------------------------------------------------------------------------------------------------------- |\n| SERVICE      | The ABAP class name without prefix ZCL_IBMC_                                                                                           |\n| INSTANCE_UID | ID chosen by application developer that must be provided by application as parameter to method `zcl_ibmc_service_ext=\u003eget_instance()` |\n| PARAM        | The parameter name                                                                                                                     |\n\n\u003cdetails\u003e\n  \u003csummary\u003eList of configuration parameters in table ZIBMC_CONFIG\u003c/summary\u003e\n\n| Parameter Name    | Default Value     | Description                                                                 |\n|:----------------- |:----------------- |:--------------------------------------------------------------------------- |\n| URL               | service-dependent | Watson service url                                                          |\n| APIKEY            |                   | Watson service API keys                                                     |\n| PROXY_HOST        |                   | Proxy server                                                                |\n| PROXY_PORT        |                   | Proxy server port                                                           |\n| AUTH_NAME         | service-dependent | Authorization, `IAM` or `basicAuth`                                         |\n| SSL_ID            | CLIENT            | SSL Identity, defines PSE for SSL certificates: `CLIENT` or `ANONYM`        |\n\n\u003c/details\u003e\n\n\n## IAM Authentication\n\nIdentity and Access Management (IAM) is a bearer-token based authentication method. Token management is either performed by the ABAP SDK or must be implemented by the SDK user.\u003cbr/\u003e\nIf a value for apikey is provided by the caller in method `zcl_ibmc_service_ext=\u003eget_instance()`, the ABAP SDK generates a bearer-token under the cover when needed and refreshes it when it is about to expire.\u003cbr/\u003e\nIf apikey is not provided for method `zcl_ibmc_service_ext=\u003eget_instance()`, the ABAP SDK user must implement an individual token management. Before a service method is called the first time, a valid bearer-token must be provided to the Watson service wrapper ABAP class instance as follows:\n```abap\n  lo_service_class-\u003eset_bearer_token( i_bearer_token = '...' ).\n```\nAfterwards, service methods can be called as long as the provided token is valid. When the token has expired, the method above must be called again with a new (refreshed) bearer-token as parameter.\n\n\n## Usage\n\nThe client library is delivered as package *ZIBMC*. Once the Git Repository has been cloned to the SAP system, a Watson service instance is wrapped by an ABAP class instance.\u003cbr\u003e\nThe following Watson services are currently supported:\n\n| Service                        | ABAP Class Name                     |\n|:------------------------------ |:----------------------------------- |\n| Discovery                      | ZCL_IBMC_DISCOVERY_V2               |\n| Language Translator            | ZCL_IBMC_LANG_TRANSLATOR_V3 (\\*)    |\n| Natural Language Understanding | ZCL_IBMC_NAT_LANG_UNDRSTND_V1       |\n| Speech to Text                 | ZCL_IBMC_SPEECH_TO_TEXT_V1          |\n| Text to Speech                 | ZCL_IBMC_TEXT_TO_SPEECH_V1          |\n| Watson Assistant               | ZCL_IBMC_ASSISTANT_V1               |\n|                                | ZCL_IBMC_ASSISTANT_V2               |\n\n(\\*) Deprecated service; will be discontinued in the future.\n\nUsing the client library requires two steps:\n\n1. Create an instance of the Watson service wrapper ABAP class by calling method `zcl_ibmc_service_ext=\u003eget_instance`.\n```abap\n  data:\n    lo_service_class type \u003cABAP Class Name\u003e.\n\n  zcl_ibmc_service_ext=\u003eget_instance(\n    exporting\n      i_url      = \u003curl\u003e\n      i_apikey   = \u003capi key\u003e\n      ...\n    importing\n      eo_instance = lo_service_class ).\n```\n\n2. Call the Watson service API endpoint by invoking the corresponding class method.\n```abap\n  try.\n      lo_service_class-\u003emethod(\n        exporting\n          is_input = ...\n        importing\n          es_output = ... ).\n    catch zcx_ibmc_service_exception into data(lo_service_exception).\n      ...\n  endtry.\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eText to Speech Example\u003c/summary\u003e\n\n```abap\n* List all voices provided by Watson Text to Speech\n\n  \" declare variables\n  data:\n    lv_apikey            type string value '...',\n    lo_text_to_speech    type ref to zcl_ibmc_text_to_speech_v1,\n    lo_service_exception type ref to zcx_ibmc_service_exception,\n    ls_voice             type zcl_ibmc_text_to_speech_v1=\u003et_voice,\n    lt_voices            type zcl_ibmc_text_to_speech_v1=\u003et_voices.\n\n  \" get Watson Text-to-Speech service instance\n  zcl_ibmc_service_ext=\u003eget_instance(\n    exporting\n      i_url    = 'https://api.kr-seo.text-to-speech.watson.cloud.ibm.com/instances/\u003cuuid\u003e'\n      i_apikey = lv_apikey\n    importing\n      eo_instance = lo_text_to_speech ).\n\n  \" call Watson Text-to-Speech service to retrieve available voices\n  try.\n      lo_text_to_speech-\u003elist_voices(\n        importing\n          e_response = lt_voices ).\n\n    catch zcx_ibmc_service_exception into lo_service_exception.\n      message lo_service_exception type 'E'.\n  endtry.\n\n  \" evaluate voices\n  loop at lt_voices-voices into ls_voice.\n    ...\n  endloop.\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eNatural Language Understanding Example\u003c/summary\u003e\n\n```abap\n* Analyze www.ibm.com using Watson Natural Language Understanding\n\n  \" declare variables\n  data:\n    lv_apikey            type string value '...',\n    lo_instance          type ref to zcl_ibmc_nat_lang_undrstnd_v1,\n    lo_service_exception type ref to zcx_ibmc_service_exception,\n    ls_parameter         type zcl_ibmc_nat_lang_undrstnd_v1=\u003et_parameters,\n    ls_analysis_results  type zcl_ibmc_nat_lang_undrstnd_v1=\u003et_analysis_results.\n\n  \" get Watson Natural Language Understanding service instance\n  zcl_ibmc_service_ext=\u003eget_instance(\n    exporting\n      i_url     = 'https://api.eu-de.natural-language-understanding.watson.cloud.ibm.com/instances/\u003cuuid\u003e'\n      i_apikey  = lv_apikey\n      i_version = '2019-07-12'\n    importing\n      eo_instance = lo_instance ).\n\n  \" set the input parameters\n  ls_parameters-url                         = 'www.ibm.com'.\n  ls_parameters-return_analyzed_text        = zcl_ibmc_service=\u003ec_boolean_true.\n  ls_parameters-features-entities-emotion   = zcl_ibmc_service=\u003ec_boolean_true.\n  ls_parameters-features-entities-sentiment = zcl_ibmc_service=\u003ec_boolean_true.\n  ls_parameters-features-keywords-emotion   = zcl_ibmc_service=\u003ec_boolean_true.\n  ls_parameters-features-keywords-sentiment = zcl_ibmc_service=\u003ec_boolean_true.\n\n  \" call Watson Natural Language Understanding service to analyze URL www.ibm.com\n  try.\n      lo_instance-\u003eanalyze(\n        exporting\n\t  i_parameters = ls_parameters\n        importing\n          e_response = ls_analysis_results ).\n\n    catch zcx_ibmc_service_exception into lo_service_exception.\n      message lo_service_exception type 'E'.\n  endtry.\n\n  \" retreive analysis results from ls_analysis_results\n\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eLanguage Translator Example\u003c/summary\u003e\n\n```abap\n* Translate text from English to German using Watson Language Translator\n\n  \" declare variables\n  data:\n    lv_apikey            type string value '...',\n    lo_lang_translator   type ref to zcl_ibmc_lang_translator_v3,\n    lo_service_exception type ref to zcx_ibmc_service_exception,\n    ls_request           type zcl_ibmc_lang_translator_v3=\u003et_translate_request,\n    lv_text              type string,\n    ls_trans             type zcl_ibmc_lang_translator_v3=\u003et_translation_result.\n\n  \" get Watson Language Translator service instance\n  zcl_ibmc_service_ext=\u003eget_instance(\n    exporting\n      i_url      = 'https://api.us-south.language-translator.watson.cloud.ibm.com/instances/\u003cuuid\u003e'\n      i_apikey   = lv_apikey\n      i_version  = '2018-05-01'\n    importing\n      eo_instance = lo_lang_translator ).\n\n  \" store text to be translated into ls_request and set the languages\n  lv_text = 'Welcome'.\n  append lv_text to ls_request-text.\n  ls_request-model_id = 'en-de'.\n  ls_request-source = 'EN'.\n  ls_request-target = 'DE'.\n\n  \" call Watson Language Translator service to translate the text in ls_request\n  try.\n      lo_lang_translator-\u003etranslate(\n        exporting\n          i_request     =   ls_request\n          i_contenttype = 'application/json'\n          i_accept      = 'application/json'\n        importing\n          e_response = ls_trans ).\n\n    catch zcx_ibmc_service_exception into lo_service_exception.\n      message lo_service_exception type 'E'.\n  endtry.\n\n  \" retreive translation results from ls_trans\n\n```\n\n\u003c/details\u003e\n\n## API Reference\n\nGitHub Pages contain the [ABAP Client Library for Watson API Reference](https://watson-developer-cloud.github.io/abap-sdk-nwas/).\n\n## Questions\n\nThe ABAP SDK is a Community SDK for IBM Watson, created by the IBM Watson development community and SAP's ABAP development community - written by ABAPers from IBM Cloud, IBM Services and IBM Systems. Therefore as a community release it is not updated with the same schedule as IBM-supported SDKs, and does not include support by IBM. For more information on IBM-supported SDKs and the update policy, please see https://cloud.ibm.com/docs/watson?topic=watson-using-sdks\n\nIf you have questions about the IBM Watson services or are having difficulties using the APIs, please ask a question at [IBM Support Forums](https://www.ibm.com/mysupport/s/forumshome) or [Stack Overflow](http://stackoverflow.com/questions/ask?tags=ibm-watson-cognitive).\n\n## License\n\nThis library is licensed under the [Apache 2.0 license][license].\n\n---\n\n## Contributors\n\n* Christian Bartels\n* Joachim Rese\n* Jochen Röhrig\n* Aleksandar Debelic\n* Stefan Diederichs\n\n## Acknowledgements\n\n* Bradley Knapp (Sponsor)\n* Devraj Bardhan (Sponsor)\n* Sean Freeman (Sponsor)\n\nIn addition, we would like to thank the [abapGit][abapgit] contributors and the SAP Mentors of this team.\n\n[wdc]: https://cloud.ibm.com/docs?tab=api-docs\u0026category=ai\n[ibm_cloud]: https://cloud.ibm.com/\n[ibm_cloud_onboarding]: https://cloud.ibm.com/registration?target=/developer/watson\u0026cm_sp=WatsonPlatform-WatsonServices-_-OnPageNavLink-IBMWatson_SDKs-_-ABAP\n[license]: http://www.apache.org/licenses/LICENSE-2.0\n[abapgit]: https://github.com/larshp/abapGit\n[abapgit_docs]: https://docs.abapgit.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatson-developer-cloud%2Fabap-sdk-nwas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwatson-developer-cloud%2Fabap-sdk-nwas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatson-developer-cloud%2Fabap-sdk-nwas/lists"}