Features & Capabilities

Discover how CAP Pilot enhances your SAP CAP development experience

Coding Extension

Powerful coding assistance directly in VS Code & SAP Business Application Studio with built-in chat, intelligent code completion, and latest CAP knowledge.

CAP Expert Chat

Interactive Q&A directly on our website. Ask questions and get expert answers powered by the latest CAP knowledge.

See the Difference

Which AI really helps with CAP development? We tested common development questions and compared the answers. See for yourself how SAP Joule, ChatGPT, and CAP Pilot perform – and why CAP Pilot delivers the best, tailor-made solutions.

Scenario 1
Prompt:
How to make currentStock positive numbers only in this entity?

entity Books : cuid {
  currentStock: Integer;
}
SAP Joule

To ensure positive numbers, add a range assertion:

SAP Joule Response

❌ Invalid range syntax

❌ Missing upper bound specification

❌ No up-to-date CAP knowledge

ChatGPT

Here's how to ensure currentStock is positive:

ChatGPT Response

❌ Incorrect syntax: '*' is not valid in range assertions

❌ Missing explanation of proper range syntax

❌ No IDE integration

CAP Pilot

Here's the correct way to ensure positive numbers (greater than 0):

CAP Pilot Response

✓ Follows SAP CAP best practices

✓ Correct range syntax using '[(0),_]'

✓ Proper exclusion using parentheses

✓ Use of '_' for positive infinity

Scenario 2
Prompt:
I want that my entity only exists one time to store some global values, how?

{
  entity Global as projection on GlobalEntity; 
}
SAP Joule

Try using the @singleton annotation:

SAP Joule Response

❌ @singleton does not exist

❌ References some unknown error

❌ Solution does not run

ChatGPT

You can use a singleton pattern by adding a unique constraint:

ChatGPT Response

❌ Hallucinates singleton declaration

❌ Not up-to-date documentation

❌ No IDE integration

CAP Pilot

Here's how to create a singleton entity using @odata.singleton:

CAP Pilot Response

✓ Follows SAP CAP best practices

✓ declares @odata.singleton

✓ explains the solution

Scenario 3
Prompt:
How to have the combined name here?

entity Employees {
   firstName : String; lastName : String; 
}
SAP Joule

Create a new field to store the full name:

SAP Joule Response

❌ Wants you to maintain more data

❌ No knowledge of calculated fields

❌ Solution does not run

ChatGPT

You can combine the names using a computed field:

ChatGPT Response

❌ Hallucinates string computed

❌ Compile error

❌ No IDE integration

CAP Pilot

Use a virtual field to combine firstName and lastName:

CAP Pilot Response

✓ Follows SAP CAP best practices

✓ Declares calculated field

✓ keeps data clean

* Illustrative comparison based on product information and internal testing from January 2025. Capabilities, pricing, and availability may have changed since then and can vary by plan, region, or setup.