Skip to Content

Remote Code Analysis in ATC – Technical Setup step by step

This is the second blog of the blog series about Remote Code Analysis in ABAP Test Cockpit (ATC).

See also blogs:

 

Technical Requirements

To use Remote Code Analysis in ABAP Test Cockpit (ATC) you need to install and configure one ATC central check system SAP_BASIS 7.51 or SAP_BASIS 7.52. Depending on how many custom objects you need to consider, SAP recommendation for system sizing is about 1 CPU and 4GB RAM per 16000 objects and day, for data volume on the DB about 400kB per object.

The systems, which you want to check in your landscape, must be on SAP_BASIS 7.00, 7.01, 7.02, 7.31, 740 or 7.50 releases.

The RFC destinations for all checked systems must be provided in the ATC central check system and RFC-stubs must be implemented in all checked systems.

Depending on your support package level you need to apply the respective SAP Notes for using ATC to perform remote analysis. See the collective SAP Note 2364916.

If you intend to run ATC for the objects in your own custom namespaces (other as Z* or Y* namespaces), you will need to register custom namespaces of the checked systems at the central ATC system.

You would also need authorizations for administrative and quality assurance activities. See Authorizations for the ABAP Test Cockpit.

 

1. Setup System Role

By setting up the system role you can specify the current system as a central check system for remote ATC checks.

Log on to the ATC central check system as ATC administrator and call transaction ATC. Under ATC Administration -> Setup double-click the Set System Role entry:

Switch to change mode, choose ATC Checks by Object Providers Only option and click Save button.

This option defines that the current system takes the role of the ATC central check system and ATC is used to analyze development objects in remote systems.

 

2. Define RFC destinations for checked systems

Use transaction SM59 to create RFC destinations for each ABAP system, which will be checked in the current central ATC system.

 

3. Maintain Object Providers

While ATC check runs in the central system, the ATC framework uses RFC connections to the remotely checked systems to extract a model from the custom code for analysis. Object Providers define these RFC connections and therefore they must be configured for usage.

Every Object Provider must be assigned to a System Group, therefore before you configure Object providers, you need to create System Groups. A System Group contains multiple SAP systems of the same SAP release. It can be helpful to define more than one System Group (e.g. for each subsidiary of your company with its own custom code). In the central check system ATC exemptions are valid only for the whole relevant System Group.

To create a System Group, in the ATC transaction, under ATC Administration -> Setup double-click Maintain Object Providers and then double-click the item System Groups for selection. Switch to change mode, click the New Entries button in the toolbar and enter an ID and short Description for the new system group to be added.

Now you can maintain Object Providers. Select RFC Object Providers by double-clicking, switch to change mode and click the New Entries button. Specify ID, Description, System Group and the valid RFC destination to the remote SAP system. Repeat these steps for each Object Provider you want to set up.

Correction Systems define RFC connections which can be used to view and change the source code.

 

4. Configure Run Series

Now you need to configure ATC run series for remote ATC checks. In the ATC transaction under ATC Administration -> Runs double-click Schedule Runs and click the Create button in the toolbar. Enter the name for the series in the dialog and click Enter. Specify the data for the new series configuration: Description, Check Variant (global Code Inspector Variant), Object Provider and Object Selection (choose the packages or the object set in the remote system.). Save your configuration.

 

5. Schedule Run Series

Now you can schedule ATC check run in a central system to check remote systems. In the ATC transaction, in der Overview, under ATC Administration -> Runs double-click the Schedule Runs entry. Select the run series in question from the list with run series and click the Schedule button in the toolbar. Choose Execute (or F8) to run ATC checks.

 

6. View Results

After successful execution of the ATC run, the check results from the remotely checked SAP systems will be available in the ATC central check system for analysis.

Now you can logon to ATC central check system as developer, and view the ATC results in the ATC Result Browser (switch to the ATC Result Browser in the SE80).

In the ATC Result Browser, choose Results by system group, select the relevant system group and display its ATC run series.

Double-clicking the node of the run series allows to view the list of findings. Double-click a finding to view the details. And now you can examine the finding in detail, access the related documentation with information on how to correct it, navigate to the relevant source code line and correct the finding or request an exemption. That’s it.

 

