cancel
Showing results for 
Search instead for 
Did you mean: 

Assert Condition Violated Dump

former_member192971
Participant
0 Kudos

Hello Experts , 

I ran into an issue while generating Runtime Objects for a project in SEGW and getting Runtime Dump soon after mapping the data source to GetEntity and GetEntityset methods . I Created a Data Model for an RFC and it is having the code as below.  Log file attached with this discussion .

Could you please suggest a solution for the problem occured.

Function Module Code:

DATA : im_date TYPE p0001-begda,

           it_status TYPE STANDARD TABLE OF zso_msg ,

           wa_status TYPE zso_msg,

           w_output TYPE zso_msg,

           t_date TYPE dats,

           g_date TYPE dats,

           days(2) TYPE c,

          month(2) TYPE c,

          year(4) TYPE c,

          date_p(10) TYPE c, "Past Date

          date_c(10) TYPE c. "Current Date


   im_date sy-datum.


CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

     EXPORTING

       date      = im_date "SY-DATUM

       days      = im_days

       months    = '0'

       signum    = '-'

       years     = '0'

     IMPORTING

       calc_date = t_date"Past History Date


RANGES : s_date FOR g_date .

   s_date-low = t_date ."date_p .

   s_date-high = im_date ."date_c.

   s_date-sign = 'I' .

   s_date-option = 'EQ'.

   APPEND s_date .


SELECT mandt                    "Client

              functioncall            "Type of Posting

              customer               "Customer Number

              po_num_cust         "Customer purchase order number

             salesorder_num       "Sales and Distribution Document Number

             date_c                    "Field of type Dats

   FROM zso_msg

     INTO TABLE it_status

WHERE customer = customer

     AND date_c BETWEEN s_date-low AND s_date-high .


Appreciate your help.



Thanks.



Accepted Solutions (1)

Accepted Solutions (1)

former_member187859
Participant
0 Kudos

Could you post the definition of the function module you've created?  As in all the import/export fields and their types.  Does this FM you've created live in the GW hub system or in some other business suite system?

former_member192971
Participant
0 Kudos

Hi Paul ,

This Function Module is in Hub system itself . And below you can see the Parameters defined .

Function Module Def :

Importing :

CUSTOMER TYPE  VBAK-KUNNR

IM_DAYS    TYPE  T5A4A-DLYDY

And an Output table with a defined structure.

              mandt                  type  MANDT     "Client

              functioncall         type  CHAR10  "Type of Posting

              customer             type  KUNNR    "Customer Number

              po_num_cust     type  BSTKD    "Customer purchase order number

             salesorder_num type  VBELN    "Sales and Distribution Document Number

              date_c                   type  dats      .  "Field of type Dats

Thanks.

former_member187859
Participant
0 Kudos

Sorry, I'm a little confused.  Does your function module live in ECC or in a separate GW system - or is ECC the GW system as well?

The reason I ask is that the code is dumping as though it doesn't understand "T5A4A" in some way.  In my setup, the GW hub system doesn't have a table T5A4A, it only exists in ECC.  

former_member192971
Participant
0 Kudos

Hi Paul ,

Small correction , We have ECC and Gateway in a single system i.e Embedded deployment . And I am able to access the table T5A4A . Even though I am able to access the table , it's throwing dump .

Thanks.

former_member187859
Participant
0 Kudos

I think I just figured out the issue.  You might have to submit an incident/OSS for this, but I suggest a workaround below. 

The code that dumped is in class /IWBEP/CL_IFL_TYPE_ANALYZER, method PROCESS.  The ASSERT failed because lr_root is initial.  That object is instantiated in the preceding CASE statement, which is based on the variable ld_ddobjtype. 

In this case, at runtime ld_ddobjtype is 'POOL', because T5A4A is a pooled table.  The CASE statement in the PROCESS method doesn't have a branch for 'POOL', so lr_root is never instantiated.  That's why the assert is failing. 

As a workaround, you could probably choose a different field reference for the IM_DAYS parameter - anything that has a NUMC with length of 2 should do the trick. 

Hope this helps. 

former_member192971
Participant
0 Kudos

Paul , I figured out the issue . Yes exactly as you said the lr_root is not getting instantiated . And I changed the reference for the field accordingly which is acceptable .

Thanks.

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Paul,

I am also getting same dump on the same line as Uday got. But in my case i am using standard FM SD_SALESDOCUMENT_CREATE, So how can change the reference of standard function module?

I am getting the value 'CLUSTER' in the filed ld_ddobjtype at run time, this is with reference to table KONV. What are the possibilities  that i can overcome this dump. Please help me. Please let me know if want any more info from me.