Cloudification Repository for SAP ABAP Test Cockpit

repository·main·Indexed 41 days ago

https://github.com/sap/abap-atc-cr-cv-s4hc

Provides the authoritative list of released and non-released APIs for SAP Cloud ERP. It serves as the data source for ABAP Test Cockpit (ATC) checks, such as 'Usage of Released APIs' and 'Usage of APIs', to help customers and partners ensure custom code is cloud-ready and adheres to 'Clean Core' principles. Includes a web-based Cloudification API Viewer for browsing API lists and successor specifications.

Tokens
3.4K
Snippets
10
Records
19
Agent score
51%

What's inside Cloudification Repository

  1. Build the Cloudification API Viewer for production

    main
    Use npm run build to create a production-ready version of the app. This command generates a build folder containing a minified bundle optimized for performance, with filenames including hashes for cache busting. The resulting folder is ready for deployment.
    npm run build
  2. Access the Cloudification API Viewer

    main

    The Cloudification API Viewer provides a web-based interface to browse the API lists. There are different views depending on the target product and model:

    In the viewer, clicking on a row with a double arrow provides details about successor objects.

  3. Use the Cloudification Repository for ATC Checks

    main

    The Cloudification Repository provides a JSON file containing the list of released APIs for SAP Cloud ERP, as well as non-released objects with their successor specifications. This file is used as the data source for the ABAP Test Cockpit (ATC) check "Usage of Released APIs (Cloudification Repository)" to analyze custom code for cloud readiness and clean core compliance.

    To use this in your ATC check variant, you must provide the URL to the appropriate JSON file based on your target product.

    ### Target product SAP Cloud ERP
    1. Activate in your ATC check variant the check "Cloud Readiness" -> Usage of Released APIs (Cloudification Repository)
    2. In the attributes of the check enter the URL to this git repository e.g https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfoLatest.json
  4. Manage the Cloudification API Viewer project with npm scripts

    main

    The Cloudification API Viewer is built using Create React App. You can manage the development lifecycle (starting, testing, building) using the following npm commands in the project directory.

    # Start the development server
    npm start
    
    # Run tests in interactive watch mode
    npm test
    
    # Build the production bundle
    npm run build
    
    # Eject the configuration (one-way operation)
    npm run eject
  5. Generate and contribute Partner JSON files for ATC

    main

    Partners can offer released APIs or Classic APIs (to support clean core strategies) as part of an extension shipment. To do this, partners must generate a JSON file containing only objects within their own namespace.

    Steps to implement:

    1. Implement SAP Note 3630552 (Classic API Support in ATC Check "Usage of APIs" for Partners).
    2. Use Report SYCM_API_CLASSIFICATION_MANAGR to generate the partner JSON file.
    3. Ensure the filename follows the format: objectClassifications_NAMESPACE.json.
    4. Submit the file via a Pull Request to be included in the src/partner folder of this repository.
  6. Requirements for ATC Cloud Readiness Checks

    main

    To ensure the ATC checks function correctly, the following SAP Notes and configurations are required:

    Cloud Readiness Approach:

    • Note 3284711 (ATC Check for Github Repo)
    • Note 3377462 (Fix error in ATC Check)
    • Note 3507814 (Own released objects support)

    Clean Core Approach (SAP Cloud ERP Private):

    • Note 3449860 (Classic APIs support)
    • Validate SimplificationitemDB using transaction SYCM (Menu: Simplification Database -> Show Information) following Note 2241080.
    • Note 3710789 (Function group fix)

    General Requirements:

    • SSL Setup: Ensure SSL is configured to allow the S/4 system to access Git via ATC. See Note 3582797 if SSL handshake fails.
    • Clean Core Check (Since August 2025): Implement Note 3565942 for ATC Checks "Usage of APIs" and "Allowed Enhancement Technologies".
  7. Configure ATC for SAP Cloud ERP Private

    main

    For SAP Cloud ERP Private (or on-premise) environments, use the specific JSON files that include the PCE string in the filename to ensure compatibility with your release version.

    1. Activate the ATC check "Clean Core" -> "Usage of APIs (Cloudification Repository)" in your check variant.
    2. In the check attributes, enter the URL for the latest version or a specific release version.

    Example URLs:

    • Latest: https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfo_PCELatest.json
    • Specific Release (e.g., 2025 FPS00): https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfo_PCE2025.json
    ### Target product SAP Cloud ERP Private
    1. Activate in your ATC check variant the check "Clean Core" -> Usage of APIs (Cloudification Repository)
    2. In the attributes of the check enter the URL to this git repository e.g https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfo_PCELatest.json
  8. Eject the project configuration

    main

    If you need full control over the underlying build tools (webpack, Babel, ESLint, etc.), you can use npm run eject.

    Warning: This is a one-way operation. Once you eject, you cannot go back.

    This command removes the single build dependency and copies all configuration files and transitive dependencies directly into your project. While all other commands will still work by pointing to the copied scripts, you will be responsible for managing the configuration yourself.

    npm run eject
  9. Use FilterContext to manage API object filtering

    main

    The FilterContext provides a React context for managing and applying filters to API objects within the Cloudification API Viewer. It allows you to access available filter categories (like states, objectTypes, softwareComponents, etc.) and apply a filtering function to a dataset.

    To use it, wrap your component tree in the FilterProvider. Components within this tree can then consume the context via useContext(FilterContext) to:

    1. Access lists of available filter values (e.g., objectTypes).
    2. Access currently active filters (e.g., objectTypesFilter).
    3. Update active filters using provided dispatch functions (e.g., setObjectTypesFilter).
    4. Apply filters to a list of ObjectElement items using handleFilter.
    import { useContext } from 'react';
    import { FilterContext } from './FilterProvider';
    
    const MyComponent = () => {
      const { objectTypes, objectTypesFilter, setObjectTypesFilter, handleFilter } = useContext(FilterContext);
    
      // Example: Applying the current filters to a list of data
      const filteredData = handleFilter(myData);
    
      return (
        // Render UI using objectTypes, objectTypesFilter, etc.
      );
    };
  10. Configure the DataProvider in a React application

    main

    The DataProvider component acts as the root provider for the API viewer. It manages URL synchronization (via react-router-dom search params), file loading, and product/release state.

    Wrap your application components with <DataProvider> to enable access to the API data via DataContext.

    import { DataProvider } from './providers/DataProvider';
    
    function App() {
      return (
        <DataProvider>
          <YourAppComponents />
        </DataProvider>
      );
    }