on 04-22-2010 10:57 AM
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.
Hi Kumar,
Can you please post the ST22 dump and the call stack?
Thanks,
Anand
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Paste your code.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
User | Count |
---|---|
95 | |
11 | |
11 | |
10 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.