Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 8989

Decoupled class for Assurance sociale (FR) (CL_HRPA_INFOTYPE_0064)

$
0
0

Hi gurus,

 

I have just posted a SAP OSS note for wrong coding in method SPECIFIC_INITIAL_COMPUTATIONS of class CL_HRPA_INFOTYPE_0064.

 

It seems there is an error in the logic syntax in found at line 139 (index = sy-index - 1.) where an index value is being evaluated from sy-index value in a loop statement evaluating a

standard table in order to build names of variables (ORGxx and COTxx to be exact).

 

Inconsistent code within context:


  LOOP AT tab_default_model    INTO wa_default_model    FROM 2.
*   Build names of variables ORGxx and COTxx.    index = sy-index - 1.
*   Add leading zero.    UNPACK index TO index.    CONCATENATE c_generic_org index INTO organization.    CONCATENATE c_generic_cot index INTO contribution.    ASSIGN COMPONENT organization OF STRUCTURE <p0064> TO <organ>.    ASSIGN COMPONENT contribution OF STRUCTURE <p0064> TO <contrib>.    <organ>   = wa_default_model-value1.    <contrib> = wa_default_model-value2.  ENDLOOP.

Now I think sy-index value has no relation to a table line in a loop statement. The LOOP AT statement sets system field sy-tabix to the table index of the current table line therefore leaving sy-index to its original value.


Is my original analysis wrong?


In my current case, value ended up equal to 0 causing a runtime error after trying to give a value to <organ> where there is no evaluation of success after instruction ASSIGN COMPONENT.


While reviewing standard code I also have found inconsistencies in reading infotype 0008 (with abap_false specified as subtype!!!) in the same method.


  CALL METHOD a_read_infotype->read_single    EXPORTING      tclas         = tclas      pernr         = <p0064>-pernr      infty         = '0008'      subty         = space      objps         = space      sprps         = if_hrpa_read_infotype=>unlocked      begda         = default_begda      endda         = high_date      mode          = if_hrpa_read_infotype=>first_intersecting_record      no_auth_check = true    IMPORTING      pnnnn         = p0008      data_exists   = data_exists.

I fill coding is a bit poor so I am wondering how many clients are using this class out there in a productive environment? I also wonder if I have to expect the same code quality in other standard object (international and country specific) belonging to the decoupled infotype framework.

 

I have made a client copy of CL_HRPA_INFOTYPE_0064 class with the correct abap coding to solve my issue while SAP replies.

 

Cheers.


Viewing all articles
Browse latest Browse all 8989

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>