cancel
Showing results for 
Search instead for 
Did you mean: 

Reg dump on event in WDA

former_member186491
Contributor
0 Kudos

Hi,

I've developed one view to show the Invoice-No. in ALV. One column of that ALV - VBELN - has been made as LINK to read the click event. Clicking on this was fetching respective smartforms in other view. Earlier, this was running fine.

But, one of our team-mate has done some editing and does not remember all those. Now, when we run the application, ALV for Invoice-No are coming up with hyperlink created on VBELN. But, when we click on that VBELN, it gives dump stating as follows -

Error analysis

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_REF_IS_INITIAL', was not

caught in

procedure "ONCLICK" "(METHOD)", nor was it propagated by a RAISING clause.

Since the caller of the procedure could not have anticipated that the

exception would occur, the current program is terminated.

The reason for the exception is:

You attempted to use a 'NULL' object reference (points to 'nothing')

access a component.

An object reference must point to an object (an instance of a class)

before it can be used to access components.

Either the reference was never set or it was set to 'NULL' using the

CLEAR statement.

Although, I tried to debug and what I can get from this is -- onclick event is not being read because of the lack of object reference. However, parameter for WDEVENT having associated type CL_WD_CUSTOM_EVENT and R_PARAM having type IF_SALV_WD_TABLE_CLICK been declared in the view. What else is missing..?

Your guidelines are required.

Thanks.

Kumar Saurav.

Accepted Solutions (0)

Answers (2)

Answers (2)

anand_nidamanuru
Active Participant
0 Kudos

Hi Kumar,

Can you please post the ST22 dump and the call stack?

Thanks,

Anand

Former Member
0 Kudos

Paste your code.

former_member186491
Contributor
0 Kudos

Hi,

Here is my code --

 METHOD ONCLICK .
    DATA LO_ND_VBRKTAB_2 TYPE REF TO IF_WD_CONTEXT_NODE.
    DATA LO_EL_VBRKTAB_2 TYPE REF TO IF_WD_CONTEXT_ELEMENT.
    DATA LS_VBRKTAB_2 TYPE WD_THIS->ELEMENT_VBRKTAB_2.

*   navigate from <CONTEXT> to <VBRKTAB_2> via lead selection
    LO_ND_VBRKTAB_2 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_VBRKTAB_2 ).

*   @TODO handle not set lead selection
    IF LO_ND_VBRKTAB_2 IS INITIAL.
    ENDIF.

*   get element via lead selection
    LO_EL_VBRKTAB_2 = LO_ND_VBRKTAB_2->GET_ELEMENT(  ).

*   @TODO handle not set lead selection
    IF LO_EL_VBRKTAB_2 IS INITIAL.
    ENDIF.



*Saurav's new approach to test diff-click handling

  DATA : L_X(1) VALUE 'X'.
  DATA: LV_TEXT TYPE CHAR3,
  LV_SYUCOMM TYPE CHAR1,
  LS_PDF TYPE XSTRING,
  LV_FM_NAME TYPE RS38L_FNAM,
  LV_CONTROL_PARAMETERS TYPE SSFCTRLOP,
  LV_OUTPUT_OPTIONS TYPE SSFCOMPOP,
  LV_SSF_OUTPUT TYPE SSFCRESCL,
  LT_OTFDATA TYPE TABLE OF ITCOO.


  DATA LO_ND_ZBAPI_FMVBRK TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA LO_ND_CHANGING TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA VBRP TYPE STANDARD TABLE OF VBRP.
  DATA: THEAD TYPE STANDARD TABLE OF THEAD,
        I_THEAD TYPE TABLE OF THEAD INITIAL SIZE 0.
  DATA I_TLINE TYPE STANDARD TABLE OF TLINE.
  DATA: I_VBRK TYPE TABLE OF VBRK,         "Saurav
      I_VBRP TYPE STANDARD TABLE OF VBRP,           "Saurav
      I_KNA1 TYPE STANDARD TABLE OF KNA1,           "Saurav
      WA_KNA1 LIKE LINE OF I_KNA1,                  "Saurav
      WA_VBRP LIKE LINE OF I_VBRP,                  "Saurav's new approach to provide condition for factory/Depot Invoice
      WA_VBRK LIKE LINE OF I_VBRK.                  "Saurav
  DATA:FLAG1 TYPE C.                                "Saurav


*  Saurav's addition
    DATA LO_ND_N_LOGIN TYPE REF TO IF_WD_CONTEXT_NODE.
    DATA LO_EL_N_LOGIN TYPE REF TO IF_WD_CONTEXT_ELEMENT.
    DATA LS_N_LOGIN TYPE WD_THIS->ELEMENT_N_LOGIN.
    DATA LV_KUNNR LIKE LS_N_LOGIN-KUNNR.
*   navigate from <CONTEXT> to <N_LOGIN> via lead selection
    LO_ND_N_LOGIN = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_N_LOGIN ).

*   get element via lead selection
    LO_EL_N_LOGIN = LO_ND_N_LOGIN->GET_ELEMENT(  ).

