All skills
secondsky avatar

/sap-abap

@620a19a
by Eddiesecondsky/sap-skills456 stars
120

Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing, dynamic programming, RTTI/RTTC, field symbols, data references, exception handling, or ABAP unit testing. Covers both classic ABAP and modern ABAP for Cloud Development patterns.

Use this Skill: https://skilld.dev/gh/secondsky/sap-skills/sap-abap

This session only. Nothing lands on disk.

referencesgenerative-ai.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Generative AI in ABAP - Complete Reference

Source: https://github.com/SAP-samples/abap-cheat-sheets/blob/main/30_Generative_AI.md

Version Note: The ABAP AI SDK requires ABAP Cloud (SAP BTP ABAP Environment or S/4HANA Cloud). Not available on 7.40 on-premise systems. FINAL(...) in examples requires 7.50+ — replace with DATA(...) on earlier releases.


Overview

The ABAP AI SDK enables integration of large language models into ABAP applications through the Intelligent Scenario Lifecycle Management (ISLM) framework.

Prerequisites

  • Administrative setup via ISLM documentation
  • Creation of intelligent scenarios (ABAP repository objects)
  • Definition of LLM and prompt templates

Basic Usage

Simple Execution

TRY.
    FINAL(ai_api) = cl_aic_islm_compl_api_factory=>get(
      )->create_instance( 'ZDEMO_ABAP_INT_SCEN' ).

    FINAL(result) = ai_api->execute_for_string( `Tell me a joke.` ).
    FINAL(completion) = result->get_completion( ).

  CATCH cx_aic_api_factory cx_aic_completion_api INTO FINAL(error).
    FINAL(error_text) = error->get_text( ).
ENDTRY.

Parameter Configuration

FINAL(params) = ai_api->get_parameter_setter( ).
params->set_maximum_tokens( 500 ).
params->set_temperature( '0.5' ).

Message-Based Prompting

FINAL(message_container) = ai_api->create_message_container( ).

" Set system role
message_container->set_system_role( `You are a professional translator` ).

" Add user message
message_container->add_user_message( `Can you translate German into English?` ).

" Execute with messages
FINAL(llm_answer) = ai_api->execute_for_messages( message_container
  )->get_completion( ).

Prompt Templates

FINAL(prompt_temp) = cl_aic_islm_prompt_tpl_factory=>get(
  )->create_instance(
    islm_scenario = islm_scenario
    template_id   = prompt_template ).

FINAL(prompt) = prompt_temp->get_prompt( ).

Result Analytics

FINAL(llm_result) = ai_api->execute_for_string( prompt ).

" Token usage
FINAL(completion_tokens) = llm_result->get_completion_token_count( ).
FINAL(prompt_tokens) = llm_result->get_prompt_token_count( ).

" Runtime
FINAL(runtime_ms) = llm_result->get_runtime_ms( ).

" Get completion text
FINAL(completion) = llm_result->get_completion( ).

Exception Handling

TRY.
    " AI operations
  CATCH cx_aic_api_factory INTO DATA(factory_error).
    " Factory creation error
  CATCH cx_aic_completion_api INTO DATA(completion_error).
    " API execution error
  CATCH cx_aic_prompt_template INTO DATA(template_error).
    " Prompt template error
ENDTRY.

Complete Example

CLASS zcl_ai_demo DEFINITION
  PUBLIC FINAL CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_oo_adt_classrun.
ENDCLASS.

CLASS zcl_ai_demo IMPLEMENTATION.

  METHOD if_oo_adt_classrun~main.
    TRY.
        " Create AI API instance
        DATA(ai_api) = cl_aic_islm_compl_api_factory=>get(
          )->create_instance( 'ZDEMO_AI_SCENARIO' ).

        " Configure parameters
        DATA(params) = ai_api->get_parameter_setter( ).
        params->set_maximum_tokens( 1000 ).
        params->set_temperature( '0.7' ).

        " Create message container
        DATA(messages) = ai_api->create_message_container( ).
        messages->set_system_role( `You are a helpful assistant.` ).
        messages->add_user_message( `Explain ABAP in one paragraph.` ).

        " Execute and get result
        DATA(result) = ai_api->execute_for_messages( messages ).

        " Output results
        out->write( result->get_completion( ) ).
        out->write( |Tokens used: { result->get_completion_token_count( ) }| ).
        out->write( |Runtime: { result->get_runtime_ms( ) }ms| ).

      CATCH cx_aic_api_factory
            cx_aic_completion_api INTO DATA(error).
        out->write( |Error: { error->get_text( ) }| ).
    ENDTRY.
  ENDMETHOD.

ENDCLASS.

Key Classes

Class Purpose
CL_AIC_ISLM_COMPL_API_FACTORY Factory for AI API instances
CL_AIC_ISLM_PROMPT_TPL_FACTORY Factory for prompt templates
CX_AIC_API_FACTORY Factory exception
CX_AIC_COMPLETION_API API execution exception
CX_AIC_PROMPT_TEMPLATE Template exception

Documentation Links

  • SAP Help: Joule for Developers, ABAP AI Capabilities
  • SAP Help: Generative AI in ABAP Cloud
  • GitHub: RAP120 - Build SAP Fiori Apps with ABAP Cloud and Joule

Source: SKILL.md on GitHub

No alerts16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    A comprehensive reference for SAP ABAP development, providing documentation and code examples for both classic ABAP and modern ABAP Cloud patterns. No security issues were detected.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    3/32 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 620a19a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 months ago
Other metadata
metadata
{
  "maintainer": "Eduard Jiglau",
  "maintainer_email": "hello@sap-ai-skills.com",
  "website": "https://sap-ai-skills.com",
  "version": "2.4.1",
  "last_verified": "2026-04-02",
  "abap_release": "7.40 SP08+ / 7.50+ / ABAP Cloud",
  "sources": [
    "https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm",
    "https://github.com/SAP-samples/abap-cheat-sheets"
  ]
}

README badge

README badge for secondsky/sap-skills/sap-abap