cancel
Showing results for 
Search instead for 
Did you mean: 

Displaying a Smartform as PDF in WDA

Former Member
0 Kudos

Dear All,

I am trying to display a smartform as PDf in the web dynpro application. I am getting the below error while trying to display the smartform.

Note

The following error text was processed in the system DE5 : Function module does not exist

The error occurred on the application server MTW02SDEC01_DE5_00 and in the work process 0 .

The termination type was: ERROR_MESSAGE_STATE

The ABAP call stack was:

Function: FUNCTION_IMPORT_INTERFACE of program SAPLSUNI

Method: DATASOURCE_2_FM_PARAMS of program CL_WD_ADOBE_SERVICES==========CP

Method: CREATE_PDF_DDIC of program CL_WD_ADOBE_SERVICES==========CP

Method: CREATE_PDF of program CL_WD_ADOBE_SERVICES==========CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP

Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L7STANDARD==============CP

Please let me know does any services needs to be activated in SICF or any other problem?

Thanks,

Mugundhan

Accepted Solutions (1)

Accepted Solutions (1)

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Did you try and bind a dataSource to a static PDF generated from a SmartForm? That isn't possible. Perhaps you should tell us more about what parameter of the interactiveForm UI element you are using.

Former Member
0 Kudos

Hi Thomas,

Pleasure in receving the reply from you. I had created a node called pdf_data of cardinality 1..1, under which i had created a attribute called SOURCE of type XSTRING. i had used the below code to display the smart form.

DATA:  node_pdf_data TYPE REF TO if_wd_context_node,
         fm_name       TYPE  rs38l_fnam,
         outop         TYPE ssfcompop,
         cparam        TYPE ssfctrlop,
         tab_otf_data  TYPE ssfcrescl,
         tab_otf_final TYPE TABLE OF itcoo,

         bin_filesize  TYPE i,
         bin_file      TYPE xstring,
         pdf_tab       TYPE TABLE OF tline.

  " Get function module name for smart form
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = 'ZMG_SF_TEST'
    IMPORTING
      fm_name            = fm_name
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.

  " Get Report Format With Data From Smart Form
  outop-tdprinter   = 'LP01'.
  outop-tddest      = 'LP01'.
  cparam-no_dialog  = 'X' .
  cparam-preview    = 'X'.
  cparam-getotf     = 'X'.

  CALL FUNCTION fm_name
    EXPORTING
      control_parameters = cparam
      output_options     = outop
      user_settings      = space
    IMPORTING
      job_output_info    = tab_otf_data
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.

  " Get all data of Smartform
  tab_otf_final[] = tab_otf_data-otfdata[].


  " Convert OTF data into PDF data
  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      format                = 'PDF'
      max_linewidth         = 132
    IMPORTING
      bin_filesize          = bin_filesize
      bin_file              = bin_file
    TABLES
      otf                   = tab_otf_final
      lines                 = pdf_tab
    EXCEPTIONS
      err_max_linewidth     = 1
      err_format            = 2
      err_conv_not_possible = 3
      err_bad_otf           = 4
      OTHERS                = 5.

  " Set PDF Data to context attribute
  node_pdf_data = wd_context->get_child_node( name = 'PDF_DATA' ).
  CALL METHOD node_pdf_data->set_attribute
    EXPORTING
      value = bin_file
      name  = 'SOURCE'.


  DATA lo_window_manager TYPE REF TO if_wd_window_manager.
  DATA lo_api_component  TYPE REF TO if_wd_component.
  DATA lo_window         TYPE REF TO if_wd_window.

  lo_api_component  = wd_comp_controller->wd_get_api( ).
  lo_window_manager = lo_api_component->get_window_manager( ).
  lo_window         = lo_window_manager->create_window(
                     window_name            = 'W_PDF'
*                    title                  =
*                    close_in_any_case      = abap_true
                     message_display_mode   = if_wd_window=>co_msg_display_mode_selected
*                    close_button           = abap_true
                     button_kind            = if_wd_window=>co_buttons_ok
                     message_type           = if_wd_window=>co_msg_type_none
                     default_button         = if_wd_window=>co_button_ok
                     ).

  lo_window->open( ).

The above code works fine. Finally in the bin_file i am getting the raw data. After that i am getting the below error.

The following error text was processed in the system DE5 : Function module does not exist 
The error occurred on the application server MTW02SDEC01_DE5_00 and in the work process 0 . 
The termination type was: ERROR_MESSAGE_STATE 
The ABAP call stack was: 
Function: FUNCTION_IMPORT_INTERFACE of program SAPLSUNI
Method: DATASOURCE_2_FM_PARAMS of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF_DDIC of program CL_WD_ADOBE_SERVICES==========CP
Method: CREATE_PDF of program CL_WD_ADOBE_SERVICES==========CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/LADOBE==================CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L8STANDARD==============CP
Method: IF_WDR_VIEW_ELEMENT_ADAPTER~SET_CONTENT of program /1WDA/L7STANDARD==============CP

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

What you haven't answered is what UI element properties are you using on your InteractiveForm UI element? Also from this source code it looks like you are trying to display the PDF in a new dialog window. Is that correct? If so, you shouldn't do this. The interactiveForm UI element is not supported in dialog windows. From the online help:

http://help.sap.com/saphelp_nw70ehp1/helpdata/en/47/b9487601602fe2e10000000a42189d/frameset.htm

Constraints

Note that the integration of the following UI elements in Web Dynpro ABAP dialog boxes (popups) is not supported.

AcfExecute

AcfUpDownload

FlashIsland

All GAC* controls

GACDataSource

GACProperty

GACEvent

GACEventParameter

All active controls

Active controls are all UI elements that inherit from AbstractActiveComponent:

Gantt

Network

OfficeControl

InteractiveForm

Former Member
0 Kudos

Hi Thomas,

Sorry i had missed out that to mention. ya i am using Interactive Form to display the pdf. As per your say i had disabled the codes for opening popup window and had tried to display the pdf in the same view. But i am getting the same error.

Thanks,

Mugundhan

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

Once again, can you please state which properties of the interactiveForm UI element you are using.

Former Member
0 Kudos

Thomas,

Interactive Form UI properties:

dataSource : binded the PDF_DATA node ( node having cardinality 1..1 )

pdfsource : binded the attribute SOURCE which is under the node PDF_DATA

Only these two i had used. templateSource property i had kept empty. Do i want to bind anything to this?

Thanks,

Mugundhan

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

As I suspected. You can't bind a dataSource if you also bind a pdfSource - if that pdfSource is from a SmartForm. The SmartForm has already rendered completely and is a static PDF document.

Former Member
0 Kudos

That was great Thomas. Thanks a lot. Issue resolved. I had cleared the binding for dataSource. My pdf is being displayed now. Now i tried to display the same pdf in a popup window, which also works fine.

Thanks a lot,

Mugundhan

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

>Now i tried to display the same pdf in a popup window, which also works fine.

Just be careful. The online help clearly states that this is not a supported scenario.

Former Member
0 Kudos

Ok, thanks Thomas..

Answers (0)