*   get single attribute
    LO_EL_N_LOGIN->GET_ATTRIBUTE(
      EXPORTING
        NAME =  `KUNNR`
      IMPORTING
        VALUE = LV_KUNNR ).

***Testing Diff-Clicks Handling
**BREAK-POINT.
**FIELD-SYMBOLS: <L_VALUE> TYPE ANY.
**ASSIGN R_PARAM->VALUE->* TO <L_VALUE>. " now <l_value> will contain the value of VBELN
**MOVE <L_VALUE> TO LS_VBRKTAB_2-VBELN.
**
***Testing Diff-Clicks Handling ends


* Saurav's addition ends

  DATA LV_VBELN LIKE LS_VBRKTAB_2-VBELN.
* navigate from <CONTEXT> to <VBRKTAB_2> via lead selection
  LO_ND_VBRKTAB_2 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_VBRKTAB_2 ).

* @TODO handle not set lead selection
  IF LO_ND_VBRKTAB_2 IS INITIAL.
  ENDIF.

* get element via lead selection
  LO_EL_VBRKTAB_2 = LO_ND_VBRKTAB_2->GET_ELEMENT(  ).

* @TODO handle not set lead selection
  IF LO_EL_VBRKTAB_2 IS INITIAL.
  ENDIF.

* alternative access  via index
* lo_el_vbrktab_2 = lo_nd_vbrktab_2->get_element( index = 1 ).
* @TODO handle non existant child
* IF lo_el_vbrktab_2 IS INITIAL.
* ENDIF.

* get single attribute
  LO_EL_VBRKTAB_2->GET_ATTRIBUTE(
    EXPORTING
      NAME =  `VBELN`
    IMPORTING
      VALUE = LV_VBELN ).

*Testing Diff-Clicks Handling
BREAK-POINT.
FIELD-SYMBOLS: <L_VALUE> TYPE ANY.
ASSIGN R_PARAM->VALUE->* TO <L_VALUE>. " now <l_value> will contain the value of VBELN
MOVE <L_VALUE> TO LS_VBRKTAB_2-VBELN.

*Testing Diff-Clicks Handling ends

* Test Plug Firing
  WD_THIS->FIRE_PL_INV_PDF_PLG(
  ).
* Test Plug Firing ends

SELECT * FROM VBRK INTO TABLE I_VBRK WHERE VBELN EQ LS_VBRKTAB_2-VBELN.  "Saurav
  LOOP AT I_VBRK INTO WA_VBRK.
    SELECT * FROM VBRP INTO TABLE I_VBRP WHERE VBELN EQ LS_VBRKTAB_2-VBELN."Saurav
    LOOP AT I_VBRP INTO WA_VBRP.                                          "Saurav
    IF WA_VBRP-WERKS = 'BAGF'  "Saurav's new approach to provide condition for factory/Depot Invoice
    OR WA_VBRP-WERKS = 'BHWF'
    OR WA_VBRP-WERKS = 'GWAF'
    OR WA_VBRP-WERKS = 'NALF'.  "Saurav's new approach to provide condition for factory/Depot Invoice
  SELECT SINGLE * FROM KNA1 INTO WA_KNA1 WHERE KUNNR = LS_N_LOGIN-KUNNR.   "Saurav

BREAK-POINT.
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME           = 'ZFACTORY_INVOICE1'
    IMPORTING
      FM_NAME            = LV_FM_NAME
    EXCEPTIONS
      NO_FORM            = 1
      NO_FUNCTION_MODULE = 2
      OTHERS             = 3.
  IF SY-SUBRC <> 0.
* Error MESSAGE
  ENDIF.

ELSE.     "Saurav's new approach to provide condition for factory/Depot Invoice
  IF WA_VBRP-WERKS = 'BAGD'
  OR WA_VBRP-WERKS = 'BHWD'
  OR WA_VBRP-WERKS = 'CHNI'
  OR WA_VBRP-WERKS = 'DLHI'
  OR WA_VBRP-WERKS = 'GUHT'
  OR WA_VBRP-WERKS = 'GWAD'
  OR WA_VBRP-WERKS = 'HYDD'
  OR WA_VBRP-WERKS = 'KOLK'
  OR WA_VBRP-WERKS = 'MUMB'
  OR WA_VBRP-WERKS = 'NALD'
  OR WA_VBRP-WERKS = 'NODA'.
SELECT SINGLE * FROM KNA1 INTO WA_KNA1 WHERE KUNNR = LS_N_LOGIN-KUNNR.  "Saurav's new approach to provide condition for factory/Depot Invoice
BREAK-POINT.
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME           = 'ZDEPO_INVOICE2'
    IMPORTING
      FM_NAME            = LV_FM_NAME
    EXCEPTIONS
      NO_FORM            = 1
      NO_FUNCTION_MODULE = 2
      OTHERS             = 3.
  IF SY-SUBRC <> 0.
* Error MESSAGE
  ENDIF.