60 Comments
You must be Logged on to comment or reply to a post.
  • This will create a one time run. However what if you want this to run every 30 days? How would you automate this so that you would not have to manually schedule this to run each time?

  • Dear Olga,

     

    Thank you presenting a series of detailed step by step ATC set up.

    We have Evaluation system set up done and SAP Notes implemented on source ECC system. But when we run remote ATC check from evaluation system, we observe considerable number of tool failures. Along with priority 1,2 & 3, the number in tool failure is in hundreds. The error listed is primarily  “Prerequisites not met”.

    Could you please let us know what action needs to be taken to address this issue.

    • Hi Ilyas,

      Did you also process the manual post-implementation steps mentioned in the SAP Notes you applied? E.g., did you execute program RS_ABAP_INIT_ANALYSIS as menitoned in SAP Note 2270689?

      Michael

       

      •  

        Hi Michael,

         

        Yes I ran program RS_ABAP_INIT_ANALYSIS in check system. If I were to run the program again, the message says “Tables have already been created”.

        Our check system is SAP_BASIS 701. So I don’t know if there needs to be any additional notes applied. Could you please suggest..

         

        FYI, I can confirm below SAP notes are applied in check system:

        2270689, 2011106.

         

        Below manual activity is also done:

        Create the function group SABP_COMP_PROCS_E in the package SABP_COMPILER (the master language is German – DE).
        Activate the whole function group immediately after the creation.

         

  • Hi,

    i already implement this solution on different sap servers, but with one i had aproblem that I always get the exception CX_SY_IMPORT_MISMATCH_ERROR.

    Code:
    import SYMBOLS = P_SYMBOLS CHECKSUM = P_CHECKSUM from data buffer L_SCR_ABAP_SYMB-CONTENT accepting padding.

    Is there any solution for this problem? I couldn’t find something at SDN or in support.sap.com

  •  

    Hello,

    after a hard and long way to bring this bird to fly we received our first scan result. But a lot of tool failures attend the scan result.

    One tool error I do not understand:

    It seams that the name of report is not forwarted to the message. There is a blank between the dot (.) and “program”

    The note 2270689 is already implemented.

    Also the message type (others) and the check title (unavailable) are not really precise.

     

    But which exception or runtime error raise this message? What is the cause for this error? How can I analysis this?

     

    Many thanks in advance.

     

    with kind regards

    Stephan Scheithauer

      •  

        Hello Michael,

         

        thanks for your reply Michael.

         

        Yes, the report was executed. At least I could see, that the tables were created and also filled.

        When I start the report again, I get the message, that the report did already run.

         

        Could the report RS_ABAP_INIT_ANALYSIS be really the reson why I did not receive remote data?

        Other reports was checked correctly (at least over 2000). So this is not a general issue but I want to understand the issue and how to fix it so that I can check the rest of the reports.

         

        Thanks in advance

         

        With Kind regards

        Stephan Scheithauer

        • Hello Stephan,

           

          did you find a solution? I encounter the same issue and would like to know how to analyze the messages with check title ‘Unavailable’.

           

          Best regards

          David

  • Hello there,

    I have 2 questions re the setup of such a ATC system and performing the custom code check for S/4 adaptation.

    1. Am I correct in assuming that no HANA database is required for the ATC system?
    2. If the ATC system is running using a cloud hosted platform (Azure, AWS, etc), are any parts of the analysed custom code transferred from the target system to the cloud-based ATC system? This is particularly relevant in terms of security and Intellectual Property (IP).

    I would be grateful for any clarifications!

    Thanks,

    Michael

    • Hi Michael,

      1. yes, HANA database is not required for the central ATC system.

      2. custom code is not transferred and is checked by the central ATC system remotely (RFC).

      Regards,

      Olga.

      • Hi Olga,

         

        Thanks for your response.

        If the ATC check is done remotely without the (even temporary) transfer of custom code, doesn’t this mean that the check might as well be done in the target system itself?

        Sorry to be specific here, but from the viewpoint of where the Intellectual Property (IP) even temporarily resides -esp when the ATC central system is cloud-based- is important to us.

         

        Thank you!

        M

        • Hi Michael,

          the ATC check is RFC-based, it is executed in the ATC central system for remote systems, the underlying Code Inspector check variant must consist of RFC-based checks only. See also Remote ATC checks in the SAP Help.

          Best regards,

          Olga.

  •  

    Hi Olga,

    We have configured the central ATC system – SAP_BASIS 7.52 and able to get S4H ATC violations from checked system (SAP_BASIS 7.40, SP17). Applied notes as stated in #2364916. Any how we are getting few “Check Failures” message along with ATC result. Can you plz suggest how it can be remediated.

    In addition – if we need to run ATC on code base in system configured as central system how can it can be performed. Do we need to define current system in object provider?

     

    Thanks & Regards

    Rajesh

    • Hi Rajesh,

      did you also process all manual post-implementaton steps as stated in the applied SAP notes?

      You cannot check the ATC central check system itself with the remote ATC infrastructure. You need to check it locally (switch the system role to “Local ATC Checks only”).

      Regards,

      Olga.

      • Thanks Olga for responding,

        We are getting tool failure for only 8 objects. Yes we had implemented manual corrections as stated in notes. Only 2270689 is pending as we are not able to download this note. Is this can be reason for tool failure?

        Thanks & Regards

        Rajesh Dadwal

        •  

          Thanks Olga for responding,

          We are getting tool failure for only 8 objects. Yes we had implemented manual corrections as stated in 2364916. Only 2270689 is pending in checked system as we are not able to download this note.  But report RS_ABAP_INIT_ANALYSIS is available and we executed it.

          Thanks & Regards

          Rajesh Dadwal

          • Hi Rajesh,

            yes, the 2270689 is relevant for RFC extractor, it must be implemented in the checked system. See “Technical requirements” chapter of the blog.

            Regards,

            Olga.

          • Thanks Olga,

            As you suggested, Now we have enabled remote ATC check. The remote ATC output received was not consistent with results earlier extracted using custom code migration worklist (Using – SYCM*) . Result from remote ATC are fewer in violation count & SAP notes #.

            Can you suggest what can be the possible reason. Right now remote ATC is not giving all results as compare to Custom code migration worklist.

             

            Thanks & Regards

            Rajesh

             

          • Hi Rajesh,

            generally it should not happen.

            Maybe you have your own custom namespaces (other as Z* or Y* namespaces) to be checked with ATC? Then you need to register custom namespaces of the checked systems at the central ATC system.

            Otherwise if you could provide a concrete example of the findings detected with SYCM and not found with remote ATC, please open the OSS ticket. It must be looked at in detail.

            Hope this helps.

            Best Regards,

            Olga.

          • Hi Olga,

            Yes, we have custom namespace. I can only see 2 namespace in this report which are not registered but anyhow Remote ATC is still showing the violation from these unregistered packages.

            • Remote ATC result-set is showing more violations count coming from couple packages
            • SYCM* result-set – showing less violation count coming from many packages.

            One question – customer name space role is ‘C’ in current source system.It can be the possible issue? and need to be changed to ‘P’. But these settings are same for both approach. Please suggest.

             

            Thanks & Regards

            Rajesh

          • Hi Olga,

             

            This seems to be possible issue. When we are running ATC remotely it is only getting violations for package marked with role (P) in sub-system. All these packages are for custom development (Non Y* / Z*). However with SYCM extract based approach it is giving simplification violation.

            I have changed role for few packages and now its giving results thou ATC run. Still output is not exact same as compared to SYCM.

            I checked few programs which were giving issues in SYCM but if run ATC on same program in Central system locally (without remote ATC) it is not giving any violations.

            As ATC variants is recommended approach, so believe better is trust on ATC results.

             

            Thanks & Regards

            Rajesh Dadwal

  • Hi,

    I could make all the configurations and installed many notes. So far so good, I also could check the test remote system (C13) with Z check variants.

    But when I select one of these variants FUNCTIONAL_DB or PERFORMANCE_DB, then I get a syntax error:

    But: When I switch off the first 4 of 5 checks in this variant, then the error disappears.

    I was searching the SAP knowledge database and also the internet, but nothing helps me to solve this problem.

    Can you explain and solve for me what might be the problem?

    Regards, Frowin

  • Hi,

    We have many SAP systems in the company on different SAP_BASIS levels: 7.11, 7.31, 7.40.

    Currently we could establish remote ATC connections to systems with SAP_BASIS 7.31 and 7.40, and also we could run remote ATC tests successfully.

    Unfortunately in the technical requirements is written SAP_BASIS 7.11 is no supported.

    These systems with SAP_BASIS 7.11 are our main system with target to do remote ATC, because we will upgrade for SAP S4/HANA in near future. Remote ATC would be a great help to do this Job.

    Questions:

    • Will this SAP_BASIS 7.11 level be supported in the near future?
    • What is the reason for not being supported for remote ATC? But SAP_BASIS 7.02 is being supported!

    Any help for that?

    Regards

    Frowin

    • Hi Frowin,

      unfortunately, the SAP_BASIS 7.11 is not supported due to the technical feasibility in this particular release. Please consider, 7.11 is not the underlying release for SAP ERP and therefore the SAP S/4HANA conversion path doesn’t exists for 7.11 and consequently S/4HANA related custom code checks with remote ATC don’t make any sense.

      Best Regards,

      Olga.

  • Hello,

    we have set up an ATC Central System (SAP_BASIS 7.52). With this central ATC we want to check a remote system for S/4 HANA readiness.
    Which Variant do i need for the Checkrun? I found the following variants:
    S4HANA_READINESS_REMOTE and S4HANA_READINESS_1709 , which is the right one?

    As the Object Provider i use the remote system.

     

    Gruß
    Toni

     

    • Hi Toni,

      the S/4HANA release specific variants check for the simplification items of the corresponding S/4HANA releases. For example the S4HANA_READINESS_1610 checks all relevant simplification items for S/4HANA 1610 and so on.

      If you need to check for S/4HANA 1709 readiness, you can use either S4HANA_READINESS_REMOTE or S4HANA_READINESS_1709. Both would be correct.

      Viele Grüße,

      Olga.

      • Thanks,

        i did now the remote S/4 HANA Checks with the ATC and also with the SCI.

        I wonder why do I get different results?

        ATC = 168 “Errors”

        SCI = 25 “Errors”

         

        Gruß
        Toni

          •  

            OK,

            thank you for the Info, that ATC should be used if possible.

            One Question again. During the upgrade process to S/4 HANA via SUM, the code will also be checked, right?
            Which mechanism does the SUM use?

             

            Gruß

            Toni

          • During the system conversion from ERP to S/4HANA (we call it system conversion, not an upgrade, because S/4HANA is a different product family) the SUM executes different tasks: database migraton, software update to S/4HANA, tables content conversion to the S/4HANA data model, but doesn’t check custom code.

            If you mean SAP Readiness Check, which runs in the preparation phase before SUM, then it uses Code Inspector and Custom Code Analyzer (SYCM), but delivers only high- level overview over the affected custom code by the S/4HANA simplifications, for a deep-dive analysis still the remote ATC must be used.

            Regards,

            Olga.

  • Hi Olga,

    Just wanted to say thanks for this informative blog.

    I would like to ask if could we use a SAP CAL system as the central ATC check system or do we have to have to install a standalone SAP NetWeaver system (SAP_BASIS >=7.51) as we only require to do the S4 HANA checks as a one-off exercise.

    if we can use a SAP CAL system do you have any links which I can reference.

    Thanks, Raj

     

  • Hi Olga/All

    I’m facing an issue with viewing code in the remote system.

    For the Object Provider I have configured an RFC Destination with a Service User and in the Correction Systems I have configured an RFC Destination with a normal dialog user (me).

    I am assuming that when I try to view the source code of a finding then the Correction System RFC destination would be used?

    However it appears that the Object Provider is used.

    Can you confirm if my thinking is correct.

    Thanks

    Ian

     

    • Hi Ian,

      Did you try to change the target system for navigation to the correction system in the ATC result list as shown in the screenshot below?

      If you did not change this setting, the target system for navigation would be the checked system.

      Kind regard,
      Michael

      • Hi Michael

         

        No I hadn’t!  Many thanks for this. I’d obviously not seen or certainly understood the option.

        Problem solved!

         

        Cheers

        Ian

         

  • Hi Martin/All

    As a follow on question, how have you defined the user for the RFC Destination for correction system? Do you use the current user, a specified dialog type user or a system user?

     

    Thanks

    Ian

  • Hi Olga,

    Thanks for this informative blog.

    We have 3 HANA systems with NW 740 SP13, NW 750 SP003. In all these systems I want to run ATC check on MV45AFZZ to analyse the custom code written in its subroutines.Could you please elaborate on how to run the ATC check on Include MV45AFZZ in all these systems?

    Thank you

    • Hi  Saurabi,

      which SAP_BASIS version does your central ATC check system have? User exits get scanned by ATC starting with NW AS ABAP 7.52.

      Best Regards,

      Olga.

  • Thanks Olga for your response.

    I tried to run ATC check in NW 752 as well. But since package of the include MV45AFZZ is VMOD, ATC doesn’t accept it as it is SAP standard.

    • Hi Saurabi,

      actually user exit must be scanned by ATC 7.52. It sounds like a bug. Could you please open a ticket to SAP and provide details?

      Thanks and Regards,

      Olga.

  • Olga Dolinskaja

    Hi Olga,

    after switching to “block on errors” end of last week in our ATC-setup, one of our developers in Brazil ran into a rather nondescript “tool failure” error. As this caused a priority 1 finding, it prevented the transport’s release.

    When I had checked the same transport manually, no tool failure occured. After some more trial and error, plus the information from the developer that he could release his transport when logged in with language “EN” but not with “PT”, I checked if I could even login to the central system with “PT”. I couldn’t as it wasn’t one of the installed languages.

    After discussing options with my colleague from the basis team, we decided to simply set the trusted RFC-connection to default language “EN” (instead of installing multiple and not really needed additional languages in the system). That got rid of the tool failure immediately.

    How about updating what you have in the blog post, with the tip to take language(s) into account for the system- or RFC-setting?

    2. Define RFC destinations for checked systems

    Use transaction SM59 to create RFC destinations for each ABAP system, which will be checked in the current central ATC system.

    Cheers

    Bärbel

  • Hello Olga, hello everyone,

    thanks for the great step-by-step guide to the Remote ATC Check.

    We set up the ATC central check system and implemented the SAP Notes in the Remote check system. After we performed an remote ATC-Check (from the ATC central chek system), we observe a significant number of dumps:

    Syntax Error in CL_ABAP_COMP_PROCS_E=============CP_ABAP_COMP_PROCS_E==========CP
    Note 2270689 (running program RS_ABAP_INIT_ANALYSIS) and Note 2527903 solved the dump.

    When we now start an Remote-ATC-Check we get some tool failtures with exception: CX_SY_IMPORT_MISMATCH_ERROR.


    I couldn’t find any suitable notes for this.

    The SCI Code Inspector->Management of->Test
    Check Class “CL_CI_TEST_FIELD_EXT” of Note 2272014 exists (active) in both systems.

    Are there any further notes other than those listed in the collective note 2364916?

    Our ATC Central Check has the SAP_BASIS Version 751 0004 – SAPK-75104INSAPBASIS

    and the Remote Check System SAP_BASIS 750 0008 – SAPK-75008INSAPBASIS

     

    Many thanks

    Michael

    • Hi Michael,

      the second SAP note 2527903 must be implemented in the ATC central check system. The error indicates that this SAP note could has been implemented in the remote check system, where it brings nothing. The line number 89 of the crash speaks for it too. You also implemented SAP note 2272014 in both systems (central check ATC system and remote check system). This is only necessary in the ATC central check system.

      Best regards,

      Olga.

  • Hi Olga,

    Thanks for the suggestions and your detailed explanation on setting up ATC. It is very helpful.

     

    We have ensured the setup exactly as suggested in the note 2364916. We have downloaded & implemented note 2270689 in checked system and also executed the program RS_ABAP_INIT_ANALYSIS. Still after that we observe too many check failures in the result. My system is on SAP_BASIS 7.52 SP01. Could you please throw some insight what might have went wrong?

    Best Regards,

    Kamal.

  • Hi Olga,
    I’m a little confused about the RFC destinations.
    I would have assumed that the RFC connection of the correction system and not that of the object provider was used for navigation from the result display in the remote ATC system to the development system. However, a test shows that the provider destination is being used. Or is a fallback logic built in here?
    The system is a 752 SP0, grade 2600034 is built in.

    My idea was to set up the object provider as a named RFC destination with communication user and the correction system RFC Destination as a trusted RFC destination, since our user admins do not like to create service users and dialog users are relatively often subject to password changes. Does this work? I thought I’d found once a documentary somewhere here, but I can’t find it right now anymore.

    greetings
    Jürgen