ENDIF.
ENDIF.  "Saurav's new approach to provide condition for factory/Depot Invoice
ENDLOOP.  "Saurav's new approach to provide condition for factory/Depot Invoice


* Set relevant control parameters
  LV_CONTROL_PARAMETERS-DEVICE = 'PRINTER'.   "Printer Device      "Saurav
  LV_CONTROL_PARAMETERS-GETOTF = L_X. "OTF output
  LV_CONTROL_PARAMETERS-NO_DIALOG = ' '. "Saurav L_X. "No print dialog
  LV_CONTROL_PARAMETERS-PREVIEW = ' '.  "SPACE.  "No preview       "Saurav
* Set relevant output options
  LV_OUTPUT_OPTIONS-TDNEWID = L_X. "Print parameters,
  LV_OUTPUT_OPTIONS-TDDELETE = ' '. "SPACE. "Print parameters,     "Saurav


SELECT * FROM VBRP INTO TABLE I_VBRP         "Saurav
    WHERE VBELN = LS_VBRKTAB_2-VBELN.        "Saurav
  BREAK-POINT.
  CALL FUNCTION LV_FM_NAME
  EXPORTING
* ARCHIVE_INDEX * ARCHIVE_INDEX_TAB *
*ARCHIVE_PARAMETERS control_parameters = lv_control_parameters
* MAIL_APPL_OBJ * MAIL_RECIPIENT * MAIL_SENDER
  CONTROL_PARAMETERS = LV_CONTROL_PARAMETERS
  OUTPUT_OPTIONS = LV_OUTPUT_OPTIONS
  USER_SETTINGS = ' ' "SPACE   "Saurav
  I_VBRK = WA_VBRK              "Saurav
*  I_VBRK = LS_VBRKTAB_2-VBELN   "Saurav
  FLAG1 = FLAG1                "Saurav
  IMPORTING                              "Saurav
* DOCUMENT_OUTPUT_INFO
*  JOB_OUTPUT_OPTIONS
 JOB_OUTPUT_INFO = LV_SSF_OUTPUT        "Saurav
TABLES                                  "Saurav
  I_VBRP = I_VBRP                         "Saurav
  I_THEAD = I_THEAD                       "Saurav
  I_TLINE = I_TLINE                       "Saurav
EXCEPTIONS
  FORMATTING_ERROR = 1
  INTERNAL_ERROR = 2
  SEND_ERROR = 3
  USER_CANCELED = 4
  OTHERS = 5
  .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


  REFRESH LT_OTFDATA.
  LT_OTFDATA[] = LV_SSF_OUTPUT-OTFDATA[].
  CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
    EXPORTING
      I_OTF                    = LT_OTFDATA
    EXCEPTIONS
      CONVERT_OTF_TO_PDF_ERROR = 1
      CNTL_ERROR               = 2
      OTHERS                   = 3.
  .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  DATA: L_DUMMY TYPE STANDARD TABLE OF TLINE,
  PDF_DATA TYPE XSTRING,
  PDF_SIZE TYPE I.
  CLEAR: PDF_DATA, PDF_SIZE.

* convert otf to pdf
  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      FORMAT                = 'PDF'
    IMPORTING
      BIN_FILESIZE          = PDF_SIZE
      BIN_FILE              = PDF_DATA
    TABLES
      OTF                   = LT_OTFDATA[]
      LINES                 = L_DUMMY
    EXCEPTIONS
      ERR_MAX_LINEWIDTH     = 1
      ERR_FORMAT            = 2
      ERR_CONV_NOT_POSSIBLE = 3
      OTHERS                = 4.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  DATA:
  NODE_PDF TYPE REF TO IF_WD_CONTEXT_NODE,
  ELEM_PDF TYPE REF TO
  IF_WD_CONTEXT_ELEMENT,
  STRU_PDF TYPE
  IG_COMPONENTCONTROLLER=>ELEMENT_N_INV_PDF ,
  ITEM_SOURCE LIKE STRU_PDF-SOURCE.


  DATA LS_N_INV_PDF TYPE WD_THIS->ELEMENT_N_INV_PDF.
  DATA LV_SOURCE LIKE LS_N_INV_PDF-SOURCE.
* navigate from <CONTEXT> to <N_INV_PDF> via lead selection
  NODE_PDF = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_N_INV_PDF ).

* get element via lead selection
  ELEM_PDF = NODE_PDF->GET_ELEMENT(  ).

* get single attribute
  ELEM_PDF->SET_ATTRIBUTE(
    EXPORTING
      NAME =  `SOURCE`
      VALUE = PDF_DATA ).



ENDLOOP.   "Saurav 

Please have alook.

Thanks.

Kumar Saurav.

anand_nidamanuru
Active Participant
0 Kudos

where exactly u r geting the dump? which line or statement?

former_member186491
Contributor
0 Kudos

Hi,

Thanks for giving me time. The issue has been resolved.

Actually, three lines had been commented out by mistake.

Anyways, thanks again.

Kumar Saurav.